< Voice Kitの機能拡張(gRPC、IFTTT、ドコモ雑談対話)>
前回で一応、日本語対応でのテストまで済ませましたが、ネットで関連記事を検索している中で、日経Linux 2018年3月号の特集3として、6ステップに分けてVoice kitを機能拡張する詳細な記事があることを知り、即購入しました。(写真1、2)
Google Assistannt SDKは昨年末にバージョンアップされて日本語の対応が強化されていますが、同誌の内容はそのバージョンアップに対応していますので、同誌の6ステップに従って最初からやり直すこととし、SDカードを初期化して最新のGoogle Assistannt SDKをインストールしました。
<ステップ1> 例の「OK Google」とホットワードで話しかける内容のもので、同書に準じて作業しましたが、前回と同様の作業内容ですのですんなりと済みました。 この時点でホットワード以外は日本語で大丈夫とに記載されていますが、日本語で応答してくれませんでした。
バージョンアップに関係して、日本語対応に何かバグがあるのかも知れませんが、ステップ3で日本語が使えるようになるので、あまり問題はありません。
<ステップ2> Google Cloud Speech APIを利用してステップ1のGoogle Assistanntで用意されていたシナリオに、独自の応答シナリオを追加する内容のものです。 利用するにあたり、先ずは、同誌の「図6 Google Cloud Speech APIを利用するための作業手順」に準じて認証とAPIの有効化の作業を実施しました。
次いで、Voice kitに標準で付属しているサンプルプログラムを実行し問題なく機能することを確認しました。 このステップでは、まだ英語での対応です。
<ステップ3> 日本語の音声認識にも対応しているGoogle Cloud Speech APIを利用して、日本語でテストする内容です。
同誌の「読者限定サイト」から「japanese_demo.py」ファイルを入手して、「~/AIY-projects-pythou/src」ディレクトリに保存して、次のコマンドを実行したのが写真3です。
$ python src/japanese_demo.py
日本語で「ライトを点灯して」と言って、アケードボタンのLEDが点灯したのが、写真4です。
<ステップ6> 順序はステップ4ですが、ステップ6を先にテストしました。 といいますのは、ステップ6は前回、ゆきさんの「ゆきの野望」を参考にして「Googlie assistant SDK」上で「gRPC」を使ったサンプルプログラム「pushtotalk」を使って日本語で会話できることを確認しましたが、それと全く同じ作業です。
同じように、同誌に従って「プロジェクト ID」、「デバイスのモデル名」を設定して、「読者限定サイト」から「assistant_japanese.py」ファイルを入手し、「~/AIY-projects-pythou/src」ディレクトリに保存して、次のコマンドを実行して会話を開始したのが写真5です。
$ python src/jassistant_japanese.py
会話の継続機能の確認は、写真6のように「愚痴を聞いてタンバリン」で確認し、正常に機能しました。 写真7は会話中の様子の例ですが、会話としては、まだまだこれからといった感じです。
<ステップ4> ステップ4に戻り、「IFTTT」サービスとの連携について、同誌に従い Voice KitからGmailを使って音声をテキストに変換して、AOLの自分あてにメールを送るテストを実施しました。 IFTTTは初めて利用しますので、先ずはアカウント登録をしてから、同誌の「図10 IFTTを利用するための作業手順」に準じて、「Applet」を作成し、triggger、actionを設定しました。
続いて写真8のように送り先を設定し、写真9のように件名、本文入力を設定しました。 本文は、Voice Kitに話した内容を{{value1}}に置き換えて送信される。
続いて、「読者限定サイト」から入手した「ifttt_email.py」ファイルを、 「~/AIY-projects-pythou/src」ディレクトリに保存して、テキストエディタで開き、「https://ifttt.com/maker_webhooks」から取得したキーを同誌の図11の通り設定し、写真10のように次のコマンドを実行し、「これはボイスキットからのメール送信テストです。」と本文を発声してメールを送りました。
$ python src/ifttt_email.py
写真11が送られて来たメールの本文「これはボイスキットからのメール送信テストです。」を確認したものです。 確かに正常に送られていました。
<ステップ5> NTTドコモの「雑談対話API」と連携して、シナリオのない雑談での会話機能についてテストしました。 「雑談対話API」を利用するにも先ず、「docomo Developer support」のアカウント作成ページにアクセスして登録し、同誌を参考に写真12のように「新規API利用申請」等、かなり面倒な一連の作業を済ませました。
登録後にマイページ(写真13)のメニュー「API利用申請・管理」をクリックして登録した「雑談対話API」のAPI keyを取得しました。
次いで「読者限定サイト」から「conversation.py」ファイルを入手し、同様に「~/AIY-projects-pythou/src」ディレクトリに保存して、テキストエディタで開き、取得したAPI keyを同誌の図12の通り設定し、次のコマンドを実行して雑談対話を開始したのが写真15です。
$ python src/conversation.py
対話は普通のスピードで話せますが、シナリオがないためピントが外れた会話になりやすく、会話の質の向上が望まれると言う感じです。
以上、ステップ1からステップ6までの一連のテストを実施しました結果、音声命令での制御や、音声の聞き取りとテキスト化に関しては実用段階にあると思いますが、日本語での会話となりますと、まだまだ、これからの感がありますが、これは技術の問題ではなく時間の問題だけですので、今後どんどん進化するので楽しみです。
音声制御は十分利用可能ですので、何か試してみたいと思います。
写真1 日本語の会話例 その1
し、
写真2 日本語の会話例 その
写真3 「japanese_demo.py」を実行
写真4 「ライトを点灯して」との音声命令で点灯
写真5 「jassistant_japanese.py」を実行
写真6 「愚痴を聞いてタンバリン」で会話
写真7 会話中の例