Step4: 対話システムを作ろう¶
音声認識コンポーネントと対話マネージャコンポーネントと組み合わせることで、入力した音声に対して応答を返す簡単な対話システムを作成してみましょう。
準備¶
- 音声認識コンポーネントの準備
音声認識コンポーネントに設定する音声認識文法を用意します。
以下のようなテキストデータを作成して下さい。テキストデータの文字コードはUTF-8を使用します。
sample.xml
<?xml version="1.0" encoding="UTF-8" ?> <grammar xmlns="http://www.w3.org/2001/06/grammar" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/06/grammar http://www.w3.org/TR/speech-grammar/grammar.xsd" xml:lang="jp" version="1.0" mode="voice" root="command"> <rule id="command"> <one-of> <item>こんにちは</item> <item>さようなら</item> </one-of> </rule> </grammar>Windowsの メモ帳から作成する場合、コードを貼り付けたあと、[ファイル>名前をつけて保存]を選び、開いたウィンドウ下部の[文字コード]から[UTF-8]
を選択して保存してください。
- 対話マネージャコンポーネントの準備
対話マネージェコンポーネントに設定するスクリプトデータを用意します。
以下のようなテキストデータを作成して下さい。
sample.seatml
<?xml version="1.0" encoding="UTF-8"?> <seatml> <general name="sample"> <agent name="speechin" type="rtcin" datatype="TimedString" /> <agent name="speechout" type="rtcout" datatype="TimedString" /> </general> <state name="OPEN"> <rule> <key>こんにちは</key> <command host="speechout">こんにちは</command> </rule> <rule> <key>さようなら</key> <command host="speechout">バイバイ</command> </rule> </state> </seatml>
- 設定ファイルrtc.confの用意
Step2: RTSystemEditorの使い方と音声入出力コンポーネントのテスト で使用したものと同等の設定ファイルを用意します。
テスト手順¶
- SEATコンポーネント、Juliusコンポーネントを起動します。
Juliusコンポーネントは準備1.で用意した文法ファイル(sample.xml)を読み込みます。
$ juliusrtc sample.xmlSEATコンポーネントは準備2.で用意したスクリプトファイル(sample.seatml)を読み込みます。
$ seat sample.seatmlRT System Editorのネームサービスビューに起動したコンポーネントが表示されていることを確認します。
- RT System EditorにSEATコンポーネント、Juliusコンポーネントを配置します。
- 各コンポーネントを接続します。
- ConsoleInとOpenJTalk間のリンクを削除します。
- AudioInputの出力ポートとJuliusの入力ポートを接続します。
- Juliusの出力ポート“result”とSEATの入力ポート接続します。
- SEATの出力ポートとOpenJTalkの入力ポート接続します。
- アクティブ化して動作を確認します。
“All Activate” ボタンを押して全コンポーネントをアクティブ状態に遷移させます。
台詞「こんにちは」「さようなら」をマイクの前でしゃべって、応答音声が出力されるのを確認しましょう。
Note
うまく認識できない場合の注意:
うまく認識できない場合は以下の点を確認してみてください。
- 静かなところで行う
- 背景雑音が入っていないかどうか、周囲の雑音に注意してください。雑音が多い環境で認識したい場合はヘッドセットマイクや指向性マイクなど、雑音が入りにくいマイクの使用を検討してください。
- マイクの入力音量を変えてみる
- マイクの音量が大きすぎたり小さすぎたりすると音声認識をすることができません(Juliusを起動したコンソールに”Warning: strip~”などの警告が表示されている場合、マイクの音量設定が適切でない可能性があります)。ボリュームメーターを見ながらメーターが振り切れない程度の大きさに調整してください。