Untitled
unknown
plain_text
10 months ago
5.8 kB
18
Indexable
import ggwave
import pyaudio
import numpy as np
# Initialize GGWave
gg = ggwave.GGWave()
# The message to send
message = "Hello from Gibberlink demo"
# Encode the message into waveform
# Choose a protocol; you can pick based on audible vs ultrasonic, speed, etc.
protocol_id = 1 # for example
waveform = gg.encode(message, protocolId=protocol_id, volume=20)
# Play waveform via speaker
p = pyaudio.PyAudio()
stream_out = p.open(format=pyaudio.paFloat32,
channels=1,
rate=48000,
output=True)
# Convert waveform bytes into appropriate numpy floats if needed
# (This depends on how ggwave.encode returns data)
stream_out.write(waveform)
stream_out.stop_stream()
stream_out.close()
# Now, to listen for a response (or same device echo for testing)
stream_in = p.open(format=pyaudio.paFloat32,
channels=1,
rate=48000,
input=True,
frames_per_buffer=4096)
print("Listening for message...")
gg_instance = ggwave.init()
try:
while True:
data = stream_in.read(4096, exception_on_overflow=False)
result = gg.decode(gg_instance, data)
if result is not None:
try:
text = result.decode("utf-8")
except:
text = str(result)
print("Received:", text)
break
finally:
ggwave.free(gg_instance)
stream_in.stop_stream()
stream_in.close()
p.terminate()Editor is loading...
Leave a Comment