我正在尝试使用Google API将语音转换为文本,有一个测试页面https://cloud.google.com/speech-to-text/,您可以在其中验证您的音频是否已转换为文本,我正在介绍我的音频,如果此页面已成为文本,我将在此页面中进行介绍,但是我从我的程序中使用服务,但我没有做到这一点,显示以下错误:
“损坏的文件再次发送音频:状态(状态代码= InvalidArgument,详细信息= \”无效的识别\'config \':错误的采样率赫兹。“”)“
我的代码如下:
string pathAudio = CreateAudio(Base64Audio);
var speech = SpeechClient.Create();
var response = speech.Recognize(new RecognitionConfig()
{
Encoding = RecognitionConfig.Types.AudioEncoding.Linear16,
LanguageCode = "es-MX",
}, RecognitionAudio.FromFile(pathAudio));
foreach (var result in response.Results)
{
foreach (var alternative in result.Alternatives)
{
resultado = alternative.Transcript;
}
}
return resultado;
他们有些想法可能会发生。
最佳答案
The documentation提到:
sampleRateHertz-(必需)指定所提供音频的采样率(以赫兹为单位)。 (有关采样率的更多信息,请参见下面的采样率。)sampleRateHertz字段对于FLAC和WAV文件是可选的,其中文件头中包含采样率。
因此问题可能是缺少SampleRateHertz
配置属性,但是如果您尝试发送WAV文件(或FLAC),则Base64Audio
或CreateAudio()
方法可能存在问题-因为该API显然无法检测采样率。
关于c# - 将语音转换为文本C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51431697/