python语音识别库/ pyaudio:刷新麦克风列表

时间:2018-07-07 15:31:21

标签: python pyaudio

嗨,这是我的第一篇文章,所以我会尽力解释我的需要。

我的问题是,我正在使用特定的麦克风,如果需要,它可能会随时断开,因此我需要将其连接到PC的麦克风。这是代码

    mic = None
    for i in sr.Microphone.list_microphone_names():
        print(i)

    for index, name in enumerate(sr.Microphone.list_microphone_names()):
        print("Microphone with name \"{1}\" found for `Microphone(device_index={0})`".format(index, name))
        if str(name) == "Microphone (Blue Snowball)":
            print("\n\n\n\n\n")
            mic = sr.Microphone(sample_rate = 18000, device_index= index)
            print("using Microphone with name \"{1}\" found for `Microphone(device_index={0})`".format(index, name))
            print(mic)

    if mic == None:
        for index, name in enumerate(sr.Microphone.list_microphone_names()):
            print("Microphone with name \"{1}\" found for `Microphone(device_index={0})`".format(index, name))
            if str(name) == "Microphone (Realtek High Defini":
                print("\n\n\n\n\n")
                mic = sr.Microphone(sample_rate = 18000, device_index= index)
                print("using Microphone with name \"{1}\" found for `Microphone(device_index={0})`".format(index, name))
                print(mic)
    print(mic)

上面的代码大约每5秒运行一次

现在的问题是当我断开麦克风的连接时,它仍然在那说

似乎sr.Microphone.list_microphone_names()会在程序启动时获取所有音频设备,然后在运行期间再次调用它时,它不会更新该列表,而只是检索在启动时创建的列表。

>

现在,我需要一种方法来更新此列表或查看可操作的麦克风。我知道pyaudio确实看到此麦克风丢失,原因是设备索引发生了变化,但它不会更新列表

感谢先生的轻蔑

p.s我已经研究了4个小时,而我对pyaudio没有任何经验

0 个答案:

没有答案