Windows7で音声合成(Text to speech)

ヨメから、「Windowsで中国語テキストの読み上げをできないか」とのご要望をいただいたので、「昔そんなことやったなぁ」と思いながら調べた内容まとめ。普通の読者の方は日本語読み上げだと思いますけど、だいたい同じ手順で出来ます。

手順の概要

 Windowsには、音声合成(SAPI)という機能が搭載されています。これをつかうと、Excelや、Vectorでダウンロードできる各種SAPI対応アプリケーションでテキストを読み上げさせることができます。
 ※なんでWordじゃないのかは謎。
 ただし、Windows7のProfessional程度では英語のランタイムしか搭載されていないので、日本語や中国語を読み上げるためには別途ランタイムが必要。このランタイムがどうも無料で手にはいらないっぽい。UltimateのDVDに入っているという噂。
 一方、SAPIとほとんど同じ機能なんだけど微妙に異なるぽいSpeech Platform Server Runtimeというのがあって、これは各言語ランタイムが無料で配布されている。そして、Speech Platform Server RuntimeをSAPIとして認識させちゃう裏技があるので、これを使えばExcelでテキストを読み上げさせることが出来る!

Microsoft Speech Platformとランタイムのインストール

Download: Microsoft Speech Platform – Runtime (Version 11) – Microsoft Download Center – Download Detailsから、自分の環境にあったSpeechPlatformRuntime.msiをダウンロードしてインストール。Windows7 64bit版の人はx64_SpeechPlatformRuntime、32bit版の人はx86_SpeechPlatformRuntime。「わかんない」というような人はきっと32bit版です。
Microsoft Speech Platformのダウンロード

Download: Microsoft Speech Platform – Runtime Languages (Version 11) – Microsoft Download Center – Download Details
から、必要な言語のTTSランタイムをインストール
 ※「zh」とか「ja」で検索すれば見つかる。
 ※「MSSpeech_SR」で始まるのは音声認識用ランタイム、「MSSpeech_TTS_」で始まるのが音声合成用ランタイム。今回必要なのは音声合成用ランタイムなので、間違えないように注意。
音声合成用ランタイムのダウンロード

Speech Platform Server RuntimeをSAPIとして認識させる

スタート > すべてのプログラム > アクセサリ > コマンドプロンプトを右クリックして、「管理者として実行」。権限昇格のために管理者パスワードを要求させるので入力。開いたコマンドプロンプトで、下記を実行する。

reg COPY “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech Server\v11.0\Voices\Tokens” HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens /s /f

 ※または、レジストリエディタを立ち上げて、図のようにコピーしてもよい。
レジストリをコピー

音声合成(SAPI)の言語を変更

 「コントロール パネル > すべてのコントロール パネル項目 > 音声認識 > 音声合成」を開いて「音声の選択」で適切な言語を選ぶ。
 ※ここまでの手順が失敗しているとMicrosoftAnnaしか出てこない。その時はおやつでも食べて考え直す。

Excelで読み上げ

 読み上げコマンドが表示されない – Word – Office.comを参考に、読み上げコマンドを表示させる。
Excelのセルに適当な文章を入力して、読み上げボタンを押すと読み上げられる。
ボタンはここ

謝辞

キーとなったレジストリの変更のアイデアを初め、だいたいのアイデアは下記が出所です。このブログ記事は、下記を元に、最近の環境で実行できるようにまとめ直しました。

日本語や中国語等の音声合成(SAPI TTS)を無料で使う方法(Speech Platform Server Runtimeを裏技で SAPI 5.1として動作させる方法)