Google Cloud Speech API: как получить полнотекстовую транскрипцию аудио длительностью более 1 минуты? - PullRequest
0 голосов
/ 20 сентября 2018

Я успешно получил расшифровку и альтернативы для 5-минутного звука, используя Google Cloud Speech API (longrunningrecognize), но я не получаю полный текст этих 5 минут, только небольшую расшифровку, как показано ниже:

{
  "name": "2340863807845687922",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata",
    "progressPercent": 100,
    "startTime": "2018-09-20T13:25:57.948053Z",
    "lastUpdateTime": "2018-09-20T13:28:18.406147Z"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse",
    "results": [
      {
        "alternatives": [
          {
            "transcript": "I am recording it. I think",
            "confidence": 0.9223639
          }
        ]
      },
      {
        "alternatives": [
          {
            "transcript": "these techniques properly stated",
            "confidence": 0.9190353
          }
        ]
      }
    ]
  }
}

Как получить полный текст, сгенерированный транскрипцией?

Ответы [ 3 ]

0 голосов
/ 01 октября 2018

Я успешно решил эту проблему.Мне пришлось правильно конвертировать файл с помощью ffmpeg:

$ ffmpeg -i /home/user/audio_test.wav -ac 1 -ab 8k audio_test2.wav

***. Удалить тишину:

sox audio_test2.wav audio_no_silence4.wav silence -l 1 0.1 1% -1 2.0 1%

И исправить мой sync-request.json:

{"config": {
      "encoding":"MULAW",
      "sampleRateHertz": 8000,
      "languageCode": "pt-BR",
      "enableWordTimeOffsets": false,
    "enableAutomaticPunctuation": false,
 "enableSpeakerDiarization": true,
    "useEnhanced": true,
`enter code here`"diarizationSpeakerCount":2,
 "audioChannelCount": 1},
  "audio": {
      "uri":"gs://storage/audio_no_silence4.wav"
  }
}

И запустить curl после этого.Теперь он отлично работает.

0 голосов
/ 06 июня 2019

Google Cloud Speech-to-Text обеспечивает очень точные результаты.Для некоторых длинных аудиозаписей он предоставляет транскрипт, разбитый на куски, как массив альтернатив, как вы заметили.Я установил MaxAlternatives = 1 в моей конфигурации распознавания, а затем конкатенировал массив альтернатив, чтобы получить полную расшифровку.Моя конфигурация распознавания в c # с использованием Google.Cloud.Speech.V1 приведена ниже

var config = new RecognitionConfig()


{
    Encoding = RecognitionConfig.Types.AudioEncoding.Linear16,
    //SampleRateHertz = 16000,
    LanguageCode = "en",
    EnableWordTimeOffsets = true,
    MaxAlternatives = 1
 };
0 голосов
/ 24 сентября 2018

Google Speech API - очень болезненная вещь для работы.Помимо невозможности перевести длинные файлы, они случайно пропускают большие фрагменты аудио из транскрипции.Возможные решения:

  1. Разделение аудио на фрагменты с определением голосовой активности и расшифровка каждого фрагмента отдельно
  2. Используйте более разумный сервис, такой как Speechmatics, они будут обрабатывать большие файлы без проблем с большей точностью
  3. Используйте распознаватель речи с открытым исходным кодом, такой как Kaldi.
...