Step3: 音声合成コンポーネントのテスト¶
ここでは、音声合成コンポーネントの使い方を学びます。
準備¶
- テスト用コンポーネントの準備
定期的にテキストデータを出力するコンポーネントを用意します。以下のようなテストプログラムを作成して下さい。
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import time import OpenRTM_aist import RTC consolein_spec = ["implementation_id", "ConsoleIn", "type_name", "ConsoleIn", "description", "Console input component", "version", "1.0", "vendor", "sample", "category", "example", "activity_type", "DataFlowComponent", "max_instance", "10", "language", "Python", "lang_type", "script", ""] class ConsoleIn(OpenRTM_aist.DataFlowComponentBase): def __init__(self, manager): OpenRTM_aist.DataFlowComponentBase.__init__(self, manager) self._data = RTC.TimedString(RTC.Time(0,0),"") self._outport = OpenRTM_aist.OutPort("out", self._data) def onInitialize(self): self.registerOutPort("out", self._outport) return RTC.RTC_OK def onExecute(self, ec_id): self._data.data = "testing" OpenRTM_aist.setTimestamp(self._data) self._outport.write() time.sleep(5) return RTC.RTC_OK def MyModuleInit(manager): profile = OpenRTM_aist.Properties(defaults_str=consolein_spec) manager.registerFactory(profile, ConsoleIn, OpenRTM_aist.Delete) comp = manager.createComponent("ConsoleIn") def main(): mgr = OpenRTM_aist.Manager.init(sys.argv) mgr.setModuleInitProc(MyModuleInit) mgr.activateManager() mgr.runManager() if __name__ == "__main__": main()以後、このテスト用コンポーネントをConsoleInコンポーネントと呼称します。
- rtc.confの用意
Step2: RTSystemEditorの使い方と音声入出力コンポーネントのテスト で使用したものと同等の設定ファイルを用意します。
テスト手順¶
- ConsoleInコンポーネント、OpenJTalkコンポーネントを起動します。
ターミナルを開き、以下のコマンドを入力します。
% python ConsoleIn.py% openjtalkrtcRT SystemEditorのネームサービスビューに起動したコンポーネントが表示されていることを確認します。
- RT-SystemEditorにConsoleInコンポーネント、OpenJTalkコンポーネントを配置します。
ドラッグ&ドロップでエディタに配置します。
- AudioInput-AudioOutput間のリンクを削除します。
リンクを選択してDeleteキーまたは右クリックメニューから”Delete”を選ぶと、リンクが削除されます。
- ConsoleIn、OpenJTalk、AudioOutputをそれぞれ接続します。
- ConsoleInの出力ポートとOpenJTalkの入力ポートを接続します。
- OpenJTalkの出力ポート「result」とAudioOutputの入力ポートを接続します。
(違うポートに接続しないように注意して下さい。)
- アクティブ化して動作を確認します。
“All Activate” ボタンを押してで全コンポーネントをアクティブ化します。
ConsoleInコンポーネントに設定した文が音声として出力されることを確認してください。
次は、音声認識コンポーネントと接続することで簡単な対話システムを作ってみましょう。