Как увеличить время прослушивания в Google Speech API? - PullRequest
0 голосов
/ 08 января 2019

Я сделал рабочую программу для преобразования речи в текст, используя API Google Speech для преобразования текста в текст, который записывает речь и копирует ее в .txt, однако API речи Google не слушает очень долго (около 9 секунд). увеличить это или лучше API для использования в Python, который может писать во время прослушивания?

import time
import speech_recognition as sr
import sys
import fileinput
r=sr.Recognizer()
#tells the program to use a mic and to listen
with sr.Microphone() as source:
    audio=r.listen(source)
#asking the program to try to listen
try:
    spoken = r.recognize_google(audio)

    print("I heard:"+spoken)

except Exception:
    print ("Somthing went wrong")
#writing what was recorded by the mic into a .txt
with open("name-of-file.txt", "a") as f:
    f.write("\n")
    f.write(time.strftime("%H:%M:%S") + " " + time.strftime("%d/%m/%Y"))
    f.write("\n")
    f.write(spoken)

Ожидаемый результат: Программа слушает и пишет одновременно или же Программа может слушать до выключения. Фактический результат: Программа слушает около 9 секунд, а затем печатает в .txt

1 Ответ

0 голосов
/ 08 января 2019

Распознавание речи - довольно хорошая библиотека, но мне тоже приходилось бороться с длиной записи. Вот как мне удалось обойти эту проблему:

Сохранение аудио на диск

with sr.AudioFile('path/to/audiofile.wav') as source:
    audio = r.record(source)

Плюсы: запись в аудиофайл и последующая отправка более длинных фрагментов в Google позволили мне получить более стабильную продолжительность записи по сравнению с потоковой передачей.

Минусы: в зависимости от размера аудиофайла это может иметь недостаток в увеличении времени отклика до пары секунд, что может быть неприменимо в вашем случае.

Минимизация уровня шума

Вы, вероятно, уже хорошо знаете, что лучшее отношение сигнал-шум даст лучшую точность STT - но я также считаю, что это важно для хороших размеров фрагментов с библиотекой распознавания речи.

Дважды убедитесь, что ваш уровень шума легко отличим от вашего источника. Запись аудио также поможет вам решить эту проблему. Иногда звук может преждевременно обрезаться с помощью библиотеки распознавания речи, потому что он не может четко определить вашу речь.

Если улучшение качества или близости вашего микрофона невозможно, в библиотеку включен инструмент, который калибрует уровни звука для оптимального различения сигнал-шум.

Чтобы активировать эту функцию вместо строки:

audio=r.listen(source)

Попробуйте использовать:

audio=r.adjust_for_ambient_noise(source)

Имейте в виду, что в некоторых случаях эта функция добавляет небольшую задержку. В других случаях он будет продолжать слушать неопределенно долго, если вы подадите ему шумный звук.

Объединяя все это

with sr.AudioFile('path/to/audiofile.wav') as source:
    audio = r.adjust_for_ambient_noise(source)

Вот отличное руководство для этой библиотеки - Окончательное руководство по распознаванию речи с Python

...