Windows 8.1ストアアプリで音声発生

Build 2013のセッション紹介です。ストアアプリで何か喋らせたい場合ってありますよね。Windows 8.1のWinRT APIでは、Speech用のAPIが追加されたので、簡単に喋らせることができるんです。

セッションはこちら。

2-171 Make Your Windows Store Apps Talk

APIの説明はこちら

https://msdn.microsoft.com/en-us/library/windows/apps/windows.media.speechsynthesis.aspx

非常に簡単にTalkさせられるので Windows 8.1とVisual Studio 2013の Previewをインストールしている人はすぐ試してみてください。

例えばXAMLでやる場合、XAMLのページに、

MediaElement

TextBox

Button

を配置(MediaElementとTextBoxの名前はそれぞれmedia、tbとします)します。ButtonのClickイベントのハンドラで、

MediaElement mediaElement = this.media;
var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer();
var stream = await synth.SynthesizeTextToStream(tb.Text);
mediaElement.SetSource(stream, stream.ContentType);
mediaElement.Play();

とコーディングします。

TextBoxに、”Windows 8.1 最高!!”と入力して、Buttonをクリックすれば、テキストが読み上げられます。

他にもSynthesizeSsmlToStream()を使えば、SSMLで記述されたテキストを読み上げることもできます。

…喋られるなら、音声認識やOCRも欲しくなりますね。その話題もちゃんとBuild 2013で発信されているので、ここで紹介。

Using Bing Platform Controls to Build Great Windows Apps

https://channel9.msdn.com/Events/Build/2013/3-405

喋りの為のソースを音源、画像からテキストデータ化するには、Bingのサービスを利用します。HTMLやXAML向けのコントロールを使ってアプリケーションに組込めます。この機能は、Azure Data Marketplaceから提供されるクラウドサービスとともに利用します。
詳しくは、https://www.bing.com/dev を参照のこと。

余談ですが、Azure Data Marketplaceは、Windows Azure Marketplaceを基盤としたオンラインマーケットです。 https://datamarket.azure.com/publishing を通じて誰でもクラウドサービス、アプリケーション、データを公開する事ができるので、素晴らしいアルゴリズムなどお持ちの方は、この基盤を通じて全世界に公開してみてはいかがでしょう。