2016-04-15 31 views
0

私は音声の音声言語にテキストを変更したいと思います。 これは私のコードです:合成音声言語UWPの変更方法は?

 private async void readText(string text) 
    { 

     var voices = SpeechSynthesizer.AllVoices; 
     SpeechSynthesizer speech = new SpeechSynthesizer(); 
     speech.Voice = voices.First(x => x.Gender == VoiceGender.Female && x.Language.Contains("fr-FR")); 
     SpeechSynthesisStream stream = await speech.SynthesizeTextToStreamAsync(text); 
     mediaElement.SetSource(stream, stream.ContentType); 
    } 

    private void btnSay_Click(object sender, RoutedEventArgs e) 
    { 
     readText(txtWhat.Text); 
    } 

しかし、私はこのコードを実行しようとすると、ラインにスローされた例外があります:「System.InvalidOperationException」種類の例外は、システムで発生した

speech.Voice = voices.First(x => x.Gender == VoiceGender.Female && x.Language.Contains("fr-FR")); 

.Linq.dllが、ユーザーコードで処理されませんでした。

どうしたらよいですか?

+1

Try FirstOrDefaultフランス語がインストールされていますか? 私は speech.Voice =(Windows.Media.SpeechSynthesis.SpeechSynthesizer.AllVoicesの音声から、voice.Language == "fr-FR" の選択音声) を使用しています。 –

+0

マニフェスト機能にマイクがありますか?

+0

フランス語をインストールしていないのですが、どうすればいいですか? – ktos1234

答えて

2

確認してくださいアプリケーションが

<Capabilities> 
<DeviceCapability Name="microphone" /> 
</Capabilities> 

フロームコードはあなたがそれを確認することができます(マニフェストに)マイクへのアクセス許可を持っている:

bool permissionGained = await AudioCapturePermissions.RequestMicrophonePermission(); 
if (!permissionGained) 
{ 
//ask user to modify settings 
} 

、より良い検査が第一言語がシステムにインストールされます。

var list = from a in SpeechSynthesizer.AllVoices 
     where a.Language.Contains("en") 
     select a; 

if (list.Count() > 0) 
{ 
synthesizer.Voice = list.Last(); 
} 
+0

私はインストールした言語を確認しました: foreach(SpeechSynthesizer.AllVoicesのvar音声) { txtVoices.Text = voice.Language; } 私はフランス語を持っていないようです。 TextBoxは私に1つだけのlangugageを示しています。 – ktos1234

+0

ここでは、言語をインストールして音声認識に設定する方法を説明します。 [Windows 10音声認識用の追加言語パックのインストール](https://zulja.wordpress.com/2015/08/11/installing-additional-language-packs -for-windows-10-speech-recognition /) –

+0

ありがとう、私は言語をインストールし、今私の元のコードで動作します。 もう1つの質問があります。SpeechSynthesizerを使用してピッチ、音量またはスピードを変更することは可能ですか?どうやってやるの? – ktos1234

関連する問題