top of page

Using OpenJTalk RTC (Python) for Windows

 OpenHRIは音声対話に関する複数のフリーソフトを使いやすくまとめたRTC群です。

ここでは音声合成用RTCである、OpenJTalkRTCの使用方法を説明します。

OpenHRIのインストール方法や各フリーソフトの解説はこちらをご覧ください。

1. はじめに

 

 OpenHRIの音声合成RTCである、OpenJTalkRTCを使用して音声合成システムを構築します。

作成するRTCは以下のようになります。

 

  • TimedStringConsoleIn

コンソールに入力された文字列をUTF-8形式でポートから出力します。

 

5. おわりに

 

 OpenHRIの中の、OpenJTalkRTCを使って音声合成システムを作成しました。

本来、音声合成は高度な内容ですが、OpenHRIを使用することで簡単に実現することができました。

画面に文字を出力するのではなく、システムから音声が出力されることでデモンストレーションとしては見栄えがするものとなります。

ぜひ、自分のシステムに音声合成を利用してみください。

 

参考文献

  1. 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に以下のコードを記述します。

以下のコードは抜粋となります。生成したテンプレートに当てはめて下さい。

bottom of page