Speech recognition 谷歌云语音API:如何获得超过1分钟的音频全文转录?

Speech recognition 谷歌云语音API:如何获得超过1分钟的音频全文转录?,speech-recognition,speech-to-text,google-speech-api,Speech Recognition,Speech To Text,Google Speech Api,我使用Google Cloud Speech API(LongRunningRecognite)成功获得了5分钟音频的成绩单和备选方案,但我没有得到这5分钟的全文,只是一个小成绩单,如下所示: { "name": "2340863807845687922", "metadata": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata", "progressP

我使用Google Cloud Speech API(LongRunningRecognite)成功获得了5分钟音频的成绩单和备选方案,但我没有得到这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
          }
        ]
      }
    ]
  }
}

如何获得由转录生成的全文?

使用谷歌语音API是一件非常痛苦的事情。除了不能翻译长文件外,他们还随机地从转录中跳过大块音频。可能的解决办法是:

  • 使用语音活动检测和语音识别将音频分块 分别转录每一段
  • 使用更合理的服务,如演讲,他们将处理大文件,没有任何问题,更准确
  • 使用开源语音识别器,比如Kaldi

  • 我成功地解决了这个问题。我必须使用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
    。它现在工作得很好。

    谷歌云语音到文本提供了非常准确的结果。对于一些较长的音频,它提供了您观察到的成片的转录本,作为一系列备选方案。我所做的是在我的识别配置中设置MaxAlternatives=1,然后连接Alternations数组以获得完整的转录本。下面给出了我使用Google.Cloud.Speech.V1在c#中的识别配置

    var config = new RecognitionConfig()
    
    
    {
        Encoding = RecognitionConfig.Types.AudioEncoding.Linear16,
        //SampleRateHertz = 16000,
        LanguageCode = "en",
        EnableWordTimeOffsets = true,
        MaxAlternatives = 1
     };