将语音转换为文本C#

时间:2018-07-19 21:06:16

标签: c# google-speech-api

我正在尝试使用Google API将语音转换为文本,有一个测试页面https://cloud.google.com/speech-to-text/,您可以在其中验证您的音频是否已转换为文本,我正在介绍我的音频,并且如果此页面成为A, 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;

他们有一些想法可能会发生。

1 个答案:

答案 0 :(得分:1)

The documentation提到:

  

sampleRateHertz-(必需)指定所提供音频的采样率(以赫兹为单位)。 (有关采样率的更多信息,请参见下面的采样率。)对于文件标题中包含采样率的FLAC和WAV文件,sampleRateHertz字段是可选的。

因此问题可能是缺少的SampleRateHertz配置属性,但是如果您尝试发送WAV文件(或FLAC),则Base64Audio或{{1}可能有问题}方法-由于API显然无法检测采样率。