3
無論如何,或者有人知道如何使用Microsoft的Windows Form Application的語音識別API來執行STT?使用SAPI轉換Speech-to-Text
無論如何,或者有人知道如何使用Microsoft的Windows Form Application的語音識別API來執行STT?使用SAPI轉換Speech-to-Text
.NET包含用於語音識別的程序集。 你需要添加引用到
System.Speech
而且隨着
using System.Speech.Recognition;
下面的代碼添加命名空間會分析你的言語和文字添加到文本框:
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();
}
}
要改變tim的次數EOUT的認可,更改以下屬性:
recognizer.InitialSilenceTimeout = TimeSpan.FromSeconds(3);
recognizer.BabbleTimeout = TimeSpan.FromSeconds(2);
recognizer.EndSilenceTimeout = TimeSpan.FromSeconds(1);
recognizer.EndSilenceTimeoutAmbiguous = TimeSpan.FromSeconds(1.5);
來源:
http://msdn.microsoft.com/en-us/magazine/cc163663.aspx | http://msdn.microsoft.com/en-us/library/system.speech.recognition.speechrecognitionengine.aspx
這就像一個魅力兄弟!非常感謝! – Xeon
不客氣,只是找到了一些改進。如果我們開始識別並且不會說話,結果將爲空,並且將文本結果添加到文本框將導致NullReferenceException。爲了避免這種情況:'if(result!= null)result_textBox.Text + = result.Text +「\ r \ n」;' –