mirror of
https://github.com/ggerganov/ggwave.git
synced 2026-04-13 17:15:27 +08:00
Added python example showing how to save .wav file locally without using HTTP service using wave & numpy libraries.
24 lines
770 B
Python
24 lines
770 B
Python
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 |