発話区間検出

IBM Watson® Speech to Text サービスには、音声認識に使用される音声を制御するための 2 つの発話区間検出パラメーターが提供されています。 これらのパラメーターは、発話以外のイベントおよび背景ノイズに対するサービスの感度を指定します。 パラメーターは独立しています。パラメーターは個別に使用することも、一緒に使用することもできます。

発話区間検出は、ほとんどの言語モデルでサポートされています。 詳しくは、言語モデルのサポートを参照してください。

発話区間検出の仕組み

音声活動検出は入力音声ストリームを使用し、ストリームのどの部分を音声認識に渡すかを決定する。 背景音声やノイズは、入力音声の誤った書き取り、余分な単語、単語の欠落など、音声認識エラーの原因となります。 発話区間検出機能は、目的の音声のみを音声認識の対象として処理するための機能です。

この機能を使用して、音声認識の次の側面を制御できます。

  • 背景の発話を除去する。 コール・センターのデータには、他のエージェントからの漏話 (周囲の会話) が入ることがよくあります。 音量しきい値を設定することで、指定したレベルより小さなバックグラウンド音声は無視されます。
  • 背景のノイズを除去する。 工場の中で録音された発話などのように、多くの背景ノイズが入っている音声があります。 しきい値を設定することで、指定したレベルより静かなバックグラウンドノイズを無視することができます。
  • 発話以外の音声イベントを除去する。 背景の音楽や発信音のイベント、例えば、保留状態で待っているクライアントに流す音楽などが原因で不正確な認識が行われることがあります。 また、無音も不必要な認識や書き起こしのエラーの原因になることがあります。 しきい値を設定することで、指定したレベルより静かなイベントは無視されます。

デフォルトでは、発話区間検出は、各モデルの一般的なケースで最適なパフォーマンスを発揮するように構成されています。 特殊なケースでは、デフォルトの設定が最適ではなく、書き起こしの速度の低下や、余計な単語の挿入や削除につながる可能性があります。 さまざまな設定を試し、音声に最も適した値を求めることをお勧めします。

音声検出機能の感度

speech_detector_sensitivity パラメーターを使用して、発話区間検出の感度を調整します。 このパラメーターを使用して、音楽や咳などの発話以外のイベントによる単語の挿入を抑制できます。 サービスは、入力音声のチャンクを発話区間および非発話区間の事前モデルと比較して評価することで、音声認識の対象として渡す音声にバイアスをかけます。

0.0 から 1.0 までの範囲の浮動小数点値を指定します。 デフォルト値は 0.5 で、これは感度のレベルとして妥当なレベルを表します。 値 0.0 は、すべての音声を抑制します (発話は書き起こされません)。 値 1.0 は、音声を抑制しません (発話検出の感度は無効です)。 値は、発話に対する感度の単調曲線で増加します。 通常は、小数点以下 1 桁または 2 桁の精度 (例えば、0.55) を指定するだけで十分です。

このパラメーターは、音声認識の品質と待ち時間の両方に影響を与える可能性があります。

  • より小さい値は、音声認識のために通過する音声データ量が少なくなる可能性があるため、レイテンシーを低減できます。 ただし、値を小さく設定すると、実際の音声を含むチャンクが破棄され、文字起こしから有用なコンテンツが失われる可能性があります。
  • 値が高いほど待ち時間は長くなります。これは、音声認識の対象として渡される音声が潜在的に多くなるからです。 ただし、値を高く設定すると、音声データのうち非発話イベントを含む部分が通過し、文字起こしに不要な内容が含まれる可能性があります。

音声検出機能の感度の例

以下の要求の例では、同期 HTTP インターフェースで speech_detector_sensitivity パラメーターに値 0.6 を指定しています。 サービスは、発話以外のイベントをデフォルトよりも若干多く認識する可能性があります。

IBM Cloud

curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?speech_detector_sensitivity=0.6"

IBM Cloud Pak for Data IBM Software Hub

curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?speech_detector_sensitivity=0.6"

音声アクティビティ検出(SAD)

Speech Activity Detection (SAD) は、Speech To Text recognize API の既存のメソッドに加え、新たに改良されたメソッドを含むようにアップグレードされました。 新しい方法は、音声ストリーム内の音声境界を検出する精度と性能を向上させる。 sad_module:2 を設定することで使用できる。

強化された機能

SADには以下のような強化機能がある:

  • 音声の開始と終了を検出する性能が向上。
  • ノイズ抑制の改善。
  • 音声のあるセグメントを識別する際の応答時間を短縮。
  • ノイズの多い環境での認識精度が向上。

スピーチ開始イベント検出

スピーチ開始イベント検出を使用することで、 recognize APIで早期通知を受け取ることができるようになりました。 これは、入力されるオーディオ・ストリームの話し始めを検出し、ユーザーに通知を送る。 リクエストに speech_begin_event: true が設定されると、スピーチセグメントの開始を示す新しいレスポンスオブジェクトが送信される。 リアルタイムのトランスクリプションやボイスアクティブドリブンのアプリケーションに役立ちます。 例えば、 speech started または active インジケーターを表示したり、リアルタイム処理パイプラインを準備するなど、クライアントアプリケーションが下流のアクションをトリガーするために使用することができる。

スピーチ開始イベントは2つのシナリオで発生する:

  1. 音声ストリームで最初に音声が検出された場合
  2. end_of_phrase_silence_time 、新しい音声が検出された場合

検出の感度は、 speech_event_sensitivity (デフォルト 0.5 ) パラメータを使用して調整できます。このパラメータは、発話開始イベントをトリガーする音声信号の強度を示す指標です。

数値が大きいほど、発話に対してより敏感であることを示す。 値が 0 に近いほど、バックグラウンドノイズの影響を受けにくくなる。 1に近い値を設定すると、発話開始イベントを検出する可能性が高くなりますが、ノイズの多い環境では誤警報が発生する可能性があります。

speech_detector_sensitivity パラメータで制御される STT トランスクリプトとは別に、 speech_event_sensitivity を使用することで、スピーチ開始イベントの感度を制御することができます。 speech_event_sensitivity は、 speech_begin_event のノイズを無視するため、誤ったバージインイベントが発生する可能性があります。

背景音声の抑制

background_audio_suppression パラメーターを使用して、音量に基づいて背景音声を抑制し、音声として書き起こされないようにします。 このパラメーターを使用して、周囲の会話や背景ノイズを抑制できます。 例えば、微弱なオーディオ信号のような、安定した静かな背景音を管理するためにこのパラメーターを使用します。 このようなノイズは書き起こしを阻害することがあるため、実際には音声に発話が含まれていないコンテンツが生成される可能性があります。

0.0 から 1.0 までの範囲の浮動小数点値を指定します。 デフォルト値は 0.0 で、これは抑制を行いません (背景音声の抑制は無効です)。 値 0.5 は、一般的な用途での音声抑制として妥当なレベルです。 値 1.0 は、すべての音声を抑制します (発話は書き起こされません)。 値は、単調曲線で増加します。 通常は、小数点以下 1 桁または 2 桁の精度 (例えば、0.55) を指定するだけで十分です。

このパラメーターも、音声認識の品質と待ち時間の両方に影響を与える可能性があります。 ただし、背景ノイズ抑制はデフォルトでは無効であるため、このパラメーターを 0 より大きい値に設定しても待ち時間が改善されるだけです。 しかし、大きい値を設定するほど、音声認識の対象として渡される音声が段階的に少なくなるため、有効なコンテンツが書き起こしから失われる可能性があります。

背景音声の抑制の例

以下の要求の例では、同期 HTTP インターフェースで background_audio_suppression パラメーターに値 0.5 を指定しています。 サービスは、背景音声を妥当なレベルで抑制します。

IBM Cloud

curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?background_audio_suppression=0.5"

IBM Cloud Pak for Data IBM Software Hub

curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?background_audio_suppression=0.5"

言語モデルのサポート

speech_detector_sensitivity および background_audio_suppression パラメーターは、以下の言語モデルでの使用がサポートされています。

  • 大規模な音声モデルや次世代モデルの場合、 パラメータはすべてのモデルでサポートされる。
  • 前世代モデルについては、 ほとんどのモデルでパラメータがサポートされています。 以下のモデルは現在、音声活動検出をサポートしていません。 これらのモデルでパラメーターが使用されている場合、それらは無視されます。
    • アラビア語広帯域モデル (ar-MS_BroadbandModel)
    • ブラジル・ポルトガル語広帯域モデル (pt-BR_BroadbandModel)
    • 中国語広帯域モデル (zh-CN_BroadbandModel)
    • 中国語狭帯域モデル (zh-CN_NarrowbandModel)
    • ドイツ語広帯域モデル (de-DE_BroadbandModel)