(57)【要約】  入力オーディオセグメントのようなデータセットをデータベース内の既知のデータセットとマッチングするためのシステムおよび方法が開示される。例示的な実施形態において、発信電話呼の間に受ける既知のネットワークメッセージ記録の認識とともに、本明細書において開示されるシステムおよび方法を使用することが説明される。本方法は、比較プロセスをより効率的にするために、３値指紋ビットマップを作成することを含む。より大きなデータセット集合から既知のデータセットのデータベースを作成する自動化された方法も開示される。
2015515646.tif 000002
【特許請求の範囲】
【請求項１】
発信電話呼から候補オーディオセグメントを識別するための方法であって、
ａ）前記候補オーディオセグメントのスペクトログラムを作成するステップと、
ｂ）前記スペクトログラムの候補２値音響指紋ビットマップを作成するステップと、
ｃ）前記候補２値音響指紋ビットマップを、既知のネットワークメッセージの少なくとも１つの既知の２値音響指紋ビットマップと比較するステップと、
ｄ）前記候補２値音響指紋ビットマップが所定閾値内で前記少なくとも１つの既知の２値音響指紋ビットマップのうちの１つに一致する場合、一致を宣言するステップと、
ｅ）前記候補２値音響指紋ビットマップが前記所定閾値内で前記少なくとも１つの既知の２値音響指紋ビットマップのうちの１つに一致しない場合、前記候補オーディオセグメントを分析するために留守番電話検出アルゴリズムを使用するステップと
を含む、方法。
【請求項２】
ステップ（ａ）は、離散フーリエ変換、離散コサイン変換、ウェーブレット変換、およびフィルタバンクから成る群から選択される変換を使用して前記候補オーディオセグメントを変換するステップを含む、請求項１に記載の方法。
【請求項３】
ステップ（ｂ）は、
ｂ．１）前記スペクトログラムデータを、Ｎ＋１フレームを有するメル空間に変換するステップであって、Ｎは整数である、変換するステップと、
ｂ．２）以下の式に従って、連続したフレームにわたるバンドエネルギー差に基づいてＮビット２値指紋フレーム値を計算するステップであって、
【数１】
2015515646.tif 000004
式中、Ｅ（ｎ，ｍ）は、フレームｎの周波数帯域ｍのエネルギーであり、
Ｆ（ｎ，ｍ）は、指紋フレームｎの第ｍのビットである、計算するステップと
を含む、請求項１に記載の方法。
【請求項４】
ステップ（ｃ）は、前記候補２値音響指紋ビットマップと前記少なくとも１つの既知の２値音響指紋ビットマップとの間のハミング距離を計算するステップを含む、請求項１に記載の方法。
【請求項５】
前記所定閾値はビット誤り率である、請求項１に記載の方法。
【請求項６】
発信電話呼から候補オーディオセグメントを識別するための方法であって、
ａ）前記候補オーディオセグメントのスペクトログラムを作成するステップと、
ｂ）前記スペクトログラムの候補２値指紋ビットマップを作成するステップと、
ｃ）前記候補２値指紋ビットマップを、既知の記録の少なくとも１つの既知の２値指紋ビットマップと比較するステップと、
ｄ）前記候補２値指紋ビットマップが所定閾値内で前記少なくとも１つの既知の２値指紋ビットマップのうちの１つに一致する場合、一致を宣言するステップと、
ｅ）前記候補２値指紋ビットマップが前記所定閾値内で前記少なくとも１つの既知の２値指紋ビットマップのうちの１つに一致しない場合、前記候補オーディオセグメントを分析するために代替のプロセスを使用するステップと
を含む、方法。
【請求項７】
前記候補２値指紋ビットマップおよび前記既知の２値指紋ビットマップは各々、音響指紋ビットマップを含む、請求項６に記載の方法。
【請求項８】
前記記録はネットワークメッセージを含む、請求項６に記載の方法。
【請求項９】
前記代替のプロセスは、留守番電話検出アルゴリズム、音声区間検出アルゴリズム、およびコールプログレス分析アルゴリズムから成る群から選択されるプロセスを含む、請求項６に記載の方法。
【請求項１０】
ステップ（ａ）は、離散フーリエ変換、離散コサイン変換、ウェーブレット変換、およびフィルタバンクから成る群から選択される変換を使用して前記候補オーディオセグメントを変換するステップを含む、請求項６に記載の方法。
【請求項１１】
ステップ（ｂ）は、
ｂ．１）前記スペクトログラムデータを、Ｎ＋１フレームを有するメル空間に変換するステップであって、Ｎは整数である、変換するステップと、
ｂ．２）以下の式に従って、連続したフレームにわたるバンドエネルギー差に基づいてＮビット２値指紋フレーム値を計算するステップであって、
【数２】
2015515646.tif 000005
式中、Ｅ（ｎ，ｍ）は、フレームｎの周波数帯域ｍのエネルギーであり、
Ｆ（ｎ，ｍ）は、指紋フレームｎの第ｍのビットである、計算するステップと
を含む、請求項７に記載の方法。
【請求項１２】
ステップ（ｃ）は、前記候補２値指紋ビットマップと前記少なくとも１つの既知の２値指紋ビットマップとの間のハミング距離を計算するステップを含む、請求項６に記載の方法。
【請求項１３】
前記所定閾値はビット誤り率である、請求項６に記載の方法。
【請求項１４】
データセットの３値ビットマップを作成するための方法であって、
ａ）前記データセットの２値指紋ビットマップを計算するステップと、
ｂ）前記データセットから第１の数のサンプルを消去するステップと、
ｃ）ステップ（ｂ）の後、前記データセットの別の２値指紋ビットマップを計算するステップと、
ｄ）複数の２値指紋ビットマップを作成するために、ステップ（ｂ）および（ｃ）を複数回繰り返すステップと、
ｅ）前記複数の２値指紋ビットマップを組み合わせて３値ビットマップにするステップであって、前記３値ビットマップ内の各ビットは、
ｅ．１）前記複数の２値ビットマップのうちの第１の所定数においてビットが０である場合、前記３値ビットマップ内の前記ビットを０に設定し、
ｅ．２）前記複数の２値ビットマップのうちの第２の所定数においてビットが１である場合、前記３値ビットマップ内の前記ビットを１に設定し、
ｅ．３）それ以外の場合、前記３値ビットマップ内の前記ビットを＊（「Ｄｏｎ’ｔ  Ｃａｒｅ」）に設定する
ように決定される、組み合わせるステップと
を含む、方法。
【請求項１５】
前記第１の数のサンプルは、前記データセットからの第１のサンプルを含む、請求項１４に記載の方法。
【請求項１６】
前記第１の所定数は前記複数の２値ビットマップのすべてを含み、前記第２の所定数は前記複数の２値ビットマップのすべてを含む、請求項１４に記載の方法。
【請求項１７】
前記第１の所定数および前記第２の所定数は等しい、請求項１４に記載の方法。
【請求項１８】
前記データセットはステップ（ａ）の前に人工的に劣化される、請求項１４に記載の方法。
【請求項１９】
前記２値指紋ビットマップは音響指紋ビットマップを含む、請求項１４に記載の方法。
【請求項２０】
前記データセットはオーディオセグメントを含む、請求項１４に記載の方法。
【請求項２１】
前記オーディオセグメントは発信電話呼からのオーディオセグメントを含む、請求項２０に記載の方法。
【請求項２２】
候補データセットを識別するための方法であって、
ａ）既知のデータセットデータベース内の既知のデータセットの２値指紋ビットマップを計算するステップと、
ｂ）前記既知のデータセットから第１の数のサンプルを消去するステップと、
ｃ）ステップ（ｂ）の後、前記既知のデータセットの別の２値指紋ビットマップを計算するステップと、
ｄ）複数の２値指紋ビットマップを作成するために、ステップ（ｂ）および（ｃ）を複数回繰り返すステップと、
ｅ）前記複数の２値指紋ビットマップを組み合わせて３値ビットマップにするステップであって、前記３値ビットマップ内の各ビットは、
ｅ．１）前記複数の２値ビットマップのうちの第１の所定数においてビットが０である場合、前記３値ビットマップ内の前記ビットを０に設定し、
ｅ．２）前記複数の２値ビットマップのうちの第２の所定数においてビットが１である場合、前記３値ビットマップ内の前記ビットを１に設定し、
ｅ．３）それ以外の場合、前記３値ビットマップ内の前記ビットを＊（「Ｄｏｎ’ｔ  Ｃａｒｅ」）に設定する
ように決定される、組み合わせるステップと、
ｆ）前記３値ビットマップを３値ビットマップデータベース内に保存するステップと、
ｇ）前記既知のデータセットデータベース内のすべての既知のデータセットについてステップ（ａ）〜（ｆ）を繰り返すステップと、
ｈ）前記候補データセットから候補データセット２値指紋ビットマップを作成するステップと、
ｉ）前記候補データセット２値指紋ビットマップを前記３値ビットマップデータベース内の各３値ビットマップと比較するステップであって、前記比較は前記Ｄｏｎ’ｔ  Ｃａｒｅビットを無視する、比較するステップと
を含む、方法。
【請求項２３】
前記第１の数のサンプルは、前記データセットからの第１のサンプルを含む、請求項２２に記載の方法。
【請求項２４】
前記第１の所定数は前記複数の２値ビットマップのすべてを含み、前記第２の所定数は前記複数の２値ビットマップのすべてを含む、請求項２２に記載の方法。
【請求項２５】
前記第１の所定数および前記第２の所定数は等しい、請求項２２に記載の方法。
【請求項２６】
前記データセットはステップ（ａ）の前に人工的に劣化される、請求項２２に記載の方法。
【請求項２７】
前記２値指紋ビットマップおよび前記候補２値指紋ビットマップは各々、音響指紋ビットマップを含む、請求項２２に記載の方法。
【請求項２８】
前記データセットはオーディオセグメントを含む、請求項２２に記載の方法。
【請求項２９】
前記オーディオセグメントは発信電話呼からのオーディオセグメントを含む、請求項２８に記載の方法。
【請求項３０】
オーディオセグメントの３値ビットマップを作成するための方法であって、
ａ）前記オーディオセグメントの２値音響指紋ビットマップを計算するステップと、
ｂ）前記オーディオセグメントから第１の数のサンプルを消去するステップと、
ｃ）ステップ（ｂ）の後、前記オーディオセグメントの別の２値音響指紋ビットマップを計算するステップと、
ｄ）複数の２値音響指紋ビットマップを作成するために、ステップ（ｂ）および（ｃ）を複数回繰り返すステップと、
ｅ）前記複数の２値音響指紋ビットマップを組み合わせて３値ビットマップにするステップであって、前記３値ビットマップ内の各ビットは、
ｅ．１）前記複数の２値ビットマップのうちの第１の所定数においてビットが０である場合、前記３値ビットマップ内の前記ビットを０に設定し、
ｅ．２）前記複数の２値ビットマップのうちの第２の所定数においてビットが１である場合、前記３値ビットマップ内の前記ビットを１に設定し、
ｅ．３）それ以外の場合、前記３値ビットマップ内の前記ビットを＊（「Ｄｏｎ’ｔ  Ｃａｒｅ」）に設定する
ように決定される、組み合わせるステップと
を含む、方法。
【請求項３１】
前記第１の数のサンプルは、前記オーディオセグメントからの第１のサンプルを含む、請求項３０に記載の方法。
【請求項３２】
前記第１の所定数は前記複数の２値ビットマップのすべてを含み、前記第２の所定数は前記複数の２値ビットマップのすべてを含む、請求項３０に記載の方法。
【請求項３３】
前記第１の所定数および前記第２の所定数は等しい、請求項３０に記載の方法。
【請求項３４】
前記データセットはステップ（ａ）の前に人工的に劣化される、請求項３０に記載の方法。
【請求項３５】
前記オーディオセグメントは発信電話呼からのオーディオセグメントを含む、請求項３０に記載の方法。
【請求項３６】
候補オーディオセグメントを識別するための方法であって、
ａ）既知のオーディオセグメントデータベース内の既知のオーディオセグメントの２値音響指紋ビットマップを計算するステップと、
ｂ）前記既知のオーディオセグメントから第１の数のサンプルを消去するステップと、
ｃ）ステップ（ｂ）の後、前記既知のオーディオセグメントの別の２値音響指紋ビットマップを計算するステップと、
ｄ）複数の２値音響指紋ビットマップを作成するために、ステップ（ｂ）および（ｃ）を複数回繰り返すステップと、
ｅ）前記複数の２値音響指紋ビットマップを組み合わせて３値ビットマップにするステップであって、前記３値ビットマップ内の各ビットは、
ｅ．１）前記複数の２値ビットマップのうちの第１の所定数においてビットが０である場合、前記３値ビットマップ内の前記ビットを０に設定し、
ｅ．２）前記複数の２値ビットマップのうちの第２の所定数においてビットが１である場合、前記３値ビットマップ内の前記ビットを１に設定し、
ｅ．３）それ以外の場合、前記３値ビットマップ内の前記ビットを＊（「Ｄｏｎ’ｔ  Ｃａｒｅ」）に設定する
ように決定される、組み合わせるステップと、
ｆ）前記３値ビットマップを３値ビットマップデータベース内に保存するステップと、
ｇ）前記既知のオーディオセグメントデータベース内のすべての既知のオーディオセグメントについてステップ（ａ）〜（ｆ）を繰り返すステップと、
ｈ）前記候補オーディオセグメントから候補オーディオセグメント２値音響指紋ビットマップを作成するステップと、
ｉ）前記候補オーディオセグメント２値音響指紋ビットマップを前記３値ビットマップデータベース内の各３値ビットマップと比較するステップであって、前記比較は前記Ｄｏｎ’ｔ  Ｃａｒｅビットを無視する、比較するステップと
を含む、方法。
【請求項３７】
前記第１の数のサンプルは、前記データセットからの第１のサンプルを含む、請求項３６に記載の方法。
【請求項３８】
前記第１の所定数は前記複数の２値ビットマップのすべてを含み、前記第２の所定数は前記複数の２値ビットマップのすべてを含む、請求項３６に記載の方法。
【請求項３９】
前記第１の所定数および前記第２の所定数は等しい、請求項３６に記載の方法。
【請求項４０】
前記データセットはステップ（ａ）の前に人工的に劣化される、請求項３６に記載の方法。
【請求項４１】
前記オーディオセグメントは発信電話呼からのオーディオセグメントを含む、請求項３６に記載の方法。
【請求項４２】
データセットの加重圧縮表現を作成するための方法であって、
ａ）前記データセットの圧縮表現を計算するステップと、
ｂ）前記データセットに変換を適用するステップと、
ｃ）ステップ（ｂ）の後、前記データセットの別の圧縮表現を計算するステップと、
ｄ）複数の圧縮表現を作成するために、ステップ（ｂ）および（ｃ）を複数回繰り返すステップと、
ｅ）前記複数の圧縮表現を組み合わせて加重圧縮表現にするステップであって、前記加重圧縮表現における各重みは、前記複数の圧縮表現内の要素の関数として計算される、組み合わせるステップと
を含む、方法。
【請求項４３】
前記圧縮表現は、第１の数の２次元ベクトルである、請求項４２に記載の方法。
【請求項４４】
前記第１の数は各々、第１のビット数によって表される、請求項４３に記載の方法。
【請求項４５】
前記第１のビット数は１である、請求項４４に記載の方法。
【請求項４６】
前記加重圧縮表現は、第２の数の２次元ベクトルである、請求項４２に記載の方法。
【請求項４７】
前記第２の数は各々、第２のビット数によって表される、請求項４６に記載の方法。
【請求項４８】
前記関数は、前記複数の圧縮表現内の前記要素の相関係数として前記各重みを計算する、請求項４２に記載の方法。
【請求項４９】
前記相関係数は、
１）要素が、前記複数の圧縮表現の第１の所定数内の第１の所定閾値を下回る場合、前記相関係数を第１の値に設定し、
２）要素が、前記複数の圧縮表現の第２の所定数内の第２の所定閾値を上回る場合、前記相関係数を第２の値に設定し、
３）それ以外の場合、前記相関係数を第３の値に設定する
ように計算される、請求項４８に記載の方法。
【請求項５０】
前記第１の値は＋１であり、前記第２の値は−１であり、前記第３の値は０である、請求項４９に記載の方法。
【請求項５１】
前記第１の所定閾値は１であり、前記第２の所定閾値は０である、請求項４９に記載の方法。
【請求項５２】
前記第１の所定数は前記複数の圧縮表現のすべてを含み、前記第２の所定数は前記複数の圧縮表現のすべてを含む、請求項４９に記載の方法。
【請求項５３】
前記変換は、前記データセットからの第１の数の要素を消去することを含む、請求項４２に記載の方法。
【請求項５４】
前記第１の数は１である、請求項４２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、オーディオ信号のような既知のデータセットを識別することに関し、より詳細には、データセットをフィンガープリントするためのシステムおよび方法に関する。
【背景技術】
【０００２】
本開示および本明細書に開示されている例示的な実施形態の背景を、発信電話呼の間に、たとえば、コンタクトセンターから行われる通話呼の間に受ける既知の録音を識別するコンテキストにおいて説明する。しかしながら、本発明は、オーディオまたは画像（本明細書において使用される場合、「画像」という用語は、静止画像および動画の両方を包含するように意図されている）のタイプまたはソースにかかわらず、また、オーディオまたは画像を受ける状況にかかわらず、オーディオまたは画像の任意のセグメントの識別に対する適用可能性を有する。さらに、本発明は、たとえば、任意のタイプのセンサから取得されるデータのような、データの任意の断片の識別に対する適用可能性も有する。それゆえ、本明細書において使用される場合、「データセット」という用語は、オーディオ、画像、または他のタイプのデータを含むか否かにかかわらず、任意のタイプのデータの集合を包含するものとする。
【０００３】
従来のコンタクトセンターのシナリオにおいて、発信呼は、自動的に（「自動ダイヤル装置」または「オートダイヤラ」として既知のクラスのデバイスによって）または手動でのいずれかで行われる。着呼側の生身の人間に届くことが決定された通話呼につながるために、数人の人間の「代理人」が控えている。このように、着呼側に代理人が話すことができる生身の人間がいると判定されるまで、代理人に通話呼に関与させないことによって、効率が得られる。発信呼の間に電話回線をモニタリングするために自動機器を使用することは、コールプログレス分析（ＣＰＡ）と称される。ＣＰＡは、呼設定の間のオーディオおよびネットワークシグナリングに対して動作する一クラスのアルゴリズムである。ＣＰＡの目的は、発呼者の性質、または外部ネットワーク（従来の公衆交換電話網またはボイスオーバーインターネットプロトコル（ＶＩＰ））に対する呼設定の結果を判定することである。具体的には、通話呼またはセッションが確立されようとしているとき、発呼者または開始者は、生身の発話者が応答したか否か、話し中かなどを判定しなければならない。自動ダイヤル装置またはメッセージブロードキャスティングシステムのような発呼者が自動アプリケーションであるとき、ＣＰＡアルゴリズムは、自動的に分類を実行するのに使用される。ＣＰＡは、電話網によって発呼側エンティティに送達される、折り返しおよび話し中のような、いわゆるコールプログレストーンを解釈するのに使用される。従来のＣＰＡは、帯域内信号音を定量化するために、経時的なエネルギー測定とともに、ローおよびハイパス周波数弁別器を使用して実行される。
【０００４】
発信呼におけるオーディオを分類するための別の方法は、音声区間検出（ＶＡＤ）として既知であり、これは、オーディオストリームの中でどこに発話が存在するかを識別する一クラスのオーディオ処理アルゴリズムである。検出される発話は、生身の発話者または録音されたメッセージを含む、任意のソースに由来し得る。現行のＶＡＤアルゴリズムは、主な発話者の発生を背景雑音から区別するために、スペクトル分析を使用する。
【０００５】
ＶＡＤを使用して発話パターンを抽出し、パターンが生身の発話者または録音メッセージに由来するかを判定する一サブクラスのＣＰＡアルゴリズムは、留守番電話検出（ＡＭＤ）として既知である。生身の発話者につながっていない通話呼を識別することによって、正確なＡＭＤアルゴリズムは自動ダイヤル装置のスループットを大幅に増大させることができる。しかしながら、ＡＭＤからの誤検出は、無言電話または放棄呼につながり、コンタクトセンターにとっての収益の損失、および公衆の間での悪印象を引き起こす。ＡＭＤアルゴリズムの品質は、正確度および応答時間の関数である、世界の一部地域（特に米国および英国）は、その両方に厳密な法的要求事項を課している。
【０００６】
ＡＭＤは正確な科学技術ではなく、最適な手法は未解決の問題である。許容可能な正確度、速度、および柔軟性を達成するために、ＡＭＤアルゴリズムは、発話を生または録音として分類するためのニューラルネットワークのような発見的教授法および統計モデルの組合せを使用する。市販されている多くの商用ＡＭＤシステムがマーケティング文献において高い正解率（たとえば、９５％以上）を報告しているが、これらの数字に対する独立監査人はなく、継続的な広まっている不満を反映すると、実地での実際の正解率は一般的にはるかに低い（たとえば、８０％以下）。一部の消費者擁護団体によって全面禁止が提案されており、一部のコンタクトセンターはその制約のために単純にＡＭＤを使用することができない。
【０００７】
オーディオ識別の相対的に新規の科学技術が、音響指紋法として既知であり、システムが、候補オーディオストリームの「指紋」を生成し、それを、科学捜査において使用される人間の指紋法と同様に、既知の指紋のデータベースと比較する。このコンテキストにおいて、「指紋」とは、他のオーディオストリームとの知覚的同等性を迅速に確立することができる、オーディオストリームの凝縮された要約である。既知の指紋のデータベースは、既知の指紋を「タイトル」、「アーティスト」などのようなメタデータを関連付けることができる。過去十年間において、オーディオおよび画像に関するフィンガープリンティング技術における科学的および産業的関心は急速に高まった。用途は、歌曲および広告の識別、メディアライブラリの管理、および著作権順守を含む。
【０００８】
様々な音響フィンガープリンティングアルゴリズムクラスが提案されており、今日最も普及しているものが、「ランドマーク」または「ビットマップ」に基づくものである。ランドマークベースのアルゴリズムは、オーディオストリームから、スペクトルピーク、トーン、音高、音量の突然の変化などのような、「ランドマーク」と呼ばれる明確な特徴を抽出する。ランドマークの最適な選択は、ほとんど発見的教授法によって誘導される未解決の問題である。音響指紋は、各ランドマークを記述する一連のデータ構造体として記憶される。実行時、候補オーディオストリームから抽出されたランドマークは、距離メトリックに基づいて指紋のデータベースと比較される。
【０００９】
ビットマップベースのアルゴリズムは、オーディオストリームを一連のフレームとして分析し、フィルタバンクを使用して各フレームをサイズＮのビットベクトルに量子化し、ここで、Ｎは一般的に、簡便にするために、Ｃ型整数におけるビット数Ｎ∈｛８，１６，３２，または６４｝として選択される。有名でよく研究された例が、「Ｈａｉｔｓｍａ−Ｋａｌｋｅｒアルゴリズム」として既知であり、これは、時間および周波数の両方において短期間の差を比較するフィルタを使用して２値ビットマップを計算する。Ｈａｉｔｓｍａ−Ｋａｌｋｅｒアルゴリズムは文献においてよく研究されている。その発明者であるＪａａｐ  ＨａｉｔｓｍａおよびＴｏｎ  Ｋａｌｋｅｒは、Ｈａｉｔｓｍａ−Ｋａｌｋｅｒアルゴリズムの使用、および、数百万の歌曲のデータベースからの歌曲の３秒録音を識別するための２値音響指紋ビットマップの比較のレポートを刊行した（Ｈａｉｔｓｍａ  ａｎｄ  Ｋａｌｋｅｒ著「Ａ  Ｈｉｇｈｌｙ  Ｒｏｂｕｓｔ  Ａｕｄｉｏ  Ｆｉｎｇｅｒｐｒｉｎｔｉｎｇ  Ｓｙｓｔｅｍ」（Ｊｏｕｒｎａｌ  ｏｆ  Ｎｅｗ  Ｍｕｓｉｃ  Ｒｅｓｅａｒｃｈ，Ｖｏｌ．３２，Ｎｏ．２（２００３），ｐｐ．２１１−２２１））。完全な音響指紋は、一連のビットベクトル、またはビットマップとして記憶される。図１Ａ〜図１Ｃに示されているように、「この番号は回線から切断されています（Ｔｈｉｓ  ｎｕｍｂｅｒ  ｈａｓ  ｂｅｅｎ  ｄｉｓｃｏｎｎｅｃｔｅｄ）」と言っている電話網からのメッセージを含む、オーディオストリームの３つの画像が図示されている。図１Ａは、元のオーディオ波信号を示し、８０００ＫＨｚにおいて１．５秒間のオーディオがサンプリングされている。図１Ｂは、元のオーディオ入力信号のスペクトログラムを示し、暗領域は特定の周波数においてエネルギーが高いことを示している。図１ＣはＨａｉｔｓｍａ−Ｋａｌｋｅｒアルゴリズムを使用して作成される２値音響指紋ビットマップを示し、高さはＮ＝１６である。この高さは、各フレームにおいて計算されるビット数によって決定され、幅は、オーディオストリーム内のフレーム数によって決定される。実行時、候補オーディオストリームから計算されたビットマップが、ハミング距離としても既知である、一致しないビットの数に基づいてビットマップのデータベースと比較される。
【００１０】
ビットマップマッチングおよび音響指紋の使用は、オーディオ認識の科学技術において強力な新しいツールであるが、これは計算集約的であり、多くの場合において一致を作るために数秒間のオーディオをサンプリングする必要がある。この遅延によって、これはコールプログレス分析に使用するにはよく適しているとは言えないものになる。したがって、一般的な場合および発信呼試行中の両方において、オーディオを識別するためのより速くより正確なシステムおよび方法が依然として必要とされている。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】Ｈａｉｔｓｍａ  ａｎｄ  Ｋａｌｋｅｒ著「Ａ  Ｈｉｇｈｌｙ  Ｒｏｂｕｓｔ  Ａｕｄｉｏ  Ｆｉｎｇｅｒｐｒｉｎｔｉｎｇ  Ｓｙｓｔｅｍ」（Ｊｏｕｒｎａｌ  ｏｆ  Ｎｅｗ  Ｍｕｓｉｃ  Ｒｅｓｅａｒｃｈ，Ｖｏｌ．３２，Ｎｏ．２（２００３），ｐｐ．２１１−２２１）
【発明の概要】
【課題を解決するための手段】
【００１２】
入力オーディオセグメントのようなデータセットをデータベース内の既知のデータセットとマッチングするためのシステムおよび方法が開示される。例示的な実施形態において、発信電話呼の間に受ける既知のネットワークメッセージ記録の認識とともに、本明細書において開示されるシステムおよび方法を使用することが説明される。本方法は、比較プロセスをより効率的にするために、３値指紋ビットマップを作成することを含む。より大きなデータセット集合から既知のデータセットのデータベースを作成する自動化された方法も開示される。
【００１３】
一実施形態において、発信電話呼から候補オーディオセグメントを識別するための方法が開示され、方法は、ａ）候補オーディオセグメントのスペクトログラムを作成するステップと、ｂ）スペクトログラムの候補２値音響指紋ビットマップを作成するステップと、ｃ）候補２値音響指紋ビットマップを、既知のネットワークメッセージの少なくとも１つの既知の２値音響指紋ビットマップと比較するステップと、ｄ）候補２値音響指紋ビットマップが所定閾値内で上記少なくとも１つの既知の２値音響指紋ビットマップのうちの１つに一致する場合、一致を宣言するステップと、ｅ）候補２値音響指紋ビットマップが所定閾値内で上記少なくとも１つの既知の２値音響指紋ビットマップのうちの１つに一致しない場合、候補オーディオセグメントを分析するために留守番電話検出アルゴリズムを使用するステップとを含む。
【００１４】
別の実施形態において、発信電話呼から候補オーディオセグメントを識別するための方法が開示され、方法は、ａ）候補オーディオセグメントのスペクトログラムを作成するステップと、ｂ）スペクトログラムの候補２値指紋ビットマップを作成するステップと、ｃ）候補２値指紋ビットマップを、既知の記録の少なくとも１つの既知の２値指紋ビットマップと比較するステップと、ｄ）候補２値指紋ビットマップが所定閾値内で上記少なくとも１つの既知の２値指紋ビットマップのうちの１つに一致する場合、一致を宣言するステップと、ｅ）候補２値指紋ビットマップが所定閾値内で上記少なくとも１つの既知の２値指紋ビットマップのうちの１つに一致しない場合、候補オーディオセグメントを分析するために代替のプロセスを使用するステップとを含む。
【００１５】
さらなる実施形態において、データセットの３値ビットマップを作成するための方法が開示され、方法は、ａ）データセットの２値指紋ビットマップを計算するステップと、ｂ）データセットから第１の数のサンプルを消去するステップと、ｃ）ステップ（ｂ）の後、データセットの別の２値指紋ビットマップを計算するステップと、ｄ）複数の２値指紋ビットマップを作成するために、ステップ（ｂ）および（ｃ）を複数回繰り返すステップと、ｅ）複数の２値指紋ビットマップを組み合わせて３値ビットマップにするステップであって、３値ビットマップ内の各ビットは、ｅ．１）複数の２値ビットマップのうちの第１の所定数においてビットが０である場合、３値ビットマップ内のそのビットを０に設定し、ｅ．２）複数の２値ビットマップのうちの第２の所定数においてビットが１である場合、３値ビットマップ内のそのビットを１に設定し、ｅ．３）それ以外の場合、３値ビットマップ内のそのビットを＊（「Ｄｏｎ’ｔ  Ｃａｒｅ（適用除外）」）に設定するように決定される、組み合わせるステップとを含む。
【００１６】
また別の実施形態において、候補データセットを識別するための方法が開示され、方法は、ａ）既知のデータセットデータベース内の既知のデータセットの２値指紋ビットマップを計算するステップと、ｂ）既知のデータセットから第１の数のサンプルを消去するステップと、ｃ）ステップ（ｂ）の後、既知のデータセットの別の２値指紋ビットマップを計算するステップと、ｄ）複数の２値指紋ビットマップを作成するために、ステップ（ｂ）および（ｃ）を複数回繰り返すステップと、ｅ）複数の２値指紋ビットマップを組み合わせて３値ビットマップにするステップであって、３値ビットマップ内の各ビットは、ｅ．１）複数の２値ビットマップのうちの第１の所定数においてビットが０である場合、３値ビットマップ内のそのビットを０に設定し、ｅ．２）複数の２値ビットマップのうちの第２の所定数においてビットが１である場合、３値ビットマップ内のそのビットを１に設定し、ｅ．３）それ以外の場合、３値ビットマップ内のそのビットを＊（「Ｄｏｎ’ｔ  Ｃａｒｅ」）に設定するように決定される、組み合わせるステップと、ｆ）３値ビットマップを３値ビットマップデータベース内に保存するステップと、ｇ）既知のデータセットデータベース内のすべての既知のデータセットについてステップ（ａ）〜（ｆ）を繰り返すステップと、ｈ）候補データセットから候補データセット２値指紋ビットマップを作成するステップと、ｉ）候補データセット２値指紋ビットマップを３値ビットマップデータベース内の各３値ビットマップと比較するステップであって、上記比較はＤｏｎ’ｔ  Ｃａｒｅビットを無視する、比較するステップとを含む。
【００１７】
さらなる実施形態において、オーディオセグメントの３値ビットマップを作成するための方法が開示され、方法は、ａ）オーディオセグメントの２値音響指紋ビットマップを計算するステップと、ｂ）オーディオセグメントから第１の数のサンプルを消去するステップと、ｃ）ステップ（ｂ）の後、オーディオセグメントの別の２値音響指紋ビットマップを計算するステップと、ｄ）複数の２値音響指紋ビットマップを作成するために、ステップ（ｂ）および（ｃ）を複数回繰り返すステップと、ｅ）複数の２値音響指紋ビットマップを組み合わせて３値ビットマップにするステップであって、３値ビットマップ内の各ビットは、ｅ．１）複数の２値ビットマップのうちの第１の所定数においてビットが０である場合、３値ビットマップ内のそのビットを０に設定し、ｅ．２）複数の２値ビットマップのうちの第２の所定数においてビットが１である場合、３値ビットマップ内のそのビットを１に設定し、ｅ．３）それ以外の場合、３値ビットマップ内のそのビットを＊（「Ｄｏｎ’ｔ  Ｃａｒｅ」）に設定するように決定される、組み合わせるステップとを含む。
【００１８】
また別の実施形態において、候補オーディオセグメントを識別するための方法が開示され、方法は、ａ）既知のオーディオセグメントデータベース内の既知のオーディオセグメントの２値音響指紋ビットマップを計算するステップと、ｂ）既知のオーディオセグメントから第１の数のサンプルを消去するステップと、ｃ）ステップ（ｂ）の後、既知のオーディオセグメントの別の２値音響指紋ビットマップを計算するステップと、ｄ）複数の２値音響指紋ビットマップを作成するために、ステップ（ｂ）および（ｃ）を複数回繰り返すステップと、ｅ）複数の２値音響指紋ビットマップを組み合わせて３値ビットマップにするステップであって、３値ビットマップ内の各ビットは、ｅ．１）複数の２値ビットマップのうちの第１の所定数においてビットが０である場合、３値ビットマップ内のそのビットを０に設定し、ｅ．２）複数の２値ビットマップのうちの第２の所定数においてビットが１である場合、３値ビットマップ内のそのビットを１に設定し、ｅ．３）それ以外の場合、３値ビットマップ内のそのビットを＊（「Ｄｏｎ’ｔ  Ｃａｒｅ」）に設定するように決定される、組み合わせるステップと、ｆ）３値ビットマップを３値ビットマップデータベース内に保存するステップと、ｇ）既知のオーディオセグメントデータベース内のすべての既知のオーディオセグメントについてステップ（ａ）〜（ｆ）を繰り返すステップと、ｈ）候補オーディオセグメントから候補オーディオセグメント２値音響指紋ビットマップを作成するステップと、ｉ）候補オーディオセグメント２値音響指紋ビットマップを３値ビットマップデータベース内の各３値ビットマップと比較するステップであって、上記比較はＤｏｎ’ｔ  Ｃａｒｅビットを無視する、比較するステップとを含む。
【００１９】
また別の実施形態において、データセットの加重圧縮表現を作成するための方法が開示され、方法は、ａ）データセットの圧縮表現を計算するステップと、ｂ）データセットに変換を適用するステップと、ｃ）ステップ（ｂ）の後、データセットの別の圧縮表現を計算するステップと、ｄ）複数の圧縮表現を作成するために、ステップ（ｂ）および（ｃ）を複数回繰り返すステップと、ｅ）複数の圧縮表現を組み合わせて加重圧縮表現にするステップであって、加重圧縮表現における各重みは、複数の圧縮表現内の要素の関数として計算される、組み合わせるステップとを含む。
【００２０】
他の実施形態も開示される。
【図面の簡単な説明】
【００２１】
【図１Ａ】オーディオ波の図である。
【図１Ｂ】スペクトログラムの図である。
【図１Ｃ】２値音響指紋ビットマップの図である。
【図２】音響指紋を構築するための方法の一実施形態の概略流れ図である。
【図３Ａ】一実施形態による変換に使用される例示的なスライディングウィンドウのセットについての振幅対時間のグラフである。
【図３Ｂ】オーディオサンプルのスペクトログラムの図である。
【図４】メル尺度の概略表現の図である。
【図５】Ｈａｉｔｓｍａ−Ｋａｌｋｅｒアルゴリズムのグラフィック表現の図である。
【図６】一実施形態による３値ビットマップを作成するための方法を示す概略流れ図である。
【図７】一実施形態による２値ビットマップからの３値ビットマップの作成の概略グラフィック表現の図である。
【図８】一実施形態による３値ビットマップからのハッシュキーの作成の概略流れ図である。
【図９】図７のプロセスのグラフィック表現の図である。
【図１０】一実施形態によるハッシュキーを使用したマッチング手順の概略流れ図である。
【図１１】一実施形態による大きいオーディオデータセットから共通の録音に対する諮問を抽出するための方法の概略流れ図である。
【発明を実施するための形態】
【００２２】
本発明の原理の理解を促進する目的で、ここで、図面に示されている実施形態を参照し、特定の文言がこれを説明するために使用される。それにもかかわらず、本発明の範囲の限定は意図されていないことが理解されよう。示されているシステムおよび方法における変更および修正、ならびにそこに示されている本発明の原理のさらなる応用は、本発明が関連する技術分野における当業者に一般的に想起されるように、企図され、保護されることが所望される。そのような代替的な実施形態は、当業者には明らかであるように、本明細書において説明される実施形態に対する一定の適合を必要とする。
【００２３】
本明細書に開示されている様々な実施形態は、発信電話呼の間に、たとえば、コンタクトセンターから行われている通話呼の間に受ける既知の録音を識別するコンテキストにおいて説明されることになるが、本発明は、オーディオ、画像、または他のタイプのデータのタイプまたはソースにかかわらず、また、どのような状況でオーディオ、画像、または他のタイプのデータを受けるかにかかわらず、オーディオ、画像、または他のタイプのデータの任意のセグメントの識別に適用可能性を有する。加えて、本発明は、２つ以上の次元を有する任意のタイプのデータセットの認識に適用可能性を有する。本明細書において主に録音の認識に依拠しているのは、単純に説明を簡便にするためである。
【００２４】
コールプログレス分析システムにおける音響指紋の使用
【００２５】
コールプログレス分析は、限定ではないが以下を含む対象の特定のコールプログレス事象を識別するために、音響指紋システムによって、従来のＡＭＤを強化するシステムを使用することによって改善され得る。
【００２６】
ａ．電話網メッセージ（たとえば、「申し訳ございません（Ｗｅ’ｒｅ  ｓｏｒｒｙ）」、「あなたがおかけになった番号またはコードには誤りがあります（Ｔｈｅ  ｎｕｍｂｅｒ  ｏｒ  ｃｏｄｅ  ｙｏｕ  ｈａｖｅ  ｄｉａｌｅｄ  ｉｓ  ｉｎｃｏｒｒｅｃｔ）」
ｂ．複数の加入者によって共有されるボイスメールグリーティング（たとえば、「ハロー、あなたのお友達から着信です（Ｈｅｌｌｏ，ｔｈｅ  ｐａｒｔｙ  ｙｏｕ  ｈａｖｅ  ｄｉａｌｅｄ）」）
ｃ．メロディ音、ジングル音、チャイム
ｄ．音楽または発話を含む呼び出し音（たとえば、「電話がつながるまでそのままお待ちください（Ｐｌｅａｓｅ  ｈｏｌｄ  ｗｈｉｌｅ  ｙｏｕｒ  ｃａｌｌ  ｉｓ  ｃｏｍｐｌｅｔｅｄ）」）
ｅ．コールスクリーナ
ｆ．プライバシーマネージャ（「あなたがおかけになった番号には、勧誘は認められておりません（Ｙｏｕ  ｈａｖｅ  ｒｅａｃｈｅｄ  ａ  ｎｕｍｂｅｒ  ｔｈａｔ  ｄｏｅｓ  ｎｏｔ  ａｃｃｅｐｔ  ｓｏｌｉｃｉｔａｔｉｏｎｓ）」）
ｇ．双方向音声応答（ＩＶＲ）プロンプト
これらは、本明細書においてまとめて「ネットワークメッセージ」と称される。すべてのそのようなネットワークメッセージは、複数の着呼者に行われる通話呼に関する特定の状況においてネットワークによって同じオーディオが使用されるという共通の特質を共有する。それゆえ、ダイヤルプログラムは将来においてこれらのネットワークメッセージを受けると予測すべきであり、それらをそのようなものとして識別することは、コールプログレス分析ソフトウェアが、生身の発話者に電話がつながっていないと判定する助けとなる。コールプログレス分析ソフトウェアが以下の特性を呈することが所望される。
【００２７】
１．効率的である（ＣＰＵおよびメモリの使用量が低い）
２．高速である（待ち時間および遅延が短い）
３．ロバストである（検出漏れの割合が低い）
４．正確である（誤検出の割合が低い）
５．スケーラブルである（探索コストが低い）
６．反復可能である（学習曲線が低い）
【００２８】
一実施形態において、発信呼がリアルタイムで進行している間、ＣＰＡシステムは、従来のＡＭＤアルゴリズムおよび音響指紋システムの両方を使用してオーディオストリームを処理する。オーディオが進行しているとき、音響指紋システムは、既知のネットワークメッセージの音響指紋のデータベース内に一致の可能性があるか否かを識別する。そうである場合、ＡＭＤアルゴリズムからの任意の出力が阻止され、代わりに、ＣＰＡシステムが一致した音響指紋に基づいて特定のコールプログレス事象を報告する。音響指紋システムがデータベース内に一致を発見しない一般的な事例について、従来のＡＭＤアルゴリズムが、グリーティングを検出し、生身の発話者または留守番電話のいずれかの事象を報告するのに使用される。すべての事象は、通話呼を進行または終了するか、代理人に転送するか、自動ダイヤル装置のプランを調整するかなどのような、適切な応答を選択するためにＣＰＡシステムのユーザによって解釈される。他の実施形態において、音響指紋システムは、ＣＰＡメカニズムを追加することなく使用される。
【００２９】
図２は、音響指紋を構築するための方法の一実施形態を概略的に示す。既知のオーディオセグメント、または現在の電話呼からの候補オーディオセグメントのいずれかの音響指紋を構築するために、信号の時変スペクトル表現（本明細書においては「スペクトログラム」と称される）が、４つの非限定例のみを挙げると、離散フーリエ変換（ＤＦＴ）、離散コサイン変換（ＤＣＴ）、ウェーブレット変換、またはさらにはフィルタバンクのセットのみのような、任意の所望の変換を使用して（ステップ１００において示すように）作成される。各フレームにおいて、周波数空間におけるパワースペクトルが計算される。たとえば、図３Ａは、以下のパラメータを使用した、オーディオサンプルの高速フーリエ変換（ＦＦＴ、離散フーリエ変換を実施するための特に効率的なアルゴリズム）において使用されるスライディングウィンドウの、振幅対時間を示す。
【００３０】
サンプルレート：８ｋＨｚ
フレーム持続時間：３０ミリ秒
刻み幅：２０ミリ秒
重なり：１／３
ＦＦＴサイズ：２５６
【００３１】
この技法を使用したオーディオサンプルのサンプルスペクトログラムが、図３Ｂに示されている。
【００３２】
次のステップは、ステップ１０２において示すように、２値音響指紋ビットマップを作成することである。パワースペクトログラムはそのまま使用され得るか、または、データを凝縮するために変換されてもよい。データを凝縮する任意の変換技法が使用され得る。１つだけ非限定例を与えると、Ｈａｉｔｓｍａ−Ｋａｌｋｅｒアルゴリズムが使用され得、ここで、一連のフレームが作成され、音響指紋ビットマップを構築するために組み合わされる。各フレームをサイズＮのビットベクトルに量子化するためにフィルタバンクが使用され得、ここで、Ｎは、簡便にするために、Ｃ型整数におけるビット数（８、１６、３２、または６４）として選択され得る。一実施形態において、ステップ１０４において示すように、パワースペクトルデータを（Ｎ＋１）個の帯域を有するメル空間に変換するために、メル尺度フィルタバンクが使用される。メル尺度は、図４に示すような、聞く者によって互いからの距離が等しくなるように判断される音高の知覚的尺度である。
【００３３】
メル空間における（Ｎ＋１）帯域スペクトルのシーケンスから、連続したフレームにわたるバンドエネルギー差に基づく一連のＮビット２値指紋フレーム値がステップ１０６において計算される。一実施形態において、これは、以下のようにＨａｉｔｓｍａ−Ｋａｌｋｅｒアルゴリズムを使用して行われる。
【００３４】
【数１】
2015515646.tif 000003
【００３５】
式中、Ｅ（ｎ，ｍ）は、フレームｎの周波数帯域ｍのエネルギーであり、
Ｆ（ｎ，ｍ）は、指紋フレームｎの第ｍのビットである。
【００３６】
これは、図５に概略的に示されている。したがって、フレームあたり１つの整数のＮビット整数のベクトルとして、音響指紋が構築される。図１Ｃは、例示的な１６ビット２値音響指紋ビットマップを示す。
【００３７】
コールプログレス分析の間に使用するために、既知のネットワークメッセージについての２値音響指紋ビットマップを含むデータベースが維持される。一実施形態において、発信呼がリアルタイムで進行している間、ＣＰＡシステムは、従来のＡＭＤアルゴリズムおよび音響指紋システムの両方を使用してオーディオストリームを処理する。オーディオが進行しているとき、音響指紋システムは、入来するオーディオの２値音響指紋ビットマップを作成し、それらのビットマップを、データベースに記憶されている既知のネットワークメッセージビットマップと比較する（ステップ１０８）。ＣＰＡシステムは、２値ビットマップのデータベース内に一致があるか否かを識別し（ステップ１１０）、一致は、発信呼の結果として、生身の発話者ではなく既知のネットワークメッセージが受けていることを示す（ステップ１１２）。そうである場合、ＡＭＤアルゴリズムからの任意の出力が阻止され、代わりに、ＣＰＡシステムが一致した音響指紋に基づいて特定のコールプログレス事象を報告する。音響指紋システムがデータベース内に一致を発見しない一般的な事例について、従来のＡＭＤアルゴリズムが、グリーティングを検出し、生身の発話者または留守番電話のいずれかの事象を報告するのに使用される（ステップ１１４）。すべての事象は、通話呼を進行または終了するか、代理人に転送するか、自動ダイヤル装置のプランを調整するかなどのような、適切な応答を選択するためにＣＰＡシステムのユーザによって解釈される。他の実施形態において、２値音響指紋ビットマップマッチングシステムは、ＣＰＡメカニズムを追加することなく使用される。
【００３８】
Ｈａｉｔｓｍａ−Ｋａｌｋｅｒアルゴリズムは文献においてよく研究されている。Ｊａａｐ  ＨａｉｔｓｍａおよびＴｏｎ  Ｋａｌｋｅｒの刊行された、Ｈａｉｔｓｍａ−Ｋａｌｋｅｒアルゴリズムの使用、および、数百万の歌曲のデータベースからの歌曲の３秒録音を識別するための２値音響指紋ビットマップの比較のレポート（Ｈａｉｔｓｍａ  ａｎｄ  Ｋａｌｋｅｒ著「Ａ  Ｈｉｇｈｌｙ  Ｒｏｂｕｓｔ  Ａｕｄｉｏ  Ｆｉｎｇｅｒｐｒｉｎｔｉｎｇ  Ｓｙｓｔｅｍ」（Ｊｏｕｒｎａｌ  ｏｆ  Ｎｅｗ  Ｍｕｓｉｃ  Ｒｅｓｅａｒｃｈ，Ｖｏｌ．３２，Ｎｏ．２（２００３），ｐｐ．２１１−２２１））。Ｊａａｐ  ＨａｉｔｓｍａおよびＴｏｎ  Ｋａｌｋｅｒのシステムは、良好な結果を得るために、大きいフレームサイズ、大きい重なり／小さい刻み幅、および大きい指紋を筆意用とした。Ｊａａｐ  ＨａｉｔｓｍａおよびＴｏｎ  Ｋａｌｋｅｒが使用したパラメータは以下の通りである。
【００３９】
サンプルレート：５ｋＨｚ
フレーム持続時間：３７０ミリ秒
刻み幅：１０ミリ秒
重なり：３１／３２
ＦＦＴサイズ：２０４８
【００４０】
Ｈａｉｔｓｍａ−Ｋａｌｋｅｒアルゴリズムは、２値音響指紋ビットマップを相対的に低い信号対雑音比で計算するが、ビットは雑音およびウィンドウイングアーティファクトの影響をかなり受けやすい。許容可能に高い正確度および低い誤検出率を有する音響フィンガープリンティングシステムを達成するには、一般的に、フレームサイズが大きく（３７０ｍｓ）、フレーム間の重なりが大きい（３１／３２、または約９７％）、相対的に長いオーディオのセグメント（約３秒）が必要になる。
【００４１】
そのようなシステムは計算集約的であり、信頼可能な比較を行うために相対的に大きいオーディオサンプルを必要とし、その両方が多くのオーディオマッチングシナリオにおいて望ましくない。本発明者らは、特に信号のエネルギーが相対的に小さい場合、２値音響指紋ビットマップ内の多くのビットが、雑音、および、スペクトル表現への変換（ウィンドウィング）から生じるアーティファクトの影響を受けやすいことを観測した。提案する解決策は、雑音およびウィンドウイングアーティファクトに起因する値の小さいビットをマスクアウトし、マスク内にあるビット（すなわち、マスクアウトされていないビット）のみを使用してビットマップ比較の誤り率を計算することである。
【００４２】
高い信号対雑音比（ＳＮＲ）を得るためのマスクビットを使用した３値ビットマップ音響指紋
【００４３】
正確度を犠牲にすることなくビットマップマッチング速度を改善するために、本発明の一実施形態は、２値ビットマップを生成する任意の音響フィンガープリンティングアルゴリズムに以下の修正を行う。既知のネットワークメッセージビットマップが作成されるトレーニング段階において、図６の方法が実施され得る。ステップ２００において、図２に関連して上記で説明した同じプロセスを使用して、オーディオセグメントの２値音響指紋ビットマップが作成される。ステップ２０２において、示されている実施形態において、第１のサンプルがオーディオセグメントから消去され（ただし、下記に説明するように、他のセグメント修正方式が採用されてもよい）、ステップ２０４において、図２に関連して上記で説明した同じプロセスを使用して、修正オーディオセグメントの別の２値音響指紋ビットマップが作成される。ステップ２０４〜２０２がＸ回繰り返され（ステップ２０６）、Ｘは、図２の音響フィンガープリンティングプロセスによって使用される、各フレーム内のサンプルの数である。このプロセスが、オーディオセグメントのＸ個の２値音響指紋ビットマップを生成する。
【００４４】
Ｘ個の２値音響指紋ビットマップは、ステップ２０８において以下のように組み合わされて、３値ビットマップになる。
【００４５】
・Ｘ個すべての２値ビットマップにおいてビットが０である場合、３値ビットマップ内のそのビットを０に設定する
・Ｘ個すべての２値ビットマップにおいてビットが１である場合、３値ビットマップ内のそのビットを１に設定する
・それ以外の場合、３値ビットマップのそのビットを＊（「Ｄｏｎ’ｔ  Ｃａｒｅ」）に設定する。
【００４６】
「Ｄｏｎ’ｔ  Ｃａｒｅ」ビットは、フレーミング、雑音、比較、および信号歪みをもたらす他の効果の影響を受けやすいため、連続する２値音響指紋ビットマップ内で変化する。上記の説明から、「Ｄｏｎ’ｔ  Ｃａｒｅ」ビットは、ビットマップにわたって変化する所定の割合のビット値のように、他の方法で定義されてもよいことは明らかであろう。３値ビットマップがビットマップ比較に使用され（ステップ２１０）、かつ「Ｄｏｎ’ｔ  Ｃａｒｅ」ビットが比較プロセスの間に無視される場合、元の２値音響指紋ビットマップの周波数および時間において、信号歪みをもたらすこれらの領域をマスクアウトする。図７は、２値ビットマップと、その関連付けられる３値ビットマップとの間の例示的な比較を示す。上記の説明から、音響指紋およびマスクをより影響を受けやすくするために、通信チャネルによって一般的にもたらされる雑音または他のアーティファクトを加えることによって、音響指紋を計算する前に、入力信号が人工的に劣化され得ることも明らかであろう。
【００４７】
実行時、これらの「Ｄｏｎ’ｔ  Ｃａｒｅ」ビットは、候補オーディオストリームと既知の指紋のデータベースとの間の評価される「マスクハミング距離」から除外される。３値ビットマップマスクを使用することによって、入力候補オーディオストリームとデータベース内の録音との間のフレーミング位置不整合に起因する検出漏れがなくなる。ウィンドウィングおよび雑音の影響を最も受けやすいビットを除外することによって、３値指紋システムは、それに対応する２値指紋システムよりもロバストになり、はるかに少ないビットで同等の正確度および誤検出率を達成する。分析ウィンドウがフレームサイズの分数だけシフトされることによって、上記のステップは同じ信号の多くの指紋を作成し、それらの指紋はその後、指紋のいずれの部分が変化するかを識別するのに使用されることが明らかであろう。それゆえ、ステップ２０２において、分析ウィンドウは、示されている単一サンプルシフトではなく、フレームサイズの任意の分数だけシフトされ得る。加えて、音響指紋および３値ビットマップ（マスク）は、各要素が０または１の値を有するビットであるベクトルのベクトルとして以外の方法で、代わりに、より一般的に各要素が数値スコアおよび重みを含み、複数ビット表現に量子化されるベクトルのベクトルとして表現されてもよいことが明らかであろう）。
【００４８】
たとえば、データセットの加重圧縮表現を作成するための方法は、ａ）データセットの圧縮表現を計算するステップと、ｂ）修正データセットを作成するためにデータセットから第１の数の要素を消去するステップと、ｃ）修正データセットの別の圧縮表現を計算するステップと、ｄ）複数の圧縮表現を作成するために、ステップ（ｂ）および（ｃ）を複数回繰り返すステップと、ｅ）複数の圧縮表現を組み合わせて加重圧縮表現にするステップであって、加重圧縮表現における各重みは、複数の圧縮表現内の要素の関数として計算される、組み合わせるステップとを含む。
【００４９】
いくつかの実施形態において、圧縮表現は、第１の数の２次元ベクトルである。いくつかの実施形態において、第１の数は、各々、第１のビット数によって表され、第１のビット数は、いくつかの実施形態においては１ビットであってもよく、他の実施形態においては２ビット以上であってもよい。他の実施形態において、加重圧縮表現は、第２の数の２次元ベクトルである。いくつかの実施形態において、第２の数は、各々、第２のビット数によって表される。いくつかの実施形態において、関数が、複数の圧縮表現内の要素の相関係数として各上記重みを計算する。いくつかの実施形態において、相関係数は以下のように計算される。
【００５０】
１）要素が、複数の圧縮表現の第１の所定数内の第１の所定閾値を下回る場合、相関係数を第１の値に設定する。
２）要素が、複数の圧縮表現の第２の所定数内の第２の所定閾値を上回る場合、相関係数を第２の値に設定する。
３）それ以外の場合、相関係数を第３の値に設定する。
【００５１】
たとえば、一実施形態において、第１の値は＋１であり、第２の値は−１であり、第３の値は０である。当業者は本開示から、相関係数は−１〜＋１（または任意の他の所望の数値範囲）の任意の値とすることができることを認識しよう。本実施形態において、これらの値は本明細書において説明されている３値ビットマップに対応し、設定されているビットが＋１であり、クリアされているビットが−１であり、Ｄｏｎ’ｔ  Ｃａｒｅビットが０である。閾値は、任意の所望のレベルに設定することができる。たとえば、一実施形態において、第１の所定閾値１であってもよく、第２の所定閾値は０であってもよい。一実施形態において相関係数を計算するとき、第１の所定数は複数の圧縮表現のすべてを含み、第２の所定数は複数の圧縮表現のすべてを含む。
【００５２】
図６の方法は、２値音響指紋ビットマップを相対的に低い信号対雑音比で計算するが、ビットは雑音およびウィンドウイングアーティファクトの影響をかなり受けやすい、図２のＨａｉｔｓｍａ−Ｋａｌｋｅｒアルゴリズム２値音響指紋ビットマップ比較手法と比較され得る。この手法を使用して許容可能に高い正確度および低い誤検出率を有するフィンガープリンティングシステムを達成するには、一般的に、フレームサイズが大きく（３７０ｍｓ）、フレーム間の重なりが大きい（３１／３２、または約９７％）、相対的に長いオーディオのセグメント（約３秒）が必要になる。比較すると、図６に示すもののような、本明細書に開示する３値音響指紋ビットマップ方法は、３０ｍｓの小さいフレームサイズおよび３３％の小さいのフレーム重なりを使用する低帯域幅オーディオの短いセグメント（８ｋＨｚで約０．２５秒）で、はるかにより効率的に同等のマッチング正確度および精度を得ることができる。これは、約１／１２の時間量でマッチングを達成するだけでなく、計算集約度がより低く、品質の低いオーディオサンプルで良好に機能する。
【００５３】
しらみつぶし探索を使用した最小遅延でのデータベース内の音響指紋のリアルタイムマッチング
【００５４】
ほとんどの既存の音響フィンガープリンティングシステムは、有効な一致を達成するためにソースオーディオストリームの大きいセグメントを必要とするため、リアルタイム用途には良好に適合しているとは言えない。この要件は、マッチングされるセグメントの始まりから一致する指紋が確認され得るまでに数秒の時間遅延を課す。しかしながら、従来のＡＭＤのような他の信号処理アルゴリズムと協働してリアルタイムでフィンガープリンティングを使用するために、フィンガープリンティングシステムは、一致が数分の１秒以内に起こる可能性があるか否かを確認しなければならない。最小遅延を達成するために、本発明者らは、数千指紋単位でデータベースに対してリアルタイムでオーディオストリームをマッチングするために最適化されたしらみつぶし探索を使用する手法を提案する。
【００５５】
図８および図９に示すように、前処理の間、フレームあたりＮ個の３進値で、各オーディオ検出対象につき１つの、３値音響指紋ビットマップの集合が生成される（ステップ３００）。各指紋について、３値ビットマップが細分化されて複数の均等なセグメントになる（ステップ３０２）。一実施形態において、３値ビットマップは、図９に示すように細分化されて４つの均等なセグメントになる。各セグメントから、ハッシュキーが、１２８／Ｎフレームの細分化指紋から３進値を抽出することによって得られ（ステップ３０４）、各ハッシュキーにおいて３進値は合計１２８個になる（すなわち、１２８ビット３値ハッシュキー）。ハッシュキーはより少ないまたはより多い数の値を有してもよいことが明らかであろう。３値音響指紋ビットマップからこのようにして得られたハッシュキーのすべてが、その後、凝集されて単一のルックアップテーブルになる（ステップ３０６）。音響指紋の様々なセグメントからハッシュキーを選択することによって、たとえ候補オーディオストリームが断続的な録音であり、録音の始まりが受信されていない場合であっても、マッチングが行われることが可能になる。たとえば、音楽のサンプルを識別するためにこの方法を使用する場合、ある歌曲を識別することを望む者は、その歌曲の再生が開始したいくらか後まで、識別されるべき歌曲のサンプルの録音を開始しない場合がある（そして概ね、そうしない）。音響指紋の異なるセグメントからのハッシュキーを使用することによって、候補オーディオストリームとデータベース内の音響指紋との間でさらにマッチングを行うことが可能になる。
【００５６】
図１０は、ハッシュキーのルックアップテーブルが組み立てられた後で実行時に使用され得るマッチング手順の一実施形態を示す。入力オーディオストリームの新たな各フレームについて、長さＮの新たなビットベクトルを生成するために、２値ビットマップ音響フィンガープリンティングアルゴリズムが使用される（ステップ４００）。先行する１２８／Ｎフレームの入力オーディオストリームからのビットベクトルが組み合わされて、検索のための１２８ビット２値ハッシュキーになる（ステップ４０２）。入力オーディオストリームの現在の１２８ビットハッシュキーが、マスクハミング距離を計算することによって、ルックアップテーブル内の３値ハッシュキーのすべてに対して比較される（ステップ４０４）。現代のマイクロプロセッサでは、この計算は、単一命令複数データ命令（Ｉｎｔｅｌｘ８６マイクロプロセッサアーキテクチャに対するＳＳＥまたはＡＶＸ  ＳＩＭＤ命令セット拡張など）および／または「ポピュレーションカウント」命令によって容易に並列化および最適化することができる。ルックアップテーブル内の任意のハッシュキーが十分に短いマスクハミング距離で一致する場合（ステップ４０６）、ハッシュキーに対応するオーディオ指紋は「候補」として識別される（ステップ４０８）。候補を確立するための閾値ビット誤り率（ＢＥＲ）は、相対的に低い値のσｃａｎｄｉｄａｔｅ（たとえば、３つの標準偏差、ただし、他の閾値が使用されてもよい）に基づいてもよい。候補の全体的なＢＥＲが相対的に大きい値のσｎｏｔｉｆｙ（たとえば、９個の標準偏差、ただし、他の閾値が使用されてもよい）を超える場合（ステップ４１０）、この候補は一致であると決定される（ステップ４１２）。一致が判定されなかった場合、プロセスはステップ４００に戻り、長さＮの新たなビットベクトルを生成するために次のフレームが使用される。後続のフレームを分析し続けることによって、プロセスは、マスクハミング距離が閾値に収まるかに基づいて、すべての候補を一致または不一致として解決することが可能である。
【００５７】
大きいオーディオ集合からの一般的な録音について指紋を抽出するための方法
【００５８】
上記の説明から明らかになるように、オーディオサンプルを、既知の録音のデータベースとマッチングするためのシステムおよび方法が提供される。上記で説明されたシステムおよび方法は、計算効率的であり、データベース内の音響指紋との一致を識別することが可能であるが、データベース内の音響指紋によって表されることになる録音を効率的に識別する方法において、問題が残っている。そうするために以下において説明される方法は、電話コンタクトセンターのコンテキストにおいて説明されるが、当業者は、本開示から、本方法が、任意のタイプのソースオーディオ、画像、または他のタイプのデータに関係する指紋データベースのコンパイルに適用され得ることを認識しよう。
【００５９】
コンタクトセンターからの相当に大きいキャンペーンによって、毎日数千の発信呼のデジタル録音が生成され得る。この録音の集合から、将来の通話呼キャンペーンにおいてＣＰＡを補助するために、対象のコールプログレス事象を含むすべてのオーディオセグメントを抽出することが目標となる。たとえば、キャンペーンにおける多くの通話呼が、同じネットワークまたはサブネットワーク上の複数の番号にダイヤルされ、これによって、各加入者に同一の録音されたグリーティングが再生される。自動化データ駆動技法がなければ、いずれの音響指紋から候補セグメントが抽出され得るかを識別ｓルウために、大量のデータが人間の被験者によって聞かれなければならない。本発明者らは、大きい録音集合内の共通の録音を自動的に識別するためのオフラインプロセスを提案し、それによって、ＣＰＡの正確度を改善するために将来の通話呼キャンペーンにおいて録音が検出され得る。本発明において指紋の自動識別に使用されるプロセスが、図１１に概略的に示されている。
【００６０】
ステップ５００において、ＡＭＤおよび音響フィンガープリンティングと組み合わされた（データベースがすでに何らかの既知の録音についての音響指紋を含む場合）ＣＰＡシステムが、そこで検出される事象に基づいて、集合内のすべての録音を分類するのに使用される。従来のＡＭＤを使用して生身の発話者または留守番電話として分類されたすべての録音について、ステップ５０２において、無言、背景雑音、または純音を含まないオーディオセグメントの終了点が識別される。たとえば、発話パターン、音楽、非発話信号などを含むオーディオセグメントが、ステップ５０２において識別される。ステップ５０４において、上記で説明された方法を使用してすべての識別されたセグメントについて３値音響指紋ビットマップが生成される（３値ビットマップの代わりに２値音響指紋ビットマップを使用することができることは明らかであろう）。ステップ５０６において、これらの新たな音響指紋が音響指紋データベースに加えられる。その後、ステップ５０８において、新たに増補された３値音響指紋データベースを使用して、集合内の録音のすべてがＣＰＡ／ＡＭＤシステムによって再処理される。ステップ５１０において、システムは、固有でなく複数回検出された、増補された指紋（すなわち、増補された音響指紋のうち、複数のものと一致したとして処理されている、集合内の録音、これは、これらがその集合において複数回受けた録音の音響指紋であることを示す）を識別する。複数回発見された任意の音響指紋は、対象のコールプログレス事象の候補である可能性が高く、それゆえ、ステップ５１２において、将来のＣＰＡタスクにおいて使用するために、音響指紋データベース内に残される。ステップ５１４において、他の増補された指紋のすべて（すなわち、複数回検出されなかった新たな音響指紋）は、音声発話の固有のオーディオセグメントを表し、それゆえ、録音されたネットワークメッセージであると判定することができないため、データベースから消去される。このように、大きい録音（または画像もしくは他のデータの）集合を調べ、そこから複数回受けた録音の指紋を抽出するために自動化システムが使用され得る。この方法は、音響指紋データベースが自動的に構築され、様々な電話会社において回線内に持ち込まれ得る新たなネットワークメッセージを計上するために継続的に更新されることを可能にする。
【００６１】
上記の説明から分かるように、様々な実施形態が、入力オーディオセグメントの、データベース内の既知のオーディオセグメントとのマッチングを可能にする。オーディオセグメントは任意のソースに由来し、発話、発信音、音楽のような任意のタイプのオーディオ、または、認識されることが所望される任意の他のオーディオを含み得る。例示的な実施形態において、発信電話呼の間に受ける既知のネットワークメッセージ記録の認識とともに、本明細書において開示されるシステムおよび方法を使用することが説明された。しかしながら、当業者は、開示されるシステムおよび方法が、任意の形態のオーディオ、画像、または他のタイプのデータのような、任意のタイプの２次元以上のデータセットの認識に用途を見出すことになることを認識しよう。
【００６２】
ステップ、ソフトウェアブロック、データおよびデータ構造体の編成は明瞭に線引きされているものとして示されているが、当業者には、ステップ、ブロックおよびデータ間の線引きはいくらか任意裁量によることは明らかであろう。ステップ、ソフトウェアブロックおよびデータの多数の他の構成が可能である。
【００６３】
最後に、本発明は、本発明を実行するためのいくつかの実施形態の例示にすぎず、形態、部分の構成、ステップ、詳細および動作の順序の修正を受け入れる余地がある、本明細書に記載されている実施形態には限定されないことは理解されよう。そうではなく、本発明は、特許請求の範囲の範囲によって規定されるような、その精神および範囲内で、すべてのそのような修正を包含するように意図されている。
【図１Ａ】
2015515646.tif 000006
【図１Ｂ】
2015515646.tif 000007
【図１Ｃ】
2015515646.tif 000008
【図２】
2015515646.tif 000009
【図３Ａ】
2015515646.tif 000010
【図３Ｂ】
2015515646.tif 000011
【図４】
2015515646.tif 000012
【図５】
2015515646.tif 000013
【図６】
2015515646.tif 000014
【図７】
2015515646.tif 000015
【図８】
2015515646.tif 000016
【図９】
2015515646.tif 000017
【図１０】
2015515646.tif 000018
【図１１】
2015515646.tif 000019
【国際調査報告】
2015515646.tif 000020
2015515646.tif 000021
2015515646.tif 000022