当然,代码中的第一步是检查麦克风是否存在。
这比您想象的要棘手。使用pyaudio软件包,发现可用的输入设备相对容易...
import pyaudio
p = pyaudio.PyAudio()
for i in range(p.get_device_count()):
dev = p.get_device_info_by_index(i)
if dev.get('maxInputChannels',0) > 0:
print('Input device: ',dev.get('name'))
...但是在我的系统上,至少有四个不同的输入设备...一个是会议麦克风,一个是从头戴式耳机输入的麦克风,一个是相机上的麦克风,一个是麦克风。在我仅用于驱动一组扬声器的USB声音设备上。无法以编程方式确定我实际要使用的那些。
如果您假设设置简单(例如,只有一个麦克风),则可以要求PyAudio进行录音,它将使用默认的输入设备。有关更多详细信息,请参见PyAudio文档中的示例:
stream = p.open(input=True,...)
这似乎符合您的要求。如果没有可用的输入设备,则会失败:
>>> s = p.open(input=True,rate=44100,channels=2,format=pyaudio.paInt16)
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
File "/usr/lib64/python3.7/site-packages/pyaudio.py",line 750,in open
stream = Stream(self,*args,**kwargs)
File "/usr/lib64/python3.7/site-packages/pyaudio.py",line 441,in __init__
self._stream = pa.open(**arguments)
OSError: [Errno -9996] Invalid input device (no default output device)
本文链接:https://www.f2er.com/3141391.html