2014-02-09 119 views
6

我正在運行的世界,你好 我這個代碼樣本是文本到語音在Windows Store應用使用語音合成

private async void Button_Click(object sender, RoutedEventArgs e) 
     { 
      var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer(); 
      Windows.Media.SpeechSynthesis.SpeechSynthesisStream stream = await synth.SynthesizeTextToStreamAsync("Hello World"); 

      var mediaElement = new MediaElement(); 
      mediaElement.SetSource(stream,stream.ContentType); 
      mediaElement.Play(); 
     } 

當我調試它,我得到一個錯誤:

An exception of type 'System.IO.FileNotFoundException' occurred in SunnahForKids.exe but was not handled in user code 
Additional information: The specified module could not be found. (Exception from HRESULT: 0x8007007E) 
+0

你確定所有被引用的DLL都可用嗎? – Quintium

回答

1

從在MSDN Reference

要求

最低支持的客戶端:Windows 8.1中

最低支持的服務器:在Windows Server 2012 R2

最低支持電話:Windows Phone的8.1 ​​[Windows運行時應用的廣告僅]

命名空間:Windows.Media.SpeechSynthesis時,Windows :: Media :: SpeechSynthesis [C++]

0

如果您使用Dependency walker查看system.speech.dll的依賴關係,它會告訴您 「錯誤:找到具有不同CPU類型的模塊。」 在Visual Studio中將CPU設置爲x64可能會解決您的問題。這個對我有用。

1

這可能是因爲語音未安裝在設備上。要解決這個問題,只需添加一個try catch塊,並且只有在安裝了與您的應用的區域和語言相關的語音時纔會「發言」。否則它將運行而不會說話。