Сделайте распознавание речи Python быстрее - PullRequest
0 голосов
/ 27 мая 2018

Я использую распознавание речи Google для Python.Вот мой код:

import speech_recognition as sr
r = sr.Recognizer()
with sr.Microphone() as source:
   print("Say something!")
   audio = r.listen(source)
   print(r.recognize_google(audio))

Хотя распознавание очень точное, требуется около 4-5 секунд, чтобы выплюнуть распознанный текст.Поскольку я создаю голосового помощника, я хочу изменить приведенный выше код, чтобы распознавание речи было намного быстрее.

Есть ли способ уменьшить это число примерно до 1-2 секунд?Если возможно, я пытаюсь сделать признание так же быстро, как такие сервисы, как Siri и Ok Google.

Я очень плохо знаком с Python, поэтому я прошу прощения, если есть простой ответ на мой вопрос.

1 Ответ

0 голосов
/ 14 ноября 2018

Вы можете использовать другую программу распознавания речи.Например, вы можете настроить учетную запись в IBM для использования их Watson Speech To Text.Если возможно, попробуйте использовать их интерфейс веб-сокета, потому что тогда он активно транскрибирует то, что вы говорите, пока вы все еще говорите.

Пример (без использования веб-сокетов) будет:

import speech_recognition as sr

# obtain audio from the microphone
r = sr.Recognizer()
with sr.Microphone() as source:
    print("Adjusting for background noise. One second")
    r.adjust_for_ambient_noise(source)
    print("Say something!")
    audio = r.listen(source)

IBM_USERNAME = "INSERT IBM SPEECH TO TEXT USERNAME HERE"  # IBM Speech to Text usernames are strings of the form XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
IBM_PASSWORD = "INSERT IBM SPEECH TO TEXT PASSWORD HERE"  # IBM Speech to Text passwords are mixed-case alphanumeric strings
try:
    print("IBM Speech to Text thinks you said " + r.recognize_ibm(audio, username=IBM_USERNAME, password=IBM_PASSWORD))
except sr.UnknownValueError:
    print("IBM Speech to Text could not understand audio")
except sr.RequestError as e:
    print("Could not request results from IBM Speech to Text service; {0}".format(e))

Вы также можете попытаться использовать Pocketsphinx, но лично у меня не было особенно хорошего опыта с ним.Это в автономном режиме (плюс), но, для меня, не было особенно точным.Вероятно, вы можете настроить некоторые параметры обнаружения и устранить фоновый шум.Я считаю, что есть также вариант обучения, чтобы изменить его к вашему голосу, но он не выглядит простым.

Некоторые полезные ссылки:

Распознавание речи

Пример распознавания микрофона

IBM Watson Speech to Text

Удачи.Как только распознавание речи работает правильно, это очень полезно и полезно!

...