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

У меня есть 20-минутный аудиофайл, который отправляется методу long_running_recognize в GCP, и я получаю текстовый ответ вместе с отметками времени каждого слова.Обработка аудио занимает около 190 секунд, но наше требование - получить ответ в течение 30 с ~ 1 минуты.

Как этого добиться?

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

  • На экране будет воспроизводиться видеофайл, и человек будет диктовать микрофон на этом видео.(оба будут запущены в одно и то же время, чтобы синхронизировать их)
  • Аудиовход будет отправлен в GCP для SpeechToText с ответом, содержащим метки времени каждого слова в соответствии с временем кадра в видео, когдаэто слово было произнесено.

На примере 20-минутного видео и 20-минутного звука цель состоит в том, чтобы получить ответ на все слова / предложения, произнесенные в течение этого 20-минутного видео, с отметкой времени / смещения, относящихся к этому.видео, с задержкой не более 1 минуты.

Пример функции, используемой для этой цели

def sample_long_running_recognize(storage_uri,language_code):
    encoding = enums.RecognitionConfig.AudioEncoding.LINEAR16 #check for wav 
    config = types.RecognitionConfig(
    language_code=language_code,
    audio_channel_count=1,enable_word_time_offsets=True)
    audio = {"uri": storage_uri}
    operation = client.long_running_recognize(config, audio)
    response = operation.result()
    return response
...