GoogleSpeechRecogRTC
GoogleSpeechRecogRTCは、Google Speech Private APIを利用して、音声認識を行うRTコンポーネントです。
Google Speech Private APIは、Googleが個人用に提供している音声認識クラウドサービスです。
クラウドの音声認識サービスは、ここに記載されているように、ある程度無償のものがありますが、簡単に使えるという意味では、Google Speech Private APIが良いかと思います。
ただし、このGoogle Speech Private APIは、一日に50リクエストしか使えません(それ以上だとエラーが返ってきます)ので注意してください。
Googleの音声認識API(Google Speech API)は、月間で60分は無償(ただし、1リクエストにつき15秒で切り上げ)になっています。すなわち、240リクエストが1月で無料で使える上限になっています。それ以上では、15秒ごと(1リクエストごとに)0.006USDになっているようです。
Google SpeechAPIは、Pythonのライブラリがあったと思いますので、作成することは簡単だと思います。
GoogleSpeechRecogRTCの準備
GoogleSpeechRecogRTCは、OpenHRIVoiceの中に含まれています。しかし、現在は、開発途中であるためバイナリでの配布はしておりません。したがって、OpenRTM-aistのPython版が必須になっています。
また、このRTCでは、内部で音声部分の切り出し処理を行っていますので、pydubというパッケージが必須になっていますので、pipコマンドでインストールしてください。
# pip install pydub
pydubパッケージのフル機能を利用するには、ffmpegをインストールする必要があります。ffmpegは、音声ファイルのフォーマット変換に利用されていますので、mp3やflac形式を利用したい場合には、ダインロード&インストールをお願いします。
wavファイルのみであれば、pythonのデフォルトライブラリが利用できますので、Google Speech Private APIを使う場合には、必要ありません。
また、このRTCではGoogle Speech Private APIを利用していますので、APIKEYが必要になります。
APIKEYの取得には、Google Developer Consoleでの登録が必要になります。APIKEYの取得に関する詳細は、こちらの記事を参考にしてください。
動作確認OS
- Ubuntu Linux 14.04以上を推奨
- Windows 7以上を推奨
依存ライブラリ
- OpenRTM-aist : OpenRTM-aist-1.1.2-RELEASE(Python)
データポート
名前 | フローポート | データ型 | 説明 |
---|---|---|---|
data | InPort | TimedOctetSeq | 認識する音声データ(パケット形式) |
result | OutPort | TimedString | 音声認識結果(json形式ですので、eSEATへの入力には加工する必要があります) |
Configuration Parameters
名前 | データ型 | デフォルト値 | 設定範囲 | 説明 |
---|---|---|---|---|
lang | string | ja-JP | ja-JP, us-EU, ... | 音声認識する言語 |
min_buflen | int | 8000 | 5000以上を推奨 | 音声部分の切り出し時のバッファサイズ (16bit, 16KHzの音声の場合、8000で250m秒ごと) |
min_silence | int | 150 | 0以上 | 音声部分切り出し時の無音部分の最小時間 (ms) |
silence_thr | int | -10 | -30 ~ -10 を推奨 | 音声部分切り出し時の無音部分とするレベル(db) |
使用方法
GoogleSpeechRecogRTCは、Google Speech Private APIを利用しますので、API_KEYが必要になります。API_KEYは、 google_conf.confファイルの''google.speech.apikey:''に記入してください。
google.speech.apikey: <Your SpeechAPI Key>