diff --git a/examples/ggwave-to-file/ggwave-to-file-local.py b/examples/ggwave-to-file/ggwave-to-file-local.py new file mode 100644 index 0000000..b755db9 --- /dev/null +++ b/examples/ggwave-to-file/ggwave-to-file-local.py @@ -0,0 +1,24 @@ +import ggwave +import wave +import numpy as np + +# Parameters +volume_ = 20 +sample_rate_ = 48000 +filename = "output.wav" + +# Generate audio waveform for string "hello python" +waveform = ggwave.encode("hello python", protocolId=5, volume=volume_) + +# Convert byte data into float32 +waveform_float32 = np.frombuffer(waveform, dtype=np.float32) + +# Normalize the float32 data to the range of int16 +waveform_int16 = np.int16(waveform_float32 * 32767) + +# Save the waveform to a .wav file +with wave.open(filename, "wb") as wf: + wf.setnchannels(1) # mono audio + wf.setsampwidth(2) # 2 bytes per sample (16-bit PCM) + wf.setframerate(sample_rate_) # sample rate + wf.writeframes(waveform_int16.tobytes()) # write the waveform as bytes \ No newline at end of file