我正在从事类型识别项目,并尝试利用声音设备输入音频。我曾尝试使用他们网站上的示例代码以及堆栈溢出,但是如果未完成退出代码0,就无法使代码运行。 /输出即时消息仍然没有录制任何音频。这是下面的代码
import sounddevice as sd
from scipy.io.wavfile import write
sd.default.device = 1,3;
fs = 44100 #sample rate
duration = 5
myrecording = sd.rec(int(duration*fs), samplerate=fs, channels=2)
sd.wait()
write('output.wav,fs myrecording)
几件事:
您确定default device是否应指定为1,3
吗?这些可能是不正确的输入/输出通道-您可以打印sd.DeviceList
to find out more info about your actual devices。
当您呼叫sd.rec(..., channels=2)
时,您确定输入设备具有2个通道吗?并非总是这种情况(即,除非使用某种音频接口,否则普通麦克风是单个通道)提示->您可以使用query_channels()找出设备支持的通道数]]]
我想write('output.wav,fs myrecording)
只是一个错字?您应确保其write('output.wav',fs myrecording)
就我个人的经验(和个人喜好)而言,PyAudio总是会取得更大的成功,通常会推荐使用Python进行桌面音频I / O!