我使用Google Cloud Speech API(longrunningrecognize)成功获得了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
}
]
}
]
}
}
如何获取转录产生的全文?
答案 0 :(得分:0)
使用Google Speech API是一件非常痛苦的事情。除了无法翻译长文件外,他们还随机跳过转录中的大块音频。可能的解决方案是:
答案 1 :(得分:0)
我成功解决了这个问题。我必须使用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
。现在它运行良好。
答案 2 :(得分:0)
Google Cloud语音转文字可提供非常准确的结果。对于某些较长的音频,它会提供记录,这些记录被分成大块,作为您观察到的替代数组。我所做的就是在我的识别配置中将MaxAlternatives设置为1,然后将Alternatives数组连接起来以获得完整的成绩单。下面给出了我在使用Google.Cloud.Speech.V1的C#中的识别配置
var config = new RecognitionConfig()
{
Encoding = RecognitionConfig.Types.AudioEncoding.Linear16,
//SampleRateHertz = 16000,
LanguageCode = "en",
EnableWordTimeOffsets = true,
MaxAlternatives = 1
};