AmiVoice® Robot SDK  0.9.10
HandsfreeControl SDKのインストールとビルドについて

1.構成

AmiVoice®Robot SDK(HandsfreeControl)のファイル構成は以下のように成っています。

/AmiVoiceRobotSDK
/doc ドキュメントファイル
/include インクルードファイル
/lib ライブラリファイル
/raspbian   OS毎のライブラリディレクトリ
   /(other os)
 /sample
/HandsfreeControlSample ハンズフリーコントロールサンプルアプリ

2.サンプルアプリのビルド

2.2 HandsfreeControlSample

AmiVoice®Robot SDK(HandsfreeControl)をインストールしたディレクトリに移動し、 以下のようにコマンドを入力してください。

pi@raspberrypi:~ $ cd ~/AmiVoiceRobotSDK/sample/HandsfreeControlSample
pi@raspberrypi:~/AmiVoiceRobotSDK/sample/HandsfreeControlSample $ make

ビルドに成功すると、以下のようにファイルが作成されます。 この内、HandsfreeControlOutputStreamSampleとHandsfreeControlSampleがサンプルアプリです。

pi@raspberrypi:~/AmiVoiceRobotSDK/sample/HandsfreeControl $ ls -l Build/release/
合計 336
-rwxr-xr-x 1 pi pi 76036 9月 23 15:23 HandsfreeControlOutputStreamSample
-rwxr-xr-x 1 pi pi 75808 9月 23 15:18 HandsfreeControlSample
-rw-r--r-- 1 pi pi 254 9月 23 15:18 main.d
-rw-r--r-- 1 pi pi 89056 9月 23 15:18 main.o
-rw-r--r-- 1 pi pi 283 9月 23 15:23 main_outputstream.d
-rw-r--r-- 1 pi pi 89112 9月 23 15:23 main_outputstream.o

3.ライブラリの配置

Linux系OSの場合、共有ライブラリ(.soファイル)を実行時に読み込むには、 共有ライブラリへのパスの通ったディレクトリに、.soファイルを配置する必要があります。

手順

  • ./AmiVoiceRobotSDK/lib/(OS毎のディレクトリ名)/以下のファイルを/usr/lib/ などにコピーします。コピーすべきディレクトリは、OS/ディストリビューションによって異なります。
    pi@raspberrypi:~/AmiVoiceRobotSDK/lib/raspbian/ $ cd ./AmiVoiceRobotSDK/lib/raspbian/
    pi@raspberrypi:~/AmiVoiceRobotSDK/lib/raspbian/ $ sudo cp *.so /usr/lib
  • その後、コマンドラインからldconfigを実行します。
    pi@raspberrypi:~$ ldconfig
  • ライブラリが配置できたかどうかを確認するには、以下のようにコマンドを入力します。
    pi@raspberrypi:~$ ldconfig -v | grep Ami
      - 中略 -
    libAmiVoiceHandsfreeControl.so -> libAmiVoiceHandsfreeControl.so
    pi@raspberrypi:~$ ldconfig -v | grep xcwrapper
      - 中略 -
    libxcwrapper.so -> libxcwrapper.so

4.サンプルアプリの実行

サンプルアプリのディレクトリに移動し、HandsfreeControlOutputStreamSampleもしくはHandsfreeControlSampleを実行します。

注釈
HandsfreeControlSampleディレクトリをカレントディレクトリとしてファイルを読み込むサンプルのため、 必ずHandsfreeControlSampleディレクトリでの実行をお願いします。
pi@raspberrypi:~ $ cd ~/AmiVoiceRobotSDK/sample/HandsfreeControlSample
pi@raspberrypi:~/AmiVoiceRobotSDK/sample/HandsfreeControlSample $ Build/release/HandsfreeControlSample
release/HandsfreeControlSample
Utterance Event1
Utterance Event0
"あみぼいす"
utteranceLength[0]
end of last getchar()

5.エンジンモードファイルについて

ハンズフリーコントロールは端末内でのローカル認識のため、音声認識を行う際には 弊社がエンジンモードと呼ぶ、音響・言語モデルをファイルとしてまとめたものを 読み込む必要があります。 エンジンモードファイルを読み込むには、IHandsfreeControlBaseクラスのenginemodePathに エンジンモードファイルのパスを指定し、その後setup()を実行するとファイルが読み込まれます。

HandsfreeControlSampleには、エンジンモードがAmiCarMobile16k/recognizer.xcと AmiDnnCarMobile16k/recognizer.xcの2種類が入っています。 AmiDnnCarMobile16kのものの方がより高精度ですが、処理が重いのでレスポンスを重視する場合 にはAmiCarMobile16kのものをご使用ください。

※エンジンモードのパスを変更する際には、ディレクトリごと(AmiDnnCarMobile16k/以下を全て)移動させて ください。