このページでは、Google Assistant API に音声データを提供する際のおすすめの方法について説明します。これらのガイドラインは、効率性と正確性を高め、サービスからの妥当な応答時間を実現することを目的としています。
音声の前処理
高音質の適切な位置に置かれたマイクを使用して、可能な限り明瞭な音声を生成することをおすすめします。ただし、音声をサービスに送信する前にノイズ低減信号処理を適用すると、一般に認識精度が低下します。このサービスはノイズのある音声を処理するように設計されています。
最良の結果を得るために、次のことを行います。
- 特にバックグラウンド ノイズがある場合には、できる限りユーザーの近くにマイクを置きます。
- 音声のクリッピングを避けます。
- 自動利得制御(AGC)の使用を避けます。
- すべてのノイズ低減処理を無効にします。
次のようにするのが理想的です。
- 入力信号がクリップされず、音声のピークレベルが約 -20 ~-10 dBFS に達するように音声レベルを調整する必要があります。
- デバイスは、ほぼ「フラット」な振幅周波数特性(+- 3 dB、100 Hz ~ 8,000 Hz)を示す必要があります。
- 高調波ひずみの合計は、SPL 入力レベル 90 dB で、100 Hz から 8,000 Hz の 1% 未満にする必要があります。
サンプリング レート
可能であれば、音源のサンプリング レートを 16,000 Hz に設定します。それ以外の場合は、(再サンプリングするのではなく)音源のネイティブ サンプルレートと一致するように sample_rate_hertz
を設定します。
フレームサイズ
Google アシスタントは、マイクからキャプチャされたライブ音声を認識します。音声ストリームはフレームに分割し、連続する AssistRequest
メッセージで送信する必要があります。フレームサイズは任意のサイズにすることができます。フレームが大きいほど効率は向上しますが、レイテンシが増加します。レイテンシと効率の適切なトレードオフとして、100 ミリ秒フレームサイズをおすすめします。