Snowboyで好きなHotwordを使う。

Snowboyを入れてHotwordで起動できるようにする。ではGoogleAIYVoicekitV2を「アレクサ」というHotwordで起動する手順を紹介しました。今回の記事では、自分で好きなHotwordを使う手順を紹介します。

 もくじ

snowboyのインストール

前回の記事を参考にassistant_grpc_demo_snowboy.pyを使えるようにしておいてください。

使用するブラウザ

ChromeかFireFoxと出るのですが、2019/1現在、Chromeだと拒否されるようなのでFireFoxを使いましょう。

準備

①アカウントの作成

SnowboyのHPからログインしてアカウントを作成する必要があります。
ログインするためには下記のいずれかのアカウントが必要です。ログインするとkitt.aiと紐づけられます。

  • GitHub
  • Google
  • Facebook

②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となります。

Snowboyで好きなHotwordを使う。” に対して1件のコメントがあります。

  1. friza より:

    コメント失礼します。こちらのサイトを参考にして11月16日版で、Hotwordで起動出来るようになりました。しかし設定したHotword以外の、会話や話し声で反応してしまいます。なにか良い方法はないでしょうか?

    1. もんごんた より:

      起動する時にsensitivityというパラメータを調整してみてください。低感度にするにはデフォルトの0.5より小さくします。0<sensitivity<1の範囲で調整可能です。

      1. friza より:

        返信の方ありがとうございました。sensitivityの値を下げて試したところ、Hotword以外で反応することはなくなりましたが、今度はHotwordをあまり認識してくれなくなりました。Hotwordを登録する際に何かコツなどはあるのでしょうか?

        1. もんごんた より:

          すいません。snowboyの仕組みは利用しているだけなのでコツまでは分かりません。(爆)

          あとは、、、
          ・録音時のマイクの音量を調整する。
          ・マイクを変える。
          ・AlsamixerでVoiceKit側の音量を調整する。(再生、録音)
          といった調整が考えられます。

          音声認識はサンプル数にも依存するので、サンプル数の多いモデル(Alexa,jarvisとか)ではどうでしょうか?
          (検索する時にSort byをMost popularにすると多いのが出ます。)

          自分が試した限界はalexaがsensitivity=0.1,jarvisが0.4でした。

    2. もんごんた より:

      あと、Hotwordが短い場合は誤検出しやすいので5文字以上のHotwordに変えてみるのもいいかもしれません。

コメントを残す

メールアドレスが公開されることはありません。