欢迎访问宙启技术站
智能推送

使用Python生成paInt16()格式的正弦波音频信号

发布时间:2024-01-17 10:30:41

要使用Python生成Pyaudio格式的16位整数(Int16)的正弦波音频信号,你可以使用numpysounddevice库。以下是一个生成正弦波音频信号并播放的例子:

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()函数。