まず、図1〜図10に従って、対話式応答システム並びに関連する機械学習システムおよびプロセスの動作についての記述を提供する。その後、図11〜図16に従って、ASRプロキシシステム並びにそれに関連するプロセスの動作についての記述を提供する。図17〜図24および対応する考察は一般に、ASRプロキシを最適化するプロセスに関し、目標は、コンピュータ認識の自動化と人間援助型認識との組合せを最適化すると同時にユーザ体験を向上させることである。特段に明白でない限り、本明細書で使用される用語「意図」および「意味」は、発話に対応するコンテキスト上の理由を指すことに留意されたい(例えば、新しいフライト予約をするという発信者の用件意図をシステムに決定させる)。対照的に、用語「認識する」およびその派生語は一般に、本明細書では、音をそれに対応する単語に変換するプロセスに使用される。
人間援助型決定エンジンを使用して、マルチチャネルおよびマルチモーダルシステムが実現される。これは、「対話」を自動化にルーティングした後で、かつ自動化からの予測結果に応じて、予測データおよびキャパシティ要因のセットに基づいて、自動認識の競合の前であってもHSRの使用を決定する。ある実施形態では、システムは、「発話」または「ビデオ」を自動的に加速させ、自動化と人間援助との間の時間ギャップをさらに短縮する。
プロンプトに対する応答の解釈は、テキスト分析の2つの種類、すなわち情報抽出およびセンス分類として見ることができる。情報抽出は、顧客ID、電話番号、日時、住所、製品タイプ、問題など、用件フォームのスロットを埋めるのに不可欠な特定の情報断片を、識別、抽出および正規化することである。センス分類は、追加の2つの情報タイプ、すなわち意味(意図)および応答品質を識別することに関係する。意味(意図)は、どんな種類のフォームを埋める必要があるかということと関係がある(料金請求、予約のスケジューリング、苦情など)。応答品質は、応答自体と関係がある(不明瞭、雑音、英語ではなくスペイン語、生のエージェントと話したいという要望など)。
この応答解釈は、意図分析のみ(純粋なHSR)によって行うか、自動化(ASRおよび意図分類)によって行うか、またはASRとHSRの何らかの組合せによって行うことができる。ASR自動化の結果における信頼度測定基準を使用して、いつASRが信頼性のある結果を生成しているかを決定することで、限定的な品質損失でまたは品質損失なしに、ASR自動化をHSRに対してトレードオフすることが可能である。このことは、プロキシ処理システムにおけるこの2つの手法の組合せにより、HSRのみを使用する場合よりも大きなスループットを達成することができ、より小さい意図分析者チームでピーク需要負荷を処理できることを意味する。
図1は、対話式ルータ101(以下「iルータ」と呼ぶ)を介して対話プラットフォーム102を対話式応答システム100に接続するアーキテクチャの一実施形態を示す。図1に示すように、対話プラットフォーム102は、通信リンク104を介して顧客103に接続される。対話プラットフォーム102はまた、データリンクを介してiルータ101において対話式応答システム100に接続され、データリンクは、この例示的な実施形態ではTCP/IPデータリンクを含む。この例示的な実施形態における対話プラットフォーム102は、コンピュータサーバを含む。コンピュータサーバの正確な構成は実装形態によって異なるが、通常は、Dialogic(登録商標)などのベンダからの音声ボードを使用してWindows(登録商標)やLinux(登録商標)などのオペレーティングシステムを実行するPentium(登録商標)ベースのサーバからなる。対話プラットフォーム102はまた、Eメールゲートウェイまたはウェブサーバとすることもできる。従って、顧客入力は、電話または構内通話を介して対話式応答システム100に入り、テキストは、Eメールまたは対話式チャットインタフェース(例えば、ウェブページ、若しくはYahoo Messengerなどのスタンドアロンアプリケーション)を介して入力される。
図1のアーキテクチャでは、様々な実施形態で、いくつかの異なるタイプのデバイスを使用して対話プラットフォーム102および通信リンク104の各々が実現される。対話プラットフォーム102は、顧客103と通信できる任意のデバイスによって実現することができる。例えば、対話プラットフォーム102は、一実施形態では、対話式応答システム100中の電話サーバであり、この場合、顧客は電話をかけている。電話サーバは、入来呼の応答、転送および切断を扱う。電話サーバはまた、事前録音済みオーディオクリップのための倉庫であり、従って電話サーバは、任意のウェルカムプロンプト、およびiルータ101によって指示された他のオーディオクリップを再生することができる。
本実施形態による電話サーバは、オフザシェルフ(off the shelf)コンポーネントから、例えば、オペレーティングシステムとしてのWindowsと、Pentiumプロセッサなどの中央処理装置と、Intel(登録商標)Dialogic音声ボードとから組み立てられる。このアーキテクチャを使用した場合、通信リンク104は、顧客の電話と電話サーバの間のインタフェースを提供する任意の手段によって実現される。例えば、通信リンク104は、様々な実施形態で、ダイヤルアップ接続または双方向ワイヤレス通信リンクである。
別の例示的な実施形態では、対話プラットフォーム102は、対話式応答システム100中のゲートウェイサーバである。この例示的な実施形態によれば、顧客は、Eメール、対話式テキストチャットまたはVOIPによって、対話式応答サーバと対話する。ゲートウェイサーバは、カスタマイズドオープンソースEメール、wwwサーバソフトウェアまたはSIPを実行する。さらに、この例示的な実施形態によるゲートウェイサーバは、Eメール、対話式テキストチャットまたはVOIPトランザクションを顧客と行うとともに、システムの他の要素とのデータ転送および受信もするように設計される。このアーキテクチャを使用した場合、通信リンク104は、顧客のコンピュータとゲートウェイサーバとの間のインタフェースを提供する任意の手段によって実現される。例えば、通信リンク104は、様々な実施形態で、専用インタフェース、単一のネットワーク、ネットワークの組合せ、ダイヤルアップ接続またはケーブルモデムである。
図1には対話プラットフォーム102が1つしか示されていないが、本明細書を検討した後には、複数の対話プラットフォーム102をこのシステム中で使用できることを当業者なら理解するであろう。対話プラットフォーム102が複数ある場合、対話式応答システムは、音声およびテキストデータを介して顧客と通信することができる。さらに、顧客ベースごとの専用対話プラットフォーム102によって、複数の顧客ベースに対応することもできる。このようにして、複数の対話プラットフォーム102のうちのどれが対話を開始したかを決定することによってワークフロー(後で詳述する)が選択される。
図1のアーキテクチャでは、iルータ101は、対話式応答システム100を制御するソフトウェアを備える。iルータ101は、他のコンポーネント間のアクティビティを調整しトランザクションを管理することによって、顧客103との対話を始めから終わりまで「所有する」。iルータ101は、1または複数のプログラム可能スクリプト(この例示的な実施形態によれば「ワークフロー」と呼ばれる)に従って、顧客103との対話を管理する。一般に、ワークフローは、ワークフローを通る経路が、顧客から入力された意図に依存するような、対話フローを含む。ワークフローは、システムエンジニアによって事前にプログラムされ、有利には、顧客満足や速度や精度などを向上させるために定期的に「小改良」される。この例示的な実施形態によれば、iルータ101は、ほぼ常に、ワークフロー中の次のステップまたは経路を選択することを「受け持っている」。
iルータ101は、顧客コミュニケーションの形に応じて、オーディオクリップ、Eメール、テキストデータまたは他の対話タイプの形で、対話プラットフォーム102から入力された対話を受信する。iルータ101は、この入力を、1または複数の人間エージェント105(「意図分析者」すなわち「IA」と呼ばれることもある)、音声認識エンジンまたはエキスパートシステム(まとめて108、また「自動音声レコグナイザ」すなわち「ASR」と呼ばれることもある)に転送し、応答を利用してその現在のワークフローを進める。入力を人間によって解釈(または翻訳)することが必要なときは、iルータ101は、現在のワークフローの適切な視覚コンテキストを表示するよう、人間エージェントのデスクトップソフトウェアに指示する。iルータ101が入力を理解すると、iルータ101は、ワークフローの中を進み、対話プラットフォーム102に、顧客103に適切に応答するよう指示する。
対話プラットフォーム102が電話サーバを含む例示的な一実施形態では、iルータ101は、顧客に対して再生するためのサウンドクリップを送るか、テキスト−音声クリップを送るか、またはこの両方を送る。あるいは、対話プラットフォーム102は、サウンドクリップを記憶することができるか、テキスト−音声機能を有することができるか、またはこの両方とすることができる。この実施形態では、iルータは、顧客に対して何をいつ再生するかについて、対話プラットフォーム102に指示する。
iルータ101は、この例示的な実施形態では、WindowsやLinuxなどのオペレーティングシステムを実行するネットワーク化されたオフザシェルフの市販プロセッサを備える。さらに、iルータ101のソフトウェアは、特定の適用例に適したオブジェクトを組み込んだ、修正されたオープンVoiceXML(VXML)ブラウザおよびVXMLスクリプトを含む。本明細書を検討した後には、これらのオブジェクトをどのように構築するかを当業者なら理解するであろう。
図1の例示的なアーキテクチャによれば、対話式応答システム100は、人間エージェント105の少なくとも1つのプールを含む。人間エージェント105のプールはしばしば、コンタクトセンタ所在地に位置する。人間エージェント105は、本発明のこの実施形態によれば、システム100に特有の特殊化されたデスクトップソフトウェア(図3B、図4Bおよび図5Bに関してさらに後述する)を使用し、このソフトウェアは、可能性ある意図の集まりを、その時点までの顧客対話の履歴またはコンテキストと共に、それらの画面(それらのユーザインタフェース)上に提示する。1または複数の人間エージェント105は、入力を解釈し、適切な顧客意図、データ、またはこの両方を選択する。
電話対話の場合、人間エージェント105は、ヘッドホンを装着し、iルータ101の指示で電話サーバ102からストリーミングされるサウンドクリップ(「発話」)を聞く。本発明の一態様によれば、単一の人間エージェント105が顧客103に関するトランザクション全体を扱うことにはならない。そうではなく、人間エージェント105は、顧客103の発話を人間によって解釈することが必要であるものとしてワークフローデザイナによって指定された、トランザクションのいくつかの部分を扱う。iルータ101は、同じ顧客103対話を任意の数の人間エージェント105に送ることができ、所与の対話の一部を多くの異なる人間エージェント105に分配することができる。
本発明の例示的な実施形態によれば、人間エージェント105はオフサイト(Off site)であることが好ましい。さらに、人間エージェント105は、インド、フィリピンおよびメキシコなど、世界の種々の地理エリアに存在してよい。人間エージェント105は、建物内で集団になっていてもよく、または自宅から作業していてもよい。年中無休の人間エージェントサポートを必要とする適用例では、各人間エージェント105が適切な業務時間中に作業できるように、人間エージェント105を世界中に配置することができる。
本発明の対話式応答システム100は、カスタム人間エージェントアプリケーションソフトウェアを利用する。人間エージェント105は、Javaで開発され標準的なコールセンタコンピュータネットワークのワークステーション上で実行される、カスタムアプリケーションを使用する。概して言えば、対話式応答システム100は、顧客103の入力の解釈に向かう人間の知能を、「意図」(顧客が何を欲するか)およびデータ(顧客が何を欲するかを決定するのに必要な任意のデータ)に適用する。解釈は通常、この例示的な実施形態では、何が言われたかについての最も正しい解釈を選択肢のリストから選択することを含む。代替の一実施形態では、コンピュータ支援型データ入力(例えば、テキスト入力またはEメールアドレス入力のオートコンプリート)が、エージェント処理と共に使用される。
オフザシェルフコンポーネントである本発明のワークフローサーバ106は、対話ルータによって使用されるワークフローのアーカイブである。ワークフローサーバ106は、一実施形態では、標準的なサーバオペレーティングシステムを実行する市販のプロセッサを使用して、オフザシェルフハードウェアによって構築され、この例示的な実施形態では、ワークフロードキュメントはXMLで書かれる。ワークフローサーバ106は、iルータ101の挙動を統制する業務規則のまとまりを維持する。
対話式応答システム100は、ワークフローを策定するためにビジネス分析者またはプロセス技術者によって使用されるワークフローデザイナを利用する。ワークフローは、音声認識とのまたは人間エージェントとの所与の対話においてiルータ101が従うマップとしての働きをする。ワークフローは、顧客入力に応答して、ワークフロー中の経路に沿ってiルータ101の「舵をとる」。ワークフロー中の場所は、その時点までに収集されたデータと共に、「コンテキスト」と呼ばれる。
ワークフローデザイナは、人間エージェント105の意図解釈をガイドするために、人間エージェント105に対する命令をワークフローに構築する。ワークフローデザイナは、XMLドキュメントの構築に焦点を合わせるようにカスタマイズされたEclipse(登録商標)ソフトウェア開発環境のバージョンを含んでよい。しかし、本明細書を検討した後には、当業者ならワークフローデザイナを開発できるであろう。
本発明の、性能および対話アーカイブ107は、任意の一般的なコンピュータサーバハードウェア上で維持できるデータベースを含む。性能および対話アーカイブ107は、顧客103とのシステムトランザクションのアーカイブデータ(すなわち、顧客103との対話からのサウンドクリップ、Eメール、チャットなどのリポジトリ)と、人間エージェント105についての性能データとの、両方を含む。
この例示的な実施形態は、対話のグループに関する統計を生成するために、または人間エージェント105の性能ランキングを表示するために、「リポータ」ソフトウェアを利用する。リポータソフトウェアはまた、対話アーカイブ107に記憶された顧客103のコンタクトを構成したサウンドクリップ、Eメール、またはチャットテキストから、顧客103との対話を再構築することができる。リポータソフトウェアは、一連の単純なスクリプトであり、任意の一般的なサーバハードウェア上で実行されてよい。
この例示的な実施形態はまた、マネージャ/管理者ソフトウェアも含み、このマネージャ/管理者ソフトウェアは通常、リポータソフトウェアと同じステーションから実行される。マネージャ/管理者ソフトウェアは、対話式応答システム100についての動作パラメータを設定する。このような動作パラメータは、負荷平衡、ワークフロー中の変更のアップロード、および他の管理変更のための、業務規則を含むが、これらに限定されない。特定の一実施形態では、マネージャ/管理者ソフトウェアは、標準的なコールセンタコンピュータワークステーション上で実行される小さいカスタムJava(登録商標)アプリケーションである。
サポートシステム108は、顧客103の要求に応答する際に利用できる多くのデータベースおよび顧客プロプライエタリシステム(Nuance(登録商標)などのオフザシェルフ自動音声認識(ASR)ソフトウェアも含む)からなる。例えば、サポートシステム108は、顧客情報または知識ベースのためのデータベースを含んでよい。音声認識ソフトウェアは、この例示的な実施形態では、顧客103の発話を解釈するのに使用されるオフザシェルフコンポーネントである。サポートシステム108はまた、テキスト−音声機能も含んでよく、これはしばしば、顧客103に対してテキストを読み上げるオフザシェルフソフトウェアである。
本発明の会社エージェント109は、ワークフローが問い合わせをする、顧客103要求を扱う人間エージェントからなる。例えば、顧客103が会社のことで援助を得ようと意図しており、外部委託された人間エージェント105がこの意図を識別した場合、ワークフローは、電話を会社エージェント109に転送するよう、対話式応答システム100に指示することができる。
対話式応答システム100の要素は、この例示的な実施形態ではTCP/IPネットワークを介して通信する。通信は、iルータ101が従うワークフローによって駆動される。この実施形態における「データベース」は、フラットファイルデータベース、関係データベース、オブジェクトデータベースまたはこれらの任意の組合せとすることができる。
次に図2から図5に移るが、これらの図は、顧客が電話を介して対話式応答システム100と対話するときに、どのように対話式応答システム100によって情報が取り出され処理されるかについての例を示す。図2に示す例は、必要な全てのハードウェア、ソフトウェア、ネットワーキングおよびシステム統合が完全であること、並びに、ビジネス分析者がグラフィックワークフローデザイナを使用して顧客対話における可能性あるステップを策定済みであることを前提とする。ビジネス分析者はまた、対話式応答システムが顧客103に対して言うかもしれないどんなことについても、テキストを作成済みである。これらは、最初のプロンプト(例えば「お電話ありがとうございます。今日はどんなご用件ですか?」)、顧客への応答、追加情報の要求、「口ごもる音声」(iルータ101が応答を決定している間に顧客に送られる音)および締めくくりの言葉を含むが、これらに限定されない。テキスト−音声ソフトウェアまたはボイスタレントのいずれかが、ビジネス分析者によって書かれたサーバ側音声のそれぞれを録音する。このワークフローは、対話式応答システム100にロードされ、そこでiルータ101によって利用可能である。
ブロック201に示すように、対話は、顧客103が会社の顧客サービス電話番号に電話することで開始する。対話プラットフォーム102(この場合は電話サーバ)が、電話に応じ、ブロック202に示すように、(1)発信者のANI/DNIS情報、または(2)他の業務規則(例えば、電話が入来した回線または中継線)のいずれかに基づいて、ワークフローデータベースに記憶された適切なワークフローを取り出す。電話サーバは、ブロック203に示すように適切なウェルカムプロンプトを再生し、顧客はこのプロンプトに応答する(ブロック204)。
例えば、架空の航空会社であるインターエアが、本発明のコールセンタ実施形態による対話式応答システムを介して顧客サービスを提供する。従って、対話プラットフォーム102は電話インタフェースであり、iルータ101は、インターエアにふさわしいワークフローを選択する。
図3Aの例証的なワークフローに、ワークフロー中の第1のポイントまたはコンテキストを示す。顧客発話はなく、従って、キャプチャすべき(かつ応答すべき)意図またはデータはない。唯一の応答は、挨拶、および顧客入力を求めるプロンプトである。
処理は図2のフローチャート中のボックス204に進む。電話サーバは、顧客の口頭入力をディジタル化するのを開始し、iルータに接続する。この時点で、ワークフローまたは業務規則は、顧客に対する対話式応答を人間エージェントによって扱う必要があるのか音声認識ソフトウェアによって扱う必要があるのかを決定する。すなわち、iルータは、電話のための適切なワークフローをワークフローリポジトリから選択し、ワークフロー規則に従って顧客との会話を行う。
顧客の言葉を解釈するために、iルータ101は適宜、ブロック205に示すように、サポートシステムからのASRを使用するか、または顧客のオーディオをコンタクトセンタ中の人間エージェント105にストリーミングさせる。人間エージェント105がワークフローによって必要とされる場合は、iルータ101は、ブロック207に示すように、負荷平衡アルゴリズムを適用することによって、利用可能な人間エージェントを識別し、彼らの画面上でポップアップをトリガし(図3Bの、最初は空のポップアップ画面に示すように)、いくつかの選択可能な意図オプションを提示し、識別された人間エージェントに顧客オーディオをストリーミングし始める。本開示が与えられれば当業者なら思いつくであろうが、この負荷平衡は、様々な時点で、様々な要因のいずれかに基づいて、発話を解釈するためのより多いかまたは少ない人間エージェントを識別することを含む。ブロック210および211に示すように、人間エージェントは、顧客の発話をヘッドホンで聞き、コンピュータソフトウェアが発話の解釈を促す。
図4Aの例示的なワークフローによれば、1または複数の人間エージェントが聞く顧客発話は、「今日の午後のシカゴからロンドンへの自分のフライトを確認したい。」である。図4Bに示すように、エージェントの画面は、現在のコンテキスト(またはワークフロー中のポイント)を示す。この例証的なスクリーンショットでは、人間エージェントが選択できる、可能性ある要求(回答不能および終了を含む)が12個ある。稼働時には、エージェントに利用可能な可能性ある解釈は数百個ある。このように選択が多種多様であることで、解釈のフレキシビリティがエージェントに与えられ、これによりiルータは、解釈された意図に従ってそのワークフロー中で跳び回ることができる。従って、本発明の一態様によれば、iルータは、顧客が途中で主題を変えたとしても、適切に応答することができる。
それぞれの場合に、各エージェントは、ワークフローの現在のコンテキストで顧客発話の最もふさわしい解釈であると感じるものを選択する。図4Bの例では、人間エージェントは、「CFT」(フライト時間の確認)を選択し、出発都市および到着都市(または、顧客が発話する可能性のある他の事前プログラム済み情報)を入力するかまたはドロップダウンメニューから選択する。
ブロック208および209では、人間エージェントは、任意の応答遅延を補償するために、ステーションで受け取られた顧客オーディオクリップに加速を適用することを決定できることに留意されたい(応答遅延は通常、アプリケーションセットアップにおける遅れ時間、すなわち、人間エージェントのデスクトップソフトウェアがストリーミングオーディオを受けて適切なワークフローを表示するのにかかることになる時間に起因する)。ネットワークレイテンシは0.2秒前後である場合があり、アプリケーション遅延は、1+秒の範囲でより大きい可能性がある。アプリケーション遅延を補償するために、対話式応答システムは、ボイスクリップを加速させる(ただし歪みが認識できるところまではしない)。この目的は、顧客が応答を待つ間に目立った遅延を体験しないように、より「リアルタイムの」会話対話に向けて努力することである。加速は、言葉が電話サーバから流れてくるのに伴ってその言葉に適用される。加速は、リンク固有のレイテンシを克服することはできないが、加速により、人間エージェントは、どんなアプリケーションセットアップ時間も「回復」して、対話における遅れ時間の量を、理想的にはネットワーク中のレイテンシによって課される限度まで削減することができる。しかし、加速は任意選択であり、初心者のエージェントはよりゆっくりした再生を必要とすることがあるが、より経験を積んだエージェントは加速を適用することができる。
テスト213で、iルータは、顧客オーディオ解釈の精度をリアルタイムで評価し、各エージェントの速度/精度プロファイルを更新する。ブロック214で、iルータは、解釈を処理してワークフロー中の次のステップ(例えば、入力データに基づくデータベース検索)を実施し、次に、電話サーバを介して適切な応答を顧客に転送する(218)(解釈が正確であると見なされる場合)。解釈が正確であるとiルータが判定した場合、iルータは、音声認識ソフトウェアの解釈に基づいて、または1若しくは複数の人間エージェントの応答にキーアルゴリズムを適用することによって、応答の再生を電話サーバから顧客に向けて送る。この例では、応答は、図4Aの画面2の最後のブロックで与えられる。
精度を決定するために、iルータは、2人の人間エージェントの解釈を比較し、合意に達しない場合は、さらに解釈を求めて、第3の人間エージェントに対して顧客オーディオクリップを再生する(すなわち、「多数決規則」でどれが正確な応答かを決定する)。他の業務規則を使用して正確な解釈を決定してもよい。例えば、最も良い精度スコアを有するエージェントからの解釈を選択することができる。あるいは、解釈のうちの1つを選択して顧客に対して再生することができ(「・・・と仰っていると理解しております」)、顧客の応答が、その解釈が正しかったかどうかを決定する。さらに、既知のデータから解釈を選択することもできる(例えば、Eメールアドレスの2つの解釈を顧客Eメールアドレスのデータベースと比較することができる、クレジットカード番号の2つの解釈のうちの一方のみがチェックサムアルゴリズムをパスすることになる、など)。
対話式応答システムは、ほぼ任意の数の人間エージェントが一度に同じ顧客対話を扱うことを可能にする。即ち、対話式応答システムは、忙しい時間中は2人のエージェントが聞くようにすることができ、または、より暇な時間中は7人の人間エージェントが聞くようにすることができる。さらに、電話の量が多い時間中は、「二重チェック」規則をなくすことによって精度を低下させて速い応答時間を維持することができる。エージェントの速度/精度プロファイルに基づいて高い信用ランクが割り当てられたエージェントには、二重チェックなしで作業するよう求めることができる。より素早いシステム可用性に対して精度をトレードオフすることに加えて、オーディオクリップの途切れのない流れが各エージェントに流れており、それにより人間エージェントの「怠け」時間が低減される。
図2のフローチャートに戻り、ブロック204に見られるように顧客が再び応答することになるか、ブロック215に示されるように、電話が転送されることになるか(ワークフロー中のステップによって若しくは業務規則によってそのように指示された場合)または顧客が電話を終了する。ブロック213で解釈が不正確であると見なされる場合は、iルータ101は、時間稼ぎ音声を顧客に対して再生し(ブロック216)、別の解釈を求めてオーディオクリップを追加の人間エージェントに送り(ブロック217)、その精度を再評価する。
iルータは、ワークフローをそのガイドとして使用して、顧客との対話を電話完了まで管理する。iルータは、電話の中の多くの時点で、解釈を求めて顧客発話を人間エージェントにストリーミングすることができる。電話が終結すると、顧客対話のスナップショットがアーカイブデータベースに保存される。人間エージェントの速度/精度プロファイルは、常に更新され維持される。
顧客の要求を解釈するのに人間の介入が必要ない場合はブロック206および214に示すように、ASRがオーディオクリップを解釈し、iルータが適切な応答を決定する。
インターエアの例を続けるが、図5Aに見られるように、キャプチャされた顧客発話は、2つの要求、すなわち食べ物および娯楽の問合せを有する。本発明の別の態様によれば、人間エージェントは、2つの意図、すなわち食事および映画を捕える。入力すべき関連のあるデータはない。というのは、対話式応答システムは、図4Bで入力された前のデータ(このデータは図5Bで見える)から、フライト情報を既に知っているからである。図5Bに見られるように、人間エージェントは、可能性ある意図のオンスクリーン表示から「一般」および「食事」を入力する。人間エージェントはまた「映画」も入力する。図5Aに見られるように、対話式応答システムは適切な応答を提供する。図5Bに見られるように、顧客が、「どんな食事が出ますか?」、「特別食はありますか?」、「映画の年齢制限はどの区分ですか?」など、食事または映画に関するさらに他の情報を要求した場合、適切な人間エージェント解釈オプションがコンピュータ画面上で突き止められる。
図6は、顧客が電子メール(当技術分野で一般に知られているEメール)を介して対話するときに、どのように対話式応答システムによって情報が取り出され処理されるかについての例を示す。ブロック601に示すように、対話は、顧客が会社の顧客サービスEメールアドレスにEメールを送ることで開始する。対話プラットフォーム(この例示的な実施形態ではゲートウェイサーバ)が、Eメールを開き、602に示すように、(1)顧客のto/from情報と(2)他の業務規則とのいずれかに基づいて、ワークフローデータベースに記憶された適切なワークフローを取り出す。ゲートウェイサーバは、602に示すように、適切な応答承認を送る。iルータ101は、ブロック603に示すように、負荷平衡アルゴリズムを適用することによって、Eメールを扱うための利用可能な人間エージェントを識別し、彼らの画面上でポップアップをトリガして解釈のための可能性ある意図を示し、1または複数の人間エージェントにEメールの内容を送る。人間エージェントは、ブロック604および605に示すように、Eメールを解釈する。テスト606で、iルータ101は、顧客Eメール解釈の精度をリアルタイムで評価し、各エージェントの速度/精度プロファイルを更新するが、このテストの後、iルータ101は、解釈を処理し、それに従ってワークフロー中の次のステップを実施する。最終的に、iルータ101は、ブロック607に見られるように、ゲートウェイサーバを介して適切なEメール応答を顧客に転送する(解釈が正確であると見なされる場合)。ブロック608に示すように、Eメールは適切なデータベースにアーカイブされる。解釈が不正確であると見なされる場合は、iルータ101は、別の解釈を求めてEメールを別の人間エージェントに送り(ブロック609)、その精度を再評価する。iルータ101は、ワークフローをそのガイドとして使用して、顧客との対話をEメール応答まで管理する。
図1〜図6に関する上記の対話式応答システムおよびそれを構成するプロセスに対する考察は、1または複数の音声認識および関連サブシステム108の動作を含む。IVRシステム100の実現には、実際、人間による対話の必要性を最小限に抑えるためにこのようなサブシステム108が顧客の発話のかなりの部分を認識できることが必要である。
次に図7を参照すると、IVRシステム100の一部として、訓練サブシステム710が含まれる。稼働時には、訓練サブシステム710は、サブシステム108中のリアルタイムASRに機械学習機能を選択的に提供して、新しいまたは変更された顧客対話に対してこれらが非常に素早く適応できるようにする。例えば、IVRシステム100が会社に対して最初にインストールされたとき、組込みASRの一般的な機能は、実際の顧客対話にはあまり使えないことがあり、特に、これらの対話が業界特有の用語を多く含む場合にはそうである(例えば、接地事故回路遮断装置を注文するために電話する電気工は通常、「GFCI」という頭字語を使用するであろうが、これを容易に認識するASRはほとんどないであろう)。同様に、新しい提供物が利用可能になったとき、既存のASR機能は、前はうまくいっていたにもかかわらず障害を起こし始めることがある(例えば、過去の使用において「iPod(登録商標)」を正しく識別したASRが、「iPad(登録商標)」など似た名称の別の製品が導入されると障害を起こし始めることがある)。これらの変更は、ある適用例では頻繁でない場合があるが、他の適用例では定期的に発生する場合がある。例えば、ロックコンサートのチケットを販売するための適用例は、バンド名に対する新しい顧客要求に定期的に適応することが必要になる。
一実施形態では、訓練は、このような訓練に対する指示された必要性に基づいて行われる。ASRの精度が容認性閾値よりも十分に高い既存のシステムの場合、訓練は、仮に行われるとしても、たまにしか行われない可能性がある。このような場合、訓練は、例えば、電話の量が極めて少ない期間中(この期間中は、IA105は通常なら比較的暇である)だけ行うことができる。システムが新しい場合は、またはASRの成功が容認可能限度未満に下落しているときは常に、より多くの訓練が必要とされてよく、従って訓練サブシステム710はより頻繁にアクティブになる。
訓練サブシステム710の非リアルタイム訓練ASR711は、入力として、顧客の発話をiルータ101から受け取り、対応する意図をIA105から受信する。実際には、後述するように複数の訓練ASR711を使用することができる。
リアルタイム本番処理の場合と同様、非リアルタイム訓練のための処理は、ある実施形態では、単一のIAからの入力を含み、他の実施形態では、複数のIAからの入力を含む。異なるIAによって選択された意図の違いは、多大な追加の訓練を必要とする特に微妙な発話を示す可能性があるので、これらの違いは、ASRを訓練する際に非常に役立つ。用件意図が、「はい」または「いいえ」などのごくわずかなオプションしかない小さい文法を有することができ、「はい」および「いいえ」における発話の事前パッケージ済みの理解がASRに付属しているような、最も単純な形では、訓練は、文法整調に使用できる統計モデルを構築することからなる場合がある。より複雑な訓練では、言われる可能性のある発話の統計言語モデルを構築するために、領域知識を用いてASRの単語認識が援助される。
好ましい一実施形態では、IVRシステム100は、サポートシステム108中の複数の利用可能なリアルタイムASRを使用して実現される。実際には、各ASRが強みと弱みを有することが見出され、特定エリアでの成功は、特定の状況でどのASRを使用するかを決定するためにiルータ101によって使用可能であり、また、特定の状況での訓練からどのASRが利益を受けることができるかを決定するために訓練サブシステム710によって使用可能である。現在利用可能なASRは、カーネギーメロン大学(Sphinx)、Nunance、Dragon、Loquendo(登録商標)、Lumenvox、AT&T(登録商標)、SRI International、Nexidia、Microsoft(登録商標)およびGoogle(登録商標)からのASRを含む。厳選されたASRのみがコストなしで利用可能(例えばオープンソースライセンスの下で)なので、経済的な考慮事項により、サポートシステム108に含めるASRの数が制限される場合がある。iルータ101は、いずれか特定のコンテキストでうまく機能すると予想されるASRに本番要求を選択的にルーティングすることができるので、かつ、訓練サブシステム710も同様に、リアルタイムASRをそれらの性能の予想される向上に基づいて選択的に訓練することができるので、相互にいくぶん直交する性能特性を有する1群のASRを選択するのがしばしば有利であろう。このようにすれば、あるASRが別のASRの弱みを埋め合わせることを期待することができる。例えば、電話の言葉を処理するのに最適化されたASRは、ディクテーション機器からの言葉を対象に設計されたASRとはかなり異なる性能特性を有する場合がある。
IVRシステム100で使用されるリアルタイムASRの精度を高めるために、訓練サブシステム710は、訓練ASR711の非リアルタイム動作に基づいて、受信した各発話の意味に特有の訓練をリアルタイムASRに提供することによって、機械学習を容易にする。
一般に、ASRはいくつかの異なる態様で訓練される。第1に、ASRは、オーディオストリーム、およびオーディオストリームの各部分を、話されている単語の認識に至るための助けになれる構成要素に分類できなければならない。通常、これは、「音(phone)」として知られる類似するサウンドクラスと、「ダイフォン(diphone)」として知られるサウンド移行または結合と、「セノン(senone)」と一般に呼ばれる、より複雑な場合のある波形部分とのセットを、オーディオストリーム内で識別することを伴う。一般に、発話は、沈黙期間が検出される場所ではどこでも分割される。発話フレーム(10ミリ秒の時間フレームなど)を分割して、この時間フレーム内でオーディオの様々な異なる特徴面(振幅および周波数が増加しているか、一定であるか、または減少しているかなど)を抽出することによって、発話から特徴が導出される。カーネギーメロン大学から入手可能なSphinx ASRでは、39個の特徴が抽出されて、音声が「特徴ベクトル」として表される。通常、ASRエンジンには、それらの認識が固定されるというこの側面が伴い、このようなシステムのユーザは、どの特徴が分析されるか、またはどのようにそれらが分析されるかを変更することはできない。
ASRは、様々なモデルを使用して、生オーディオ波形から、発話に対応する単語の予測に進む。音響モデルは、受信したセノンに対する最も確率の高い特徴/特徴ベクトルを決定する。音声モデルは、音と単語をマッピングするが、単語は、固定辞書からくるものであるか、または、機械学習によって導出された語彙(若しくは「文法」)からくるものである。言語モデルは、前に認識された単語など、何らかのコンテキストに基づいて、候補単語選択肢を制限する。ASRは通常、これらのモデルの組合せを使用して、どの単語が発話に対応するかを予測する。以下で考察する実施形態における訓練の焦点は、後の2つのモデル、すなわち音声モデルおよび言語モデルだが、本明細書で対象とする概念は、音声認識で使用される他のモデルにも容易に適用することができる。
多くの場合、ASRの訓練は、前に認識された単語からのコンテキストを使用することによって、またはリアルタイムでない処理(すなわち、同じ顧客談話において後で認識された単語)のコンテキストを使用することによって、より効果的に達成することができる。このような訓練について以下に述べる。
まず音声モデルに目を向け、「I would like to fly roundtrip between Boston and San Diego.(ボストンとサンディエゴの間を往復して飛びたい。)」というユーザ発話を考えてみる。「オフザシェルフ」ASRは、これらの単語のいくつかを様々な話者にまたがって認識するのに、いくらか困難を有する場合がある。例えば、単語「roundtrip」を発音する際、何人かの話者は、「d」と「t」の子音の音を1つの音に省略する(rountrip)ことがあるが、他の話者は、これらを別々に発音する(これらが2つの単語「round」と「trip」であるかのように)ことがある。
一実施形態では、訓練サブシステム710は、これらの問題の各々に対処することによって、非リアルタイム訓練ASR711に機械学習を提供する。まず、訓練サブシステム710は、発話が最初に受信されたときにIA105によって決定された、発話に対応する用件意味に基づいて、ターゲット語彙を選択する。この場合、IAは「新規予約」を用件意味として選択した可能性が高い。単語「roundtrip」は、一般的な文法においては4万個の単語のうちの1つであったかもしれず、ごく低い統計発生率を有したかもしれないが、「新規予約」の意図に特有の文法においては、たった千個の単語のうちの1つかもしれず、はるかに高い統計発生率を有するかもしれない。従って、訓練サブシステム710は、特徴ベクトルがこの単語の標準化モデルからかなり逸脱するとしても、適用可能な文法を変更することによって、話されたこととして単語「roundtrip」を訓練ASR711が受諾する確率を大幅に上げる。さらに、「roundtrip」の追加の発話が「新規予約」の意図に関連付けられるようになるのに伴い、これらの発話は、「roundtrip」が話された既に認識済みのインスタンスの少なくともいくつかと、より近く合致することになる可能性が高い。従って、時が経つにつれて、単語「roundtrip」が「新規予約」の意図の中で発生する可能性と、この単語の発音のばらつきとの両方が、以下の2つの結果につながることになる。すなわち、(a)単語を認識する際の確実性がより高くなること(これは、「予約のキャンセル」の意図に関連する文法など、同じ単語を含む他の文法にも伝搬させることができる)、および、(b)単語が特定の意図にどれくらい頻繁に関連付けられるかに関する精緻化された統計によって、用件意図をよりよく予測できることである。
上述した発話の例に戻るが、早口の話者は、「Boston」と後続の単語「and」との間の区別を曖昧にして、全ての音をはっきり発音できないことがあり、それにより、訓練ASR711は、音「Bostonan」を分析しようとしていることがある。同様に、都市名「San Diego」が、話者によっては、むしろ「Sandy A-go」のように聞こえるようにして発音されることがある。この場合もやはり、一般化された文法ではなく「新規予約」特有の文法を選択することで、「Boston」および「San Diego」の認識が信頼度を持って達成される統計的可能性が劇的に高まる可能性が高いことになる。一層の精緻化として、訓練サブシステム710は、ユーザ談話全体の発話の中を通る反復的パスを利用して、訓練をさらに一層改善する。上述の例では、その後、談話中に発信者は、文の最後に、訓練ASR711によって容易に認識されるようにして「Boston」と言うことがある。「Boston」に関するこの話者の音響シグネチャが、ASRのマッピングに含められ、それにより、第2のパスでは、同じ話者の「Boston」発話は、前よりもよい「Boston」に対する合致と考えられることになる。同様に、話者は、2回目に、「San」と「Diego」との間でより区別を付けるようにして「San Diego」と言うことがあり、それにより反復的に認識を試みれば1回目の曖昧な発話がうまく認識される可能性がより高まることにつながる学習が提供される。長い顧客談話の場合、システムが認識できる単語を通して発信者の声特性がよりよく理解されるようになるので、複数の反復によって認識全体のかなりの改善に至ることができる。
ここで図10も参照するが、一実施形態では、意図分析者による実際の認識時点を使用して、オーディオストリームが、認識のための別々の発話に分解される(例えば訓練ASR711によって)。具体的には、発話意図「I want to take a flight from」の認識時点(1001、1004)、データ部分「Boston」の認識時点(1002、1005)、およびデータ部分「San Diego」の認識時点(1003、1006)は全て、十分に異なり、従って、オーディオを認識のための別々の発話に分解するのを容易にするために、時間フレーム自体が使用可能である。場合によっては、IAは、発話が完了する前(または後)に認識を提供することがあり(例えば、図10の1003に示すように、「San Diego」は、最後の「o」音の前にIAによって認識される)、従ってそのような場合は、時間フレームは、IAによって提供された認識の後(または前)の適切な休止で終わるように調節される。可能性ある用件意図およびそれらを表すのに使用される典型的な単語の数は、意図認識文法を絞り込むのに使用可能であり、収集されるデータのタイプ(例えば都市名)は、データ認識文法を絞り込むのに使用可能である。
言語モデルに移るが、訓練システム710はやはり、用件意図を利用して訓練を援助する。例えば、IAが「新規予約」の用件意図を示した場合、発話の中の単語「and」の少なくとも1つのインスタンスの前に1つの都市名がきて、後に別の都市名が続くことになる可能性が、統計的に非常に高いであろう。同様に、単語「from」または「to」が認識された場合、これらの単語の後に都市名が続く確率が統計的に非常に高いであろう。対照的に、IAによって決定された用件意図が「座席指定」である場合、これらの同じ単語「from」および「to」は、隣接する都市名と相関することはめったにないが、そうではなく、近くの数字と文字の対に相関するであろう(例えば「I would like to change from seat 39B to seat 11A.(座席39Bから座席11Aに変更したい。)」)。
このような言語モデル訓練はまた、ユーザの変化する言い回しに容易に適応することを可能にする。例えば、航空会社がイングランドへのサービスを開始した場合、航空会社は、同じ用件意図について、前に使用されていたのとは異なる言語を使用した要求を急に受け始めることがある。例えば、前の「I would like to fly roundtrip between Boston and San Diego.」の例は、英国人の顧客によって「I would like to book a return trip between Boston and London.」と話されるかもしれない。最初は、単語「book」は「新規予約」文法において高確率で現れないであろうが、この文法におけるこの単語の統計的使用は、追加の英国人顧客によってすぐに増加する。同様に、用語「return」の使用は、英国人顧客ベースの追加によって変化し、「新規予約」文法は、これを認識するように相応に調節される。
訓練サブシステム710はまた、用件意図と、談話の中の隣接する認識された単語との組合せに基づいて、認識候補についての統計を調節する。用件意図が「新規予約」であると決定され、また、最初、ユーザの談話の中の1つの発話のみが、使用可能な信頼度レベルでは認識できないという例を考えてみる。談話が都市名を1つだけ含んでいたと認識された場合、認識されなかった発話が別の都市名である確率が非常に高く、このシステムを使用する航空会社によって対応される都市名である確率はさらに高い。文法内の候補単語に対する確率を変更して部分的認識を行うと、いくつかの候補単語がそれ以上の考慮からうまく切り捨てられることがあり、1つの候補(おそらく都市名)だけが、使用可能な確実度レベルになることがある。この場合、機械学習は、この特定ユーザの都市の発音をASRのモデルに組み込み、それにより類似の発話の後続のインスタンスがより容易に認識されるようにする。
許容可能な用件意図ごとに別々の文法を維持することで、通常なら可能であるはずよりも迅速なASRの教授を訓練サブシステム710が提供するのが容易になる。例えば、発話「book」、「notebook」および「Bucharest」には、強い音声上の類似性がある。これらの意味のうちのどれがユーザの発話に対応するかの決定は、用件意図を考慮することによって大きく向上する。例えば、用件意図が「遺失物取扱所」である場合は、「book」(その名詞の意味の)および「notebook」(「notebook computer」におけるような)は、他のコンテキストの場合よりもずっと高い可能性で現れるであろう。用件意図が「新規予約」である場合は、「book」(その動詞としての意味の)もまた、非常に高い可能性で現れるであろう。同様に、用件意図が「新規予約」である場合は、「Bucharest」は、用件意図が例えば「座席選択」であった場合よりも、高い可能性で現れるであろう。
訓練ASR711自体が十分に訓練された後は、用件意図と言語モデルとの間の相関を非常に頑強な方式で作り出すことができる。例えば、似たように聞こえる単語のマッピングの例示的な一部は、次のとおりとすることができる。
訓練ASR711は、サポートシステム108からのリアルタイムASRに勝る2つの利点を有するので、言語モデル統計を作り出すのに特によく適する。第1に、本番動作に使用されないので、リアルタイムで動作する必要はなく、従って、リアルタイム処理に使用されるだけの十分な素早さで認識を実施することが少なくとも比較的中程度のコンピューティングプラットフォーム上ではできないはずの、より複雑な認識アルゴリズムを利用することができる。これにより、訓練ASR711は、サポートシステム108中のリアルタイムASRが認識できないであろう発話を認識することができる。第2に、訓練ASR711は、顧客談話からの演繹的な情報だけでなく、帰納的な情報も利用することができる。従って、対話の中の全ての発話が分析されるまで待機し、次いで認識時に複数のパスをとることができ、おそらく、後の反復では、成功する可能性がより高くなる。前述のように、「Bostonan」のように聞こえる最初のユーザ発話は、2回目の「Boston」の発話の後には、はるかに容易に認識することができる。
訓練ASR711は、時の経過に伴って、関連する各用件意図と共に使用される言語要素に関係する一連の統計を構築する。一実施形態では、複数の訓練ASR711が使用され、各訓練ASR711は統計全体に貢献する。ある実施形態では、統計は認識に関する確実性の尺度を含み、この尺度は、単一の訓練ASR711による認識の複数のインスタンスに基づくか、複数の訓練ASR711間の一致に基づくか、又はこの両方に基づく。
このようにして作り出された統計は、サポートシステム108中のリアルタイムASRのいずれかによって使用可能である。サポートシステム中の、リアルタイム認識に使用できる種々のASRの各々は、通常、訓練のためのそれ自体のメカニズムと、どのように言語モデルを訓練のためにこのメカニズムに入力できるかに関する対応する仕様とを有する。好ましい一実施形態では、訓練サブシステム710は、それが作り出す統計をサポートシステム108中のASRごとにフォーマットし、それにより、訓練サブシステム710によって生成された統計をこれらのASRの各々が利用できるようにする。実際には、ASRは、それらが訓練のためにサポートするメカニズムにおいて大きく異なり、従って、訓練アルゴリズム712は、既存の各ASR、並びにサポートシステム108に追加される可能性のある新しい各ASRに適切な方式で、訓練データを収集し、フォーマットし、ASRに提供するように、容易に構成可能である。リアルタイムASRの性能は訓練に伴って向上するので、その認識の品質は、処理210、211でリアルタイムASRがIA105の機能に取って代わるのを可能にすることができる。
訓練サブシステム710はまた、各ASRの機能と共に機能して、ASR訓練がIVRシステム100中での使用に最大限に活用されるのを確実にする。例えば、ASRは、センテンスツリーを使用するなどして、いつ十分な発話部分が統計分析の実施に使用可能と認識されるかについての閾値の決定をサポートすることができ、訓練アルゴリズム712は、訓練の進展を決定するためにこのような特徴に適合するように構成される。
サポートシステム108中のリアルタイムASRは、異なる統計処理を必要とする2つの異なる方法で使用される。第1の方式では、これらは、対応する用件意図をIAが決定した後で、プロセスを認識するのに使用される。例えば、1または複数のIA105が、発信者によって話された文についての用件意図として「新規予約」を選択する場合があり、これに基づいて、サポートシステム108中の1または複数のリアルタイムASRが、発信者によって話された特定の単語を認識しようとすることになる。
第2の方式では、IAではなくリアルタイムASRを使用して用件意図が決定される。これは、発信者によって話された特定の単語を決定するのとは異なる認識タスクである。例えば、用件意図が「新規予約」である可能性があるか「座席要求」である可能性があるかを決定することは、「新規予約」に関する単語「から」および「まで」、並びに、「座席予約」に関する単語「通路側」および「窓側」など、各意図に特有の、可能性の高い少数のキーワードを認識することを伴うことがある。サポートシステム108中のあるタイプのASRは、用件意図を決定することに、よりよく適する場合があり、別のタイプのASRは、その用件意図に基づいて単語を認識することに、よりよく適する場合がある。一実施形態では、訓練サブシステム710によって提供される、リアルタイムASRごとの訓練統計のフォーマットは、リアルタイムASRが意図の決定に最適化されることになるか、または決定された意図に基づく単語認識に最適化されることになるかに基づいて、調節される。
訓練プロセスの一部は、機械学習がサポートシステム108中のリアルタイムASRに対してどれ位効果的であったかを決定することを含む。これは妥当性検査と呼ばれる。好ましい一実施形態では、妥当性検査は訓練サブシステム710によって実施される。代替的実施形態では、妥当性検査はiルータ101または専用の妥当性検査プロセッサ(図示せず)によって実施される。妥当性検査では、ASRを、相互と、およびIAと並列で動作させて、それらの性能がどれ位匹敵するかを決定する。各訓練インスタンスは、IAによって提供される用件意味ごとに文法使用の統計モデルおよび確率を作り出すのに使用される、より多くの情報を提供する。状況によっては、IAからの履歴データもまた、発話に対して利用可能な場合のある予期される自動化レベルを決定する。IAが、発話に対して複数の意味をいつも決まって提供する場合、ASRは、かなりのコンテキスト訓練が可能な場合にのみ使用可能となるであろう。頑強なコンテキスト処理を有するASRは、そのような発話を正しく処理できるかもしれないが、コンテキスト的に強くないASRは、どれだけ多くの訓練が提供されるかにかかわらず、最低閾値を満たすことができないかもしれない。例えば、発話「IP」は、「インターネットプロトコル(Internet Protocol)」または「知的所有権(Intellectual Property)」を意味する可能性がある。両方の意味が一般的である適用例で使用された場合、ASRが訓練後に2つの意味のうちのどちらが適切な意味かを導出できない限り、処理精度の誤りが予想されることになる。
訓練が進むにつれて、リアルタイムASRの性能は向上する。IVRシステム100内でこのASRを特に使用する必要性を満たすほど統計的に安定した時点で、ASRは本番動作に配置される。例えば、発話についての用件意味を決定するように意図されたASRは、その性能がIAの性能に達するほど十分に訓練された時点まで、非本番モードでIAと並列で動作することができ、十分に訓練されたとき、本番動作に切り替えられて、処理210、211におけるIAの負担が軽減される。
典型的な一実施形態では、リアルタイム本番処理と訓練処理の両方で、2人のIAからの入力が2つのASRに提供されて、精度が高められる。同じユーザ談話における同じ発話についての2人のIAからの入力が異なる場合、ある実施形態では、発話は、意味の決定のために第3のIA(場合によってはIAの品質の程度に基づいて選択される)にサブミットされる。
妥当性検査を介して決定されるように、かつ環境の特質に基づいて決定されるように、ASRが一定閾値よりも高い精度レベルに達したとき、訓練処理は遷移する。例示的な一実施形態では、ASRは本番処理に使用されるが、訓練は前述のように継続する。求められるものがより厳しくない環境では、または利用可能なリソースがより少ない環境では、訓練は全て終わる。第3の環境では、訓練は継続するが、優先順位が下がる(例えば、訓練処理は、一定量の利用可能な処理キャパシティがあるときにのみ、またはASRの性能が一定程度まで劣化したことがわかったときにのみ、行われる)。
ある実施形態では、妥当性検査プロセッサが、ASRをテストしてそれらの性能レベルを決定するように構成される。妥当性検査は、ある実施形態では、訓練段階の後に続き、他の実施形態では、訓練と同時に実施される。妥当性検査からの結果に基づいて、iルータ101は、ASRおよびIAへのその発話割り当てを変更する。例えば、ASRが用件意味の決定においてIAと比較して十分にうまく機能することがわかった場合、iルータ101は発話を、IAにルーティングするよりもはるかに頻繁にこのASRにルーティングする。有利にも、このようなルーティングは非常に適応可能かつ構成可能である。図3〜図5に関して使用した例に従うと、iルータ101は、性能統計に基づいて、ウェルカムメッセージの直後の応答解釈にはIAの方を選ぶことができ(図4B)、映画または食事についての応答解釈には第1のASRの方を選ぶことができ(図5A)、座席指定や飛行機情報についての応答解釈には第2のASRの方を選んで、図5Bに示される他の選択肢を選択することができる。ある実施形態では、特定の解釈エリアごとに2つのASR(210、211におけるように)が選択されて、精度が保証される。両方のASRが同じ解釈を提供する場合は、対応する応答がユーザに提供される。ASRが異なる場合は、217におけるように、発話はIAに提供されて、判決を介して意味が選択される。
結果として、人間IAは、ASRが適切に機能できない特定のときだけ必要とされ、処理は、業務基準に応じてIAの介入の後すぐにASRに戻ることができ、IAは顧客談話に接続されたままでいる必要はない。訓練がASRを向上させることができる場合、訓練は、IVRシステム100全体に対する多くの追加コストも他のオーバヘッドも課すことなく、ASRを向上させる。適切な自動応答がユーザに提供されるように、単一のユーザ発話を聞いてユーザの意味または意図を所定オプションのドロップダウンリストから選択すること以上には、人間の対話が関与する必要はない。
図8を参照すると、ASR訓練に関する例示的な処理フロー800が示されている。ユーザ発話を含むディジタル化されたオーディオストリームが、1または複数のIA105に提供され(801)、また、図7に関して述べたように使用可能な意図応答をIAが提供できる場合は、オーディオストリームは訓練ASR711に提供される。訓練ASR711がオーディオをそれに相当するテキストに変換するために発話を十分に認識(802)できない場合は、発話は廃棄され、訓練に使用されない。
ASR711が発話を十分に認識(802)できる場合は、図7に関して上述したように、統計モデル/整調文法(例えば、IAによって提供された意味およびデータに対応する文法)が構築される(803)。ASR711によって決定された、一定信頼度閾値未満である発話のいくつかについては、ASR711による意図またはデータの認識をIAが検証するための追加の検証ループを利用することができる。認識が確認された場合は、処理は803について述べたように進むが、そうでない場合は、結果は廃棄される。
次に、訓練ASR711の性能が今や十分であるかどうか決定する(804)ためのテストが行われる。性能閾値は、適用例のクリティカル性に依存する場合がある。ヘルスケア適用例は、例えば無料旅行者情報サービスがエラーに対して耐性を有するであろうよりもずっと、エラー耐性が低い場合がある。性能閾値はまた、新しい単語または句が統計モデルに追加されるレートに依存する場合もある。性能が十分でない場合は、処理は戻って、ディジタル化(801)でき追加の訓練に使用できるさらに他の発話に備える。性能が十分である場合は、訓練の結果が適用されて、サポートシステム108のリアルタイムASRが、訓練から得られたモデルで構成され(805)、これらのリアルタイムASRは妥当性検査され、適切なら本番処理に使用される。
ある実施形態では、次いで訓練は完了と見なされる。ASRは、最初は暫定モードで、即ちIAのシャドーとして、オンラインにされる。ASRが、業務基準によって(例えば、ASRからの結果と1または複数のIAの結果とを比較することによって)決定されるように品質レベルを満たす場合は、ASRは、完全に本番で使用され始め、それにより処理210でIAに取って代わる。同様に、第2のASRの性能が測定され、このASRが認識において十分な品質を生む場合は、オンラインにされて、処理211で第2のIAに取って代わる。他の実施形態では、特定の環境によって決まる時点でさらにテスト806が行われて、ASRの性能が何らかの適用可能な最低閾値未満に下落したかどうか確認される。下落した場合は、フローは追加の訓練のために801に戻る。性能が容認可能である場合は、処理は806にループバックし、適切な時点でテストを繰り返す。多くの試行の後でも性能が容認可能閾値に達しない場合は、ある実施形態では、訓練は放棄される。
図9は、本明細書で参照されるコンピュータ/プロセッサのいずれかとして使用されるコンピュータ900の例を示す高レベルのブロック図である。図示されているのは、チップセット904に結合された少なくとも1つのプロセッサ902である。チップセット904は、メモリコントローラハブ920および入出力(I/O)コントローラハブ922を備える。メモリコントローラハブ920にはメモリ906およびグラフィックスアダプタ912が結合され、グラフィックスアダプタ912には表示デバイス918が結合される。I/Oコントローラハブ922には、記憶デバイス908、キーボード910、ポインティングデバイス914およびネットワークアダプタ916が結合される。コンピュータ900の他の実施形態は、異なるアーキテクチャを有する。例えば、ある実施形態では、メモリ906はプロセッサ902に直接に結合される。ある実施形態では、キーボード910、グラフィックスアダプタ912、ポインティングデバイス914および表示デバイス918などのコンポーネントは、直接人間対話を必要としないある種のコンピュータ900(例えばある種のサーバコンピュータ)には使用されない。
記憶デバイス908は、ハードドライブ、CD−ROM、DVD、またはソリッドステートメモリデバイスなどのコンピュータ可読記憶媒体である。メモリ906は、プロセッサ902によって使用される命令およびデータを保持する。ポインティングデバイス914は、マウス、トラックボールまたは他のタイプのポインティングデバイスであり、キーボード910と共に使用されてコンピュータシステム900にデータを入力する。グラフィックスアダプタ912は、表示デバイス918上に画像および他の情報を表示する。ネットワークアダプタ916は、コンピュータシステム900をインターネット1001に結合する。コンピュータ900のある実施形態は、図9に示すものとは異なるコンポーネントおよび/またはそれ以外のコンポーネントを有する。
コンピュータ900は、本明細書に述べる機能を提供するためのコンピュータプログラムモジュールを実行するように適合される。本明細書において、用語「モジュール」とは、指定された機能を提供するのに使用されるコンピュータプログラム命令および他のロジックを指す。従って、モジュールは、ハードウェア、ファームウェアおよび/またはソフトウェアにおいて実現することができる。一実施形態では、実行可能コンピュータプログラム命令で形成されるプログラムモジュールが、記憶デバイス908に記憶され、メモリ906にロードされ、プロセッサ902によって実行される。
本明細書に述べるコンポーネントによって使用されるコンピュータ900のタイプは、実施形態、およびエンティティによって使用される処理力に応じて異なる。例えば、顧客のコンピュータ103は通常、限られた処理力しか有さない。対照的に、iルータ101は、本明細書に記載の機能を提供するために共に働く複数のサーバを含む場合がある。ある適用例では、単一のプロセッサ(または1組のプロセッサ)が、サポートシステム108中のリアルタイムASRと、訓練サブシステム710の訓練ASR711および他の機能との、両方を実現することができる。これらの適用例では、どれ位多くの訓練をいつ行うかを決定することで、比較的安価かつ適度に強力なコンピュータを、訓練と本番ASR処理との両方に使用することができる。
前述のシステムおよび方法は、音声対話に適用可能であるだけでなく、実施形態によっては、例えばビデオ、テキスト、Eメール、チャット、写真および他の画像でも使用可能である。これら他の実施形態は、例えばオンラインチャット、セキュリティ監視、テーマパークコンシェルジュサービス、およびデバイスヘルプなどの適用例で使用可能である。具体的な例として、自由回答式の質問が前述のようにして解釈され処理されるヘルプ機構を、Apple,Inc.によって提供されるiPhone(登録商標)やiPadデバイスなどの消費者デバイスに提供することができる。同様に、前述の技法を使用して、ビデオストリームおよび画像の認識を容易にすることもできる。
以上の考察から明白なように、顧客対話の一部を処理するのに、HSRサブシステムよりもASRサブシステムの方が適切であることもある。可能な最良のユーザ体験を提供するためには、アプリケーションプログラム(ワークフローリポジトリ106に記憶されたもの等)が音声認識リソースを求める場合に、このような認識に使用されるリソースの選択(即ち、ASRまたはHSR、並びに現在の認識タスクに最もよく適する特定のASR/HSRリソースの選択)を最適化することによって、利益を達成することができる。
図11を参照すると、適切な処理リソースのこのような選択を達成するためのASRプロキシ1102の動作のブロック図が示されている。より具体的には、以下に述べる機能は、様々な実施形態で、ボイス拡張可能マークアップ言語(VXML)ブラウザ内でのメディアリソース制御プロトコル(MRCP)におけるカプセル化と、ウェブサービスと、アプリケーションプログラミングインタフェース(API、例えばJavaまたはC#言語で書かれたもの)とのうちの、1または複数によって実現される。特定の一実施形態では、様々なベンダからの共通ASRが、VXMLプラットフォーム(ブラウザ)への標準インタフェースとしてMRCPを使用し、この環境では、ASRプロキシ1102は、VXMLプラットフォームと共に実行されるソフトウェアアプリケーション1101にとってはASRエンジンに見えるように構成されるが、そうではなく、ASRサブシステムとHSRサブシステムの両方からの音声認識リソースを提供することによって、VXMLアプリケーションと音声認識機能との間のプロキシとしての働きをする。
後でより詳細に述べるように、ASRプロキシ1102は、1または複数のASRサブシステム1104(サポートシステム108の考察に関して上述したものなど)またはHSRサブシステム1106(オフサイトエージェント105の考察に関して上述したものなど)を自由に選択するように構成される。統計のデータベースサブシステム1105に基づいて、ASRプロキシ1102は、認識決定エンジン1103(この動作については図12に関してさらに述べる)および結果決定エンジン1107(この動作については図13〜図16に関してさらに述べる)と通信して、いずれか特定の時点でどのASR/HSRリソース1104、1106を利用するかに関する決定を行う。いずれかのHSRリソースが使用のために選択された場合は、オフサイトエージェント105に関して上述したように、対応するユーザインタフェース情報が、適切なHSRデスクトップワークステーション1108に提供される。
ASRプロキシ1102は、発話がASRによって認識されるべきかまたはHSRによって認識されるべきかをソフトウェアアプリケーション1101の開発者が考慮する必要性を軽減する。従って、このようなソフトウェア開発者は、コンピュータで従来使用されてきたものよりも人間らしい音声ユーザインタフェースを構築する(かつその利用可能性を想定する)ことができる。
図11をより詳細に参照すると、様々な実施形態で、ソフトウェアアプリケーション1101は、様々な目的を果たす。一実施形態では、ソフトウェアアプリケーション1101は、フリーダイヤル発信者補助のためのIVRシステムであり、別の実施形態では、タブレットコンピュータ上の対話式ヘルプアプリケーションである。ソフトウェアアプリケーション1101は、何を認識すべきかをASRプロキシ1102に教える(すなわち文法をASRプロキシ1102に提供する)こと、並びに発話(通常は、.wavファイルなどのオーディオファイル、またはリアルタイムオーディオストリーム(例えばMRCPリアルタイムプロトコルストリーム))をそれに提供することによって、ASRプロキシ1102に指示する。ASRプロキシ1102は、予想されるように、発話を正しく認識したというASRの信頼度を示す信頼度スコアと共に、認識したものの「テキスト」または意味で応答する。
ASRプロキシ1102は、従来のASRとは異なる機能を有することができるので、ASRプロキシ1102は、例えば統計および決定に関する文法メタタグ中にある追加情報を必要とする場合がある。この追加情報は、プロンプトおよび文法を識別するための固有の方式、現セッションを識別するための固有の方式、「声」またはユーザを識別するための固有の方式(話者の音響モデルの学習を継続するため)、並びに、ASRプロキシ1102の挙動を指定するための閾値などである。ある適用例では、文法は事前定義済みまたは組込みである。他の適用例では、文法は組込みではなく、従って、文法に関係するメタ情報(エージェントの決定を枠組みにはめたりガイドしたりするためのユーザインタフェース情報など)が提供されて、可能性ある応答がよりよく定義される(例えばHSRサブシステムの場合)。
ソフトウェアアプリケーション1101が、発話を認識するようASRプロキシ1102に要求すると、ASRプロキシ1102は、処理を認識決定エンジン1103に渡す。認識決定エンジン1103は、どのように発話を認識するかを決定することを担う。例えば、ソフトウェアアプリケーション1101によって提供されるパラメータおよび信頼度閾値が、この決定に影響を及ぼすことがある。具体的な例として、極めて高い認識品質を適用例が必要とする場合、認識決定エンジン1103は、認識がHSRリソース1106のみによって達成されるよう指示することができる。他方、適用例はコストが最も重要だと考える場合もあり、その結果、デフォルトではASRリソース1104のみが使用されるよう指示して、HSRリソース1106の使用は、ASRを使用するとエラーが多くなる場合のみに取っておくこともできる。
一実施形態では、認識決定エンジン1103は、適用例の特定の要件を満たすように適切な閾値を変動させて、同様の決定を自動的かつ動的に行う。従って、資産の多い銀行顧客には、高い品質閾値を使用することができ、一方消費者からの公共料金支払いの問合せには、より低い容認可能閾値が与えられる。この実施形態では、閾値は、過去の認識試行に基づいて計算された履歴統計に基づく。
ASRリソースの使用とHSRリソースの使用との間で選択することによってだけでなく、このようなリソースの組合せを選択できるようにすることによっても、有益な結果が得られることがわかっている。例えば、あるパラメータセットは、複数のASRリソースによって認識されるように発話をサブミットすることによって最もよく満たされ、別のパラメータセットは、単一の特定ASRに発話をサブミットすることによって最もよく満たされ、さらに別のパラメータセットは、ASRリソースとHSRリソースの混合に発話をサブミットすることによって最もよく満たされる場合がある。実際には、ASRが訓練または整調された程度(例えば上記の訓練に関する考察のとおり)、ASRが特定の文法について妥当性検査されたかどうか、複数の認識経路のコストが容認可能かどうか、および履歴結果などの事柄は全て、いずれか特定の状況でどのリソースを適用するかを決定する際に役立つ。
同様に、発話に関係するセキュリティメタタグも、最も適切な認識リソースを決定するのに役立つ。例えば、発話が社会保障番号であることを示すメタタグを、ASRリソースによって処理されるように送って、人物に関する個人情報を人間が入手する可能性を回避することができる。
ある実施形態で考慮される別のパラメータは、様々なシステムリソースのアクティビティのレベルである。人間のスタッフに多量の要求が溜まっている場合、この未処理要求は、ASRリソースの使用を増加させることの方を選ぶためのパラメータとして使用可能である。
ある実施形態では、同じタイプであろうと異なるタイプであろうと複数のリソースを使用して、結果の二重チェックが提供される。
さらに別の実施形態では、認識決定エンジン1103は、現在のオーディオストリームの長さを動的に把握しており、これを、対応する文法によって定義される予想される発話の長さと比較する。例えば、発話が、「赤(red)」、「緑(green)」、「青(blue)」の3色のうちの1つだけからなる文法を有すると予想され、実際の発話の長さが3秒である場合、発話が文法中の予想される単一音節の色のうちの1つでないという予期に基づいて、発話をASRリソースに認識させるという前の決定を変更し、ASRに加えてまたはASRに代えてHSRリソースに認識させることができる。このような手法は、「意外な」発話を認識するための最終的な時間を最小限にし、従ってASRプロキシ1102の全体的な効率を高めることがわかっている。
上述したように、ASRプロキシ1102および対応するエンジン1103、1107の動作は、システムを個人化するための統計、閾値および他の固有情報を広く利用して、ソフトウェアアプリケーション1101のニーズに対応する。この情報は、図11に示すように統計データベース1105に記憶される。例えば、ASRの動作の結果は、信頼度スコア統計としてデータベース1105に記憶され、このASRについての総統計は、ソフトウェアアプリケーション1101によって必要とされる適用可能な業務規則または他の規則の下でこのASRが使用可能かどうかに関して考慮される。さらに、話者、プロンプト、文法、適用例、認識方法(例えばASR、HSR、単一ASR、複数ASR、複数HSR)、信頼度、合致なしまたは入力なし、および訓練/整調など、発話に関するあらゆる統計は、ASRプロキシ1102によってデータベース1105に記憶される。
前の図に関して述べたのと同様にして、発話に対する使用可能な結果をASRが提供できなかった場合は、発話は、認識/不一致解決のために、HSRリソースに送られる。統計は、ASRだけでなくHSRについても維持され、統計はさらに、個別の話者ベースでも維持される。従って、ASRが特定の話者の認識において特に効果的であることがわかった場合、同じ話者からの後の発話にこのASRが使用される可能性を増大させるために、統計が維持および更新される。同様に、統計は、個別の文法ベースでも維持され、それにより、この場合もやはり、予想される文法、またはプロンプト/文法の組合せに基づいて、使用する適切なリソースを認識決定エンジンが選ぶ可能性が最大化される。例えば、「はい/いいえ」文法は、「あなたはジョンスミスですか?」など、ASRによる単純なプロンプトの認識にはより効果的であろうが、「今日は先週の同じ日に比べて気分がいいですか?」など、より複雑な質問には、効果がより低いであろう。
上記から一般化すると、統計は、様々な根拠で生成され、いつ特定のASR/HSRリソースを使用するかについてインテリジェントな決定が行われるように維持される。信頼度レベルに基づいて、高信頼度のASR認識が可能な文法を、より頻繁にソフトウェアアプリケーション1101によって使用することすらできる。例えば、「はい」または「いいえ」文法は、単純なASRリソースでは信頼度が非常に高いであろう。統計は、「あなたの電話番号を(555)123−4567として頂戴しておりますが正しいでしょうか?」などの単純な確認ステートメントから、「この1週間、気分がよかった場合は「はい」と言って下さい。気分が全く優れなかった場合は「いいえ」と言って下さい。」などのより複雑なコミュニケーションまでの、プロンプト/文法の組合せに関して記録される。
本明細書における文法に関する考察は、文法とプロンプトの組合せに拡張可能かつ一般化可能である。例えば、ある統計は、現在のセッションにおける現在の話者の1組の発話(すなわち複数のプロンプトにわたる)についての全体的な信頼度に関係する。ASR認識がプロンプト/文法の組合せにかかわらず話者に対して失敗している場合、このことは、ASRプロキシ1102が、この話者に対してはASRを試みるどころかHSRに頼る方がよいであろうことを示す。他方、特定の話者の発話が、強い信頼度をいつも決まって示している場合、ASRプロキシは、好ましい認識方法としてASRを使用する。特定のセッションを超えて一般化するために、固有の話者参照IDにより、システムは、特定の話者を認識して(例えば、システムと接続するのに使用された電話番号に基づいて)、適切なASRリソースまたはHSRリソースを選ぶことができる。
ソフトウェアアプリケーション1101は、ソフトウェア開発者が特定の状況について適切だと思うことのできる、かつ、状況によっては、前の認識経験に基づいて時の経過に伴って生成された、閾値を提供する。例えば、HSRリソースを介した二重チェックまたは確認によって統計を生成することができる場合、これらの統計は、収集されてデータベース1105に記憶される。このような統計からの平均、標準偏差およびモード情報が、このようなアプリケーションの全体的な目標に基づき、ソフトウェアアプリケーション1101のソフトウェア開発者によって決定された必要性に応じて、様々な閾値に適用される。
さらに、統計は、ASRリソースにさらに依拠することが効果的でなくなるときを決定するのにも使用可能である。例えば、ASRおよび特定の文法についてのかなりのサンプルサイズの認識品質が、性能が容認可能な認識閾値を超える可能性が低いことを示す場合、このASRは、この特定の認識タスクに対しては将来の考慮から除外される。この認識タスクはより多くの訓練(または整調)を必要とする可能性があるが、複数の訓練/整調を試みてもうまくいかないことが判明することにより、この特定の認識試行は、プロンプト/文法に対する調節や、新しいASRまたは新しいバージョンのASRの使用などの変化が生じるまで、考慮から永久に除外される。
統計はまた、ASRを整調するのにも使用可能である。文法の整調は、文法「赤、緑、または青」において「赤」が使用されるときのパーセントなど、純粋に統計的であることもあり、または、「青」に対する「ターコイズ」など、類義語を含む可能性もある。後者の場合、整調は、HSRリソースを「文法外」レコグナイザに使用することによって容易になる(例えば、特定の場合に「ターコイズ」が「青」の類義語と考えられるべきであることを確認するために)。このような整調の直後は、適用例によっては、整調されたASRを、本番ベースではなく「サイレントな」限定テストベースで導入して、性能が容認可能な閾値よりも高いことを確実にすることが望ましいであろう。一実施形態では、ASRが当該の文法を認識できることを検証するために、かつ、上述した妥当性検査の間に信頼度閾値統計を計算するために、かつ、ASRによる認識が無効な場合に信頼度閾値統計を計算するために、HSRが利用される。妥当性検査の後でも、ASRまたはHSRリソースによるランダム二重チェックが、選択された認識方法の妥当性に対する継続的なチェックを提供する。このようなチェックの頻度は、一実施形態では、正しいASR認識と間違ったASR認識との間の統計的偏差に基づく。具体的な例として、正しい認識の平均信頼度が56であり、間違った認識の平均信頼度が36である状況を考えてみる。標準偏差が小さい(例えば8)場合、このことは、正しい認識と間違った認識との間には実際上の混乱はほとんどないことを示唆することになり、従って、二重チェックはあまり頻繁に使用する必要はない。しかし、標準偏差がより大きい(例えば12)場合は、文法信頼度閾値をより細かく整調するために、より頻繁な二重チェックが必要とされるであろう。
時の経過に伴って、統計は、ASRプロキシ1102に、その初期動作を変更するよう提案することができる。例えば、非常によい成功が統計的に示唆される場合、このことは、2つのASRの二重チェックから、1つのASRのみのチェックへの変更を提案することができる。または、成功が乏しい場合は、特に難しい文法に対して訓練若しくは整調する試みを止めて、代わりにHSRのみを使用することを提案することができる。
ASRの初期訓練と後続の整調は両方とも、共通の特性を共有し、これらは同様に実施されてよい。しかし、多くの場合、訓練は、初期整調よりも微妙な問題、大きい語彙および統計言語モデルを伴い、従って、整調ではうまく働く技法が、訓練には最適でないことがある。訓練は、かなりより大きいサンプルサイズ、HSRをより多く使用すること、および文法外ASRリソースに依拠することを必要とする場合がある。
特に複雑な文法は、異なる認識モデルを有する2つのASR(異なるベンダからの)による一貫した二重チェックを必要とすることがあり、異なる結果がHSRによって判決される。複数のHSR(例えば、2つのHSRと、違いを解決するように働く第3のHSR)に依拠することは、場合によっては、さらに利益をもたらすことができる(例えば、本明細書にその内容が完全に記載されているかのように参照によりその内容が組み込まれる特許文献5参照)。ASRプロキシ1102は、ソフトウェアアプリケーション1101を介して、これらの可能性のいずれにも対処するように構成可能である。
図12に移るが、一実施形態では、認識決定エンジン1201は、以下のように動作して、履歴統計(例えば、話者、セッション、文法および適用例についての)並びに他の要因に応じて、かつ様々な構成設定に基づいて、どのように発話を処理するか決定する。図12に示す例では、最初のステップとして、認識決定エンジン1201は、ASRが訓練または整調されるまでASRが使用されないように指示することができる。これを決定するためにチェック1202が行われる。そのように指示される場合は、チェック1207が行われて、このような整調/訓練が既に完了したかどうか判定される。そのように指示されない場合は、クイックチェック1203が行われ、訓練が必要でないほど文法が十分に単純(例えば文法がごく少数の語末しか有さない)かどうか判定される。文法が単純でない場合は、処理は再びチェック1207に移る。文法が十分に単純である場合は、処理はチェック1204に移る。上述したチェック1207では、この文法に対するASR成功についての記憶済み統計と、ASRが前にこの文法に対して整調/訓練されたかどうか(同じアプリケーション1101中であろうと、または類似の目標および対応する信頼度閾値を有する場合のある他のアプリケーション中であろうと)とを調べる。十分に訓練/整調されていることをこれらの統計が示す場合は、チェック1207は処理をチェック1204に渡す。そうでない場合は、処理はHSR処理1210に進む。
チェック1204では、データベース1105に記憶された信頼度統計、およびASRが特定の文法を理解できる閾値と、セッション内で話者を認識することの進行中の信頼度における第2の統計とを使用する。整調または訓練されない単純な文法の場合、ASRがどれくらいうまく認識タスクを実施しているかに関する進行中の統計が、アプリケーションによって提供される予期される認識信頼度閾値、またはプロキシによって計算された閾値と比較される。最初の認識が実施されつつある場合では、閾値は、満たされないと自動的に見なされるように設定されてよく、強制的にHSRによって認識されるようにして、プロキシによって閾値を最初に計算できるようにする。ある実施形態では、閾値は、現在の文法に関する履歴情報によって増補される。追加で、ASRの話者認識能力が、閾値よりも高い信頼度を示唆する場合は、ASR処理が使用されることになり、処理はチェック1205に移る。そうでない場合は、HSR処理1210が使用される。例えば、閾値は、ASR認識が信頼度(または調節済み信頼度、例えば高価値の話者)未満になる回数として設定することができる。適用例によっては、この回数は、信頼度未満のASR認識が1回でもあれば後続の認識をHSRによって実施させるように、低く設定される。
チェック1205で、ソフトウェアアプリケーション1101または別の構成要素(例えば訓練若しくは妥当性検査のための要件)により認識に二重チェックの使用が必要とされるかどうか判定する。二重チェックの使用が必要とされない場合は、処理はステップ1206に移り、単一のASRが認識に使用される。
二重チェックが必要とされる場合は、処理はチェック1208に移り、2つ以上のASRによって二重チェックを行うことができるか(例えば、訓練されたASRおよび他の形で容認可能なASRが、2つ以上利用可能なので)どうか判定する。行うことができる場合は、処理はステップ1209に移り、そのような複数のASRによって認識が実施される。行うことができない場合、例えばASRが認識に適さないかまたはASR妥当性検査が実施されることになる場合は、処理はステップ1210および1211に移り、従って、認識はASRリソースとHSRリソースの両方によって実施される。
ASRまたはHSRが認識を完了すると、認識に関する統計が統計データベース1105に記憶される。
図11に関して上述したように、ASRプロキシ1102はまた、結果決定エンジン1107と通信する。このようなエンジンの目的は、ASR/HSRリソースによる認識プロセスの結果を評価することである。図13を参照すると、例示的な結果決定エンジン1301が示されており、この動作について次のように述べる。結果決定エンジン1301は、1または複数のASR/HSRリソースからの認識の結果を検討し、適切な次のステップを決定する。最初に、チェック1302が行われて、報告された信頼度レベルが、ソフトウェアアプリケーション1101によって設定されたかまたはASRプロキシ1102によって計算された認識閾値を満たすかどうか判定される。満たす場合は、認識成功を反映するように妥当性検査統計が更新されて(1303)、結果決定エンジン1301の動作は完了する。満たさない場合は、さらに処理が必要とされるので、「フィラー(filler)」プロンプトがユーザに提供される(1304)。例えば、発信者は、「まだ作業中なのでお待ち下さい。」と言われることがある。発信者に提供される特定のメッセージは、このようなデフォルトメッセージである場合もあり、または、何らかの形の参照を介してソフトウェアアプリケーション1101によって提供および決定されるより具体的なメッセージである場合もある。
次いで処理は、1または複数のHSRリソースによる認識1305に移り、チェック1306に移って、HSRの認識がASRの認識と一致するかどうか判定される。一致する場合は、統計が再び更新される(1303)が、今回は、認識はHSRも必要としたので、統計は比例配分される。一実施形態では、比例配分は、信頼度閾値をクリアしたとすれば提供されたはずのスコアから3分の1の差引きである。
HSRとASRとの間の認識の結果が異なる場合は、チェック1308が行われて、二重HSRが使用されたかどうか判定される。使用された場合は、二重HSRからの結果が使用され(1307)、成功したASR認識を追跡する統計がデクリメントされる。使用されなかった場合は、追加のフィラーメッセージが再生され(1309)、追加のHSR認識が企てられる(1310)。HSR結果が一致しない場合は、HSRを使用する第3の試みが実施される(これは、ある実施形態では行われるが、他の実施形態では行われない)。HSR間に合意がない場合、「合致なし」という結果が返される。これは、どのレコグナイザも話者を理解しないことを示す(従ってASRへのどんな偏向も示されない)。現在の負荷条件に応じて、第2または第3のHSRを実施するのが実際的でないこともあり、その場合は、単一のHSR結果が使用されるが、やはりASRへの偏向はない。このような実施形態では、図14、図15および図16に関しても論じる結果決定エンジンの動作について、同様の処理が使用される。ASRがHSR認識と合致すると判定された場合は、処理は完了する。そうでない場合は、処理は1307に戻って、上述したように、HSR認識を適用し統計を更新する。
一実装形態では、ASRは、認識の結果として文法から選択する必要はないことに留意されたい。ASRはまた、「合致なし」、「入力なし」または「雑音」という結果を返すこともでき、その場合は、やはりアプリケーションによって確立された基準に応じて、前述のようにさらにHSR処理が使用される。
図14を参照すると、結果決定エンジン1401の一実施形態が示されており、この動作について以下のように述べる。結果決定エンジン1401は、2つ以上のASRリソースからの認識の結果を検討し、適切な次のステップを決定する。最初に、チェック1402が行われて、2つのASRリソースからの結果が一致するかどうか判定される。一致する場合は、チェック1403が行われて、信頼度が適切な閾値よりも高いかどうか判定される。一実施形態では、各ASRはそれ自体の閾値を有し、いずれかのASRが信頼度閾値よりも高ければ信頼度は十分であると考えられる。その場合、閾値よりも高いレコグナイザについては妥当性検査統計がインクリメントされ(1404)(一致するが閾値未満であるASRがあれば、それについての統計はインクリメントもデクリメントもされない)、処理は完了する。
結果が一致しない場合、または信頼度レベルが十分に高くない場合は、フィラーが発信者に対して再生され(1405)、1406で、認識を実施するようHSRリソースが呼び出される。次にチェック1407が行われて、ASR結果のうちの少なくとも1つがHSR結果と一致するかどうか判定される。一致しない場合、チェック1408が行われて、HSRが二重チェックHSRであったかどうか判定される。そうでなかった場合は、再びフィラーが再生され(1409)、追加のHSR認識1410が実施される。HSRがASRと一致する場合、またはHSRが二重チェックであった場合、または第2のHSR1410が実施された場合は、処理は移行して、一致するHSR結果を使用する(1411)。これは、一致しないASRからの統計をデクリメントすることを含み、また、一致するが閾値未満であるASRがあれば、それらからの統計をデクリメントする(ただし比例配分量、一実施形態では3分の1で)。次に、閾値より高い一致するASR妥当性検査統計があれば、それらがインクリメントされ(1412)、処理は完了する。
図15は、1または複数のASRリソースが1または複数のHSRリソースと共に使用される場合の、結果決定エンジンの処理を示す。この場合の、特定の結果決定エンジン1501の動作は、結果が全て一致するかどうかチェックすること(1502)によって開始する。一致する場合は、上記のように、チェック1503が行われて、各ASRについての信頼度がその閾値よりも高いかどうか判定され、閾値よりも高い場合は、妥当性検査統計がインクリメントされる(1504)。上述したように、一致するが閾値未満であるASRがあれば、それらについては比例配分の差引きでインクリメントされる。次いで処理は完了する。
結果が一致しない場合、チェック1505が行われて、二重チェックHSRが使用されたかどうか判定され、使用されなかった場合は、フィラーが再生され(1506)、第2のHSR認識1507が実施される。次いで、HSR結果が一致すると仮定して、上述したように、HSR結果が使用され(1508)、一致しないASRについての統計がデクリメントされる。HSR結果が一致しない場合は、処理は図13に関して上述したように継続する。一致するASRがあれば、それらについては、完全に、または上述したように比例配分方式で、妥当性検査統計がインクリメントされる(1509)。次いで処理は完了する。
図16を参照すると、HSRリソースのみが使用される場合の、結果決定エンジン1601の一実施形態の処理が示されている。最初のチェック1602で、二重チェックHSRが使用されたかどうか判定する(呼出し元アプリケーションによって二重チェックHSRが必要とされたと仮定して)。二重チェックが使用されなかった場合は、フィラーが再生され(1603)、第2のHSR認識1604が実施されて、認識が正しいことが確実にされる。
次にチェック1605が行われて、HSRの結果が一致するかどうか判定される。一致しない場合は、処理は完了し、一実施形態では、呼出し元アプリケーションの要件を満たすために、第3のHSR認識(図示せず)など、このプロセスの範囲外のさらに他の処理が必要とされることになる。このような場合、第3の認識の後に収束がない場合は、「合致なし」状況が宣言され、これは、認識の試みが失敗したことを示す。収束がある場合は、少なくとも2つの一致するHSRの結果が使用される。
チェック1605における2つのHSR結果が一致する場合は、処理は完了し、例えば認識された発話は、前述のような整調/訓練のためのグループに追加することができる。プロンプトに対する応答の解釈は、テキスト分析の2つの種類、すなわち情報抽出およびセンス分類として見ることができる。情報抽出は、顧客ID、電話番号、日時、住所、製品タイプ、問題など、用件フォームのスロットを埋めるのに不可欠な特定の情報断片を、識別、抽出および正規化することである。センス分類は、追加の2つの情報タイプ、即ち意味(意図)および応答品質を識別することに関係する。意味(意図)は、どんな種類のフォームを埋める必要があるかということと関係がある(料金請求、予約のスケジューリング、苦情など)。応答品質は、応答自体と関係がある(不明瞭、雑音、英語ではなくスペイン語、生のエージェントと話したいという要望など)。
図17を参照するが、上述の方法およびシステムを実現して、人間らしい体験を最大限にすることができる。予測最適化1730およびメディア加速1734の結果に示すように、ASRプロキシからアプリケーションに応答し返すための全体的な認識ギャップ時間は、一例では1.25秒に短縮することができる。図17の具体的なグラフを詳しく検討するが、1710は、最適化されない典型的な認識体験を表す。認識すべきメディア(発話)は、3.75秒の長さである(1750)。この場合に、ASRプロキシがメディアをリアルタイムでストリーミングするが、通常、自動認識を完了するには、メディアストリームの終わりから、1秒の数分の1だけ多くかかる(1712)。ASRプロキシの結果決定エンジンは、HSR(後述する図18の1860)が必要だと決定するが、メディア(発話)は始めから処理される必要があり、これにより、もう約4秒が追加され(1714)、ユーザから見たギャップは少なくとも4.25秒になる。このギャップは、アプリケーション1810によって、業界で「フィラープロンプト」としばしば呼ばれる方式で埋めることができ、それにより、システムがまだ問題に取り組んでいることをユーザが確実に認識するようにする。このフィラープロンプトは、発信者とのより人間らしい対話を生み出す目標を達成しないのは確かである。グラフ1715に移ると、システムは、メディアを例えば1秒加速させることによって改善を図ることができ、それにより、人間援助による理解を3秒に短縮し(1719)、認識ギャップまでのメディア停止を3.25秒に短縮することができる。これはなかなかの改善である。1730に示すように、自動認識が、部分認識予測器を使用して、より短い時間で結果の予測を提供する。1732に示すように、認識が失敗したと判定するのに2秒しかかからず、その後、ASRプロキシは、人間援助を求めてメディアをストリーミングし、メディアを加速させる。結果として、メディアの終わりから人間援助の成功までの全体的な認識ギャップは、4.25秒から1.25秒に大きく短縮された。これにより、ASRプロキシの認識ギャップは、人間らしい対話により近く合致する範囲に短縮される。
図18に、ASRプロキシの主要なシステムコンポーネントを示し、図11のいくつかの要素を詳述してASRプロキシをさらに例証する。図11の図解の一部にはないが、本開示内にはユーザ状態管理ストア1813があり、明確にするためにこれを図18に特に示す。ユーザ状態管理1813は、ユーザに関する情報(例えば、ユーザ識別、好ましい通信チャネルおよび所有機器)を有する。認識成功(人間援助ではなく自動化)など、ユーザの処理にとって重要な情報が、将来の使用のために統計ストア1830に記憶される。システムは、各対話のステータスに関する情報を維持する。この情報は、一方では、意図分析の利用可能性に関する情報からなり、他方では、提示された認識要求と、これらの要求に対する応答と、これらの応答の意味(意図)と、これらの応答から抽出された特定の内容と、プロキシが次にどんなアクションを実施することになるかとのシーケンスに関する情報からなる。
プロキシ処理システムは、特定のプロンプトと、このプロンプトに対する応答の意味(意図)と、この応答から抽出された特定の情報とに基づいて、そのアクション(すなわち、どんな追加情報をユーザに要求するか、およびその情報を用いてどんなアクションを次に実施するか)を調整する。システムステータスサブシステム1815は、HSRキャパシティまたはある実施形態ではシステム負荷と、これがどのように自動認識および人間認識の使用に影響を及ぼすかとを、常に把握している。図18の残りの要素については、他の図に関して上述したとおりであり、ここでは、ASR/NLU1850は、利用できる複数のASR/NLUインスタンスを表すように複数の円で特に示されている。
図19に、システムステータスの評価に基づいてASRまたはDTMFの機能を場合により使用する(アプリケーションに基づいて適切なら)、決定エンジンの動作を示す。本明細書では、これらの動作は認識決定エンジン1980および結果決定エンジン1990によって処理されるものとして述べるが、様々なメモリおよびプロセッサアーキテクチャを使用してこのようなエンジンを実現できることは、当業者なら認識するであろう。認識に関する統計がない場合(1900)は、十分なHSRキャパシティがない場合にDTMF手法を使用して自動化するようアプリケーションに知らせること以外には、自動化は使用されない。DTMFがアプリケーションに利用可能にされることになり、アプリケーションは、業務規則によってDTMFの変形が利用可能にされることを許容する。この実施形態では、DTMFは、アプリケーションからの第2の認識要求に基づいて使用されることになる。様々な実施形態で、アプリケーションは、利用可能であることを無視して後続の認識を試みることを選ぶこともでき、または、ある認識要求に対してはDTMFを使用し、最も難しいアイテムはHSRに任せることを選ぶこともできる。例えば、電話番号のデータ収集はDTMFによって容易に行うことができるが、EメールアドレスはHSRによってより適切に扱われる。
アプリケーションが、ある実施形態で、システムステータス1815および統計の利用可能性1830に応じて、通知し(1900R)、いくつかの形の人間らしい対話を提供する。即ち、これらの対話は、(1)人間援助による理解のみを使用した、人間らしい対話1925、(2)自動化と人間援助の組合せを高品質で使用した、人間らしい対話1930、(3)アプリケーションが異なる品質に応答できることを必要とせずに、自動化と人間援助の組合せを負荷要因に応じて可変品質で使用した、人間らしい対話1930、(4)アプリケーションがより低い自動化信頼度に合わせて検証促進を増加させる、自動化1950と人間援助1960の組合せを負荷要因に応じて可変品質で使用した、人間らしい対話1930または1940、および、(5)DTMFダイアログなど、人間らしくなることが意図されない対話1940である。このように、システムは、ASRプロキシの機能とシステムの負荷とに応答して、種々のタイプのプロンプトを提示する。例えば、(5)の場合では「販売については1を押して下さい。・・・については2を押して下さい・・・」となるが、同じ質問が、「どういったご用件ですか?」として言い換えられることになり、これは(1)の場合を例証する。
図20は、図18および図19で主に述べたようなロジックおよびコンポーネントを含み、統計を用いたASRおよびHSR処理のフローを示す。図21および図22は、任意選択の同時並行フローであることに留意されたい。図20は、認識決定エンジン2000および結果決定エンジン2020を使用し、これらは、統計1820をシステムステータス情報1815と共に使用し、任意選択で、認識メディア(音声、ビデオ)を加速させて(2010)、自動化と人間援助との間のフェイルオーバ時間を短縮する。
図21に、任意選択の並行フローを示すが、この場合、認識決定エンジン2100における認識およびシステムステータス1815に、タイマ統計が組み合わせられる。メディアが、通常うまく認識できるもの(システム負荷に従って調節できる)よりも長い場合は、タイマイベントが発火し、認識は人間援助1860に移る。結果決定エンジン2150は、前述のように動作する。
図22に、任意選択の並行フローを示すが、この場合、認識決定エンジン2200中で、システム負荷予測信頼度調節に応じてメディアの一部に対する認識予測が行われ、認識が十分に成功でない場合、認識は人間援助1860に移る。結果決定エンジン2250は、やはり前述のように動作する。
図23に、メディアおよびメディアの意味の周りでデータを収集して、意味抽出のための最適な文法および分類器を構築するための、かつ最適な認識予測器も構築するための、整調サブシステム/フローを示す。図23では、ASR2310および分類器自動化が、アプリケーション中のプロンプトの選択されたサブセット2320に適用される使用ケースについて述べる。アプリケーションプロンプトのセットは様々なカテゴリに入るが、これらのうちのいくつかは自動化の自明な候補であり、いくつかは自動化が困難である。例えば、はい/いいえプロンプト、および限られたオプションプロンプトの場合は通常、ユーザ発話のレパートリはごく限られ、意図ラベルはごく少数となる。これらのタイプのプロンプトを評価しモデル化するには、ASR文法に対しても統計言語モデルに対しても機械学習分類器2340に対しても、比較的少量のデータしか必要でない。他方、自由回答式プロンプトでは、ユーザははるかに制約の少ない発話セットを生むことができるが、自由回答式プロンプトはより難しい。これらは、一般的と領域特有の両方の知識ベース2330によって増補することができる。これらのタイプのプロンプトには、比較的より多量のデータが必要である。多量のデータがあるときであっても、全てのタイプの発話または意図ラベルについての信頼できるモデルを生むには、なお多様性が大きすぎる場合もある。言い換えれば、これらの場合、プロンプトの言語的、カテゴリ的および統計的な特性を確立して、これらの特性に基づいてプロンプトの選択および策定を駆動することによって、自動化は進行する。これは、次のような1組の相関するタスクを伴う。
− 発話をそれらの特性に基づいて種々のカテゴリに分類する。
− ASRおよび分類器自動化に適した特性により、所与のアプリケーションの候補プロンプトを識別する。
− 早期認識の成功または失敗に対して予測器を決定する。
− 各プロンプトにつき、このプロンプトによって生成される発話に対するASRのための音響モデルおよび言語モデルと、このプロンプトのターゲット意図についての分類器モデルとを作り出し、整調し、記憶する。
− ASRおよび分類器自動化と、人間による意図分析とを、いつ利用またはトレードオフするかを決めるための、選択基準を決定する。
図24は、北米電話番号を複数の認識構成要素に分割する例を用いた、どのようにタイマ統計を計算できるか、並びに非常に単純な予測器の例である。要素2401から2403は、特定の質問(プロンプト)をうまく認識した際に集められた統計を表す。要素2401は、長さが2秒以下の種類の発話を表す。この長さは、この例で統計を有する全ての発話の15%を表す。ASRは、2秒以下の発話に対して90%成功と決定された。要素2402は、2秒よりも長く3秒以下の種類の発話を表し、ASR認識の成功は75%であり、発話の25%がこのグループに入る。要素2403は、3秒よりも長く4秒以下の種類の発話を表す。これは、システムステータスによって影響を受ける可能性のある使用ケースの例である。十分なHSRリソースがある場合は、タイマを確立して認識を3秒(2402)で中断し、ASRを使用して発話の32.3%をうまく認識することができる。または、システム負荷が増大した場合は、タイマを4秒(2403)に調節し、44.3%を認識することができる。非常に高い負荷の下では、ASRプロキシは、タイマを使用しないことを決定することができることに留意されたい。但しこれは、話者にとってより長い待機時間を引き起こす。しかしこの結果、55.3%までがうまく認識される。
要素2404は、3桁のエリアコードのASR認識を表す。要素2405は、3桁のエリアコードのASR認識と、それに加えて3桁の交換局の認識を表す。要素2406は、北米電話番号全体のASR認識を表す。例えば、電話番号を話すのに約8秒かかる場合、各ステップ2404、2405および2406は、発話を処理するのにより多くの時間がかかる。第1のステップ2404は時間のうちの約30%(2.4秒)かかり、ステップ2は時間のうちの60%(4.8秒)かかり、3つの認識ステップのうちのいずれかが信頼度未満の結果を示す場合は、認識は人間援助に移る。例えば、エリアコードが正しく認識されない場合、電話番号全体が話された後で初めて失敗するのではなく、電話番号が話されている間に、HSRの使用が2.4秒以内に起こる可能性がある。
様々な実施形態および実装形態で、この応答解釈は、意図分析者のみ(純粋なHSR)によって行うか、自動化ASR(純粋な自動音声認識および意図分類)によって行うか、またはASRとHSRの何らかの組合せによって行うことができる。ASR自動化の結果における信頼度を使用して、いつASRが信頼できる結果を生成しているかを決定することで、品質損失なしに(または制御された品質損失で)ASR自動化をHSRに対してトレードオフすることが可能である。このことは、プロキシ処理システムにおけるこの2つの手法の組合せにより、HSRのみを使用する場合よりも大きなスループットを達成することができ、より小さい意図分析者チームでピーク需要負荷をうまく満たすこともできることを意味する。
上記の主題については、可能性ある様々な実施形態に関して特に詳細に述べた。主題を他の実施形態で実践することもできることを、当業者なら理解するであろう。第1に、コンポーネントの特定の命名、用語の大文字使用、属性、データ構造またはいずれか他のプログラミング上若しくは構造上の側面は、必須でも有意でもなく、主題またはその特徴を実現するメカニズムは、異なる名称、フォーマットまたはプロトコルを有してもよい。さらに、システムは、述べたようにハードウェアとソフトウェアの組合せを介して実現されてもよく、または完全にハードウェア要素において実現されてもよい。また、本明細書で述べた、様々なシステムコンポーネント間における機能の特定の分割は、例に過ぎず、必須ではない。単一のシステムコンポーネントによって実施される機能が、代わりに複数のコンポーネントによって実施されてもよく、複数のコンポーネントによって実施される機能が、代わりに単一のコンポーネントによって実施されてもよい。
上述のいくつかの部分では、主題の特徴、プロセスステップおよび命令を、情報に対する操作のアルゴリズムおよび象徴表現で提示している。これらのアルゴリズム的記述および表現は、データ処理技術分野の当業者によって、その作業の本質を他の当業者に最も効果的に伝えるために使用される手段である。これらの操作は機能的または論理的に記述されるが、これらの操作は、ソフトウェア、ファームウェアまたはハードウェアにおいて具体化されてよく、ソフトウェアにおいて具体化されるときは、リアルタイムネットワークオペレーティングシステムによって使用される種々のプラットフォーム上に存在しこれらのプラットフォームから操作されるように、ダウンロードされてよい。
さらに、一般性を失うことなく、操作のこれらの構成をモジュールとしてまたは機能的名称によって言及することが、時として好都合であることもわかっている。
特段に明記されない限り、または上記の考察から明らかなように、この記述全体を通して、「決定する」などの用語を利用した考察は、コンピュータシステムメモリ若しくはレジスタ内で、または他のそのような情報記憶、伝送、若しくは表示デバイス内で、物理的(電子的)な量として表されるデータを操作および変換する、コンピュータシステムまたは類似の電子コンピューティングデバイスのアクションおよびプロセスを指すことを理解されたい。
主題はまた本明細書の動作を実施するための装置に関する。この装置は、必要とされる目的のために特に構築されたものであってもよく、またはコンピュータによってアクセスできコンピュータプロセッサによって実行できるコンピュータ可読媒体に記憶されたコンピュータプログラムによって選択的にアクティブ化または再構成される汎用コンピュータを含んでもよい。このようなコンピュータプログラムは、非一時的コンピュータ可読記憶媒体に記憶されてよく、この非一時的コンピュータ可読記憶媒体は、以下のものに限定されないが、フロッピー(登録商標)ディスクや光ディスクやCD−ROMや光磁気ディスクを含めた任意のタイプのディスク、ROM、RAM、EPROM、EEPROM、磁気若しくは光学カード、ASICまたは電子的命令を記憶するのに適した任意のタイプの媒体などであり、これらは各々コンピュータシステムバスに結合される。さらに、本明細書で言及されるコンピュータは、単一のプロセッサを備えてもよく、またはコンピューティング能力の増大のために複数プロセッサ設計を利用するアーキテクチャであってもよい。
また、主題は、いずれか特定のプログラミング言語に関して述べるものではない。様々なプログラミング言語を使用して本明細書に記載の主題の教示を実現できること、並びに、特定の言語へのどんな言及も、主題の使用可能性および最良モードのために提供するものであることを理解されたい。
主題は、多くのトポロジにまたがる幅広いコンピュータネットワークシステムによく適する。この分野内で、大きいネットワークの構成および管理は、インターネットなどのネットワークを介して異種のコンピュータおよび記憶デバイスに通信可能に結合される、記憶デバイスおよびコンピュータを含む。
最後に、本明細書で使用される言語は、主に読みやすさおよび教授目的のために選択されたものであり、主題を線引きまたは制限するために選択されたのではない場合があることに留意されたい。従って、本明細書の開示は、主題の範囲を限定するのではなく例証するものとする。