コミュニケーション知能モジュールパッケージ OpenHRI
コミュニケーション知能モジュールパッケージ OpenHRI
概要
コミュニケーション知能モジュールパッケージ OpenHRIは、音声認識・音声合成・対話制御など、ロボットのコミュニケーション機能の実現に必要な各要素を実現するコンポーネント群です。 フリーで利用できる各オープンソースソフトウェアを使い易いコンポーネントとしてまとめたものです。
OpenHRIの詳細につきましては、 旧オフィシャルサイト 、マニュアル を参照してください — click here。
最新バージョンとリポジトリ
現在、OpenHRIで使用しているサードパーティのソフトウェアのバージョンアップに伴い、改修を行っています。
Windows用のバイナリは、https://www.intsys.org/pub/OpenHRI/ に置いています。OpenHRIVoiceに関しては、バイナリを展開のみでは、動作しません。3rdparyのパッケージも必要で、OpenHRIVoiceの下に展開する必要があります。
新しい機能
OpenHRIAudioに関しては、単にOpnRTM-aistのバージョンを1.1.2に対応したのみにとどまっています。OpenHRIVoiceに関しては、以下のバージョンアップを行っています。
- JuliusRTCの機能追加: Julius のdictation機能を追加いしました。新しいアルゴリズムへの対応は、まだなのですが、gmmであれば動作します。そのため、文法を書くことなく音声認識機能が使えます。引数にgrxmlファイルの代わりに dictation という引数にしてください。また、jconfファイルを指定することでオプションに上書きができるようになりました。この機能を使ってディクテーションモード時にDNN版で起動できます。
- GoogleSpeechRecogRTCの追加: Googleの音声認識を使うコンポーネントを作成しています。現在の仕様でバイナリ化しています。APIKEYを取得して、google_speech.confファイルに記入すれば、GoogleSpeechAPIが利用可能です。(1日50リクエストまで)
- RecaiusSpeechRecogRTCの追加: 東芝デジタルソリューションズ株式会社のRECAIUSの音声認識 WebAPIを使うコンポーネントを作成しました。現在の仕様でバイナリ化していませんので、スクリプトのままお使いください。(機能向上の余地があるため)このコンポーネントを利用するためには、RECAIUSを購入する必要があります。(お試しで一か月間無償で利用可能です)
- RecaiusTalkRTCの追加: 東芝デジタルソリューションズ株式会社のRECAIUSの音声合成 WebAPIを使うコンポーネントを作成しました。現在の仕様でバイナリ化していませんので、スクリプトのままお使いください。(現時点では(2017/10/20)RECAIUSは、何度でもお試し登録できるそうです)
- OpenJTalkの改修:OpenJtalkの音声に関してなのですが、音響モデルを変更できるようにしようと思っています。(confファイルに記述することで指定可能)音響モデルは、Web上でたくさん公開されていますので、色々試すことができるようになります。OpenJTalkへのパラメータ設定は、RTCのコンフィグレーションパラメータにしています。
GoogleSpeechやRECAIUSのようなクラウドシステムを利用した音声認識コンポーネントでは、pydubというライブラリを使って音声区間の切り出しを行っています。現在のpydubでは、音声切り出し時に audioop.mul関数をコールする部分にバグがあります。pydub/audido_segment.pyの262行目の data[:self.frame_width] を str(bytearray(data[:self.frame_width])) に変更してご利用ください。
ライセンスについて
OpenHRIのライセンスは、Eclipse Public License (EPL)です。
EPLは、コードの改変や再配布、営利利用を許可するオープンソースライセンスですが、場合によっては改変内容をライセンス元に開示する必要があります。OpenHRIが内部で用いているそれぞれのソフトウェアについては、各自のライセンスに従います。
コンポーネント一覧
OpenHRIAudioパッケージ
OpenHRIAudioパッケージは、マイクから音声信号を取得、環境の雑音除去、音源方向の同定など音響信号処理などのコンポーネント群です。
- PulseAudioInput (音声取得RTC)
- PulseAudioOutput (音声出力RTC)
- PortAudioInput (音声取得RTC)
- PortAudioOutput (音声出力RTC)
- NoiseReduction (雑音除去RTC)
- EchoSuppressor (エコー除去RTC)
- EchoCanceler (エコー除去RTC)
- CombFilter (くし形フィルタRTC)
- DSArray (音源定位RTC)
- BeamForming (指向性録音RTC)
- Mixer (オーディオミキサーRTC)
- SignalGeneration (信号生成RTC)
- WavRecord (音声保存RTC)
- WavPlay (音声再生RTC)
- SamplingRateConverter (サンプリング周波数変換RTC)
- AutoGainControl(ゲイン調整コンポーネント)
- ChannelSelector (音声データチャンネルセレクタ)
- Gate (ゲートコンポーネント)
- WebRTCVAD (WebRTCベースの音声検出コンポーネント)(Linux only)
OpenHRIVoiceパッケージ
OpenHRIVoiceパッケージは、音声認識や音声合成に関する機能のコンポーネント群です。
対話制御パッケージ(SEATパッケージ)
SEATパッケージは、音声対話処理のコンポーネント群です。
その他のコンポーネント
OpenHRIのパッケージには含まれておりませんが、OpenHRIと連携して使うことができるコンポーネントです。
ここに示したコンポーネント群のダウンロードは、各コンポーネントの詳細説明のページからお願いいたします。
システム構成例
ハードウェアプラットフォーム
- G-ROBOTS GR-001 及び Windows等のPC(制御用)
- ソフトウェアプラットフォームChreonoid
- 人間型ロボット研究開発用プラットフォーム HRP-4
小型ヒューマノイドプラットフォーム Choromet2 (チョロメテ2) (対応予定)- Kinect for Windows(ver.1)
ダウンロード
OpenHRIに含まれるコンポーネント群の最新版は、下記のリンクからダウンロードしてください。
- OpenHRIAudio(OpenRTM-aist 1.1.2対応 Windows版)
- OpenHRIVoice(GitHub)
- eSEAT(GitHub)
開発リポジトリ
OpenHRIのリポジトリは、GitHubにありますので、最新の開発版をご利用の方は、こちらを参照してください。
- OpenHRIAudio: https://github.com/openrtc/OpenHRIAudio/tree/ForCMake (ブランチ ForCMake)
- OpenHRIVoice: https://github.com/openrtc/OpenHRIVoice
- eSEAT: https://github.com/haraisao/eSEAT
OpenHRIのビルド
開発リポジトリからダウンロードしたソースコードからOpenHRIをビルドする方法は、下記を参照してください。
OpenHRIのパッケージインストール
OpenHRIに関しては、今後インストーラやdebパッケージによる配布を取りやめる予定です。現在のOpenHRIAudio,OpenHRIVOice, eSEATは、インストール場所を自由に変更できる(いわゆるポータブル版)ようにしているためです。
Zipアーカイバ等で配布し、展開のみで実行できるようにしていきたいと思います。
また、ソースコードは、すてべGithubに公開しており、Jenkinsを使ったCI環境を構築していますので、適宜更新できるようになります。
資料