音声合成の活用 (2019/08/08 update)
はじめに
このTipsでは、Windows 10搭載の音声合成エンジンを利用し、様々なサンプル(ソフトやハード)を作成することで音声合成の実用的な活用方法を紹介します。
サンプルの説明を行う前に、Windowsの音声合成環境と当方で開発を行ったUWPアプリの「Haruzira」などについて少しふれておきます。
Windowsの音声合成に関しては、Windows XPの時代には既に実装されていた技術です。マイクロソフトは音声合成技術を長い間研究し実用化してきたのですが、視覚障害のサポートという位置づけで提供していたため一般の人が利用する機会は少なかったと思います。
また、Windows XPや7では、Microsoft Speech SDKを別途インストールすることでプログラムから音声合成エンジンが利用できました。しかし、インストールの手間やライセンスの制限などで非常に利用し難い状況でした。
そして、Windows 8になりOSに標準で搭載され、ストアアプリで利用できるようになります。さらに、Windows 10からはCortanaの登場でより身近になってきました。
なお、Windows 10でもデスクトップアプリとUWPアプリでは次のように利用できる日本語音声合成エンジンの種類が異なっています。(2016/11月時点)
Desktopアプリ | Haruka Desktop(女性) |
---|---|
UWPアプリ |
Ayumi Mobile(女性) Ichiro Mobile(男性) Haruka Mobile(女性) (*1) (*1)Haruka Mobileは、Anniversary以降に追加されました。 |
上記のようにAnniversaryでHaruka Mobileが追加されました。また、音声読み上げ時の抑揚などが変更され性能も少しずつ進化しています。
UWPアプリのほうが多くの音声合成エンジンを利用できる理由としては、今後UWPアプリをより普及させたいという意図があると思われます。
さて、最近「AI(人工知能)」や「IoT」という言葉を目にしたり、耳にする機会が多くなってきました。AIやIoTの利用が普及していくとロボット(機械)がおしゃべりするという音声合成を利用したコミュニケーションがどんどん増えてくると思われます。
(2017年2月現在、日本では未発売ですが、海外ではamazonのalexaが人気を得ています。)
そのような状況で、IoTやシステムなどで音声合成を利用していくにはどのようにすれば良いでしょうか。
音声合成エンジンを無料(ライセンスの範囲内)で利用するには、オープンソースの「Open JTalk」や、個人や趣味の範囲で利用できる「AquesTalk」などがあります。
しかし、音声が機械的(旧型のロボットが話しているような感じ)で少し聴き難いように感じます。また、インストールや設定に手間がかかり面倒です。
他にもメーカーが無料で提供している音声合成APIも存在しますが、利用範囲が限定されるなど実用性はあまり高くありません。あくまでも趣味の範囲での利用になります。
商用になると流暢な日本語を話す音声合成エンジンは有ります。しかし、ライセンス料が高額だったり日本語以外の音声合成エンジンが少ないなど、気軽に利用できる環境にはありません。
また、ネットワーク通信に対応している製品もあるのですが、テキストデータを送信して音声データ化したバイナリーデータを受信する仕様なので通信コストが高くなります。
そこで、各種Windows 10デバイスに搭載されている音声合成エンジンを外部機器からもネットワーク経由で利用できるように開発したのが、UWPアプリの「Haruzira」です。
リモート通信に対応することで、屋外に設置した機器で計測したデータを、屋内のWindows 10搭載機器に音声読み上げで通知することが可能になります。
モニターなどの画面から離れていても、音声で状況が確認できるようになります。
また、テキストデータの送信だけで済むので、通信コストがとても低くなります。
Windows 10に搭載されている音声合成エンジンは、日本語に関して言えば商用の優秀なエンジンに比べると抑揚の方法など少し劣る点はありますが十分実用的です。
また、言語パックを追加することで世界中の言語の音声合成を利用することができます。そして音声読み上げだけではなく音声認識機能も提供しています。
言語パックの追加方法に関しては、Haruziraのマニュアルを参照して下さい。
言語パックの追加方法
Haruzira Version2.0.0からは、リモートでの音声認識コマンド送信機能にも対応し、音声を利用した相互通信が可能になりました。(音声で話して音声で結果を得る)
「Haruzira」は、このように音声合成をもっと簡単にそして実用的に活用したいという目的で開発しました。
リモート通信以外でも音声認識による文章作成にも対応していますのでお試し下さい。

Raspberry Pi
Haruzira SDKとRaspberry Piで電子回路を利用した、音声合成を活用するサンプルプログラム一覧です。
Raspberry Pi(電子回路)で音声活用
LED点滅のカウントアップ | LEDの点滅毎にHaruziraと通信を行い、点滅回数を音声でカウントアップ。 |
---|---|
リモート音声認識でLEDのON/OFF |
LEDの点灯及び消灯コマンドを音声認識で複数のリモートデバイスへ送信。 音声でリモートデバイスとコミュニケーションを行う様子を体験。 |
温湿度・気圧計測による音声アラート通知システム |
温湿度・気圧センサーで計測した結果を基に、音声でアラート(警報)通知などを行う。 音声でリモートデバイスとコミュニケーションを行う、より実用的な利用方法を確認する。 |
その他通信デバイス
Haruzira SDKとPCやAndroidスマートフォン、Raspberry Piなどのネットワーク通信デバイスを利用した、電子回路を用いない音声合成の活用サンプルプログラム一覧です。
様々なデバイスで音声活用
WSLの環境構築 | WSLにPythonとRubyを導入し、簡単なサンプルプログラムの動作。 |
---|---|
AndroidでLinux Terminalの環境構築 | AndroidスマートフォンにLinux Terminal環境を構築し、PythonとRubyを利用した簡単なサンプルプログラムの動作。 |
リモート音声時計 | .Net、Python、Rubyを利用し、リモート音声時計プログラムの作成。 |
Droneで音声を活用する
TelloなどのDrone(ドローン)を利用した、音声活用の紹介です。
Droneで音声活用
TelloとDroooneアプリについて | DroooneアプリでTelloを音声操縦するために必要となる、基本的な知識についての紹介。 |
---|---|
知っていると役に立つ知識 | DroooneアプリでTelloを操縦するうえで、知っていると役に立つ便利な知識についての紹介。 |