2013-06-03 27 views
1

在我的程序中,我可以使用用戶語音的詞典,文本,單詞和更多。但是,有沒有什麼方法可以獲得用戶聲音的音調?我正在使用Windows語音API與C#。如何獲取語音數據?

下面是我使用來獲取語音數據

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Speech.Recognition; 
using System.Speech.Synthesis; 
using System.Windows.Forms; 
using System.IO; 

namespace Speech_Recognizer 
{ 
    public class RecognizeSpeech 
    { 
     private SpeechRecognitionEngine sEngine; //Speech recognition engine 
     private SpeechSynthesizer sSpeak; //Speech synthesizer 
     string text3 = ""; 

     public RecognizeSpeech() 
     { 
      //Make the recognizer ready 
      sEngine = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US")); 


      //Load grammar 
      Choices sentences = new Choices(); 
      sentences.Add(new string[] { "I am hungry" }); 

      GrammarBuilder gBuilder = new GrammarBuilder(sentences); 

      Grammar g = new Grammar(gBuilder); 

      sEngine.LoadGrammar(g); 

      //Add a handler 
      sEngine.SpeechRecognized +=new EventHandler<SpeechRecognizedEventArgs>(sEngine_SpeechRecognized); 


      sSpeak = new SpeechSynthesizer(); 
      sSpeak.Rate = -2; 



      //Computer speaks the words to get the phones 
      Stream stream = new MemoryStream(); 
      sSpeak.SetOutputToWaveStream(stream); 


      sSpeak.Speak("I was hungry"); 
      stream.Position = 0; 
      sSpeak.SetOutputToNull(); 


      //Configure the recognizer to stream 
      sEngine.SetInputToWaveStream(stream); 

      sEngine.RecognizeAsync(RecognizeMode.Single); 


     } 


     //Start the speech recognition task 
     private void sEngine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
     { 
      string text = ""; 

      if (e.Result.Text == "I am hungry") 
      { 
       foreach (RecognizedWordUnit wordUnit in e.Result.Words) 
       { 
        text = text + wordUnit.Pronunciation + "\n"; 
       } 

       MessageBox.Show(e.Result.Text + "\n" + text); 
      } 


     } 
    } 
} 

正如你所看到的,SpeechSynthesizer可以設置和獲取語速,聲音等如何從用戶的講話得到間距的部分代碼?任何信息我可以採取?

回答

2

不,Microsoft SR引擎不會從用戶的語音中返回音調數據。

+0

經過很長時間,我有一個答覆。萬分感謝 :) –