使用SAPI转换语音转文本

Xeo*_*eon 3 c# speech-recognition sapi speech-to-text

无论如何还是有人知道如何使用微软的Windows表格应用语音识别API进行STT?

Dan*_*eih 5

.NET包含用于语音识别的程序集.您需要添加引用

System.Speech

并添加命名空间

using System.Speech.Recognition;
Run Code Online (Sandbox Code Playgroud)

以下代码将分析您的语音并将文本添加到文本框中:

private void startRecognition()
    {
        SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(); //default culture
        //SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(new CultureInfo("de-DE"));
        //With specified culture | Could cause an CultureNotFoundException
        Grammar dictationGrammar = new DictationGrammar();
        recognizer.LoadGrammar(dictationGrammar);
        try
        {
            recognizer.SetInputToDefaultAudioDevice();
            RecognitionResult result = recognizer.Recognize();
            if(result != null)
                result_textBox.Text += result.Text + "\r\n"; 
        }
        catch (InvalidOperationException exception)
        {
            MessageBox.Show(exception.Message,exception.Source);
        }
        finally
        {
            recognizer.UnloadAllGrammars();
        }                
    }
Run Code Online (Sandbox Code Playgroud)

要更改超时识别的时间,请更改以下属性:

    recognizer.InitialSilenceTimeout = TimeSpan.FromSeconds(3);
    recognizer.BabbleTimeout = TimeSpan.FromSeconds(2);
    recognizer.EndSilenceTimeout = TimeSpan.FromSeconds(1);
    recognizer.EndSilenceTimeoutAmbiguous = TimeSpan.FromSeconds(1.5);
Run Code Online (Sandbox Code Playgroud)

资料来源:

http://msdn.microsoft.com/en-us/magazine/cc163663.aspx | http://msdn.microsoft.com/en-us/library/system.speech.recognition.speechrecognitionengine.aspx