python : add local file saving example (#123)

Added python example showing how to save .wav file locally without using HTTP service using wave & numpy libraries.
This commit is contained in:
Demian Zenkov
2024-09-26 16:11:20 +03:00
committed by GitHub
parent 69f809ba65
commit e2b650fcc4

View File

@@ -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