我正在尝试将Google Speech to Text用于长文件(〜100MB)
但是,即使我正在使用https://cloud.google.com/speech-to-text/docs/async-recognize中的代码(改编)
我收到以下异常:
状态(StatusCode = InvalidArgument,Detail =“请求有效负载大小超出了限制:10485760字节。”)
到目前为止,这是我的代码:
string convertedFile = WavUtils.WavUtils.EncodeToWav(filename);
Dictionary<string, long> wavData = WavUtils.WavUtils.GetWAVData(convertedFile);
var speech = SpeechClient.Create();
var longOperation = speech.LongRunningRecognize(
new RecognitionConfig()
{
Encoding = RecognitionConfig.Types.AudioEncoding.Linear16,
SampleRateHertz = (int)wavData["sampleRateHz"],
LanguageCode = LanguageCodes.English.UnitedStates
},
RecognitionAudio.FromFile(convertedFile));
longOperation = longOperation.PollUntilCompleted();
var response = longOperation.Result;
foreach (var result in response.Results)
{
foreach (var alternative in result.Alternatives)
{
Console.WriteLine(alternative.Transcript);
}
}
即使使用LongRunningRecognize,最大文件大小真的是10MB吗?
原始文件实际上是录制的网络广播中的MP3。 但是从我阅读的内容来看,Google Speech to Text不支持MP3作为输入。这就是为什么我将其转换为Wav。
任何帮助都将受到欢迎。
答案 0 :(得分:2)
您需要先将音频文件上传到Google存储空间。 https://cloud.google.com/speech-to-text/docs/async-recognize#speech-async-recognize-gcs-csharp
答案 1 :(得分:0)
我的声誉不足,无法为Daniel Brower的问题添加评论,但是答案是使用
RecognitionAudio.FromStorageUri("gs://my-bucket/my-file");
代替
RecognitionAudio.FromFile(convertedFile));