gpt4 book ai didi

python-2.7 - 获取Python中的音频输入设备列表

转载 作者:行者123 更新时间:2023-12-02 22:49:17 25 4
gpt4 key购买 nike

如何使用python以hw:0,1的格式获取Linux中音频输入设备的列表?

我已经尝试使用pyaudio进行以下操作:

def getaudiodevices():
p = pyaudio.PyAudio()
print p.get_default_input_device_info()
for i in range(p.get_device_count()):
print ''#p.get_device_info_by_index(i)

我也可以使用“ arecord -l”进行检索,但我需要像这样
硬件:0,1
硬件:0,2

我需要这种格式。你有什么建议吗?

谢谢。

最佳答案

如果PaDeviceInfo结构存储的名称足够,那么您可以从get_device_info_by_index()返回的dict中访问“名称”,然后也许将信息切掉:

import pyaudio

def getaudiodevices():
p = pyaudio.PyAudio()
for i in range(p.get_device_count()):
print p.get_device_info_by_index(i).get('name')

给我
HDA Intel HDMI: 0 (hw:0,3)
HDA Intel HDMI: 1 (hw:0,7)
HDA Intel HDMI: 2 (hw:0,8)
HDA Intel PCH: CS4208 Analog (hw:1,0)
HDA Intel PCH: CS4208 Digital (hw:1,1)
hdmi
default

但这无法满足您使用默认设备的需求,该名称似乎存储为“默认”。在这种情况下,如果您要查找的是,则可以在Python中执行“ arecord -l”。当然,您可以对“ aplay -l”执行相同的操作。
import os

def getaudiodevices():
devices = os.popen("arecord -l")
device_string = devices.read()
device_string = device_string.split("\n")
for line in device_string:
if(line.find("card") != -1):
print "hw:" + line[line.find("card")+5] + "," +\
line[line.find("device")+7]

输出
hw:1,0

关于python-2.7 - 获取Python中的音频输入设备列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32838279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com