0

我正在做一个流派识别项目,并试图利用 sounddevice 来输入音频。我曾尝试使用他们网站上的示例代码以及堆栈溢出,但如果没有完成退出代码 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)
4

1 回答 1

0

一些东西:

  1. 您确定您的默认设备应该指定为1,3?,这些可能是不正确的输入/输出通道 - 您可以打印sd.DeviceList 以了解有关您的实际设备的更多信息

  2. 当您打电话sd.rec(..., channels=2)时,您确定您的输入设备有 2 个通道吗?情况并非总是如此(即普通麦克风是单通道,除非您使用某种音频接口)提示 -> 您可以使用query_channels()找出您的设备支持多少个通道

  3. 我认为这write('output.wav,fs myrecording)只是一个错字?你应该确保它write('output.wav',fs myrecording)

就我个人的经验(和偏好)而言,我总是在PyAudio上取得更大的成功,并且通常会推荐它用于使用 Python 的桌面音频 I/O!

于 2020-03-03T21:36:47.037 回答