* OpenHRI と SDLEngine
SDLEngine から OpenHRI に接続して、音声発話や音声認識を行う手順を示します。
OpenRTM の基本的な導入は完了しているものとします。

* OpenHRI のインストールと初期準備
1. Windows に OpenHRI をインストールします。update-checker-1.01.exe を実行すると必要なパッケージのインストールまたはアップデートをまとめて行えます。
2. OpenRTM の設定ファイルを編集して、CORBA ネームサーバや名前形式を調整して、SDLEngine と一致させておきます
- C:\Program Files (x86)\OpenHRIAudio\rtc.conf、C:\Program Files (x86)\OpenHRIVoice\rtc.conf を対象
  以下の項目（ネームサーバの場所、エンドポイント、名前の書式）を編集します。

  corba.nameservers: localhost:5005
  corba.endpoint: 127.0.0.0:
  naming.formats: %n.rtc

  また、ネームサーバを起動しておきます。

* 発話をするまでの手順
1. SDLEngine に RTC.TimedString 型の出力データポートを用意します。配布では、時点既にこのデータポートは用意されていますので通常は不要です。
  build.xml に 次のコード断片を追加し、stringOut という名のデータポートを作成します。

		    <arg value="--outport=stringOut:RTC::TimedString" />

2. SDLEngine/build.xml を右クリックして、実行→Antビルドを実行して下さい。
3. 問題なくビルドが完了しますと、"SDLEngine Console"というタイトルのウィンドウが表示されます。
4. スタートメニューから OpenHRI→audio→portaudiooutput を起動します。
5. スタートメニューから OpenHRI→voice→openjtalkrtc を起動します。
6. 以下のスクリプトを SDLEngine Console で実行します。

  env = rtc.env("localhost", 5005);
  sdlEngine = rtc.local_component("SDLEngine", "SDLEngine");
  env.get_handles();
  env.connect(env.handles{"SDLEngine0.rtc"}.ports{"SDLEngine0.stringOut"}, env.handles{"OpenJTalkRTC0.rtc"}.ports{"OpenJTalkRTC0.text"});
  env.connect(env.handles{"OpenJTalkRTC0.rtc"}.ports{"OpenJTalkRTC0.result"}, env.handles{"PortAudioOutput0.rtc"}.ports{"PortAudioOutput0.AudioDataIn"});
  env.handles{"SDLEngine0.rtc"}.activate();
  env.handles{"OpenJTalkRTC0.rtc"}.activate();
  env.handles{"PortAudioOutput0.rtc"}.activate();
  sdlEngine.local_ports{"SDLEngine0.stringOut"}.put("こんにちわ");

7. "こんにちは" と発話されれば OK です。

* 音声認識をする
1. SDLEngine に RTC.TimedString 型の出力データポートを用意します。配布では、時点既にこのデータポートは用意されていますので通常は不要です。
  build.xml に 次のコード断片を追加し、stringIn という名のデータポートを作成します。
  ここで音声認識の結果を受け取ります。
  
		    <arg value="--inport=stringIn:RTC::TimedString" />

2. SDLEngine/build.xml を右クリックして、実行→Antビルドを実行して下さい。
3. 問題なくビルドが完了しますと、"SDLEngine Console"というタイトルのウィンドウが表示されます。
4. スタートメニューから OpenHRI→audio→portaudioinput を起動します。
5. スタートメニューから OpenHRI→voice→juliusrtc を起動します。
  グラマーファイルを選択するダイアログが開きますので、ワークスペース内に用意されている SDLEngine/doc/robot.grxmlを選択します。
6. 以下のスクリプトを SDLEngine Console で実行します。

  env = rtc.env("localhost", 5005);
  sdlEngine = rtc.local_component("SDLEngine", "SDLEngine");
  env.get_handles();
  env.connect(env.handles{"SDLEngine0.rtc"}.ports{"SDLEngine0.stringIn"}, env.handles{"JuliusRTC0.rtc"}.ports{"JuliusRTC0.result"});
  env.connect(env.handles{"JuliusRTC0.rtc"}.ports{"JuliusRTC0.data"}, env.handles{"PortAudioInput0.rtc"}.ports{"PortAudioInput0.AudioDataOut"});
  env.handles{"SDLEngine0.rtc"}.activate();
  env.handles{"JuliusRTC0.rtc"}.activate();
  env.handles{"PortAudioInput0.rtc"}.activate();
  sdlEngine.local_ports{"SDLEngine0.stringIn"}.addListener(new jp.ac.kyutech.SRP.Scripting.InPortListener() {
  	dataReceived(event) {
  		print("Received: " + event.getValue().data);
  	}
  });

7. "クッキーを取って" とマイクに向かって話して、結果が XML として受け取れれば OK です。
