在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文件。