クラウドベースのウェイクワード検証を有効化する方法
クラウドベースのウェイクワード検証を行うことで、ウェイクワードと似た発音の語句で誤って起動されることが減り、Alexa搭載デバイスのウェイクワードの精度が高まります。たとえば、以下の語句は「アレクサ」と誤って認識され、誤起動を引き起こす可能性があります。「アレックス」、「エレクション」、「アレクシス」。クラウドベースのウェイクワード検証では、メディアで再生されたウェイクワードも検出します。たとえば、AmazonのCMで「アレクサ」が使われた場合などです。
最初の検出は製品のウェイクワードエンジンで行われ、その後クラウドで検証されます。誤起動が検出されると、AVSはStopCapture
ディレクティブをダウンチャネルで製品に送信し、オーディオストリームを終了するよう指示します。また、該当する場合は、青色のLEDを消してAlexaが聞き取りを停止したことを示すよう指示します。
以下のセクションでは、この機能を使うために必要な作業について詳しく説明します。
- クラウドベースのウェイクワード検証の要件を確認する
- RecognizerStateを送信するようクライアントコードを更新する
- RecognizeとExpectSpeechへの変更をサポートするようクライアントコードを変更する
- リソース
クラウドベースのウェイクワード検証の要件を確認する
音声起動の製品は、ウェイクワードエンジンにより「アレクサ」などのウェイクワードが検出されると、ユーザーの発話のAVSへのストリーミングを開始します。ストリーミングはユーザーが話すのを止めるか、ユーザーのインテントが識別されてサービスがStopCapture
ディレクティブを返すと終了します。クラウドベースのウェイクワード検証が機能するには、AVSにストリーミングされるオーディオに、ウェイクワード、500ミリ秒のプリロール、StopCapture
ディレクティブを受信するまでにキャプチャされたユーザーのすべての発話が含まれている必要があります。これにより、AVSがストリームに含まれるウェイクワードを検証できるようになり、誤起動による誤ったレスポンスの数を減らすことができます。
- プリロール、つまりウェイクワードの検出の前にキャプチャされたオーディオは、録音の環境ノイズレベルを調整するために使用され、音声認識の精度が高まります。
- ストリームにウェイクワードが含まれることで、AVSはクラウドベースのウェイクワード検証を実行できるようになり、誤起動(ウェイクワードエンジンがウェイクワードを誤って認識する回数)を減らすことができます。
- クラウドベースのウェイクワード検証が実行されている間にウェイクワードが検出されなかった場合、そのオーディオサンプルは破棄されます。
ここでは、オーディオサンプルの書き込みと読み取り用に共有メモリリングバッファを実装する際の推奨事項と、AVSに送信される各Recognize
イベントにウェイクワード検出の開始インデックスと停止インデックスを含める際の仕様について説明します。
RecognizerStateを送信するようクライアントコードを更新する
Context
は、AVSにクライアントコンポーネントの状態を伝えるために使用するコンテナです。クラウドベースのウェイクワード検証をサポートするには、すべての音声起動の製品が該当するイベントでRecognizerState
を送信する必要があります。
サンプルメッセージ
{ "header": { "namespace": "SpeechRecognizer", "name": "RecognizerState" }, "payload": { "wakeword": "ALEXA" } }
ペイロードのパラメーター
パラメーター | 説明 | 型 |
---|---|---|
wakeword | 現在のウェイクワードを識別します。 有効な値: "ALEXA" |
string |
例
SpeechRecognizer.Recognize
イベントにRecognizerState
が含まれている例を示します。
クリックして拡大 +
RecognizeとExpectSpeechへの変更をサポートするようクライアントコードを変更する
新しいキー/値のペアがRecognize
イベントとExpectSpeech
ディレクティブに追加され、クラウドベースのウェイクワード検証がサポートされるようになりました。この機能をサポートするには、クライアントコードの更新が必要です。
Recognizeイベント
Recognize
が更新され、initiator
オブジェクトが含まれるようになりました。このオブジェクトには、Alexaとの対話がどのように開始されたかについての情報が含まれます。音声起動の製品の場合は、ウェイクワードの開始と終了のインデックスも含まれます。
ExpectSpeechディレクティブ
ディレクティブが更新され、initiator
が含まれるようになりました。Alexaがリクエストを完了するために追加の情報を必要とする、マルチターンのシナリオでは、クライアントに送信されたinitiator
が次のRecognize
イベントでAlexaに返される必要があります。これは、対話がどのように開始されたかにかかわらず必要です。