使用Python生成paInt16()格式的正弦波音频信号
发布时间:2024-01-17 10:30:41
要使用Python生成Pyaudio格式的16位整数(Int16)的正弦波音频信号,你可以使用numpy和sounddevice库。以下是一个生成正弦波音频信号并播放的例子:
import numpy as np import sounddevice as sd # 设置参数 duration = 3 # 持续时间(秒) frequency = 440 # 频率(赫兹) sample_rate = 44100 # 采样率 # 生成时间轴 time = np.linspace(0, duration, int(duration * sample_rate), endpoint=False) # 生成正弦波信号 signal = np.sin(2 * np.pi * frequency * time) # 将信号缩放到16位整数范围内[-32767, 32767] scaled_signal = np.int16(signal * 32767) # 播放音频 sd.play(scaled_signal, sample_rate) sd.wait()
在上面的例子中,首先设置了音频参数:持续时间,频率和采样率。然后使用numpy库生成一个时间轴(从0到持续时间),并计算出正弦波信号。接下来,将信号缩放到16位整数范围内(-32767到32767)以符合Pyaudio的要求。最后,使用sounddevice库播放生成的音频信号,并使用sd.wait()等待音频播放完成。
你可以调整参数以生成不同频率和持续时间的正弦波音频信号。如果你想将音频信号保存为.wav文件,可以使用scipy.io.wavfile.write()函数。
