TOP > 概要

概要

rospeex のシステム構成

rospeexはNICTが開発した音声認識・合成エンジンを使用し、日・英・中・韓の音声認識・合成・対話処理機能を容易にロボットに組み込み可能です。API(Pythonまたは C++)を用いて10行程度で簡単な対話を実現できます。

architecture_ja

rospeexは発話音声を付属の波形モニタアプリケーションから受け取ります。発話音声は雑音抑圧・発話区間検出の後に、クラウド上の音声認識エンジンを通してテキストに変換します。音声合成ではクラウド上のエンジンを通してテキストから音声に変換され、スピーカに出力されます。言語やボイスフォントの変更を簡単に行うことができるため、ユーザは複数のクラウド型音声サービスを組み合わせた音声対話システムが実現できます。

音声モジュールの機能概略

雑音抑圧
高騒音、マイクとの距離が大きい環境でも雑音を抑圧し、音声認識の精度を高めます。
発話区間検出
話すたびに会話の開始・終了を通知する必要がありません。波形モニタを用いて発話の波形、区間をリアルタイムに確認できます。
音声認識
日・英・中・韓の音声認識に対応しています。波形モニタまたはWAVE形式の音声ファイルから音声認識を行えます。
音声合成
音声合成は非モノローグ音声合成とモノローグ音声合成の2種類があります。非モノローグ音声合成は自然で親しみやすい音声の合成が可能で、日本語1種類の音声合成に対応しています。モノローグ音声合成は一般的な無機質音声の合成で、日・英・中・韓の音声合成に対応しています。非モノローグ音声合成は お試しサイト から利用できます。

ノード構成

graphviz-dbdfc60ff93f7934d14c098255b38cc9dedb190d

rospeexは以下の4つのROSノードから構成されています。

発話検出ノード(rospeex_spi)
rospeex_spiノードは波形モニタから入力音声を取得し、雑音抑圧と発話区間の検出を行います。音声認識ノードの状態を取得し、音声合成結果の出力音声を認識しないようにしています。
音声認識ノード(rospeex_sr)
音声認識ノードはユーザ定義ノードから音声データを取得し、サーバに対して音声認識要求を行います。音声認識結果の表層文字列をユーザ定義ノードに渡します。
音声合成ノード(rospeex_ss)
音声合成ノードはユーザ定義ノードからテキストを取得し、サーバに対して音声合成要求を行います。音声合成結果の音声データをユーザ定義ノードに渡します。
ユーザ定義ノード(user_program)
ユーザ定義ノードでは、音声合成ノードを用いたテキストからの音声合成や、音声認識ノードを用いた音声ファイルからのテキスト変換を行うことができます。