音声に関するベスト プラクティス

このページでは、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 ミリ秒フレームサイズをおすすめします。