Snowboyで好きなHotwordを使う。
Snowboyを入れてHotwordで起動できるようにする。ではGoogleAIYVoicekitV2を「アレクサ」というHotwordで起動する手順を紹介しました。今回の記事では、自分で好きなHotwordを使う手順を紹介します。
もくじ(Index)ラズパイ関連の目次へ戻る(工事中)
snowboyのインストール
前回の記事を参考にassistant_grpc_demo_snowboy.pyを使えるようにしておいてください。
使用するブラウザ
ChromeかFireFoxと出るのですが、2019/1現在、Chromeだと拒否されるようなのでFireFoxを使いましょう。
準備
①アカウントの作成
SnowboyのHPからログインしてアカウントを作成する必要があります。
ログインするためには下記のいずれかのアカウントが必要です。ログインするとkitt.aiと紐づけられます。
- GitHub
②PCでブラウザ上で録音できる環境を作る
クラウドに自分の音声データを登録しなくてはならないので、PCにマイクを接続してWebブラウザ上で録音するか、あらかじめHotwordを録音したWAVファイルが必要です。
WAVファイルを用意した場合でも、テストが成功しないと登録できないのでマイクは必要です。
スマホでできるかな?と思ってやってみたのですが対応していないらしくできませんでした。
私の場合は作業はWindowsPC上のGoogle Chromeから行い、USBオーディオ変換ケーブルとマイクを繋ぎました。
ログイン後の手順
①Hotwordが登録されているか確認
自分が使用したいHotwordが登録されているか確認します。
Search Hotwordsで登録されているか検索してみましょう。
登録されている場合はマイクのマークをクリックし、登録されていない場合はCreate Hotwordをクリックします。。
②Hotword情報を入力または確認
Hotword Nameと言語を選択します。
コメントは任意です。
入力が終わったら「Record my voice」をクリックします。
③マイクの使用許可を行う。
サイト(snowboy.kitt.ai)からマイクへのアクセスを許可します。
④録音の開始
Recordをクリックし、3回録音します。
録音が終わったら、「Test the model」をクリックします。
⑤音声のテスト
性別と年齢を選択して、「Run the test」をクリックしHotwordが認識されるかテストします。
⑥音声ファイルのダウンロード
テストが成功するとボタンが押せるようになるので、「Save and download」をクリックします。
⑦音声ファイルをコピー
<Hotword名>.pmdlまたは<Hotword名>.umdlというファイルが出来上がるので、このファイルをラズパイの/home/pi/にコピーします。
WindowsからだとWinSCPやDropbox経由が考えられます。
VoiceKitV2でアシスタントデモを起動
コピーしたファイルを指定して起動します。
●2018-08-03バージョン
AIY-projects-shell.sh
src/examples/voice/assistant_grpc_demo_snowboy.py ~/<Hotword Name>.pmdl
●2018-11-16バージョン
AIY-projects-shell.sh
src/examples/voice/assistant_grpc_demo_snowboy.py --model=/home/pi/<Hotword Name>.pmdl
準備完了
これで、録音したHotwordでGoogleアシスタントを起動できるようになります。
GoogleAIYVoiceKitV2を楽しみましょう。
【補足】pmdlとumdlの違い
pはpersonal、uはuniversalです。サンプル数が一定数を超えたものはuniversalになります。英語だと500サンプル、日本語だと2000サンプルのようです。自分で作成したものは基本的にpmdlとなります。
コメント失礼します。こちらのサイトを参考にして11月16日版で、Hotwordで起動出来るようになりました。しかし設定したHotword以外の、会話や話し声で反応してしまいます。なにか良い方法はないでしょうか?
起動する時にsensitivityというパラメータを調整してみてください。低感度にするにはデフォルトの0.5より小さくします。0<sensitivity<1の範囲で調整可能です。
返信の方ありがとうございました。sensitivityの値を下げて試したところ、Hotword以外で反応することはなくなりましたが、今度はHotwordをあまり認識してくれなくなりました。Hotwordを登録する際に何かコツなどはあるのでしょうか?
すいません。snowboyの仕組みは利用しているだけなのでコツまでは分かりません。(爆)
あとは、、、
・録音時のマイクの音量を調整する。
・マイクを変える。
・AlsamixerでVoiceKit側の音量を調整する。(再生、録音)
といった調整が考えられます。
音声認識はサンプル数にも依存するので、サンプル数の多いモデル(Alexa,jarvisとか)ではどうでしょうか?
(検索する時にSort byをMost popularにすると多いのが出ます。)
自分が試した限界はalexaがsensitivity=0.1,jarvisが0.4でした。
あと、Hotwordが短い場合は誤検出しやすいので5文字以上のHotwordに変えてみるのもいいかもしれません。