2013-04-16 36 views
2

我試圖找出我是否可以使用System.Speech.SpeechRecognitionEngine 在5秒的時間間隔內計算音節或單詞。使用語音識別來計算音節

我一直在做一些測試與SpeechRecognitionEngine,使用 的DictationGrammarSpeechRecognized事件。

我需要創建一個應用程序,讓你知道,如果你說得太慢, 這就是爲什麼我要計算每5秒鐘說出幾個單詞的原因。

任何幫助將apreciated

感謝

+0

可能是值得看看[這裏](https://sites.google.com/site/speechrate/),它使用[普瑞特(HTTP:// WWW .fon.hum.uva.nl/praat /),這是一個用C++編寫的很好的語音分析器。 – qqbenq

回答

1

我不是100%確定你要使用什麼平臺,但是這似乎是窗戶。

因此,MSDN上的代碼示例將是一個開始獲取識別事件信息和獲取音頻信息的好地方。

http://msdn.microsoft.com/en-us/library/system.speech.recognition.recognitionresult.aspx

// Display information about the words in the recognition result. 
    foreach (RecognizedWordUnit word in e.Result.Words) 
    { 
    RecognizedAudio audio = e.Result.GetAudioForWordRange(word, word); 
    Console.WriteLine(" {0,-10} {1,-10} {2,-10} {3} ({4})", 
     word.Text, word.LexicalForm, word.Pronunciation, 
     audio.Duration, word.DisplayAttributes); 
    } 

但是檢測,如果一個人在說話太慢,也可以與AudioSignalProblem枚舉完成。唯一的缺點是它不可配置。從這個鏈接代碼: http://msdn.microsoft.com/en-us/library/system.speech.recognition.audiosignalproblem.aspx

// Initialize the speech recognition engine. 
private void Initialize() 
{ 
    sre = new SpeechRecognitionEngine(); 

    // Add a handler for the AudioSignalProblemOccurred event. 
    sre.AudioSignalProblemOccurred += new EventHandler<AudioSignalProblemOccurredEventArgs>(sre_AudioSignalProblemOccurred); 
} 

// Gather information when the AudioSignalProblemOccurred event is raised. 
void sre_AudioSignalProblemOccurred(object sender, AudioSignalProblemOccurredEventArgs e) 
{ 
    StringBuilder details = new StringBuilder(); 

    details.AppendLine("Audio signal problem information:"); 
    details.AppendFormat(
    " Audio level:    {0}" + Environment.NewLine + 
    " Audio position:   {1}" + Environment.NewLine + 
    " Audio signal problem:  {2}" + Environment.NewLine + 
    " Recognition engine audio position: {3}" + Environment.NewLine, 
    e.AudioLevel, e.AudioPosition, e.AudioSignalProblem, 
    e.recoEngineAudioPosition); 

    // Insert additional event handler code here. 
}