python - Windows:获取默认麦克风名称

标签 python windows audio portaudio

在Windows上的python2.7中,我需要获取默认麦克风的名称,这将是一个字符串,例如“麦克风(2-高清晰度音频设备)”。

我的第一次尝试是使用子进程查询WMI:wmic path Win32_SoundDevice get */format:list。不幸的是,这似乎返回了扬声器和麦克风,并且我看不到任何可以让我区分这两者的属性。此外,正确设备的名称格式不正确,例如它仅显示为“高清晰度音频设备”,而不是完整的正确字符串“麦克风(2- 高清晰度音频设备)”。

我的第二次尝试是使用 PyAudio(Python 绑定(bind)到 PortAudio)。调用 PyAudio().get_default_input_device_info()["name"] 让我非常接近,但不幸的是,由于某种原因,名称被截断了!返回值是“麦克风(2-高清晰度”(截断为31个字符长度)。如果我只能得到这个字符串的非截断版本,那就完美了。

关于获取默认麦克风名称的最简单、最独立的方法有什么想法吗?谢谢!

最佳答案

显然我可以从 ffmpeg 获取完整的字符串,如下所示:

ffmpeg -list_devices true -f dshow -i dummy

然后麦克风的名称将出现在“DirectShow 音频设备”后面的行

关于python - Windows:获取默认麦克风名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16684894/

相关文章:

python - 如何使用 numpy 从一维数组创建对角矩阵?

windows - DUnit 比较两个文本文件并显示差异

c# - Windows 上可靠的短时间跨度测量

c++ - 可以在卸载主机 DLL 之前卸载通过导入库链接的 DLL 吗?

c# - Windows窗体应用程序:发布问题

android - Android更新Visualizer Audio Session ID

iphone - 带有iPhone SDK的AudioUnit的弯音(变速)音频

python - PDF转换后文件打开异常

python - WebDriverException : Service . ..\firefox.exe 通过 Selenium 使用 GeckDriver Firefox 意外退出错误

python - 如何根据客户请求干净地退出 Pyro 守护进程?