【问题标题】:Microsoft speech to text is not identifying other than english languageMicrosoft 语音转文本无法识别英语以外的语言
【发布时间】:2021-09-28 04:21:46
【问题描述】:

我正在使用微软语音转文本服务。我的要求是识别和转换麦克风上的任何口语应该转换为文本。例如,如果我说西班牙语,那么我应该得到西班牙语文本作为回复。

这是我的代码,我通过提供订阅密钥和端点 url 来设置配置

  var config = SpeechConfig.FromHost(new Uri("ws://xxxxxxxx:5000/"));

    using (var recognizer = new SpeechRecognizer(config))
    {
        Console.WriteLine("Say something...");
        var result = await recognizer.RecognizeOnceAsync();

        // Checks result.
        if (result.Reason == ResultReason.RecognizedSpeech)
        {
            Console.WriteLine($"We recognized: {result.Text}");
        }
    } 

请帮助我如何将任何语音转换为文本语言。

【问题讨论】:

    标签: speech-to-text azure-cognitive-services


    【解决方案1】:

    语音识别的一个常见任务是指定输入(或源)语言。让我们看看如何将输入语言更改为德语。在您的代码中,找到您的 SpeechConfig,然后在其正下方添加这一行。

    speech_config.speech_recognition_language="de-DE"
    

    speech_recognition_language 是一个将字符串作为参数的参数。您可以在支持的语言环境/语言列表中提供任何值。

    请使用表中的语言环境https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support#speech-to-text

    -宇通

    【讨论】:

    • 谢谢。我们在 MS 语音服务中是否有任何特权,如果用户说话,系统会自动识别所说的语言,而无需明确设置 Speech_recognition_language="lang iso 代码"
    • 您好,您可以使用语言识别。 docs.microsoft.com/en-us/azure/cognitive-services/…
    【解决方案2】:

    您可以在语音识别器处理中使用语言检测,请参阅 doc here

    它在语言方面有一些限制(请参阅语言支持here)。

    如何?

    对于 C# 实现,您应该根据 SpeechConfig 对象的优先级将“延迟”切换为“准确度”:

    speechConfig.SetProperty(PropertyId.SpeechServiceConnection_SingleLanguageIdPriority, "Latency");
    

    AutoDetectSourceLanguageConfig 配置添加到您的SpeechRecognizer

    然后你可以得到你的结果:

    var autoDetectSourceLanguageConfig =
        AutoDetectSourceLanguageConfig.FromLanguages(
            new string[] { "en-US", "de-DE", "ja-JP", "de-DE" });
    
    using var audioConfig = AudioConfig.FromDefaultMicrophoneInput();
    using (var recognizer = new SpeechRecognizer(
        speechConfig,
        autoDetectSourceLanguageConfig,
        audioConfig))
    {
        var speechRecognitionResult = await recognizer.RecognizeOnceAsync();
        var autoDetectSourceLanguageResult =
            AutoDetectSourceLanguageResult.FromResult(speechRecognitionResult);
        var detectedLanguage = autoDetectSourceLanguageResult.Language;
    }
    

    【讨论】:

      猜你喜欢
      • 2020-03-30
      • 1970-01-01
      • 2015-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多