sounddevice库在Python中的音频输入输出设备选择方法和示例
发布时间:2023-12-15 19:46:14
在Python中,sounddevice库提供了一种简单方便的方法来选择音频输入输出设备。sounddevice库是一个用于访问音频设备的Python库,它可以用于录制和播放音频。
要选择音频设备,首先需要导入sounddevice库:
import sounddevice as sd
然后,可以使用sd.query_devices()函数来获取可用的音频设备列表。该函数返回一个设备列表,列表中的每个设备都是一个字典,包含设备的各种属性,如设备名称、采样率等。
例如,可以使用以下代码获取所有可用的音频设备:
devices = sd.query_devices()
for device in devices:
print(device['name'])
此外,sounddevice库还提供了sd.default.device变量来设置默认的音频设备。可以使用整数或设备名称来选择音频设备。例如,要将默认设备设置为 个设备,可以使用以下代码:
sd.default.device = 0
要选择特定的输入或输出设备,可以使用sd.InputStream()和sd.OutputStream()函数来创建相应的输入流和输出流对象。可以使用设备索引或设备名称作为参数来选择设备。例如,以下代码创建一个输入流对象并使用设备名称选择设备:
input_stream = sd.InputStream(device='Microphone')
然后,可以使用input_stream.read()方法来读取音频数据。以下是一个完整的示例,演示了如何录制音频并保存为.wav文件:
import sounddevice as sd
import soundfile as sf
# 设置默认设备
sd.default.device = 0
# 创建音频流
input_stream = sd.InputStream()
output_stream = sd.OutputStream()
# 开始录制
input_stream.start()
# 录制10秒钟的音频
duration = 10 # 秒
audio_data = input_stream.read(int(duration * input_stream.sample_rate))
# 停止录制
input_stream.stop()
# 保存音频
sf.write('my_audio.wav', audio_data, input_stream.sample_rate)
在上面的例子中,我们使用sounfile库将录制的音频数据保存为.wav文件。
