Using OpenJTalk RTC (Python) for Windows
OpenHRIは音声対話に関する複数のフリーソフトを使いやすくまとめたRTC群です。
ここでは音声合成用RTCである、OpenJTalkRTCの使用方法を説明します。
OpenHRIのインストール方法や各フリーソフトの解説はこちらをご覧ください。
1. はじめに
OpenHRIの音声合成RTCである、OpenJTalkRTCを使用して音声合成システムを構築します。
作成するRTCは以下のようになります。
-
TimedStringConsoleIn
コンソールに入力された文字列をUTF-8形式でポートから出力します。
5. おわりに
OpenHRIの中の、OpenJTalkRTCを使って音声合成システムを作成しました。
本来、音声合成は高度な内容ですが、OpenHRIを使用することで簡単に実現することができました。
画面に文字を出力するのではなく、システムから音声が出力されることでデモンストレーションとしては見栄えがするものとなります。
ぜひ、自分のシステムに音声合成を利用してみください。
参考文献
-
「UTF-8エンコードについて」, 『RAPT's programing Tips Libraries』<http://www.atmark.gr.jp/~s2000/r/rtl/encode.html/>(2014/06/15アクセス)
それではソースコードを解説します。
-
2行目
コンソール上にテキスト入力をうながします。
-
4-6行目
Shift-JIS形式の文字列をUTF-8形式の文字列に変換します。
-
4行目
Shift-JIS形式の文字列をUnicodeにいったん変換します。
-
5行目
Unicde形式の文字列をUTF-8形式の文字列に変換します。
-
6行目
変換した文字列をself._d_string.dataに格納します。
-
8-9行目
タイムスタンプをセットし、OutPortから出力します。
以上で、TimedStringConsoleInのコーディングは終了です。
4. 動作確認
合成した音声を確認するためにスピーカーが必要ですので、PCにスピーカーを接続してください。
まず、ネームサービスとRT System Editorを実行します。
次に、TimedStringConsoleInと、OpenJTalkRTC、PortAudioOutputを実行します。
OpenJTalkRTCとPortAudioOutputは64bitのWindowsでは、以下のの場所にあります。
各実行ファイルをダブルクリックして起動してください。
-
OpenJTalkRTC
C:\Program Files (x86)\OpenHRIVoice\openjtalkrtc.exe
-
PortAudioOutput
C:\Program Files (x86)\OpenHRIAudio\portaudiooutput.exe
各RTCを以下のように接続して、Activateしてください。
TimedStringConsoleInのコンソール上に、好きな日本語を入力してください。
入力された文字 列が、男性が発話したような音声になってスピーカーから出力されるのが確認できると思います。
また、OpenJTalkRTCには、character、format、rateというコンフィグレーションが設定されています。
characterはデフォルトではmaleになっていますが、femaleに変更することで女性のような発話に変更することができます。
2. 音声合成システムの構成
コンソール上に入力された文字列を、音声合成するシステムを構築します。
構築するシステムは以下のようになっています。
-
OpenJTalkRTC
受け取ったテキストデータを音声データに変換して出力します。
-
PortAudioOutput
受け取った音声データをスピーカーのような音声出力デバイスから出力し、音を鳴らします。
-
TimeStringConsoleIn
コンソールから入力された文字列を出力します。


3. TimedStringConsoleIn RTC
TimedStringConsoleIn RTCを作成します。
テンプレートを以下に従って設定てください。
-
モジュール名
TimedStringConsoleIn
-
ベンダ名
あなたの名前
-
モジュールカテゴリ
Hobby
-
実行周期
1000
-
アクションコールバック
onInitialize
onExecute
-
データポート
・stringポート
ポート名(OutPort) string
データ型 TimedString
変数名 string
表示位置 RIGHT
-
言語
Python
プロジェクトの設定が終わったら、TimedStringConsoleIn.pyに以下のコードを記述します。
以下のコードは抜粋となります。生成したテンプレートに当てはめて下さい。