"Constant" 使用 python 生成音频波形?
"Constant" audio waveform generation using python?
我正在寻找可以生成 "constant" 音频波形的东西,它看起来像这样:A constant waveform
我有一组模拟数据:
12766:149
12786:0
13339:149
13359:0
13721:57
13741:0
15249:255
15269:0
15822:87
其中格式为 time_in_ms:amplitue
。我尝试从耳机插孔输出它们。
我觉得上面的"constant waveform"可以认为是多个频率很小的方波的组合,幅度不同,持续20ms。
这可能吗?我可以做什么?
我想您可以使用 wave
模块将原始 PCM 音频帧简单地写入 .wav 文件... https://docs.python.org/3/library/wave.html 如果您的振幅范围从 0 到 255(含),则可能最容易创建一个 sampwidth 为 1(字节)的 wav 文件,只需将幅度作为字节写入样本帧。
with wave.open("test.wav","w") as w:
w.setnchannels(1)
w.setsampwidth(1)
w.setframerate(4000) # 4000 samples/sec
w.writeframes(bytearray([100]*4000)) # 4000 samples of amplitude 100
上面创建了一个小文件'test.wav',它是一个恒定幅度 100 的单声道 8 位音频波形。相应地更改代码以写入输入文件中的幅度值,根据需要调整采样率
我正在寻找可以生成 "constant" 音频波形的东西,它看起来像这样:A constant waveform
我有一组模拟数据:
12766:149
12786:0
13339:149
13359:0
13721:57
13741:0
15249:255
15269:0
15822:87
其中格式为 time_in_ms:amplitue
。我尝试从耳机插孔输出它们。
我觉得上面的"constant waveform"可以认为是多个频率很小的方波的组合,幅度不同,持续20ms。
这可能吗?我可以做什么?
我想您可以使用 wave
模块将原始 PCM 音频帧简单地写入 .wav 文件... https://docs.python.org/3/library/wave.html 如果您的振幅范围从 0 到 255(含),则可能最容易创建一个 sampwidth 为 1(字节)的 wav 文件,只需将幅度作为字节写入样本帧。
with wave.open("test.wav","w") as w:
w.setnchannels(1)
w.setsampwidth(1)
w.setframerate(4000) # 4000 samples/sec
w.writeframes(bytearray([100]*4000)) # 4000 samples of amplitude 100
上面创建了一个小文件'test.wav',它是一个恒定幅度 100 的单声道 8 位音频波形。相应地更改代码以写入输入文件中的幅度值,根据需要调整采样率