Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Библиотека speech_recognition, питон 3.8

Dungen_Master Ученик (82), на голосовании 2 месяца назад
Я пишу своего голосового ассистента, и для записи и расшифровки аудио использую такой код:

print('Произнесите ваш запрос')
recording = sd.rec(int(5 * 44100), samplerate=44100, channels=2)
sd.wait(2)
print('Думаю...')
write("recording.wav", 44100, recording)
wv.write("recording.wav", recording, 44100, sampwidth=2)
r = sr.Recognizer()
with sr.AudioFile("recording.wav") as source:
audio = r.record(source)
try:
text = r.recognize_google(audio, language="ru-RU")
print("Text: "+text)
except Exception as e:
print("Exception: "+str(e))


И он на выходе выдаёт это:


result2:
{ 'alternative': [ {'confidence': 0.93195337, 'transcript': 'погода'},
{'transcript': 'погодо'}],
'final': True}
Text: погода


Там несколько вариантов результата с процентной вероятностью (в данном случае мой запрос - погода.
Как мне изменить код, чтобы на выходе отображался только финальный вариант, без альтернативных транскрипций?
Голосование за лучший ответ
ivan866_z Просветленный (20141) 3 месяца назад
у тебя поле confidence во всех предлагаемых вариантах?
если да, то вот так
 from operator import itemgetter
sorted(result2['alternative'], key = itemgetter('confidence'), reverse = True)[0]
Dungen_MasterУченик (82) 3 месяца назад
Иван, а куда вставлять код? Вставил перед кодом записи и распознавания, выдаёт ошибку. Вставил отдельным блоком, выдаёт ошибку
Похожие вопросы