Как перевести прямую трансляцию с помощью API Google Speech?

Это документы Google Speech API: https://cloud.google.com/speech/docs/sync-recognize

Я пробовал этот API 2 недели, но все еще не могу решить свою главную задачу (перевод потоковой передачи).

Я использую PHP. (возможен вариант на другом языке, сам найду)

Что я могу сделать за 2 недели:

  1. Распознавание синхронной речи (‹= 1 мин)

  2. Асинхронное распознавание речи (›1 мин и‹ = 80 мин). Примечание: я могу изменить это, чтобы принимать 3-часовое видео.

  3. Распознавание живой речи с микрофона: https://www.google.com/intl/en/chrome/demos/speech.html

  4. ОБНОВЛЕНИЕ. Выполняйте потоковую передачу через API со звуком длительностью менее 6 секунд.

Что я не могу сделать, так это:

  1. Как перевести прямую трансляцию. пример: потоковое радио (допускается задержка)

  2. Как переводить при воспроизведении видео / аудио. (возможна задержка)

ОБНОВЛЕНИЕ:

Я тоже задаю вопрос по google github. но так как ответа нет, я спрашиваю здесь.

Резюме:

Я могу выполнять потоковую передачу речи, но только с 6-секундным звуком. Это не то, что я ожидал. Я ожидаю признания неограниченной продолжительности (кажется, мы не знаем, когда закончится потоковое радио).

Спасибо за любую помощь. я очень ценю это

ОБНОВЛЕНИЕ:

Чтобы подтвердить, что я не могу использовать видео дольше 6 секунд. поэтому я пишу это:

Я пробую это видео интервью.mp4 и конвертирую его с помощью ffmpeg на интервью.flac с помощью этого ffmpeg -i interview.mp4 -c:a flac -ar 16000 -ac 1 -sample_fmt s16 interview.flac.

я использую эту библиотеку для расшифровки видео с помощью этого команда:

php speech.php transcribe --encoding FLAC --language-code en-US --sample-rate 16000 --stream interview.flac

и результат:

  [Google\GAX\ApiException]
  Invalid 'audio_content': too long.

он не может быть слишком длинным, потому что продолжительность видео составляет всего 48 секунд. это мета из результата ffmpeg:

Output #0, flac, to 'interview.flac':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.72.101
    Stream #0:0(und): Audio: flac, 16000 Hz, mono, s16, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      encoder         : Lavc57.92.100 flac
size=     810kB time=00:00:48.01 bitrate= 138.1kbits/s speed= 108x
video:0kB audio:801kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.019650%

person plonknimbuzz    schedule 25.05.2017    source источник


Ответы (1)


Вам необходимо использовать StreamingRecognize вызов API. Вы можете найти пример этого в PHP здесь.

person blambert    schedule 25.05.2017
comment
Спасибо, Бламберт, я проголосовал за вашу помощь. но, пожалуйста, посмотрите мое обновление .. у меня раньше отсутствовала информация. извиняюсь. - person plonknimbuzz; 25.05.2017
comment
Я просто не знаю, как это реализовать в реальном времени. Я просто знаю, как отправить 6-секундный звук в API потоковой передачи речи - person plonknimbuzz; 25.05.2017
comment
API потоковой передачи имеет ограничение в 60 секунд, а не в 6, поэтому вы должны иметь возможность передавать до 60 секунд аудио. Вы получаете сообщение об ошибке через 6 секунд? - person blambert; 29.05.2017
comment
посмотрите мое обновление. ты можешь попробовать мой файл, братан? я сдаюсь. понятия не имею ›‹ - person plonknimbuzz; 30.05.2017
comment
Получение 404 по ссылке - person AmarjaPatil4; 25.08.2020
comment
исправлена ​​ссылка @Amarja - person blambert; 27.08.2020