Python 麦克风之间的语音识别变化

Python Speech Recognition Change Between Microphones

通过 运行 以下代码,我获得了所有可用的麦克风:

import speech_recognition as sr

for index, name in enumerate(sr.Microphone.list_microphone_names()):
    print(f'{index}, {name}')

这些是我所有的麦克风(和其他东西):

0, Microsoft Sound Mapper - Input
1, Microphone (Realtek(R) Audio)
2, Stereo Mix (Realtek(R) Audio)
3, Microsoft Sound Mapper - Output
4, Speakers (Realtek(R) Audio)
5, Primary Sound Capture Driver
6, Microphone (Realtek(R) Audio)
7, Stereo Mix (Realtek(R) Audio)
8, Primary Sound Driver
9, Speakers (Realtek(R) Audio)
10, Realtek ASIO
11, Speakers (Realtek(R) Audio)
12, Stereo Mix (Realtek(R) Audio)
13, Microphone (Realtek(R) Audio)
14, Speakers 1 (Realtek HD Audio output with SST)
15, Speakers 2 (Realtek HD Audio output with SST)
16, PC Speaker (Realtek HD Audio output with SST)
17, Microphone 1 (Realtek HD Audio Mic input with SST)
18, Microphone 2 (Realtek HD Audio Mic input with SST)
19, Microphone 3 (Realtek HD Audio Mic input with SST)
20, Stereo Mix (Realtek HD Audio Stereo input)

如何 select 用于语音识别的特定麦克风,我需要在索引 1 和 2 处的麦克风之间切换以进行测试,我该怎么做。

参考代码:

import speech_recognition as sr

r = sr.Recognizer()
with sr.Microphone() as source:
    print("Speak Anything!")
    audio = r.listen(source)

    r.energy_threshold = 300
    r.pause_threshold = 1

    try:
        text = r.recognize_google(audio)
        print("You said : {}".format(text))
    except:
        print("Sorry could not recognize what you said!")

有没有办法打印当前正在使用的麦克风?

使用

mic = Microphone(device_index=1)

完整代码:

import speech_recognition as sr

r = sr.Recognizer()
mic = Microphone(device_index=1)
with mic as source:
    print("Speak Anything!")
    audio = r.listen(source)