Как связать модуль Python распознавания речи с одним из доступных устройств? - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь сделать простой код распознавания речи:

import speech_recognition as sr

r=sr.Recognizer()

with sr.Microphone() as source:
    print("say something")
    audio=r.listen(source)
try:
    print(r.recognize_google(audio))
except:
    pass

Это дает мне эту ошибку:

в pyaudio.py ", строка 441,

in __init__

self._stream = pa.open(**arguments)

OSError: [Errno -9985] Устройство недоступно

Это странно, потому что при тестировании pyaudio с использованием следующегокод:

import pyaudio
pa = pyaudio.PyAudio()
print(pa.get_default_output_device_info())

for i in range(0, pa.get_device_count()):
    print("Name: " + pa.get_device_info_by_index(i)["name"])
    print("Index: " , pa.get_device_info_by_index(i)["index"])
    print("\n")

Он распознает многие устройства, такие как:

{'index': 3, 'structVersion': 2, 'name': 'Speakers (High Definition Audio', 'hostApi': 0, 'maxInputChannels': 0, 'maxOutputChannels': 2, 'defaultLowInputLatency': 0.09, 'defaultLowOutputLatency': 0.09, 'defaultHighInputLatency': 0.18, 'defaultHighOutputLatency': 0.18, 'defaultSampleRate': 44100.0}
Name: Microsoft Sound Mapper - Input
Index:  0


Name: Microphone (High Definition Aud
Index:  1


Name: Microsoft Sound Mapper - Output
Index:  2


Name: Speakers (High Definition Audio
Index:  3

Мой вопрос: как настроить speech_recognition или pyaudio таким образом, чтобы он связывался с однимиз доступных устройств?

Примечание: я использую Windows 10 и Python 3.7

...