Step3: 音声合成コンポーネントのテスト

ここでは、音声合成コンポーネントの使い方を学びます。

準備

  1. テスト用コンポーネントの準備

定期的にテキストデータを出力するコンポーネントを用意します。以下のようなテストプログラムを作成して下さい。

#!/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コンポーネントと呼称します。

  1. rtc.confの用意
Step2: RTSystemEditorの使い方と音声入出力コンポーネントのテスト で使用したものと同等の設定ファイルを用意します。

テスト手順

  1. ConsoleInコンポーネント、OpenJTalkコンポーネントを起動します。

ターミナルを開き、以下のコマンドを入力します。

% python ConsoleIn.py
% openjtalkrtc

RT SystemEditorのネームサービスビューに起動したコンポーネントが表示されていることを確認します。

../_images/ss_jtalk01.png
  1. RT-SystemEditorにConsoleInコンポーネント、OpenJTalkコンポーネントを配置します。

ドラッグ&ドロップでエディタに配置します。

../_images/ss_jtalk02.png
  1. AudioInput-AudioOutput間のリンクを削除します。

リンクを選択してDeleteキーまたは右クリックメニューから”Delete”を選ぶと、リンクが削除されます。

../_images/ss_jtalk03.png
  1. ConsoleIn、OpenJTalk、AudioOutputをそれぞれ接続します。
  • ConsoleInの出力ポートとOpenJTalkの入力ポートを接続します。
  • OpenJTalkの出力ポート「result」とAudioOutputの入力ポートを接続します。

(違うポートに接続しないように注意して下さい。)

../_images/ss_jtalk04.png
  1. アクティブ化して動作を確認します。

“All Activate” ボタンを押してで全コンポーネントをアクティブ化します。

ConsoleInコンポーネントに設定した文が音声として出力されることを確認してください。

次は、音声認識コンポーネントと接続することで簡単な対話システムを作ってみましょう。

Step4: 対話システムを作ろう