在Linux系统中,pyaudio
是一个用于处理音频流的Python库。以下是一些使用pyaudio
的简单案例:
你可以使用pyaudio
和wave
模块来播放WAV文件。以下是一个示例代码:
import pyaudio
import wave
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"
audio = pyaudio.PyAudio()
# 打开流
stream = audio.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=False,
frames_per_buffer=CHUNK)
# 写入WAV文件
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(audio.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b'Hello World!')
# 停止,关闭并释放资源
stream.stop_stream()
stream.close()
wf.close()
audio.terminate()
这段代码会播放一个5秒的"Hello World!"音频。
以下是一个从麦克风录音并使用pyaudio
保存为WAV文件的示例:
import pyaudio
import wave
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"
audio = pyaudio.PyAudio()
# 打开流
stream = audio.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
# 写入WAV文件
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(audio.get_sample_size(FORMAT))
wf.setframerate(RATE)
frames = []
# 读取数据
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
# 停止,关闭并释放资源
stream.stop_stream()
stream.close()
wf.close()
audio.terminate()
这段代码会录制5秒的麦克风音频并保存为"output.wav"。
注意:在运行这些代码之前,请确保你的系统已经安装了pyaudio
库。如果没有安装,你可以使用pip
来安装它:pip install pyaudio
。另外,一些系统可能需要额外的依赖或配置才能使用pyaudio
和麦克风。