欢迎访问宙启技术站

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