発話検出
発話区間とは、音声データの中で人が話している部分を指します。音声データには、人の声とそれ以外の部分、例えば、無音や背景ノイズなどが含まれています。音声認識をする前に、発話区間を検出し、発話区間だけを対象として処理します。これは不要な音声区間を無視することにより、計算量の削減や、誤って音声として認識してしてしまうことを防ぐためです。AmiVoice APIでは深層学習モデルを使って、人の声とそれ以外を区別しており、単純に音量だけを使った発話検出よりも高い精度で発話を検出します。
以下の図は、クライアントからAmiVoice APIへ音声データが送信された際の流れを示しています。まず初めに発話検出が行われ、その後音声認識処理が行われます。図では紫色の帯が発話区間を表しています。3つの発話区間が検出され、それぞれに対して音声認識処理を行います。
非同期HTTPインタフェースとWebSocketインタフェースは、発話区間ごとに時間情報や音声認識結果、信頼度が得られます。詳細は発話区間の結果を参照してください。また、WebSocketインタフェースでは、発話の開始と終了のタイミングをリアルタイムで受け取ることができます。詳細は状態イベントの取得を参照してください。
同期HTTPインタフェースでは発話区間の結果は取得できません。
発話検出パラメータの調整
現在、AmiVoice APIでは発話検出パラメータの調整はできません。口述筆記や会議の文字起こしなどのアプリケーションでは多くの場合、変更は不要です。コールセンターのIVRや、ロボットとの対話などのアプリケーションでは、感度や発話終了の検出時間など、特定のパラメータの変更が必要となる場合があります。この場合は、AmiVoice API Privateを検討してください。