ASR管理

このセクションでは、自動音声認識(ASR)対応のIVR閉じた 発信者が音声コマンド、キー入力、またはその両方を介して対話し、情報を取得したり、着信音声通話をルーティングしたり、あるいはその両方を行うことができる自動電話メニュー。メニューシステムをCXoneで管理する方法について説明します。

自動音声認識(およびNuance ASRエンジン)を理解しておくことは、効果的なASR対応のIVRシステムを作成するために重要です。このエンジンを使用するための完全なドキュメントは、Nuance社から入手できます。

調整

必須の権限:ASR調整レポートの表示

調整により、ASR Studioアクションの現在のパフォーマンスに関するデータに基づいて、ASRシステムを改善することができます。これはASRシステムを開発し、維持するための重要な要素です。

ASR調整レポートは、調整のプロセスで使用できる情報を提供します。スクリプト内で起動されたASRアクションの応答率を提供し、ASRが認識できなかった発話のリストを表示できます。このレポートは、アクションおよび各信頼ブランチ設定ごとに分類されています。

調整が有効な場合は、これらのセクションを展開して、そのセグメントから録音されたオーディオファイルを聞くことができます。これにより、ASRシステムが理解できなかった回答についての情報が得られます。これらは文法ファイルやフレーズリストに追加することができます。

ASRシステムの調整では、次を行えます。

  • ASR調整レポートを確認し、提供されるデータを評価します。
  • ASR調整レポートからの録音を聞いて、インタラクションに共通していることを理解する。
  • コンタクトが何を言っているのか、どのように言っているのかを特定します。
  • 学んだことに基づいて文法ファイルを更新します。
  • 必要に応じて信頼度の値を調整します。

調整を有効にする

IVRがPII(個人を特定できる情報)データを取得する場合、調整時にIVRのどの部分を記録するかを慎重に選択することをお勧めします。これにより、個人情報の取得に関する問題を回避することができます。たとえば、機密性の高いID番号を収集するAsrdigitsアクションがある場合、そのアクションの後に調整を開始することができます。これにより、ID番号が記録されることはありません。

IVRの調整作業が終了したら、調整を無効にします。調整機能をオンのままにすると、インタラクションごとに新しいオーディオファイルが作成されるため、サーバーに大きな肥大化とストレスが発生します。

  1. Studioで、ASRスクリプトを開いてVoiceparamsアクションを追加します。これは、調整中に作業したいASRアクションの前に配置する必要があります。
  2. スクリプト内でこのアクションの唯一の目的が調整のオン/オフである場合は、この用途を示すようにCaptionを変更します。例えば、 Tuning On and Off 。アクションを使用してIVRの言語も変更する場合、別のキャプションが必要になることがあります。
  3. VoiceparamsアクションでASRTuningEnabledプロパティをTrueに設定します。
  4. 調整が終わったら、ASRTuningEnabledプロパティをFalseに設定します。

調整パラメータ

Nuance ASRアクションにスクリプト固有の調整パラメータを割り当てることができます。これを行うには、Snippetアクションで動的データオブジェクトを設定します。オブジェクトnuanceTuningParamsJsonを呼び出します。その値は、デフォルトから定義されるNuanceパラメータを含む有効なJSON文字列でなければなりません。例:

DYNAMIC asrParams
ASSIGN asrParams.sensitivity = "87"
ASSIGN asrParams.Speech_Complete_Timeout = "1000",
ASSIGN asrParams.Speech_Incomplete_Timeout = "1000"
ASSIGN asrParams.No_Input_Timeout = "1000"
ASSIGN global:nuanceTuningParamsJson = "{asrParams.asjson()}" 		

パラメータに無効な値が設定されている場合、無効な値はそのパラメータのデフォルトに置き換えられ、invalidParamsListという変数が返され、変更された値がリストされます。

下の表に、Studioでサポートされている調整パラメータを示します。

Nuanceパラメータ 説明 Studioサポート
Speech_Complete_Timeout 発信者が話し終えたと結論付けるまでの待機時間。

nuanceTuningParamsJsonを使用してサポートされます。

デフォルト:"Speech-Complete-Timeout" : "0"

Speech_Incomplete_Timeout 発信者が話し終わったと判断するための沈黙期間。

nuanceTuningParamsJsonを使用してサポートされます。

デフォルト:"Speech-Incomplete-Timeout": "1500"

No_Input_Timeout

プロンプトが終了してからスピーチを待つ時間。

メモ:このパラメーターは、プロンプトの再生が始まるとカウントを開始します。これは、スクリプトがタイムアウトに達するのが早すぎることを意味している可能性があります。ASRアクションTimeoutSecondsプロパティは、プロンプトが終了するとカウントを開始します。

nuanceTuningParamsJsonを使用してサポートされます。

デフォルト:"No-Input-Timeout": "7000"

sensitivity 音声を探す時の音声検出器の感度。 デフォルト:50(0〜100のスケール)

Studio AsrアクションはNuanceの代わりにプロンプトを再生するため、CXoneでは次のNuanceパラメータはサポートされていません

ニュアンスパラメータ 説明 デフォルト値
swiep_suppress_barge_in_time プロンプトの最初で一時的に割り込みを無効にします。 0(遅延なし)
swiep_in_prompt_sensitivity_percent 発信者がプロンプトを割り込み(割り込み)、音声を検出するために大声で話す必要がある方法を制御します。 50(割合)
swirec_barge_in_mode 認識エンジンに特別な認識modを設定します。 normal

文法ファイル

文法ファイルを使用すると、コンタクトがプロンプトに応答して話す可能性のある多数の発話を一覧表示できます。Nuance ASRエンジンは、コンタクトの応答を文法ファイルのエントリと照合してみます。ASRエンジンは発話全体に対する一致を見つけなければならないため、文法ファイルはNuanceに、選択肢となる発話のフォーカスリストを提供します。

文法ファイルは、ASR機能付きIVRの精度を高める最も効果的な方法の1つです。ASRは実際の人間のインタラクションを分析し、それによってシステムが認識するオプションの量を指数関数的に増やします。このため、ASRシステムは、DTMF閉じた ユーザーが電話のキーパッドのキーを押すかタップしたときに生成される信号音。トーンにのみ応答するシステムよりもはるかに複雑です。DTMFは12のトーンを認識するため、IVRシステムが認識する必要のあるオプションは12種類になります。人間の音声には、ASRシステムが認識しなければならない音、単語、フレーズの選択肢や組み合わせが飛躍的に多く含まれています。

たとえば、会員番号の入力を求めるプロンプトに対して、コンタクトが「私の会員番号は123456789です」と回答したとします。ASRで強化されたスクリプトはこのフレーズ全体を認識しますが、他のスクリプトでは、コンタクトが番号だけでなく、「"My member number is...」というフレーズで発話を始めた場合、失敗します。

文法ファイルを更新する場合は、本番稼働のスクリプトで使用する前にファイル名を変更してください。これにより、更新プロセス中の競合を避けることができます。また、何らかの理由で元に戻す必要がある場合に備えて、元のファイルをバックアップとして残しておくことができます。スクリプトのASRアクションで文法ファイル名を指定する際に、変数置換を使用できます。

精度の向上

文法ファイルを使用すると、ASRシステムの精度が向上します。文法ファイルには、期待される情報に加えて、コンタクトが発言しそうな単語やフレーズを追加できます。たとえば、プロンプトがコンタクトに会員番号を尋ねる場合、文法ファイルに「会員番号は」、「たしか」、「ちょっと待ってください」などのフレーズを追加できます。

文法ファイルのフォーカスリストは、発話の順列の数を制限するのに役立ちます。期待される応答が長いほど、可能な応答の数も多くなります。文法ファイルは、一般的で使用される可能性が高いものを含めることによって、可能な応答の範囲を制限するのに役立ちます。

追加する可能性のあるすべての応答を考える必要はありません。調整プロセスは、コンタクトが実際にどのように話すかを学ぶために使用してください。調整中に学んだことに基づいて、文法ファイルを追加することができます。文法ファイルの作成は、コンタクトがシステムを使用する際にASRが応答を理解できないケースから学習するため、繰り返し行う必要があります。

発音のバリエーション

ASRシステムを調整する際には、発音のバリエーションに注意してください。フレーズリストや文法ファイルに、さまざまな音声スペルのエントリを複数追加しておくと便利です。

これは、プロンプトがしばしば発音を間違えたり、別の発音があったりする応答を引き出す場合に特に役立ちます。例としては、「菌類」(複数の菌類)があります。「fungi」エントリに加えて、「fun guy」、「fun gee」、「fun jee」という音声エントリを追加できます。

複数言語サポート

ASRは複数の言語をサポートしています。文法は言語固有のものです。エンジンが特にその言語の発話を探すように、ファイルのヘッダーで言語名を参照します。

任意の文法ファイルでは、参照される言語と同じアルファベット、文の構造などを使用する必要があります。たとえば、スペイン語固有の文法に「piñata」という単語を使用する場合、エントリでは「n」の上に波形記号(〜)を使用する必要がありますので、そのエントリは「piñata」ではなく「pinata」である必要があります。

ASRと自然言語処理の比較

ASRと文法ファイルでは、自然言語処理(NLP閉じた NLPとも呼ばれるこのプロセスは、人間の発話やテキストを理解し、人間のような言語で応答します。)システムと似た結果を得ることができますが、これらは同一ではありません。ASRはDTMFとNLPの橋渡しのようなものです。ASRですべてをキャプチャすることはできませんが、大半のものはキャプチャできます。これが、文法ファイルが非常に重要である理由です。文法ファイルが優れているほど、ASRシステムでより多くの応答を認識することができます。

文法ファイルについての重要情報

  • 文法ファイルは、ほとんどのASRStudioアクションに使用する必要があります。
  • AsralphanumAsrcurrencyAsrdateAsrdigitsAsrnumberAsrtimeおよびAsryesnoアクションには、組み込みの文法ファイルがあります。組み込み文法ファイルに加え、独自の文法ファイルを作成して使用することもできます。
  • AsrおよびAsrmenuアクションには、組み込みの文法ファイルがありません。これらについては独自に作成する必要があります。
  • AsrcompileアクションとAsrsqlアクションを使用すると、既存のデータベースからカスタム文法ファイルを作成できます。
  • 記号は文法ファイルの発話では使用できませんが、値とともに返すことができます。
  • 文法ファイルの作成は何度も行う必要があります。ASRシステムをチューニングするたびに、文法に追加する新しいエントリが見つかります。

文法ファイルの例

次の3つの文法ファイルをダウンロードすることができます。

Color_Grammar_Example.grxml(ZIPファイル内)

Digits_Grammar_Example.grxml(ZIPファイル内)

Format_Grammar_Example.grxml(ZIPファイル内)

これらの例は、文法ファイルの構造を作成するための「ルールアプローチ」を示しています。このアプローチでは、接頭辞、主文法、接尾辞の3つのルールを使用します。接頭辞は、「それは」、「ええと」、「そうだと思う」など、情報の本文を提供する前に人々がよく言う発話です。接尾辞は、「かな」または「かも」のように、発話の最後に追加される小さなものです。真ん中のルールは実際の文法であり、色、数値、モデルなど、収集するデータの可能なすべてのエントリを定義できます。

ASRのパラメータと設定

このセクションでは、ASRのいくつかの重要なパラメータと設定に関する情報を提供します。

信頼パラメータ

ASRエンジンは、発信者が話したフレーズを認識すると、発話とフレーズリストまたは文法ファイルとの一致結果についてどの程度自信があるかを示すパーセンテージを返します。信頼度のパーセンテージは、ASR対応のIVRスクリプトのさまざまなブランチにコールをルーティングするために使用できます。

CXoneで使用される信頼水準は以下の通りです。

  • :信頼度が高い。通常75%以上。信頼度の値はASRアクションのHighConfidenceプロパティで設定します。コンタクトは、発話をさらに確認することなく、OnHighConfidenceブランチを介してルーティングできます。
  • 中程度:高信頼度と最低信頼度の中間。コンタクトをOnMedConfidenceブランチにルーティングし、発話の確認を求めることができます。このカテゴリにはプロパティがありません。設定された最小レベルと高レベルの間にあるものはすべて、このブランチでルーティングできます。
  • 最小:許容できる最低限の信頼度。信頼度の値はASRアクションのMinConfidenceプロパティで設定します。この値は、OnMedConfidenceブランチの範囲の下限を設定します。
  • 信頼度なし:発話は認識できず、ASRエンジンはそれを解釈できません。MinConfidence値より小さいものはすべてこの範囲に入ります。コンタクトはOnNoConfidenceブランチを経由してルーティングされ、発話を繰り返すように求められます。

ほとんどのASRアクションには、信頼度別のブランチがあります。これにより、ユーザーエクスペリエンスをカスタマイズし、精度のばらつきに対処することができます。信頼変数はシステム変数であるため、システム変数をトレースに表示できるようにしない限り、スクリプトトレースには表示されません。

信頼度は、バックグラウンドノイズや会話、アクセント、または文法ファイルエントリのスペルなどの要素の影響を受けます。

MAXは、バックグラウンドノイズのレベルの測定とフィルタリング、エージェントの音声検出などを支援するために、エージェントにPersonal Connection音声しきい値設定を通じてスキルが割り当てられている場合に、感度をカスタマイズする方法を提供します。

タイムアウト設定

アクションが発話を感知して一致の検索を試みる時間の長さ。 デフォルトの長さは10秒です。

音声間タイムアウトの設定

コンタクトが発話を停止した後、システムが待機する時間です。システムはコンタクトが発話の途中でないことを確認するために待ちます。これはDTMF閉じた ユーザーが電話のキーパッドのキーを押すかタップしたときに生成される信号音。InterDigitTimeout設定と似ています。

たとえば、口座番号を入力する場合、コンタクトは通常、間を空けて数字をグループ化します。例:「123 <間> 456 <間> 789 <間>」。前の例の<一時停止>は、音声間タイムアウトを表しています。デフォルト値は3秒です。スクリプトを作成または調整する時は、コンタクトが話すのにかかる時間、発話タイムアウト時間、および処理のためのわずかな時間を考慮することを忘れないでください。タイムアウトの設定が多すぎると、互いに重なり合ってアクションが失敗することがあります。

エラー

エラー 説明
ASRの初期化に失敗 メディアサーバーはASRサーバーに接続できません。これは、ASRサービスが実行されていない、ポートが開いていないなど、いくつかの原因が原因である可能性があります。
文法ファイルエラー:文法をコンパイルできませんでした。文法で構文エラーを確認してください。 通常、文法のXMLの問題が原因です。
URLエラー。Recognizerは指定されたURLにアクセスできませんでした 文法が存在しないか、正しく参照されていないか、ファイルサーバーに到達できませんでした。
結果 ASRが検出されたかどうかを判別します。
ASRCONF 結果のASR信頼値、0〜100。
ASRCOMPLETIONCAUSECODE ASRの完了を示します。
ASRERRORMESSAGE Nuanceによって報告されたエラーのテキストによる説明。
ASRSTATUSCODE 次のいずれかの値でステータスを示します。
  • ASR_STATUS_WAITING = 100(TCPオープンはまだ待機中です)
  • ASR_STATUS_OK = 200
  • ASR_STATUS_DTMF = 298
  • ASR_STATUS_RECOGNITION_FAILED = 299
  • ASR_STATUS_MALFORMED_CONFIDENCE_RESULT = 300
  • ASR_STATUS_CLIENT_ERROR = 400
  • ASR_STATUS_SERVER_ERROR = 500
  • ASR_STATUS_SERVER_ESTABLISHMENT_FAILED = 590
  • ASR_STATUS_SERVER_SELECT_WSAEINTR = 591
  • ASR_STATUS_SERVER_CLOSED_TCP_CONNECTION = 592
  • ASR_STATUS_SERVER_TCP_RECV_FAILED = 593
  • ASR_STATUS_NO_RELAY_LINE_AVAILABLE = 594
  • ASR_STATUS_SERVER_TCP_OPEN_TIMED_OUT = 595
  • ASR_STATUS_SERVER_RESPONSE_TIMED_OUT = 596
  • ASR_STATUS_MAX_SESSIONS_EXCEEDED = 597
  • ASR_STATUS_DUPLICATE_ENABLE_REQUEST_ERROR = 598
  • ASR_STATUS_INTERNAL_ERROR = 599
  • ASR_STATUS_STOPPED_BY_MEDIA_CHANNEL = 998