我正在尝试使用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),则Base64AudioCreateAudio()方法可能存在问题-因为该API显然无法检测采样率。

关于c# - 将语音转换为文本C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51431697/

10-16 08:55