kun432's blog

Alexaなどスマートスピーカーの話題中心に、Voiceflowの日本語情報を発信してます。たまにAWSやkubernetesなど。

〜スマートスピーカーやVoiceflowの記事は右メニューのカテゴリからどうぞ。〜

Voiceflow 日本語 FAQ

Voiceflowで過去によくあった質問を並べてみました。今後も定期的に追加していきます。

Alexa/Googleでやり方が異なる場合はその旨を記載してます。

Googleについては現在Actions on Googleとの連携方式が変更されている最中ですので、今後変更される場合があります。

目次

呼び出し名を変えたい

呼び出し名は設定画面から変更できます。プロジェクトを開いて、右上の歯車アイコンをクリックします。

f:id:kun432:20201105122229p:plain

プロジェクト設定画面が開いたら、"Invocation Name"のところを変更します。"Project Name"はあくまで管理用の名前です。変更ボタン等はなく自動で反映されますので、左上の"Back"ボタンでもとに戻ります。

f:id:kun432:20201105122514p:plain

再度アップロードすれば、新しい呼び出し名で呼び出せるようになります。

f:id:kun432:20201105122813p:plain

"Prototype"のテストだと動くが、Alexa開発者コンソール(以降、ADC)/Actions on Googleのテストシミュレータや実機でエラーになる

まず、基本として「Prototypeのテストは、公式テストシミュレータや実機とは異なる仕組みで動いている」ということが前提です。少し技術的になりますが、以下のAlexa公式ブログに載っている図をご覧ください。

図を抜粋します。

f:id:kun432:20201026191345p:plain

下に説明がありますが、Alexaのクラウドに届くまでは「音声」はそのまま「データ」として送信され、クラウド側でこれを日本語として認識してテキスト化、インテントやスロットなどをバックエンドに送信して処理を行います。このバックエンド部分はVoiceflowが処理して、またクラウド→Echoデバイスに返すという仕組みです。つまり、言語としての認識処理等を行っているのはクラウドです。Google Homeの場合もほぼ同様です。

これに対して、VoiceflowのPrototypeの場合は、ブラウザが標準で持っている自動音声認識APIを使っていると思われます。

厳密に書くともっと複雑で、正確ではない部分もあるのですが、説明のために単純化しています。

f:id:kun432:20201026192507p:plain

つまり、Prototypeは、Alexa/Googleの本来の仕組みとは異なるやり方なのですね。そして、AlexaやGoogle Homeの仕組みではこのクラウド部分が重要であり、これを使っていないPrototypeでのテストはどうしても実機や開発者コンソールと動きが違ってくる場合があるということです。

簡易なテストであればPrototypeでも良いと思いますが、きちんとしたテストを行う場合にはAlexa開発者コンソールやActions on Googleのテストシミュレータでテストすることをオススメします。

AlexaとGoogleの両方で同じスキルを作りたい。

以下をご覧ください。

多言語のAlexaスキル/Googleアクションを作りたい

Voiceflowでは、日本語以外のスキルを作成することもできます。ただし、「1つのプロジェクトを多言語にしたい」場合は注意が必要です。

Alexaの場合

まず、言語の設定・変更方法です。

厳密には、言語だけでなく、スキルを提供する国も選択することになります。この「言語+国」の組み合わせを「ロケール」といいます。

プロジェクト新規作成時に言語を選択します。対応したいロケールにチェックを入れます。複数選択も可能です。それぞれのロケールに合わせた呼び出し名しか設定できないことに注意してください。

f:id:kun432:20201105125127p:plain

プロジェクト作成後は設定画面から変更できます。プロジェクトを開いて、右上の歯車アイコンをクリックします。

f:id:kun432:20201105122229p:plain

"Locales"のところで、対応したいロケールにチェックを入れます。変更ボタン等はありませんので、右上の"Back"から元の画面に戻って再度アップロードすればOKです。

f:id:kun432:20201105125351p:plain

で、あとはスキル内で言語ごとに処理を分ける(最初から用意されているlocale変数でユーザのロケールが取得できるので、Condition Blockで分岐させる)ようにすればOKなのですが、公開申請時に1つ問題が出てきます。

スキルの公開申請は、左上のメニューの"Launch"をクリックして表示されるメニューにスキル情報(スキルの名前・呼び出し名・説明など)を入力していきます。

f:id:kun432:20201105130335p:plain

f:id:kun432:20201105130429p:plain

複数の「言語」に対応する場合には、それぞれの言語ごとにスキル情報を入力する必要があるのですが、残念ながらスキル情報設定画面は複数の言語に対応していません。つまり、複数言語共通の説明で設定できるパターン=同じ言語の組み合わせで国が違う場合(en-US/en-GB/en-IN/en-CAなど)に限られます

日本語の場合は日本しかないので、他の言語と組み合わせて多言語というのは実質できないということですね・・・

したがって「言語」ごとにプロジェクトを複製する必要がある、という点にご注意ください。

公開申請をVoiceflowから行わず、Alexa開発者コンソールで行うという逃げ道もあります(スキル情報はAlexa開発者コンソール側で設定する)。ただし、この場合、Voiceflowからアップロードするとすべて更新されてしまうため、あまりオススメしません。

Googleの場合

設定・変更方法はAlexaの場合とほぼ同じです。ただし、現時点では、Googleの場合は、複数ロケールを選択することができません。

f:id:kun432:20201105125657p:plain

したがってロケールごとにプロジェクトを複製する必要があります。

なんか動作がおかしい・・・

Chromeをお使いの場合は以下をお試しください。

  • Windows
    • Ctrl + Shift + R
  • Mac
    • Command + Shift + R

これは「ハードリロード」といい、通常のリロードでは消えないブラウザ内キャッシュなども一旦クリアされます。

Voiceflowはブラウザの機能を駆使しており、大量のデータをブラウザ内にキャッシュしています。このキャッシュデータがまれにおかしくなる場合があり、一旦このキャッシュをクリアすることで再度サーバ側からデータを取得、キャッシュが再構築されるので正常な状態に戻るというわけです。ただし、キャッシュに不具合があってサーバ側に保存されていない場合もありえますので、その場合は作成したプロジェクトが少し前の状態に戻る場合もあります。この点だけはご注意ください。

ちなみにVoiceflowの推奨ブラウザはChromeです。他のブラウザでも動作すると思いますが推奨はされていませんし、このハードリロード手順も異なる可能性があります。

解約したい

現状は解約インタフェースがありません。support@voiceflow.com にメールしてください。