Experience Prototypistのマルチリンガル子育て+プログラミングブログ

Design Thinking、語学(英語、中国語、韓国語)、日中マルチリンガル育児、littleBitsやRaspberry Pi, Arduinoを使ったExperience Prototypingネタ。

MS SAPI 4 のTTSを使ったアプリがエラー

MicrosoftのSpeech API (SAPI)を使ったアプリ、といっても分かりにくいかもしれないが、音声認識ではなく音声合成(TTS)を使ったしゃべるアプリについて。

SAPI 4のTTSを使ったアプリケーションがうんともすんとも言わなく(喋らなく)なってしまうことがある。以前は正常に喋っていたのに、なぜか今では喋らないというようなケースだ。このような事象が発生した場合の原因としては、オーディオ出力の出力先がすでに存在しなくなっているようなケースが多い。

たとえば、過去にUSBスピーカーをつなげており、優先するデバイス(出力)にUSBスピーカーを指定していた場合、あとでそのUSBスピーカーが接続されていない、あるいは電源が切れていたりして、システムからスピーカーがみえないようなケースである。

このような状態では、SAPI 4のコントロールパネルでTTSのエンジン名をクリックしても、次のようなダイアログボックスが表示されてしまう。

Speech Properties
There was a problem in trying to access this engine's settings. (0x80040202)
Check to make certain that the speech engine is properly installed.
(0x80040202の部分0x80040317の場合もある)

こうなってしまったら、コントロールパネルのサウンドとマルチメディアを選択し、出力デバイスを実際に存在している適切なものに設定し、OKすればよい。

なお、ここで設定した内容はレジストリエディタの HKCU\Software\Microsoft\Multimedia\Sound Mapper 配下の Playback や Record あたりに反映されている。