さて、折角MSCompAssをアップグレードしたので、DLL参照を行うようなサンプルネタがないかな、と考え、前にDLL参照を行った「音声認識」のサンプル(注)を思い出しました。

注:以下のシリーズ記事で、Visual Studio C#のプログラムが(1)と(2)、MSCompAss用は(3)に書いています。

【C#】Visual Studioのファイルを調べてみる(1)

【C#】Visual Studioのファイルを調べてみる(2)

【C#】Visual Studioのファイルを調べてみる(3完)

 

これは自分で企画して書いたのではなく、MSChartでちょっと悪戯した後、「似たような面白いオブジェクトはないか?」とWebを漁っていて偶然取得したVisual Studioサンプルが音声認識を扱っていたのでそれを扱ったのでした。その中にあったコードが、

 

using System.Speech.Recognition;”

 

また、それを使う為にこのパイラーが参照したDLLが"System.Speech.dll" ...

 

ん?

 

思い返せば大分前、(既に昔、BCCForm and BCCSkeltonでWin32 APIベースのSAPIというCOMを使って"TextToSpeech"という音声による読み上げプログラムを作っていたので)"Text to Speech(TTS)"というキーワードを使って色々とググったら、GoogleのTTSエンジンの話しか出なかったこと、またその後見つけたC#のサンプルはテキスト読み上げをする為にWin32 APIベースのSAPIを使うという「面倒臭い」ものだったことからネタとして不採用したことを思い出しました。

 

しかし、

"System.Speech.dll"って「音声読み上げ用のクラスもあるんじゃない?」と思い、今度は"System.Speech"をキーワードにして調べると、あった、あった、ありましたよ。

 

System.Speech.Synthesizer クラス

およびそれが含まれる

System.Speech.Synthesis 名前空間

 

こいつらで、MSChartのように又簡単に音声出力ができるんだろうと考え、早速サンプルを作ってテストして確認しました。

次はこれで時間稼ぎしようと思っています。

 

が、

この空間は広く、未知のものが多く転がっているので、少しお勉強をした方が良いようだな、と調べているうちに、

 

Windows.Media.SpeechSynthesis Namespace

 
なんていう似て非なるものも出てきた。
 
なんじゃ、これ???

 

「二人はどんな関係?」と無粋な質問をしたくなる。どうもこれはいわゆる"UWP (Universal Windows Platform)"という世界の住人らしく、System.Speechが.NET APIの世界なので「異世界の似た者同士」なのかしら?(注)

注:MicrosoftがWindowsのプラットフォームを更新する度に、新しいアブリビーションが増えて混乱します。少し整理しましょう。

Microsoft .NER Framework(Win 7から)

UWP(Win 10から-こっちの方が分かりやすいか?ご本家のこれは殆ど「寿限無、寿限無」の世界だな。)

 

まだわかりづらいので全体像がないかと思って調べると、こんなのがあった。(正しいか、どうかは知らんけど...まぁ、その道の人も苦労するぐらいに分かりづらい、ということはわかります。)

 

At the end of the day,

 

もう少し勉強してサンプルプログラムを作りますわ。