読者です 読者をやめる 読者になる 読者になる

がりらぼ

WindowsRuntimeの応援ブログ

WinRT:音声合成を使うには

WindowsRuntime

SpeechSynthesizer

WindowsRuntimeで音声合成を使うにはSpeechSynthesizerを使います。

まずはどの声に喋ってもらうかを決めます。

SpeechSynthesizerのAllVoicesプロパティ内にシステムでしゃべることのできる合成音声の一覧が入っています。

ここから今回は英語、女性の声を選択してみます。

選択した合成音声はVoiceInformationクラスとして提供されます。

VoiceInformation voice = SpeechSynthesizer.AllVoices.Where(q=>q.Language=="en-US"&&q.Gender==VoiceGender.Female).First();

次にSpeechSynthesizerをnewします。

Voiceプロパティに先ほど取得したVoiceInformationを入れます。

SpeechSynthesizer synthesizer = new SpeechSynthesizer();
synthesizer.Voice = voice;

それでは音声合成を再生してみましょう。

SynthesizeTextToStreamAsyncメソッドを使ってStreamを取得、MediaElementのSourceにSetします。

あらかじめMediaElementをnewしておきましょう。

SpeechSynthesisStream stream = await synthesizer.SynthesizeTextToStreamAsync("Hello");
                
_mediaElement.SetSource(stream,stream.ContentType);

これで音声合成をすることができます。

http://garicchi.com/?p=18541