2011-08-26 67 views
1

我想問一個問題。 我現在面臨着有關英語語音轉換的問題。 我用System.Speech.Synthesis; C#.Net中用於我的ETTS的.Net框架的命名空間。首先我可以將文本完全轉換成wav文件。 但保存到波形文件後,我不能再說那個窗體了。 但它可以說,如果不保存到wave文件中,但保存文件後,我不會說話了。 我爲該程序編寫了以下代碼。如何解決文本到語音?

對於保存文本到WAVE文件

SaveFileDialog sfd = new SaveFileDialog(); 
     sfd.Filter = "All files (*.*)|*.*|wav files (*.wav)|*.wav"; 
     sfd.Title = "Save to a wave file"; 
     sfd.FilterIndex = 2; 
     sfd.RestoreDirectory = true; 

     if (sfd.ShowDialog() == DialogResult.OK) 
     { 
      FileStream fs = new FileStream(sfd.FileName, FileMode.Create, FileAccess.ReadWrite); 
      voiceMe.SetOutputToWaveStream(fs); 
      voiceMe.Speak(txtSpeakText.Text); 
      fs.Close(); 
     }  

文本到語音

 voiceMe.Volume = VolumeMe.Value; 
     voiceMe.Rate = RateMe.Value; 
     voiceMe.SpeakAsync(txtSpeakText.Text); 

也就是說。 如果你不明白我的問題,請重溫我。 如果你能解決這個問題,請告訴我。 謝謝你的時間。

回答

2

請在保存完成後立即嘗試。

voiceMe.SetOutputToDefaultAudioDevice(); 

正如您可以猜到,當你保存,你的輸出設置爲與voiceMe.SetOutputToWaveStream(fs);波形文件。爲了再次輸出到揚聲器,你必須使用上面的語句。

+0

Yeee Hayy !!!是的,我明白了。尼斯你的回答絕對正確。 :D – Seven

+0

+1這也可能是答案 – Djole

+0

這就是答案,刪除我的,所以人們不會感到困惑 – Djole