(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-30
(45)【発行日】2022-06-07
(54)【発明の名称】音声指紋の照合のための装置及びコンピュータ可読記憶媒体
(51)【国際特許分類】
G10L 17/00 20130101AFI20220531BHJP
【FI】
G10L17/00 200C
【外国語出願】
(21)【出願番号】P 2020177940
(22)【出願日】2020-10-23
(62)【分割の表示】P 2018566921の分割
【原出願日】2016-07-26
【審査請求日】2020-10-23
(32)【優先日】2016-06-22
(33)【優先権主張国・地域又は機関】GR
(73)【特許権者】
【識別番号】501112323
【氏名又は名称】グレースノート インコーポレイテッド
(74)【代理人】
【識別番号】100107456
【氏名又は名称】池田 成人
(74)【代理人】
【識別番号】100162352
【氏名又は名称】酒巻 順一郎
(74)【代理人】
【識別番号】100123995
【氏名又は名称】野田 雅一
(72)【発明者】
【氏名】クーバー, ロバート
(72)【発明者】
【氏名】スコット, ジェフリー
(72)【発明者】
【氏名】ディミトリウー, コンスタンティノス アントニオス
【審査官】中村 天真
(56)【参考文献】
【文献】特開2012-095309(JP,A)
【文献】特表2005-518594(JP,A)
【文献】特表2004-505328(JP,A)
【文献】米国特許出願公開第2011/0173208(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 13/00-25/93
(57)【特許請求の範囲】
【請求項1】
装置であって、
識別対象の問合せ音声の一部から生成された問合せ指紋を取得することを実行する問合せ応答器と、
参照音声内で複数の参照
部分指紋が発生する複数の時点に前記複数の参照
部分指紋をマッピングしているインデックスに基づき前記問合せ指紋
における複数の問合せ部分指紋との比較のために前記複数の参照
部分指紋から一の参照
部分指紋を選択することを実行する候補選択器と、
前記複数の参照部分指紋の異なるサブセットと、前記問合せ指紋における
前記複数の問合せ部分指紋との間のマッチのトータルカウントを格納するカウントベクトルを生成することを実行するベクトル生成器であり、前記異なるサブセットの各々が、前記参照音声における参照時点
からの異なるオフセットで前記複数の問合せ部分指紋にアラインされている、ベクトル生成器と、
マッチ分類器であり、
前記カウントベクトルに格納された前記トータルカウント内の最大カウントを計算することと、
前記カウントベクトル内の前記トータルカウントの中央値を計算することと、
前記トータルカウントの中央値と前記最大カウントとの間の差を計算することと、
前記トータルカウントの中央値と前記カウントベクトル内の前記最大カウントとの間の前記差に基づき前記問合せ
部分指紋とのマッチとして前記参照
部分指紋を分類することと、
を実行するマッチ分類器と、
を備える装置。
【請求項2】
前記問合せ応答器が、前記問合せ音声を識別することを示す要求を取得することを実行するものであり、前記要求が、前記識別対象の前記問合せ音声の一部を含む、請求項1に記載の装置。
【請求項3】
前記要求に応答して前記識別対象の問合せ音声の一部に基づき前記問合せ指紋を生成することを実行する指紋生成器をさらに含む、請求項2に記載の装置。
【請求項4】
前記候補選択器が、データベースであって該データベースにおいて、前記インデックスが、前記参照音声の参照セグメントから生成された前記複数の参照
部分指紋を、前記参照音声内で前記参照セグメントが発生する前記時点にマッピングしているデータベース、にアクセスすることを実行するものである、請求項1に記載の装置。
【請求項5】
前記候補選択器が、前記問合せ
部分指紋との比較のための前記参照
部分指紋を選択する
ことを決定する
ために前記インデックスにより前記参照音声内の前記参照時点にマッピングされた前記参照
部分指紋に、前記問合せ
部分指紋をマッチさせることを実行するものである、請求項4に記載の装置。
【請求項6】
前記ベクトル生成器が、
前記参照時点
からの異なる前記オフセットで前記複数の問合せ部分指紋と前記複数の参照部分指紋のサブセットをアラインすることと、
前記異なるオフセットで前記複数の問合せ部分指紋と前記複数の参照部分指紋のサブセットとの間のマッチのトータルカウントを決定することと、
前記カウントベクトルに前記マッチのトータルカウントと前記異なるオフセットとを格納することと、
を実行するものである、請求項1に記載の装置。
【請求項7】
前記ベクトル生成器が、前記カウントベクトルを生成するために前記参照時点
からの異なる既定の範囲内のオフセットについて、アラインすること、決定すること及び格納することを繰り返すことを実行するものである、請求項6に記載の装置。
【請求項8】
装置であって、
識別対象の問合せ音声の一部から生成された問合せ指紋を取得する手段と、
参照音声内で複数の参照
部分指紋が発生する複数の時点に前記複数の参照
部分指紋をマッピングしているインデックスに基づき前記問合せ指紋
における複数の問合せ部分指紋との比較のために前記複数の参照
部分指紋から一の参照
部分指紋を選択する手段と、
前記複数の参照部分指紋の異なるサブセットと、前記問合せ指紋における
前記複数の問合せ部分指紋との間のマッチのトータルカウントを格納するカウントベクトルを生成する手段であり、前記異なるサブセットの各々が、前記参照音声における参照時点
からの異なるオフセットで前記複数の問合せ部分指紋にアラインされている、生成する手段と、
分類する手段であり、
前記カウントベクトルに格納された前記トータルカウント内の最大カウントを計算することと、
前記カウントベクトル内の前記トータルカウントの中央値を計算することと、
前記トータルカウントの中央値と前記最大カウントとの間の差を計算することと、
前記トータルカウントの中央値と前記カウントベクトル内の前記最大カウントとの間の前記差に基づき前記問合せ
部分指紋とのマッチとして前記参照
部分指紋を分類することと、
を実行する分類する手段と、
を備える装置。
【請求項9】
前記取得する手段が、前記問合せ音声を識別することを示す要求を取得することを実行するものであり、前記要求が、前記識別対象の前記問合せ音声の一部を含む、請求項8に記載の装置。
【請求項10】
前記要求に応答して前記識別対象の問合せ音声の一部に基づき前記問合せ指紋を生成する手段をさらに含む、請求項9に記載の装置。
【請求項11】
前記選択する手段が、データベースであって該データベースにおいて、前記インデックスが、前記参照音声の参照セグメントから生成された前記複数の参照
部分指紋を、前記参照音声内で前記参照セグメントが発生する前記時点にマッピングしているデータベース、にアクセスすることを実行するものである、請求項8に記載の装置。
【請求項12】
前記選択する手段が、前記問合せ
部分指紋との比較のための前記参照
部分指紋を選択する
ことを決定する
ために前記インデックスにより前記参照音声内の前記参照時点にマッピングされた前記参照
部分指紋に、前記問合せ
部分指紋をマッチさせることを実行するものである、請求項11に記載の装置。
【請求項13】
前記生成する手段が、
前記参照時点
からの異なる前記オフセットで前記複数の問合せ部分指紋と前記複数の参照部分指紋のサブセットをアラインすることと、
前記異なるオフセットで前記複数の問合せ部分指紋と前記複数の参照部分指紋のサブセットとの間のマッチのトータルカウントを決定することと、
前記カウントベクトルに前記マッチのトータルカウントと前記異なるオフセットとを格納することと、
を実行するものである、請求項8に記載の装置。
【請求項14】
前記生成する手段が、前記カウントベクトルを生成するために前記参照時点
からの異なる既定の範囲内のオフセットについて、アラインすること、決定すること及び格納することを繰り返すことを実行するものである、請求項13に記載の装置。
【請求項15】
命令を有する
非一時的コンピュータ可読記憶媒体であって、前記命令は実行されると一つ又は複数のプロセッサに、少なくとも、
識別対象の問合せ音声の一部から生成された問合せ指紋を取得することと、
参照音声内で複数の参照
部分指紋が発生する複数の時点に前記複数の参照
部分指紋をマッピングしているインデックスに基づき前記問合せ指紋
における複数の問合せ部分指紋との比較のために前記複数の参照
部分指紋から一の参照
部分指紋を選択することと、
前記複数の参照部分指紋の異なるサブセットと、前記問合せ指紋における
前記複数の問合せ部分指紋との間のマッチのトータルカウントを格納するカウントベクトルを生成することであり、前記異なるサブセットの各々が、前記参照音声における参照時点
からの異なるオフセットで前記複数の問合せ部分指紋にアラインされている、生成することと、
前記カウントベクトルに格納された前記トータルカウント内の最大カウントを計算することと、
前記カウントベクトル内の前記トータルカウントの中央値を計算することと、
前記トータルカウントの中央値と前記最大カウントとの間の差を計算することと、
前記トータルカウントの中央値と前記カウントベクトル内の前記最大カウントとの間の前記差に基づき前記問合せ
部分指紋とのマッチとして前記参照
部分指紋を分類することと、
を実行させる、
非一時的コンピュータ可読記憶媒体。
【請求項16】
前記命令は実行されると前記一つ又は複数のプロセッサに、前記問合せ音声を識別することを示す要求を取得することを実行させ、前記要求が、前記識別対象の前記問合せ音声の一部を含む、請求項15に記載の
非一時的コンピュータ可読記憶媒体。
【請求項17】
前記命令は実行されると前記一つ又は複数のプロセッサに、前記要求に応答して前記識別対象の問合せ音声の一部に基づき前記問合せ指紋を生成することを実行させる、請求項16に記載の
非一時的コンピュータ可読記憶媒体。
【請求項18】
前記命令は実行されると前記一つ又は複数のプロセッサに、データベースにアクセスすることであって該データベースにおいて、前記インデックスが、前記参照音声の参照セグメントから生成された前記複数の参照
部分指紋を、前記参照音声内で前記参照セグメントが発生する前記時点にマッピングしているデータベース、にアクセスすることを実行させる、請求項15に記載の
非一時的コンピュータ可読記憶媒体。
【請求項19】
前記命令は実行されると前記一つ又は複数のプロセッサに、前記問合せ
部分指紋との比較のための前記参照
部分指紋を選択する
ことを決定する
ために前記インデックスにより前記参照音声内の前記参照時点にマッピングされた前記参照
部分指紋に、前記問合せ
部分指紋をマッチさせることを実行させる、請求項18に記載の
非一時的コンピュータ可読記憶媒体。
【請求項20】
前記命令は実行されると前記一つ又は複数のプロセッサに、
前記参照時点
からの異なる前記オフセットで前記複数の問合せ部分指紋と前記複数の参照部分指紋のサブセットをアラインすることと、
前記異なるオフセットで前記複数の問合せ部分指紋と前記複数の参照部分指紋のサブセットとの間のマッチのトータルカウントを決定することと、
前記カウントベクトルに前記マッチのトータルカウントと前記異なるオフセットとを格納することと、
を実行させる、請求項15に記載の
非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本明細書で開示される対象は、概略的には、音声処理を実行するか、又はその他の方法で容易にする専用装置(そのような専用装置のコンピュータ化された変形及びそのような変形に対する改良を含む)の技術分野に関し、そのような専用装置を、音声処理を実行するか、又はその他の方法で容易にする他の専用装置と比較して改良するために使用される技術に関する。より詳細には、本開示は、デジタル指紋(例えば、音声指紋)の照合を容易にするためのシステム及び方法に対処する。
[関連出願]
[0000]本出願は、2016年6月22日に出願されたギリシャ特許出願第20160100335号の優先権の恩恵を主張し、このギリシャ特許出願は、参照によって本明細書にその全体が組み込まれている。
【背景】
【0002】
[0002]装置(machine, マシン)は、ある音声指紋(audio fingerprint、オーディオフィンガープリント)が別の音声指紋に適合(match、マッチ)するかどうかを判定するように構成されることがある。例えば、装置は、そのような判定を、指紋照合サービスを1つ又は複数のクライアントデバイスに提供することの一部として実行してもよい。場合によっては、装置は、そのような判定を行い、(例えば、1つ又は複数の要求に応答して)その判定結果の通知を1人又は複数のユーザに提供することによって、1人又は複数のユーザと情報をやりとりしてもよい。さらに、装置は、音声の内容を識別することの要求に応答して音声の内容を識別することによって、ユーザと情報をやりとりするように構成されてもよい。そのような装置は、サーバシステム(例えば、1つ又は複数のサーバマシンから成るネットワークベースのクラウド)、クライアントデバイス(例えば、ポータブルデバイス、車載デバイス、自動車に組み込まれるデバイス、又はその他のモバイルデバイス)、又はそれらの任意の適切な組み合わせに実装されてもよい。
【図面の簡単な説明】
【0003】
[0003]一部の実施形態は、添付の図面の図において、限定されない例として説明される。
【0004】
【
図1】
図1は、一部の例示的な実施形態による、音声指紋の照合に適したネットワーク環境を示すネットワーク図である。
【0005】
【
図2】
図2は、一部の例示的な実施形態による、音声指紋の照合を実行するように構成された照合装置(matching machine、マッチングマシン)の構成要素を示すブロック図である。
【0006】
【
図3】
図3は、一部の例示的な実施形態による、問合せ音声、問合せ音声データ、参照音声、及び参照音声データを示す概念図である。
【0007】
【
図4】
図4は、一部の例示的な実施形態による、参照指紋(referencefingerprint、リファレンスフィンガープリント)及びその構成要素である参照部分指紋(referencesub-fingerprints、リファレンスサブフィンガープリント)に対して、参照点からオフセットして位置合わせ(align、アライン)されている、問合せ指紋(query fingerprint、クエリフィンガープリント)及びその構成要素である問合せ部分指紋(query sub-fingerprints、クエリサブフィンガープリント)を示す概念図である。
【0008】
【
図5】
図5は、一部の例示的な実施形態による、適合(match、マッチ)の総数(total count、トータルカウント)でありそれぞれが異なる対応するオフセットと組み合わせられたマッチのトータルカウントを格納するカウントベクトルを示す概念図である。
【0009】
【
図6】
図6は、一部の例示的な実施形態による、音声指紋を照合する方法内の動作を示すフローチャートである。
【
図7】
図7は、一部の例示的な実施形態による、音声指紋を照合する方法内の動作を示すフローチャートである。
【
図8】
図8は、一部の例示的な実施形態による、音声指紋を照合する方法内の動作を示すフローチャートである。
【
図9】
図9は、一部の例示的な実施形態による、音声指紋を照合する方法内の動作を示すフローチャートである。
【0010】
【
図10】
図10は、一部の例示的な実施形態による、マシン可読媒体から命令を読み取って、本明細書において説明された方法のうちのいずれか1つ又は複数を実行することができる装置の構成要素を示すブロック図である。
【詳細な説明】
【0011】
[0011]例示的な方法(例えば、アルゴリズム)は、音声指紋の照合を実行するか、又はその他の方法で容易にするように実行可能であり、例示的なシステム(例えば、専用装置)は、音声指紋の照合を実行するか、又はその他の方法で容易にするように構成される。実施例は、可能性のある変形を単に代表している。特に明示的に述べられない限り、構造(例えば、モジュールなどの構造的構成要素)は任意であり、結合されるか、又は分割されてもよく、動作(例えば、手順、アルゴリズム、又はその他の機能における動作)は、順序において変化してもよく、或いは結合されるか、又は分割されてもよい。以下の説明では、説明の目的で、さまざまな例示的な実施形態を十分に理解できるように、多数の特定の詳細が記載されている。しかし、それらの特定の詳細がなくても本対象を実施できるということは、当業者にとって明らかであろう。
【0012】
[0012]照合装置(例えば、指紋照合装置)は、音声処理システム(例えば、ネットワークベースの音声処理システム)の全部又は一部を形成してもよく、照合装置は、ある音声指紋(例えば、問合せ指紋)が別の音声指紋(例えば、参照指紋)にマッチするかどうかを判定することによって音声指紋を照合するように(例えば、1つ又は複数のソフトウェアモジュールによって)構成されてもよい。音声指紋の照合は、2つの音声指紋(例えば、問合せ指紋及び参照指紋)が互いに(例えば、許容しきい値の範囲内で)マッチするとの決定に基づいて、音声の内容を識別することの一部として実行されてもよい。前述したように、そのような音声の識別は、1つ又は複数のユーザの要求に応答して(例えば、ユーザの要求を満たすために)実行されてもよい。
【0013】
[0013]したがって、照合装置は、問合せ音声から生成された問合せ指紋にアクセスする(例えば、受信する、取り出す、又は読み取る)。問合せ指紋は、(例えば、識別するよう要求された)問合せ音声の一部である問合せセグメントから生成された問合せ部分指紋を含む。同様に、参照音声から生成された参照指紋は、(例えば、既知の識別番号の)参照音声の参照セグメントから生成された参照部分指紋を含む。照合装置はデータベースにアクセスし、このデータベース内のインデックスは、参照部分指紋を、それらに対応する参照セグメントが参照音声内で発生する点(例えば、時点)にマッピングする。このインデックスに基づいて、装置は、問合せ部分指紋と比較するための参照部分指紋を(例えば、候補部分指紋のセットとして)選択する。参照部分指紋の選択は、照合装置による、複数の問合せ部分指紋のうちの1つの問合せ部分指紋が複数の参照部分指紋のうちの1つの参照部分指紋にマッチするとの決定に基づく。この決定は、参照セグメントが参照音声内で発生する参照点も識別する。
【0014】
[0014]照合装置は、問合せ部分指紋と、参照部分指紋の異なるサブセットとの間のマッチのトータルを評価することによって(例えば、決定してカウントすることによって)、参照部分指紋の最も良くマッチするサブセットを識別するように構成される。これを実行するために、照合装置は、問合せ部分指紋を参照位置からの異なるオフセットに反復的にシフトし、オフセットごとに部分指紋のマッチのトータルカウント(例えば、マッチする部分指紋のトータルの数)を評価し、それらの各オフセットにマッピングされたトータルカウントを格納するカウントベクトルを生成する。次に、照合装置は、カウントベクトルに格納されたトータルカウントのうちの最大カウント(例えば、最大のトータルカウント)を決定する(例えば、計算する)。この最大カウントに対応するオフセットは、参照部分指紋の最も良くマッチするサブセットにも対応する。加えて、照合装置は、最大カウントと、カウントベクトル内のすべてのカウントの中央値との間の差を決定してもよい。
【0015】
[0015]その後、照合装置は、最大カウントに基づいて、問合せ部分指紋(例えば、問合せ部分指紋の全体)とのマッチとして、参照部分指紋(例えば、参照部分指紋の全体)を分類する。例えば、照合装置はさらに、トータルカウントの中央値を計算し、最大カウントと中央値の間の差を計算し、トータルカウントの標準偏差を計算し、差を標準偏差で割った商を計算し、最大カウントがカウントベクトル内でどの程度顕著なピークを表すかを示すスコア(例えば、ピークプロミネンススコア)を取得してもよい。その後、照合装置は、このスコアを既定のスコアしきい値(例えば、最小ピークプロミネンススコア)と比較し、この比較に基づいて、問合せ部分指紋とのマッチとして、参照部分指紋を分類してもよい。
【0016】
[0016]カウントベクトルの生成について詳細に述べるために、さまざまな例示的な実施形態によれば、比較されている問合せ部分指紋及び参照部分指紋の両方に存在するピークの正確な数を決定することによって、マッチのトータルの評価が実行されてもよい。そのようなピークの検出は、参照位置を中心にして、異なる各オフセットで部分指紋ごとに実行されてもよい。比較されている部分指紋の対ごとに、照合装置によって交差が実行される。その結果得られるセットの濃度は、その部分指紋の対のマッチの数である。この動作は、すべてのオフセットで、部分指紋の対ごとに1回実行されてもよい。その後、濃度の合計が、その特定のオフセットのカウントベクトルの1つの位置と組み合わせられ(例えば、格納され)てもよい。
【0017】
[0017]一例として、問合せが60の部分指紋を含んでいて、参照位置が特定のオフセットで発生する状況を考える。照合装置は、参照位置を中心にして、10の異なるオフセットを評価する。それに応じて、カウントベクトルは10(例えば、10の異なるオフセットのそれぞれに対して1つ)の要素を含んでいる。各オフセットで、照合装置は(例えば、問合せ部分指紋と参照部分指紋の間で)60の交差を実行し、それらの交差から対応する濃度を取得する。その後、照合装置は、すべての濃度を合計し、その合計値をカウントベクトルの第1の要素(例えば、第1のオフセットの第1の位置に対応する要素)に格納する。カウントベクトルにデータを入力するために、この処理がさらに9回(例えば、10の異なるオフセットのそれぞれに対して1回)繰り返される。
【0018】
[0018]加えて、さまざまな例示的な実施形態によれば、照合装置は、カウントベクトル内の最大カウントを使用しないで、1つ又は複数のその他の特徴をカウントベクトルから抽出する。そのような特徴の例としては、異なる各オフセットでのカウントの連続性、雑音性、及びカウントベクトルの対称性が挙げられる。そのような例示的な実施形態では、照合装置は、カウントベクトルから抽出されたそのようなその他の特徴のうちの1つ又は複数に基づいて、問合せ部分指紋とのマッチとして参照部分指紋を分類する。その意味で、カウントベクトルは、照合装置が、マッチをミスマッチから区別する作業に関連し、そのような作業に役立つ(最大カウントからの影響を伴うか、又は伴わない)特徴を抽出する元になる、ソース信号として扱われてもよい。
【0019】
[0019]
図1は、一部の例示的な実施形態による、音声指紋の照合に適したネットワーク環境100を示すネットワーク図である。ネットワーク環境100は、照合装置110、データベース115、並びにデバイス130及び150を含んでおり、これらは、ネットワーク190を介してすべて通信によって互いに結合されている。データベース115を伴うか、又は伴わない照合装置110は、クラウド118(例えば、1つのサーバとして機能するように構成された複数の装置の地理的に分散されたセット)の全部又は一部を形成してもよく、クラウド118は、ネットワークベースのシステム105(例えば、1つ又は複数のネットワークベースの音声処理サービスをデバイス130及び150に提供するように構成されたクラウドベースの音声処理サーバシステム)の全部又は一部を形成してもよい。照合装置110並びにデバイス130及び150はそれぞれ、
図10に関して下で説明されているように、全体的又は部分的に、専用(例えば、特殊な)コンピュータシステムにおいて実装されてもよい。
【0020】
[0020]
図1にも示されているように、ユーザ132及び152が存在する。ユーザ132及び152のうちの1つ又は両方は、人間的ユーザ(例えば、人間)、装置ユーザ(例えば、デバイス130又は150と情報をやりとりするようにソフトウェアプログラムによって構成されたコンピュータ)、又はそれらの任意の適切な組み合わせ(例えば、装置によって支援される人間又は人間によって監視される装置)であってもよい。ユーザ132は、デバイス130に関連付けられており、デバイス130のユーザであってもよい。例えば、デバイス130は、ユーザ132に属しているデスクトップコンピュータ、車載コンピュータ(例えば、自動車内、バス内、ボート内、又は航空機内に取り付けられるコンピュータ)、タブレットコンピュータ、ナビゲーションデバイス、ポータブルメディアデバイス、スマートフォン、又はウェアラブルデバイス(例えば、スマートウォッチ、スマートグラス、スマートクロージング、又はスマートジュエリー)であってもよい。同様に、ユーザ152は、デバイス150に関連付けられており、デバイス150のユーザであってもよい。一例として、デバイス150は、ユーザ152に属しているデスクトップコンピュータ、車載コンピュータ、タブレットコンピュータ、ナビゲーションデバイス、ポータブルメディアデバイス、スマートフォン、又はウェアラブルデバイス(例えば、スマートウォッチ、スマートグラス、スマートクロージング、又はスマートジュエリー)であってもよい。
【0021】
[0021]
図1に示されているシステム又は装置のいずれか(例えば、データベース及びデバイス)は、そのシステム又は装置に関して本明細書において説明された機能のうちの1つ又は複数を実行するように変更された(例えば、アプリケーション、オペレーティングシステム、ファームウェア、ミドルウェア、又はその他のプログラムの1つ又は複数のソフトウェアモジュールなどの、ソフトウェアによって構成されたか、又はプログラムされた)専用(例えば、特殊な、又はその他の方法での非一般的な)コンピュータであるか、そのようなコンピュータを含むか、又はその他の方法でそのようなコンピュータにおいて実装されてもよい。例えば、本明細書に記載された方法のうちのいずれか1つ又は複数を実装できる専用コンピュータシステムが、
図10に関して下で説明されており、したがって、そのような専用コンピュータが、本明細書において説明された方法のうちのいずれか1つ又は複数を実行するための手段であってもよい。そのような専用コンピュータの技術分野内で、本明細書において説明された機能を実行するために、本明細書において説明された構造によって変更された専用コンピュータは、本明細書において説明された構造を欠いているか、又はその他の理由のために本明細書において説明された機能を実行できない他の専用コンピュータと比較して、技術的に改良されている。したがって、本明細書において説明されたシステム及び方法に従って構成された専用装置は、類似する専用装置の技術に対する改良を可能にする。
【0022】
[0022]本明細書において使用されるとき、「データベース」は、データストレージリソースであり、テキストファイル、テーブル、スプレッドシート、リレーショナルデータベース(例えば、オブジェクトリレーショナルデータベース)、トリプルストア、階層データストア、又はこれらの任意の適切な組み合わせとして構造化されたデータを格納できる。さらに、
図1に示されたシステム又は装置のいずれか2つ以上は1つの装置に結合されてもよく、いずれか1つのシステム又は装置に関して本明細書に記載された機能は、複数のシステム又は装置にさらに分割されてもよい。
【0023】
[0023]ネットワーク190は、システム、装置、データベース、及びデバイスの間(例えば、照合装置110とデバイス130の間)での通信を可能にする任意のネットワークであってもよい。したがって、ネットワーク190は、有線ネットワーク、無線ネットワーク(例えば、携帯電話ネットワーク又はセルラーネットワーク)、又はこれらの任意の適切な組み合わせであってもよい。ネットワーク190は、プライベートネットワーク、パブリックネットワーク(例えば、インターネット)、又はこれらの任意の適切な組み合わせを構成する1つ又は複数の部分を含んでもよい。したがって、インターネット190は、ローカルエリアネットワーク(LAN:local area network)、広域ネットワーク(WAN:wide area network)、インターネット、携帯電話ネットワーク(例えば、セルラーネットワーク)、有線電話ネットワーク(例えば、一般電話システム(POTS:plain old telephone system)ネットワーク)、無線データネットワーク(例えば、WiFiネットワーク又はWiMaxネットワーク)、又はこれらの任意の適切な組み合わせを組み込む1つ又は複数の部分を含んでもよい。ネットワーク190のいずれか1つ又は複数の部分は、伝送媒体を介して情報を伝達してもよい。本明細書において使用されるとき、「伝送媒体」は、装置によって(例えば、そのような装置の1つ又は複数のプロセッサによって)実行するための命令を伝達(例えば、送信)できる任意の無形の(例えば、一時的な)媒体を指し、デジタル通信信号又はアナログ通信信号、或いはそのようなソフトウェアの通信を容易にするその他の無形の媒体を含む。
【0024】
[0024]
図2は、一部の例示的な実施形態による、照合装置110の構成要素を示すブロック図である。照合装置110は、問合せ応答器210、候補選択器220、ベクトル生成器230、マッチ分類器240、及び指紋生成器250を含んでいるとして示されており、これらはすべて(例えば、バス、共有メモリ、又はスイッチを介して)互いに通信するように構成される。さまざまな例示的な実施形態によれば、問合せ応答器210は、問合せハンドラモジュール又はその他の問合せ処理コードであるか、或いは問合せハンドラモジュール又はその他の問合せ処理コードを含んでもよく、候補選択器220は、候補選択モジュール又はその他の候補選択コードであるか、或いは候補選択モジュール又はその他の候補選択コードを含んでもよく、ベクトル生成器230は、ベクトル生成モジュール又はその他のベクトル生成コードであるか、或いはベクトル生成モジュール又はその他のベクトル生成コードを含んでもよく、マッチ分類器240は、マッチ分類モジュール又はその他のマッチ分類コードであるか、或いはマッチ分類モジュール又はその他のマッチ分類コードを含んでもよく、指紋生成器250は、指紋生成モジュール又はその他の指紋生成コードであるか、或いは指紋生成モジュール又はその他の指紋生成コードを含んでもよい。
【0025】
[0025]
図2に示されているように、問合せ応答器210、候補選択器220、ベクトル生成器230、マッチ分類器240、及び指紋生成器250のうちのいずれか1つ又は複数は、(例えば、ネットワーク190を介してデバイス130からデータが受信されたことに応答して、又は受信された結果として)照合装置110に格納され(例えば、インストールされ)、照合装置110によって(例えば、1つ又は複数のプロセッサ299によって)実行可能なアプリケーション200(例えば、サーバアプリケーション又はモバイルアプリ)の全部又は一部を形成してもよい。さらに、1つ又は複数のプロセッサ299(例えば、ハードウェアプロセッサ、デジタルプロセッサ、又はこれらの任意の適切な組み合わせ)は、アプリケーション200、問合せ応答器210、候補選択器220、ベクトル生成器230、マッチ分類器240、指紋生成器250、又はこれらの任意の適切な組み合わせに(例えば、一時的又は永続的に)含まれてもよい。
【0026】
[0026]本明細書に記載された構成要素(例えば、モジュール)のうちのいずれか1つ又は複数は、ハードウェア単独(例えば、プロセッサ299のうちの1つ又は複数)又はハードウェアとソフトウェアの組み合わせを使用して実装されてもよい。例えば、本明細書に記載されたいずれかの構成要素は、その構成要素に関して本明細書に記載された動作を実行するように構成されたプロセッサ299のうちの1つ又は複数(例えば、プロセッサ299のうちのサブセット)の配置を物理的に含んでもよい。別の例として、本明細書に記載されたいずれかの構成要素は、その構成要素に関して本明細書に記載された動作を実行するようにプロセッサ299のうちの1つ又は複数の配置を構成するソフトウェア、ハードウェア、又はその両方を含んでもよい。したがって、本明細書に記載された異なる構成要素は、異なる時点でプロセッサ299の異なる配置を含み、構成してもよく、又は異なる時点でプロセッサ299の1つの配置を含み、構成してもよい。本明細書に記載された各構成要素(例えば、モジュール)は、その構成要素に関して本明細書に記載された動作を実行するための手段の一例である。さらに、本明細書に記載されたいずれか2つ以上の構成要素は1つの構成要素に結合されてもよく、1つの構成要素に関して本明細書に記載された機能は、複数の構成要素にさらに分割されてもよい。さらに、さまざまな例示的な実施形態によれば、1つのシステム又は装置(例えば、1つのデバイス)内で実装されるとして本明細書において説明された構成要素は、複数のシステム又は装置(例えば、複数のデバイス)にわたって分散されてもよい。
【0027】
[0027]
図3は、一部の例示的な実施形態による、問合せ音声300、問合せ音声データ310、参照音声350、及び参照音声データ360を示す概念図である。図に示されているように、問合せ音声300は、問合せ音声データ310によって表され(例えば、問合せ音声データ310としてサンプリングされてエンコードされ)、問合せ音声300の問合せ部301は、問合せセグメント311、312、313、314、315、及び316(例えば、問合せセグメント311~316のセット)によって表され得る。さまざまな例示的な実施形態によれば、問合せセグメント311~316は、重複していないか、重複しているか、又はその両方の組み合わせであってもよい。問合せ音声300、問合せ音声データ310、又はその両方は、照合装置110、データベース115、デバイス130、又はこれらの任意の適切な組み合わせに格納されてもよい。
【0028】
[0028]同様に、参照音声350は、参照音声データ360によって表され、参照音声350の参照部351は、参照セグメント361、362、363、364、365、及び366(例えば、参照セグメント361~366のセット)によって表され得る。さまざまな例示的な実施形態によれば、参照セグメント361~366は、重複していないか、重複しているか、又はその両方の組み合わせであってもよい。
図3は、(例えば、問合せ音声300及び問合せ音声データ310に関する)問合せセグメント311~316間及び(例えば、参照音声350及び参照音声データ360に関する)参照セグメント361~366間の時間的関係(例えば、時間的な前方又は後方)を示すための時間の方向も示している。参照音声350、参照音声データ360、又はその両方は、照合装置110、データベース115、デバイス130、又はこれらの任意の適切な組み合わせに格納されてもよい。
【0029】
[0029]
図4は、一部の例示的な実施形態による、参照指紋450及びその構成要素である参照部分指紋451、452、453、454、455、及び456(例えば、参照部分指紋451~456のセット)に対してアラインされている、問合せ指紋410及びその構成要素である(例えば、含まれている)問合せ部分指紋411、412、413、414、415、及び416(例えば問合せ部分指紋411~416のセット)を示す概念図である。明確にするために、
図4に示されている参照部分指紋は参照部分指紋451~456のみであるが、参照指紋450には、その他の参照部分指紋が含まれる。したがって、示されている参照部分指紋451~456は、参照指紋450に含まれている参照部分指紋のサブセットである。問合せ指紋410、参照指紋450、又はその両方は、照合装置110、データベース115、デバイス130、又はこれらの任意の適切な組み合わせに格納されてもよい。
【0030】
[0030]
図4では、参照点460(例えば、参照時点)は、問合せ部分指紋(例えば、問合せ部分指紋413)にマッチする対応する参照部分指紋(例えば、参照部分指紋453)を持っている参照セグメント(例えば、参照セグメント363)が、参照音声データ360内、参照音声350内、又はその両方において発生する位置を示している。
図4に示されているように、問合せ部分指紋411~416は、参照点460からオフセットして(470)、参照部分指紋451~456に対してシフトされ得る(例えば、再配置されるか、又は再アラインされ得る)。
【0031】
[0031]問合せ部分指紋411~416と参照部分指紋451~456の間で少なくとも1つのマッチが検出された後に、参照点460からの異なるオフセットで、参照指紋450内の参照部分指紋の異なるサブセット(例えば、参照指紋451~456)が(例えば、照合装置110によって)評価され、オフセットごとに、そのようなマッチのトータルカウントを決定できる。例えば、照合装置110は、参照点560からの異なるオフセットによって問合せ部分指紋411~416を反復的にシフトし、各々の異なるオフセットで、問合せ部分指紋411~416と参照指紋450内の参照指紋の異なるサブセット(例えば、参照部分指紋451~456)との間のマッチのトータルの数を決定してカウントしてもよい。
【0032】
[0032]さまざまな例示的な実施形態によれば、そのようなシフトは、粗いシフト(例えば、複数のオフセット値の同時のシフト)、細かいシフト(例えば、1つのオフセット値のシフト)、又はこれらの任意の適切な組み合わせであってもよい。例えば、照合装置110は、まず粗いシフトを実行して、カウントベクトルを最初に生成し、粗いトータルカウント(例えば、暫定的なトータルカウント)に対応する粗いオフセットを(例えば、暫定的なオフセットとして)決定し、次に細かいシフトを実行して、カウントベクトルを更新し、問合せ部分指紋411~416に最も厳密にマッチする参照部分指紋のセット(例えば、参照部分指紋451~456)を識別する細かいオフセットを(例えば、最終的なオフセット又は微調整されたオフセットとして)決定してもよい。
【0033】
[0033]
図5は、一部の例示的な実施形態による、オフセット551、552、553、554、555、556、557、及び558にそれぞれ対応する、マッチのトータルカウント511、512、513、514、515、516、517、及び518を格納するカウントベクトル500を示す概念図である。オフセット551~558は、参照点460からのオフセット470の異なる値である(例えば、正の値が時間的に前方にある相対的な時間的位置を示し、負の値が時間的に後方にある相対的な時間的位置を示すか、又はこの反対を示す)。
図5に示されているように、各トータルカウント(例えば、トータルカウント515)は、異なるオフセット(例えば、オフセット555)に対応しており、カウントベクトル500によって、対応するオフセットと組み合わせられる(例えば、マッピングされるか、又はその他の方法で割り当てられる)。カウントベクトル500は、照合装置110、データベース115、デバイス130、又はこれらの任意の適切な組み合わせに格納されてもよい。
【0034】
[0034]カウントベクトル500内のトータルカウント511~518のうちの最大のトータルカウント(例えば、トータルカウント515)が存在し、この最大のトータルカウントは、参照指紋450内の参照部分指紋のサブセット(例えば、参照部分指紋451~456)を示すか、指定するか、又はその他の方法で識別する、オフセット(例えば、オフセット555)に対応する。下でさらに詳細に説明されているように、参照部分指紋のこの識別されたサブセットに対して、スコア(例えば、ピークプロミネンススコア)が計算され得る。計算されたスコアに基づいて、参照部分指紋のサブセットが、照合装置110によって、問合せ部分指紋411~416とのマッチとして分類され得る。したがって、照合装置110は、この分類に基づいて、参照音声350の参照部351が問合せ音声300の問合せ部301にマッチするということを決定してもよい。さらに、照合装置110は、このようにして、参照音声350が問合せ音声300にマッチするということを決定してもよく、この決定は、(例えば、参照音声350を識別するか、又はその他の方法で表すメタデータに基づいて)問合せ音声300を識別する効果があってもよい。
【0035】
[0035]
図6、7、8、及び9は、一部の例示的な実施形態による、音声指紋を照合する方法600の実行における(例えば、照合装置110によるか、又はデバイス130による)動作を示すフローチャートである。方法600における動作は、
図2に関して前述した構成要素(例えば、モジュール)を使用して、1つ又は複数のプロセッサ299(例えば、マイクロプロセッサ又はその他のハードウェアプロセッサ)を使用して、又はこれらの任意の適切な組み合わせを使用して、照合装置110によって実行されてもよい。デバイス130がそのような構成要素を含む例示的な実施形態では、方法600は、デバイス130によって実行され得る。
図6に示されているように、方法600は、動作610、620、630、640、650、及び660を含んでいる。
【0036】
[0036]動作610で、問合せ応答器210が、(例えば、問合せ部分指紋411~416が含まれている)問合せ指紋410にアクセスする。問合せ指紋410は、照合装置110から、データベース115から、デバイス130から(例えば、デバイス130が問合せ指紋410を生成した結果として)、デバイス150から(例えば、デバイス150が問合せ指紋410を生成した結果として)、又はこれらの任意の適切な組み合わせからアクセスされてもよい。前述したように、問合せ指紋410は、識別対象の問合せ音声300の問合せセグメント311~316から生成できる(例えば識別対象の問合せ音声300の問合せ部301から生成できる)問合せ部分指紋411~416を含む。
【0037】
[0037]動作620で、候補選択器220が、(例えば、その他の参照部分指紋と共に、参照部分指紋451~456にインデックスを付与して)参照部分指紋のインデックスにアクセスする。このインデックスは、照合装置110、データベース115、デバイス130、又はこれらの任意の適切な組み合わせに格納され、これらからアクセスされてもよい。このインデックスは、参照部分指紋451~456を、参照セグメント361~366が、参照音声データ360内、参照部351内、参照音声350内、又はこれらの任意の適切な組み合わせにおいて発生する点(例えば、参照点460などの時点)にマッピングする。前述したように、参照部分指紋451~456は、(例えば、照合装置110内、データベース115内、デバイス130内、又はこれらの任意の適切な組み合わせ内のメタデータとして格納されている参照音声350の識別子によって)既知の識別番号の参照音声350の参照セグメント361~366から生成される(例えば、参照音声350の参照部351から生成される)。
【0038】
[0038]動作630では、候補選択器220が、アクセスされたインデックスを使用して、動作620でアクセスされた問合せ部分指紋411~416と比較するための候補部分指紋として、参照部分指紋(例えば、参照部分指紋451~456のうちの1つ又は複数)を選択する(例えば、指定するか、又はその他の方法で識別する)。この選択は、問合せ部分指紋411~416のうちの問合せ部分指紋(例えば、問合せ部分指紋413)が、参照部分指紋451~456のうちの参照部分指紋(例えば、参照部分指紋453)とのマッチであるとの決定に基づく(例えば、候補選択器220によって実行される)。すなわち、例示的な実施形態において、候補選択器220は、問合せ部分指紋413が参照部分指紋453にマッチするということを決定し、この決定に基づいて、候補選択器220は、問合せ部分指紋411~416と比較するための候補として、参照部分指紋451~456を選択する。動作620においてアクセスされたインデックスは、参照部分指紋453を参照点460にマッピングする。前述したように、参照点460は、参照セグメント363が参照音声データ360内又は参照音声350内(例えば、参照音声350の参照部351内)で発生する点(例えば、時点)である。
【0039】
[0039]動作640で、ベクトル生成器230が(例えば、照合装置110のメモリ内、データベース115内、デバイス130内、又はこれらの任意の適切な組み合わせにおいて)カウントベクトル500を生成する。前述したように、カウントベクトル500はマッチのトータルカウント511~518を格納し、トータルカウント511~518は、問合せ部分指紋411~416と、参照指紋450に含まれる参照部分指紋の異なるサブセット(例えば、参照部分指紋451~456を含むサブセット)との間のマッチを表す。さらに、やはり前述したように、異なるサブセットの各々は、参照点460からの異なるオフセットを有する。言い換えると、各サブセットは、参照点460からの異なるオフセット(例えば、オフセット470の異なる値)によって、問合せ部分指紋411~416にアラインされる。したがって、異なるオフセットの各々(例えば、各オフセット551~558)は、カウントベクトル500によって、カウントベクトル500内のトータルカウントのうちの異なるトータルカウント(例えば、トータルカウント511~518のうちの1つ)にマッピングされる。例えば、カウントベクトル500は、(例えば、
図5に関して前述したように)マッチのトータル515をオフセット555にマッピングしてもよい。
【0040】
[0040]動作650で、マッチ分類器240が、カウントベクトル500に格納されたトータルカウントのうちの最大のトータルカウント(例えば、トータルカウント511~518のうちの最大値)を計算する。さまざまな例示的な実施形態によれば、マッチ分類器240は、下で説明されているように、1つ又は複数の追加の計算を実行してもよい。
【0041】
[0041]動作660で、マッチ分類器240が、問合せ部分指紋411~416とのマッチとして参照部分指紋451~456を分類し、この分類は、(例えば、マッチ分類器240によって実行された1つ又は複数の追加の計算結果と併せて)動作650において計算された最大のトータルカウントに基づいてもよい。すなわち、マッチ分類器240は、参照部分指紋451~456が、参照指紋450に格納された参照部分指紋の最も良くマッチするサブセット(例えば、暫定的な最も良くマッチするサブセット又は最終的な最も良くマッチするサブセット)を構成するということを決定してもよい。
【0042】
[0042]
図7に示されているように、前述した動作のうちの1つ又は複数に加えて、方法600は、動作700、712、714、732、742、744、746、及び770のうちの1つ又は複数を含んでもよい。一部の例示的な実施形態によれば、動作700が、動作610の前に実行される。動作700で、問合せ応答器210が、(例えば、デバイス130又は150のうちの1つによって送信された)問合せ音声300又は問合せ音声300の問合せ部301を識別するとの要求を受信する。この要求は、問合せ部301、問合せセグメント311~316、問合せ指紋410、問合せ部分指紋411~416、又はこれらの任意の適切な組み合わせを含んでもよい。
【0043】
[0043]動作712又は714のいずれかは、動作610の一部(例えば、先行タスク、サブルーチン、又は部分)として実行されてもよく、動作610において、問合せ応答器210は問合せ指紋410にアクセスする。動作712で、動作700において受信された要求が問合せ指紋410を含んでおり、問合せ応答器210が、受信された要求の問合せ指紋410にアクセスする。動作714で、動作700において受信された要求が問合せ音声300の問合せ部301又は問合せセグメント311~316を含んでおり、問合せ応答器210が、指紋生成器250に、受信された要求に含まれているそのような情報(例えば、問合せ部301又は問合せセグメント311~316)から問合せ指紋410を生成させる。したがって、問合せ応答器210は、指紋生成器250に指紋410を生成させることによって、指紋410にアクセスすることができる。
【0044】
[0044]動作732は、動作630の一部(例えば、先行タスク、サブルーチン、又は部分)として実行されてもよく、動作630において、候補選択器220は、問合せ部分指紋411~416と比較するための参照部分指紋(例えば、参照部分指紋453)を選択する。動作732で、候補選択器220が、問合せ部分指紋411~416のうちの問合せ部分指紋(例えば、問合せ部分指紋413)を、動作620において選択された参照部分指紋(例えば、参照部分指紋451~456)のうちの参照部分指紋(例えば、参照部分指紋453)と比較する。したがって、候補選択器220は、問合せ部分指紋413を参照部分指紋453と照合することができる。前述したように、参照部分指紋453は、参照セグメント363が、参照音声データ360内、参照部351内、参照音声350内、又はこれらの任意の適切な組み合わせにおいて発生する参照点460に(例えば、動作620においてアクセスされたインデックスによって)マッピングされる。
【0045】
[0045]動作640におけるカウントベクトル500の生成は、複数のオフセット(例えば、この例では、粗いオフセットであってもよいオフセット551~558)のうちの異なるオフセットごとに、動作742、744、及び746の実行を含んでもよい。動作742、744、及び746の各反復で、ベクトル生成器230は、対応するオフセット(例えば、オフセット551~558のうちの1つ)と組み合わせられるマッチのトータルカウント(例えば、トータルカウント511~518のうちの1つ)を生成する。
【0046】
[0046]さらに、動作742~746のそのような反復は、参照点460(例えば、参照音声350内のこの参照点460で、参照セグメント363が発生する)に対するオフセット(例えば、粗いオフセット)の既定の範囲内で実行されてもよい。一部の例示的な実施形態では、この既定の範囲は、参照点460の前後15秒にわたる(例えば、参照部分指紋453から時間的に前方及び後方に±15秒である値に対応する)。代替の例示的な実施形態では、既定の範囲は、参照点460の前後10秒、参照点460の前後20秒、又は参照点460の前後30秒にわたる。
【0047】
[0047]さらに、動作742~746のそのような反復は、反復ごとの異なるオフセットが、部分指紋の既定の数だけ一様に互いに間隔を空けて離れるように(例えば、オフセット470の値の既定の数だけ間隔を空けて離れるように)、実行されてもよい。一部の例示的な実施形態では、異なるオフセット(例えば、粗いオフセット)間のこの既定の一様な間隔は、10個の部分指紋である(例えば、オフセット470の10個の連続する値に対応する)。代替の例示的な実施形態では、この既定の一様な間隔は、15個の部分指紋(例えば、オフセット470の15個の連続する値に対応する)、20個の部分指紋(例えば、オフセット470の20個の連続する値に対応する)、又は30個の部分指紋(例えば、オフセット470の30個の連続する値に対応する)である。
【0048】
[0048]動作742で、参照点460からの特定のオフセット(例えば、オフセット555)に関して、ベクトル生成器230が、(例えば、参照指紋450内の参照部分指紋の現在のサブセットとしての)参照部分指紋451~456を、(例えば、再配置又はその他のシフトによって)参照点460からのオフセット(例えば、オフセット555)で、問合せ部分指紋411~416にアラインする。一部の例示的な実施形態では、このアラインは、(例えば、暫定的な最大のマッチのトータルカウントを決定するための)粗いアラインと呼ばれる。
【0049】
[0049]動作744で、特定のオフセット(例えば、オフセット555)に関して、ベクトル生成器230が、問合せ部分指紋411~416と(例えば、参照指紋450内の参照部分指紋の現在のサブセットとしての)参照部分指紋451~456の間のマッチのトータルカウント(例えば、トータルカウント515)を決定する。このトータルカウント(例えば、トータルカウント515)は、動作742~746の現在の反復の特定のオフセット(例えば、オフセット555)に対応する。
【0050】
[0050]動作746で、特定のオフセット(例えば、オフセット555)に関して、ベクトル生成器230が、決定されたトータルカウント(例えば、トータル515)を特定のオフセット(例えば、オフセット555)と組み合わせ、組み合わせられたオフセット及びそれに対応するトータルカウントをカウントベクトル500に格納する。さまざまな例示的な実施形態によれば、カウントベクトル500は、照合装置110内、データベース115内、デバイス130内、又はこれらの任意の適切な組み合わせ内で生成、格納、及び更新されてもよい。
【0051】
[0051]動作770は、動作660の後に実行されてもよく、動作660において、マッチ分類器240が、参照部分指紋451~456を問合せ部分指紋411~416とのマッチ(例えば、参照指紋450に格納された参照指紋の最も良くマッチするサブセット)として分類する。動作770で、動作770の結果に基づいて(例えば、動作770の結果に応答して)、問合せ応答器210が、デバイス130に、参照音声350が問合せ音声300にマッチするという(例えば、メッセージ内、警告内、ダイアログボックス内、又はポップアップウィンドウ内の)通知を提示させる。例えば、動作610における問合せ指紋410のアクセスが、(例えば、動作700における)要求の受信に応答して問合せ音声300又は問合せ音声300の問合せ部301を識別したためである場合、動作770が実行されて、参照音声350が問合せ音声300又は問合せ部301にマッチするということをユーザ132に警告してもよい。一部の例示的な実施形態では、この通知は、(例えば、参照音声350の参照部351を照合することによって)問合せ部301が参照音声350にマッチするオフセット(例えば、オフセット470の特定の値としてのオフセット555)も示す。したがって、デバイス130のユーザ132は、問合せ音声300の識別番号及び参照音声350内で問合せ部301が発生する位置を学習することができる。
【0052】
[0052]
図8に示されているように、前述した動作のうちの1つ又は複数に加えて、方法600は、動作840、842、844、及び846のうちの1つ又は複数を含んでもよい。動作840で、ベクトル生成器230が、カウントベクトル500を更新する。(例えば、動作742~746を含んでいる)動作640がカウントベクトル500の粗い生成(例えば、第1の通過、初期の通過、暫定的な通過、又は粗い通過)を構成する例示的な実施形態では、カウントベクトル500のこの更新は、カウントベクトル500の微調整(例えば、第2の通過、最後の通過、又は細かい通過)を構成してもよい。動作840におけるカウントベクトル500の更新は、カウントベクトル500を分析し、現在の最大値又は暫定的な最大値として最大のマッチのトータルカウント(例えば、トータルカウント514)を決定し、その後、問合せ部分指紋411~416と参照部分指紋451~456の間でのアラインにおけるより小さいシフトを除いて動作742、744、及び746に類似する動作を実行することによって、実行されてもよい。例えば、粗いシフト(例えば、オフセット470の複数の連続する値の大きいジャンプ)が動作742、744、及び746の反復において使用された場合、細かいシフト(例えば、オフセット470の1つの連続する値の小さいジャンプ)が動作842、844、及び846の反復において使用されてもよい。
【0053】
[0053]したがって、動作840におけるカウントベクトル500の更新は、複数のオフセット(例えば、この例では、細かいオフセットであってもよいオフセット551~558)のうちの異なるオフセットごとに、動作742、744、及び746の実行を含んでもよい。動作842、844、及び846の各反復で、ベクトル生成器230は、対応する細かいオフセット(例えば、オフセット551~558のうちの1つ)と組み合わせられるマッチのトータルカウント(例えば、トータルカウント511~518のうちの1つ)を生成する。
【0054】
[0054]さらに、動作842~846のそのような反復は、現在の最大のトータルカウント又は暫定的な最大のトータルカウント(例えば、トータルカウント514)に対する(例えば、を中心とする)(例えば、粗いオフセットと対照的に)細かいオフセットの既定の範囲内で実行されてもよい。一部の例示的な実施形態では、既定の範囲は、現在の最大のトータルカウント又は暫定的な最大のトータルカウントの前後1秒にわたる(例えば、現在の最大のトータルカウント又は暫定的な最大のトータルカウントから時間的に前方及び後方に±1秒である値に対応する)。代替の例示的な実施形態では、既定の範囲は、現在の最大のトータルカウント又は暫定的な最大のトータルカウントの前後1.5秒、現在の最大のトータルカウント又は暫定的な最大のトータルカウントの前後2秒、或いは現在の最大のトータルカウント又は暫定的な最大のトータルカウントの前後0.5秒にわたる。
【0055】
[0055]動作842で、参照点460からの特定の細かいオフセット(例えば、オフセット555)に関して、ベクトル生成器230が、(例えば、参照指紋450内の参照部分指紋の現在のサブセットとしての)参照部分指紋451~456を、参照点460からの細かいオフセット(例えば、オフセット555)で、問合せ部分指紋411~416にアラインする。動作842を含む例示的な実施形態では、このアラインは、(例えば、前に決定された暫定的な最大のマッチのトータルカウントを改善する可能性がある)細かいアラインと呼ばれる。
【0056】
[0056]動作844で、特定の細かいオフセット(例えば、オフセット555)に関して、ベクトル生成器230が、問合せ部分指紋411~416と(例えば、参照指紋450内の参照部分指紋の現在のサブセットとしての)参照部分指紋451~456の間のマッチのトータルカウント(例えば、トータルカウント515)を決定する。このトータルカウント(例えば、トータルカウント515)は、動作842~846の現在の反復の特定の細かいオフセット(例えば、オフセット555)に対応する。
【0057】
[0057]動作846で、特定の細かいオフセット(例えば、オフセット555)に関して、ベクトル生成器230が、決定されたトータルカウント(例えば、トータル515)を特定の細かいオフセット(例えば、オフセット555)と組み合わせ、組み合わせられた細かいオフセット及びそれに対応するトータルカウントを(例えば、格納することによって)カウントベクトル500に追加し、このようにしてカウントベクトル500を更新する。前述したように、カウントベクトル500は、照合装置110内、データベース115内、デバイス130内、又はこれらの任意の適切な組み合わせ内で格納及び更新されてもよい。動作840~846を含む例示的な実施形態では、動作650における最大のトータルカウントの計算は、更新されたカウントベクトル500に対して実行され、それに応じて、更新されたカウントベクトル500内のトータルカウント全体(例えば、細かいオフセットから得られたものを含む)のうちの最大のトータルカウントが(例えば、最終的な又は非暫定的な最大のトータルカウントとして)決定される。
【0058】
[0058]
図9に示されているように、前述した動作のうちの1つ又は複数に加えて、方法600は、動作940、942、950、952、954、及び956のうちの1つ又は複数を含んでもよい。動作940は、動作650の前の任意の時点で実行されてもよく、動作650において、マッチ分類器240が最大のトータルカウントをカウントベクトル500から計算する。動作940で、マッチ分類器240が、(例えば、動作640において生成されたか、動作840において更新されたか、或いはその両方が行われた)カウントベクトル500を正規化する。この正規化は、問合せ指紋410の全長(例えば、問合せ部分指紋411~416のトータルの数によって表される)に基づいてもよい。
【0059】
[0059]例えば、動作942は、940の一部として実行されてもよい。動作942で、マッチ分類器240が、マッチの各トータルカウント(例えば、各トータルカウント511~518)を問合せ部分指紋411~416のトータルカウントで割ることによって、カウントベクトル500を正規化する。これによって、多数の問合せ部分指紋(例えば、問合せ部分指紋411~416)を含む大きい問合せ指紋(例えば、問合せ指紋410)が、参照指紋450内のさまざまな参照部分指紋(例えば、部分指紋451~456)との多数のマッチをもたらす傾向を、完全又は部分的に補正することができる。
【0060】
[0060]さまざまな例示的な実施形態によれば、動作650の実行と動作660の実行の間で、問合せ部分指紋411~416とのマッチとしての参照部分指紋451~456の分類の前に、1つ又は複数の追加の計算が実行される。それらの追加の計算が、動作950、952、954、及び956として、
図9に示されている。
【0061】
[0061]動作950で、マッチ分類器240が、(例えば、動作640において生成されたか、動作840において更新されたか、又はその両方が行われた)カウントベクトル500内のマッチのトータルカウント(例えば、トータルカウント511~518)の中央値を計算する。動作950を含む例示的な実施形態において、動作660の実行は、この中央値(例えば、中央値のカウント)に基づく。特定の例示的な実施形態では、中央値の代わりに平均値が使用されてもよい。
【0062】
[0062]動作952で、マッチ分類器240が、動作650において決定された最大カウントと、動作950において決定された中央値との間の差を計算する。この計算は、最大カウントから中央値を引くことによって実行できる。動作952を含む例示的な実施形態において、動作660の実行は、最大カウントと中央値の間の計算された差に基づく。
【0063】
[0063]動作954で、マッチ分類器240が、(例えば、動作640において生成されたか、動作840において更新されたか、又はその両方が行われた)カウントベクトル500内のマッチのトータルカウント(例えば、トータルカウント511~518)の標準偏差を計算する。動作954を含む例示的な実施形態では、動作660の実行は、カウントベクトル500内のトータルカウント(例えば、トータルカウント511~518)の計算された標準偏差に基づく。
【0064】
[0064]動作956で、マッチ分類器240が、(例えば、動作952において決定された)差を(例えば、動作954において決定された)トータルカウントの標準偏差で割った商を計算する。この計算は、動作952の結果を被除数として使用し、動作954の結果を除数として使用し、被除数及び除数の商を計算することによって実行できる。動作956を含む例示的な実施形態において、動作660の実行は、計算された商に基づく。例えば、動作660の実行において、マッチ分類器240は、この商を計算し、(例えば、動作650からの)最大トータルカウントがカウントベクトル500内でどの程度顕著なピークを表すかを示すスコア(例えば、ピークプロミネンススコア)として、この商を使用してもよい。その後、マッチ分類器240は、このスコアを既定のスコアしきい値(例えば、最小ピークプロミネンススコア)と比較し、この比較に基づいて、問合せ部分指紋411~416とのマッチとして、参照部分指紋451~456を分類してもよい。
【0065】
[0065]特定の例示的な実施形態では、マッチ分類器240は、動作956において計算された商を、動作650において計算された最大のトータルカウントと共に使用する。特に、マッチ分類器240は、2次元配列(例えば、XYプロット又はグラフ)を生成及び分析するように構成することができ、この2次元配列内で、商及び最大のトータルカウントが、点を定義する座標の対を形成する。その後、マッチ分類器240は、構成された通りに、この点を既定の線しきい値(例えば、既定の区切り線しきい値又はマシン学習による区切り線しきい値)と比較し、問合せ部分指紋411~416とのマッチとして、参照部分指紋451~456を分類してもよい。
【0066】
[0066]例えば、一部の例示的な実施形態では、マッチ分類器240は、(例えば、マシン学習を介して)線しきい値を生成するように構成されたサポートベクターマシンの全部又は一部を形成する。場合によっては、サポートベクターマシンは、数学的識別分類器であるか、数学的識別分類器を含む。したがって、サポートベクターマシンは、既知の点(例えば、マッチ又はマッチせずに対応することが知られている点)に基づいてトレーニングし、その後、線しきい値を商及び最大のトータルカウントによって表された点と比較するための区切り線として、使用することができる。
【0067】
[0067]一部の例示的な実施形態によれば、トレーニング時に、サポートベクターマシンは、ミスマッチの数を最小限に抑え、正しいマッチの数を最大化する区切り線を見つけようと試みる。カウントベクトルの最大カウントと中央値の間の数学的距離(例えば、最大カウントと中央値のカウントの間の差)が、サポートベクターマシンへの入力として使用されてもよく、マッチ分類器240は、マッチが存在するかどうかを決定することにおいてこの数学的距離を考慮するように構成されてもよい。最大カウント及び数学的距離の使用は、2つの入力を伴う関数としてグラフィカルに扱われてもよく、それに応じて、各問合せが特徴空間内の点として表されてもよく、この特徴空間内で、サポートベクターマシンが線しきい値を生成している。この特徴空間内で、マッチ分類器240による分類が、線しきい値と相対的なこの点の位置に基づいて(例えば、線のどちら側に点が存在するかに基づいて)発生してもよい。
【0068】
[0068]さまざまな例示的な実施形態によれば、本明細書に記載された方法のうちの1つ又は複数は、音声指紋の照合(例えば、参照指紋450との問合せ指紋410の照合)を容易にすることができる。さらに、本明細書に記載された方法のうちの1つ又は複数は、音声データの照合(例えば、参照音声データ360との問合せ音声データ310の照合)又は音声データのセグメントの照合(例えば、参照セグメント361~366との問合せセグメント311~316の照合)を容易にすることができる。したがって、本明細書に記載された方法のうちの1つ又は複数は、音声の部分の照合(例えば、参照部351との問合せ部301の照合)、及び音声(例えば、問合せ音声300)又は音声の部分(例えば、問合せ部301)の識別を容易にすることができる。
【0069】
[0069]これらの効果を全体として考えたとき、本明細書に記載された方法のうちの1つ又は複数は、他の方法では音声指紋の照合、音声データの照合、音声の部分の照合、音声の識別、又はこれらの任意の適切な組み合わせに含まれるであろう特定の労力又はリソースの必要性を取り除くことができる。音声を識別することにおいてユーザによって費やされる労力は、本明細書に記載された方法のうちの1つ又は複数を実装する専用装置を使用する(例えば、依存する)ことによって低減できる。(例えば、ネットワーク環境100内の)1つ又は複数のシステム又は装置によって使用される計算リソースも同様に、(例えば、本明細書において説明された構造を欠いているか、又はその他の理由のために本明細書において説明された機能を実行できないシステム又は装置と比較して)低減できる。そのような計算リソースの例としては、プロセッササイクル、ネットワークトラフィック、計算能力、メインメモリ使用量、グラフィックスレンダリング能力、グラフィックスメモリ使用量、データストレージ容量、電力消費量、及び冷却能力が挙げられる。
【0070】
[0070]
図10は、マシン可読媒体1022(例えば、持続性[non-transitory, ノントランジトリ]のマシン可読媒体、マシン可読記憶媒体、コンピュータ可読記憶媒体、又はこれらの任意の適切な組み合わせ)から命令1024を読み取り、本明細書において説明された方法のうちのいずれか1つ又は複数を全体的又は部分的に実行することができる、一部の例示的な実施形態による装置1000の構成要素を示すブロック図である。具体的には、
図10は、コンピュータシステム(例えば、コンピュータ)の例示的な形態における装置1000を示しており、このコンピュータシステム内で、本明細書において説明された方法のうちのいずれか1つ又は複数を装置1000に実行させるための命令1024(例えば、ソフトウェア、プログラム、アプリケーション、アプレット、アプリ、又はその他の実行可能コード)が、全体的又は部分的に実行されてもよい。
【0071】
[0071]代替の実施形態では、装置1000は、スタンドアロンデバイスとして動作するか、又は通信によって他の装置に結合されてもよい(例えば、ネットワーク化されてもよい)。ネットワーク化された配置では、装置1000は、サーバ/クライアントネットワーク環境内のサーバ装置又はクライアント装置の能力内で動作してもよく、或いは分散(例えば、ピアツーピア)ネットワーク環境内のピア装置として動作してもよい。装置1000は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC:personal computer)、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、携帯電話、スマートフォン、セットトップボックス(STB:set-top box)、PDA(personal digital assistant)、Web機器、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、或いは装置によって行われる動作を指定する命令1024を連続的に、又はその他の方法で実行できる任意の装置であってもよい。さらに、1つの装置のみが示されているが、用語「装置」は、本明細書において説明された方法のうちのいずれか1つ又は複数の全部又は一部を実行するために、命令1024を個別に、又は合同で実行する装置の任意の集合を含んでいるとも受け取られるべきである。
【0072】
[0072]装置1000は、プロセッサ1002(例えば、1つ又は複数の中央処理装置(CPU:central processing units)、1つ又は複数のグラフィック処理装置(GPU:graphics processing units)、1つ又は複数のデジタル信号プロセッサ(DSP:digital signal processors)、1つ又は複数の特定用途向け集積回路(ASIC:application specific integrated circuits)、1つ又は複数の無線周波数集積回路(RFIC:radio-frequency integrated circuits)、又はこれらの任意の適切な組み合わせ)、メインメモリ1004、及びスタティックメモリ1006を含んでおり、これらはバス1008を介して互いに通信するように構成される。プロセッサ1002は、(例えば、電子的、光学的、又はその両方の)半導体デジタルマイクロ回路を含んでおり、これらの半導体デジタルマイクロ回路は、プロセッサ1002が本明細書に記載された方法のうちのいずれか1つ又は複数を全体的又は部分的に実行するように構成可能であるように、命令1024の一部又は全部によって、一時的又は永続的に構成可能である。例えば、プロセッサ1002の1つ又は複数のマイクロ回路のセットは、本明細書に記載された1つ又は複数のモジュール(例えば、ソフトウェアモジュール)を実行するように構成可能であってもよい。一部の例示的な実施形態では、プロセッサ1002はマルチコアCPU(例えば、デュアルコアCPU、クアッドコアCPU、8コアCPU、又は128コアCPU)であり、このマルチコアCPU内で、複数のコアのそれぞれは、本明細書において説明された方法のうちのいずれか1つ又は複数を全体的又は部分的に実行できる別々のプロセッサとして振る舞う。本明細書に記載された有益な効果は、少なくともプロセッサ1002を含む装置1000によって提供されてもよいが、これらと同じ有益な効果は、プロセッサを含んでいない異なる種類の装置(例えば、純粋な機械式システム、純粋な油圧式システム、又は機械式と油圧式のハイブリッドシステム)が、本明細書に記載された方法のうちの1つ又は複数を実行するように構成された場合に、そのようなプロセッサのない装置によって提供されてもよい。
【0073】
[0073]装置1000は、グラフィックディスプレイ1010(例えば、プラズマディスプレイパネル(PDP:plasma display panel)、発光ダイオード(LED:light emitting diode)ディスプレイ、液晶ディスプレイ(LCD:liquid crystal display)、プロジェクター、ブラウン管(CRT:cathode ray tube)、又はグラフィックス又はビデオを表示できる任意のその他のディスプレイ)をさらに含んでもよい。装置1000は、英数字入力デバイス1012(例えば、キーボード又はキーパッド)、ポインタ入力デバイス1014(例えば、マウス、タッチパッド、タッチスクリーン、トラックボール、ジョイスティック、スタイラス、モーションセンサー、視線追跡デバイス、データグローブ、又はその他のポインティング機器)、データストレージ1016、音声生成デバイス1018(例えば、サウンドカード、アンプ、スピーカー、ヘッドホンジャック、又はこれらの任意の適切な組み合わせ)、及びネットワークインターフェイスデバイス1020を含んでもよい。
【0074】
[0074]データストレージ1016(例えば、データストレージデバイス)はマシン可読媒体1022(例えば、有形のノントランジトリマシン可読記憶媒体)を含んでおり、マシン可読媒体1022には、本明細書に記載された方法又は機能のうちのいずれか1つ又は複数を具現化する命令1024が格納される。命令1024は、装置1000による命令1024の実行前又は実行中に、メインメモリ1004内、スタティックメモリ1006内、プロセッサ1002内(例えば、プロセッサのキャッシュメモリ内)、又はこれらの任意の適切な組み合わせ内に完全に、又は少なくとも部分的に存在してもよい。したがって、メインメモリ1004、スタティックメモリ1506、及びプロセッサ1002は、マシン可読媒体(例えば、有形のノントランジトリマシン可読媒体)であると見なされてもよい。命令1024は、ネットワークインターフェイスデバイス1020を介してネットワーク190を経由して送信又は受信されてもよい。例えば、ネットワークインターフェイスデバイス1020は、いずれか1つ又は複数の転送プロトコル(例えば、ハイパーテキスト転送プロトコル(HTTP:hypertext transfer protocol))を使用して命令1024を伝達してもよい。
【0075】
[0075]一部の例示的な実施形態では、装置1000は、ポータブルコンピューティングデバイス(例えば、スマートフォン、タブレットコンピュータ、又はウェアラブルデバイス)であってもよく、1つ又は複数の追加の入力構成要素1030(例えば、センサー又は計器)を含んでもよい。そのような入力構成要素1030の例としては、画像入力構成要素(例えば、1つ又は複数のカメラ)、音声入力構成要素(例えば、1つ又は複数のマイクロホン)、方向入力構成要素(例えば、コンパス)、位置入力構成要素(例えば、全地球測位システム(GPS:global positioning system)受信器)、方位構成要素(例えば、ジャイロスコープ)、動き検出構成要素(例えば、1つ又は複数の加速度計)、高度検出構成要素(例えば、高度計)、生体測定入力構成要素(例えば、心拍数検出器又は血圧検出器)、及びガス検出構成要素(例えば、ガスセンサー)が挙げられる。これらの入力構成要素のうちのいずれか1つ又は複数によって収集された入力データは、本明細書に記載されたモジュールのいずれかによってアクセス可能であり、使用可能である。
【0076】
[0076]本明細書において使用されるとき、用語「メモリ」は、データを一時的又は永続的に格納できるマシン可読媒体を指しており、ランダムアクセスメモリ(RAM:random-access memory)、読み取り専用メモリ(ROM:read-only memory)、バッファメモリ、フラッシュメモリ、及びキャッシュメモリを含むと受け取られてもよいが、これらに限定されない。例示的な実施形態においてマシン可読媒体1022は、1つの媒体であるように示されているが、用語「マシン可読媒体」は、命令を格納できる1つの媒体又は複数の媒体(例えば、集中型データベース又は分散データベース、或いは関連するキャッシュ及びサーバ)を含むと受け取られるべきである。また、用語「マシン可読媒体」は、命令1024が、装置1000の1つ又は複数のプロセッサ(例えば、プロセッサ1002)によって実行されたときに、装置1000に、本明細書に記載された方法のうちのいずれか1つ又は複数を全体的又は部分的に実行させるように、装置1000によって実行するための命令1024を格納できる、任意の媒体又は複数の媒体の組み合わせを含むと受け取られるべきである。したがって、「マシン可読媒体」は、1つのストレージ装置又はストレージデバイス、及び複数のストレージ装置又はストレージデバイスを含んでいるクラウドベースのストレージシステム又はストレージネットワークを指す。したがって、用語「マシン可読媒体」は、半導体メモリチップ、光ディスク、磁気ディスク、又はこれらの任意の適切な組み合わせの例示的な形態での、1つ又は複数の有形のノントランジトリデータリポジトリ(例えば、データボリューム)を含むと受け取られるべきであるが、これらに限定されない。「ノントランジトリ」マシン可読媒体は、本明細書において使用されるとき、具体的には、伝搬信号自体を含まない。一部の例示的な実施形態では、装置1000によって実行するための命令1024は、搬送媒体によって伝達されてもよい。そのような搬送媒体の例としては、ストレージ媒体(例えば、半導体メモリなどの、ある場所から別の場所に物理的に移動される、ノントランジトリマシン可読記憶媒体)及び一時的媒体(例えば、命令1024を伝達する伝搬信号)が挙げられる。
【0077】
[0077]特定の例示的な実施形態は、モジュールを含んでいるとして本明細書において説明されている。モジュールは、ソフトウェアモジュール(例えば、マシン可読媒体又は伝送媒体に格納されるか、又はその他の方法で具現化されるコード)、ハードウェアモジュール、又はこれらの任意の適切な組み合わせを構成してもよい。「ハードウェアモジュール」は、特定の動作を実行できる有形の(例えば、ノントランジトリな)物理的構成要素(例えば、1つ又は複数のプロセッサのセット)であり、特定の物理的方法で構成されるか、又は配置されてもよい。さまざまな例示的な実施形態では、1つ又は複数のコンピュータシステム又はコンピュータシステムの1つ又は複数のハードウェアモジュールは、そのモジュールに関して本明細書に記載された動作を実行するように動作するハードウェアモジュールとして、ソフトウェア(例えば、アプリケーション又はアプリケーションの一部)によって構成されてもよい。
【0078】
[0078]一部の例示的な実施形態では、ハードウェアモジュールは、機械式、電子式、油圧式、又はこれらの任意の適切な組み合わせによって実装されてもよい。例えば、ハードウェアモジュールは、特定の動作を実行するように永続的に構成された専用回路又は専用論理を含んでもよい。ハードウェアモジュールは、フィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)又はASICなどの専用プロセッサであるか、又はそのような専用プロセッサを含んでもよい。ハードウェアモジュールは、特定の動作を実行するようにソフトウェアによって一時的に構成される、プログラマブル論理又はプログラマブル回路を含んでもよい。一例として、ハードウェアモジュールは、CPU内又はその他のプログラマブルプロセッサ内に包含されたソフトウェアを含んでもよい。ハードウェアモジュールを、機械式、油圧式、専用の永続的に構成された回路、又は一時的に構成された(例えば、ソフトウェアによって構成された)回路のいずれで実装するかの判断は、コスト及び時間を考慮することによって決定されてもよい、ということが理解されるであろう。
【0079】
[0079]したがって、語句「ハードウェアモジュール」は、特定の方法で動作するように、又は本明細書に記載された特定の動作を実行するように、物理的に構築されるか、永続的に構成される(例えば、ハード配線される)か、又は一時的に構成され(例えば、プログラムされ)てもよい、有形の実体を包含すると理解されるべきである。さらに、本明細書において使用されるとき、語句「ハードウェア実装モジュール」は、ハードウェアモジュールを指す。ハードウェアモジュールが一時的に構成される(例えば、プログラムされる)例示的な実施形態を考えると、各ハードウェアモジュールは、時間内でいずれか1つのインスタンスで、構成又はインスタンス化される必要がない。例えば、ハードウェアモジュールが、専用プロセッサになるようにソフトウェアによって構成されるCPUを含んでいる場合、そのCPUは、異なる時間に、それぞれ異なる専用プロセッサとして構成されてもよい(例えば、異なるハードウェアモジュールにそれぞれ含まれてもよい)。したがって、ソフトウェア(例えば、ソフトウェアモジュール)は、例えば、時間の1つのインスタンスで特定のハードウェアモジュールになるか、又はその他の方法でそのようなハードウェアモジュールを構成し、時間の異なるインスタンスで異なるハードウェアモジュールになるか、又はその他の方法でそのようなハードウェアモジュールを構成するように、1つ又は複数のプロセッサを構成してもよい。
【0080】
[0080]ハードウェアモジュールは、他のハードウェアモジュールに情報を提供し、他のハードウェアモジュールから情報を受信することができる。したがって、説明されたハードウェアモジュールは、通信によって結合されていると見なされてもよい。複数のハードウェアモジュールが同時に存在する場合、ハードウェアモジュールのうちの2つ以上の間での信号送信によって(例えば、回路及びバスを経由して)、通信が実現されてもよい。複数のハードウェアモジュールが異なる時間に構成又はインスタンス化される実施形態では、そのようなハードウェアモジュール間の通信は、例えば、複数のハードウェアモジュールがアクセスできるメモリ構造内の情報の格納及び取得を介して、実現されてもよい。例えば、1つのハードウェアモジュールが、ある動作を実行し、その動作の出力を、そのハードウェアモジュールが通信によって結合されているメモリ(例えば、メモリデバイス)に格納することができる。その後、その他のハードウェアモジュールがそのメモリにアクセスし、格納された出力を取得して処理することができる。ハードウェアモジュールは、入力デバイス又は出力デバイスとの通信を開始してもよく、リソース(例えば、計算リソースからの情報の集合)を処理することができる。
【0081】
[0081]本明細書に記載された例示的な方法のさまざまな動作は、関連する動作を実行するように(例えば、ソフトウェアによって)一時的構成されるか、又は永続的に構成される1つ又は複数のプロセッサによって、少なくとも部分的に実行されてもよい。一時的に構成されるか、又は永続的に構成されるかにかかわらず、そのようなプロセッサは、本明細書に記載された1つ又は複数の動作又は機能を実行するように動作するプロセッサ実装モジュールを構成してもよい。本明細書において使用されるとき、「プロセッサ実装モジュール」は、ハードウェアが1つ又は複数のプロセッサを含んでいるハードウェアモジュールを指す。したがって、プロセッサはハードウェアの一例であるため、本明細書に記載された動作は、少なくとも部分的にプロセッサによって実装されるか、ハードウェアによって実装されるか、又はその両方であってもよく、本明細書において説明された方法のうちのいずれか1つ又は複数における少なくとも一部の動作は、1つ又は複数のプロセッサ実装モジュール、ハードウェア実装モジュール、又はこれらの任意の適切な組み合わせによって実行されてもよい。
【0082】
[0082]さらに、そのような1つ又は複数のプロセッサは、「クラウドコンピューティング」環境内で、又はサービスとして(例えば、SaaA(software as a service)の実装内で)動作を実行してもよい。例えば、本明細書において説明された方法のうちのいずれか1つ又は複数における少なくとも一部の動作は、(プロセッサを含んでいる装置の例として)コンピュータのグループによって実行されてもよく、それらの動作は、ネットワーク(例えば、インターネット)を介して、及び1つ又は複数の適切なインターフェイス(例えば、アプリケーションプログラムインターフェイス(API:application program interface))を介してアクセス可能である。特定の動作の実行は、1つの装置内のみに存在するか、複数の装置にわたって配置されるかにかかわらず、1つ又は複数のプロセッサ間で分散されてもよい。一部の例示的な実施形態では、1つ又は複数のプロセッサ又はハードウェアモジュール(例えば、プロセッサ実装モジュール)は、1つの地理的位置(例えば、住居環境内、オフィス環境内、又はサーバファーム内)に配置されてもよい。他の例示的な実施形態では、1つ又は複数のプロセッサ又はハードウェアモジュールは、複数の地理的位置の間で分散されてもよい。
【0083】
[0083]本明細書全体を通じて、複数のインスタンスが、1つのインスタンスとして説明された構成要素、動作、又は構造を実装してもよい。1つ又は複数の方法の個別の動作が別々の動作として示され、説明されているが、個別の動作のうちの1つ又は複数が同時に実行されてもよく、各動作が、示された順序で実行される必要はない。例示的な構成において別々の構成要素及び機能として提示された構造及びそれらの機能は、結合された機能を有する結合された構造又は構成要素として実装されてもよい。同様に、1つの構成要素として提示された構造及び機能は、分けられた構成要素及び機能として実装されてもよい。これら及びその他の変形、変更、追加、及び改良は、本明細書における対象の範囲に含まれる。
【0084】
[0084]本明細書において説明された対象のいくつかの部分は、ビット又は2進デジタル信号としてメモリ(例えば、コンピュータメモリ又はその他の装置のメモリ)内に格納されたデータに対する動作のアルゴリズム又は象徴的表現に関して提示されてもよい。そのようなアルゴリズム又は象徴的表現は、作業の内容を他の当業者に伝達するために、データ処理技術の当業者によって使用される技術の例である。本明細書において使用されるとき、「アルゴリズム」は、目的の結果をもたらす自己矛盾のない一連の動作又は同様の処理である。この文脈において、アルゴリズム及び動作は、物理量の物理的操作を含む。ただし、通常、そのような量は、装置によって格納、アクセス、転送、結合、比較、又はその他の操作を実行することができる電気信号、磁気信号、又は光信号の形態を必ずしも取らないことがある。主に一般的用法の理由で、そのような信号を、「データ」、「内容」、「ビット」、「値」、「要素」、「シンボル」、「文字」、「用語」、「数字」、「数値」などの単語を使用して参照することは、しばしば便利である。ただし、これらの単語は、単に便利なラベルであり、適切な物理量に関連付けられることになる。
【0085】
[0085]特に具体的に述べられない限り、「アクセスする」、「処理する」、「検出する」、「計算する」、「算出する」、「決定する」、「生成する」、「提示する」、「表示する」などの単語を使用する本明細書における説明は、1つ又は複数のメモリ(例えば、揮発性メモリ、不揮発性メモリ、又はこれらの任意の適切な組み合わせ)内、レジスタ内、或いは情報を受信、格納、送信、又は表示するその他の装置の構成要素内の物理量(例えば、電子的、磁気的、又は光学的量)として表されたデータを操作又は変換する装置(例えば、コンピュータ)によって実行可能な、動作又はプロセスを指す。さらに、特に具体的に述べられない限り、用語「1つ(a)」又は「1つ(an)」は、特許文献において一般的であるように、1つ又は複数のインスタンスを含めるために本明細書において使用される。最後に、本明細書において使用されるとき、接続詞「又は(or)」は、特に具体的に述べられない限り、非排他的な「又は(or)」を指す。
【0086】
[0086]以下で列挙された実施形態では、本明細書において説明された方法、マシン可読媒体、及びシステム(例えば、マシン、デバイス、又はその他の装置)のさまざまな例示的な実施形態について説明する。
【0087】
[0087]第1の実施形態は、
1つ又は複数のプロセッサによって、識別対象の問合せ音声の一部である問合せセグメントから生成された複数の問合せ部分指紋を含んでいる問合せ指紋にアクセスするステップと、
1つ又は複数のプロセッサによって、データベースにアクセスするステップであって、このデータベース内のインデックスが、参照音声の複数の参照セグメントから生成された複数の参照部分指紋を、参照セグメントが参照音声内で発生する点にマッピングする、ステップと、
1つ又は複数のプロセッサによって、複数の問合せ部分指紋のうちの1つの問合せ部分指紋が複数の参照部分指紋のうちの1つの参照部分指紋とのマッチであるとの決定に基づいて、問合せ部分指紋と比較するための参照部分指紋を選択するステップであって、参照部分指紋が、インデックスによって、複数の参照セグメントのうちの1つの参照セグメントが参照音声内で発生する参照点にマッピングされる、ステップと、
1つ又は複数のプロセッサによって、問合せ部分指紋と、参照部分指紋の異なるサブセットとの間のマッチの複数のトータルカウントを格納するカウントベクトルを生成するステップであって、異なるサブセットの各々が参照点からの異なるオフセットで問合せ部分指紋にアラインされ、異なるオフセットの各々が、カウントベクトルによって複数のトータルカウントのうちの1つの異なるトータルカウントにマッピングされる、ステップと、
1つ又は複数のプロセッサによって、カウントベクトルに格納されたトータルカウントのうちの最大カウントを計算するステップと、
1つ又は複数のプロセッサによって、カウントベクトル内の最大カウントに基づいて、参照部分指紋を問合せ部分指紋とのマッチとして分類するステップと、
を含んでいる方法を提供する。
【0088】
[0088]第2の実施形態は、
問合せ音声を識別することの要求を受信するステップであり、この要求が問合せ指紋を含む、ステップをさらに含んでおり、
問合せ指紋にアクセスするステップが、問合せ音声を識別することの受信された要求内の問合せ指紋にアクセスする、第1の実施形態に記載の方法を提供する。
【0089】
[0089]第3の実施形態は、
問合せ音声を識別することの要求を受信するステップであり、この要求が識別対象の問合せ音声の一部を含む、ステップをさらに含んでおり、
問合せ指紋にアクセスするステップが、問合せ音声を識別することの受信された要求に応答して、問合せ音声の一部から問合せ指紋を生成することを含んでいる、第1の実施形態に記載の方法を提供する。
【0090】
[0090]第4の実施形態は、
比較するための参照部分指紋を選択するステップが、問合せ部分指紋を、参照セグメントが参照音声内で発生する参照点にインデックスによってマッピングされた参照部分指紋と照合することを含んでいる、第1~3の実施形態のいずれか1つに記載の方法を提供する。
【0091】
[0091]第5の実施形態は、
カウントベクトルを生成するステップが、参照セグメントが参照音声内で発生する参照点からの各異なるオフセットごとに、
参照部分指紋を、参照点からのオフセットで問合せ部分指紋にアラインすることと、
問合せ部分指紋と、アラインされた参照部分指紋の異なるサブセットとの間のマッチのトータルカウントを決定することと、
対応するトータルカウントと組み合わせられたオフセットをカウントベクトルに格納することと、
を含んでいる、第1~4の実施形態のいずれか1つに記載の方法を提供する。
【0092】
[0092]第6の実施形態は、
カウントベクトルを生成するステップが、参照セグメントが参照音声内で発生する参照点に対するオフセットの既定の範囲内の異なるオフセットに関して、アラインすること、決定すること、及び格納することを反復的に実行することによって実行される、第5の実施形態に記載の方法を提供する。
【0093】
[0093]第7の実施形態は、
異なるオフセットが、部分指紋の既定の数だけ互いに離間されている、第1~6の実施形態のいずれか1つに記載の方法を提供する。
【0094】
[0094]第8の実施形態は、
異なるオフセットが、複数の部分指紋だけ一様に互いに離間される粗いオフセットであり、
最大カウントが、カウントベクトルによって最良の粗いオフセットにマッピングされた粗い最大カウントであり、方法が、
最良の粗いオフセットからの異なる細かいオフセットのうちの細かいオフセットごとに、
カウントベクトルを更新するステップであり、
参照部分指紋を、最良の粗いオフセットからの細かいオフセットで問合せ部分指紋にアラインすることと、
問合せ部分指紋と、アラインされた参照部分指紋の異なるサブセットとの間のマッチのトータルカウントを決定することと、
対応するトータルカウントと組み合わせられた細かいオフセットをカウントベクトルに格納することと、
によってカウントベクトルを更新するステップと、
カウントベクトル内のトータルカウントのうちの最大カウントを更新するステップであり、更新された最大カウントが、最良の粗いオフセットからの異なる細かいオフセットのうちの1つの細かいオフセットに対応する、ステップと、
をさらに含んでいる、第7の実施形態に記載の方法を提供する。
【0095】
[0095]第9の実施形態は、
カウントベクトルを更新するステップが、最良の粗いオフセットに対する細かいオフセットの既定の範囲内の異なる細かいオフセットに関して、アラインすること、決定すること、及び格納することを反復的に実行することによって実行される、第8の実施形態に記載の方法を提供する。
【0096】
[0096]第10の実施形態は、
異なる細かいオフセットが、連続しており、最良の粗いオフセットを中心とする細かいオフセットの範囲を形成する、第8の実施形態又は第9の実施形態に記載の方法を提供する。
【0097】
[0097]第11の実施形態は、
問合せ指紋の全長に基づいてカウントベクトルを正規化するステップをさらに含んでいる、第1~10の実施形態のいずれか1つに記載の方法を提供する。
【0098】
[0098]第12の実施形態は、
カウントベクトルを正規化するステップが、カウントベクトル内のマッチの各トータルカウントを問合せ部分指紋のトータルカウントで割ることを含んでいる、第11の実施形態に記載の方法を提供する。
【0099】
[0099]第13の実施形態は、
カウントベクトル内のトータルカウントの中央値を計算するステップをさらに含んでおり、
参照部分指紋を問合せ部分指紋とのマッチとして分類するステップが、カウントベクトルの中央値に基づく、第1~12の実施形態のいずれか1つに記載の方法を提供する。
【0100】
[0100]第14の実施形態は、
トータルカウントの最大カウントと中央値の間の差を計算するステップをさらに含んでおり、
参照部分指紋を問合せ部分指紋とのマッチとして分類するステップが、トータルカウントの最大カウントと中央値の間の差に基づく、第13の実施形態に記載の方法を提供する。
【0101】
[0101]第15の実施形態は、
カウントベクトル内のトータルカウントの標準偏差を計算するステップをさらに含んでおり、
参照部分指紋を問合せ部分指紋とのマッチとして分類するステップが、トータルカウントの標準偏差に基づく、第1~14の実施形態のいずれか1つに記載の方法を提供する。
【0102】
[0102]第16の実施形態は、
トータルカウントの最大カウントと中央値の間の差を計算するステップと、
差をトータルカウントの標準偏差で割った商を計算するステップと、をさらに含んでおり、
参照部分指紋を問合せ部分指紋とのマッチとして分類するステップが、差をトータルカウントの標準偏差で割った商に基づく、第15の実施形態に記載の方法を提供する。
【0103】
[0103]第17の実施形態は、命令を含んでいるマシン可読媒体(例えば、ノントランジトリマシン可読記憶媒体)を提供し、それらの命令が、マシンの1つ又は複数のプロセッサによって実行された場合に、マシンに、
識別対象の問合せ音声の一部である問合せセグメントから生成された複数の問合せ部分指紋を含んでいる問合せ指紋にアクセスするステップと、
データベースにアクセスするステップであって、このデータベース内のインデックスが、参照音声の複数の参照セグメントから生成された複数の参照部分指紋を、参照セグメントが参照音声内で発生する点にマッピングする、ステップと、
複数の問合せ部分指紋のうちの1つの問合せ部分指紋が複数の参照部分指紋のうちの1つの参照部分指紋とのマッチであるとの決定に基づいて、問合せ部分指紋と比較するための参照部分指紋を選択するステップであって、参照部分指紋が、インデックスによって、複数の参照セグメントのうちの1つの参照セグメントが参照音声内で発生する参照点にマッピングされる、ステップと、
問合せ部分指紋と、参照部分指紋の異なるサブセットとの間のマッチの複数のトータルカウントを格納するカウントベクトルを生成するステップであって、異なるサブセットの各々が参照点からの異なるオフセットで問合せ部分指紋にアラインされ、異なるオフセットの各々が、カウントベクトルによって複数のトータルカウントのうちの1つの異なるトータルカウントにマッピングされる、ステップと、
カウントベクトルに格納されたトータルカウントのうちの最大カウントを計算するステップと、
カウントベクトル内の最大カウントに基づいて、参照部分指紋を問合せ部分指紋とのマッチとして分類するステップとを含んでいる動作を実行させる。
【0104】
[0104]第18の実施形態は、
問合せ指紋にアクセスするステップが、問合せ音声を識別することの要求の受信に応答するものであり、この要求がクライアントデバイスから受信され、
動作が、
クライアントデバイスに、参照音声が問合せ音声にマッチするとの通知を提示させるステップであり、この提示させるステップが、参照部分指紋を問合せ部分指紋とのマッチとして分類するステップに基づく、ステップをさらに含んでいる、第17の実施形態に記載のノントランジトリマシン可読記憶媒体を提供する。
【0105】
[0105]第19の実施形態は、
1つ又は複数のプロセッサと、
命令を格納しているメモリとを備えているシステム(例えば、照合装置110又はデバイス130)を提供し、それらの命令が、1つ又は複数のプロセッサのうちの少なくとも1つのプロセッサによって実行された場合に、システムに、
識別対象の問合せ音声の一部である問合せセグメントから生成された複数の問合せ部分指紋を含んでいる問合せ指紋にアクセスするステップと、
データベースにアクセスするステップであって、このデータベース内のインデックスが、参照音声の複数の参照セグメントから生成された複数の参照部分指紋を、参照セグメントが参照音声内で発生する点にマッピングする、ステップと、
複数の問合せ部分指紋のうちの1つの問合せ部分指紋が複数の参照部分指紋のうちの1つの参照部分指紋とのマッチであるとの決定に基づいて、問合せ部分指紋と比較するための参照部分指紋を選択するステップであって、参照部分指紋が、インデックスによって、複数の参照セグメントのうちの1つの参照セグメントが参照音声内で発生する参照点にマッピングされる、ステップと、
問合せ部分指紋と、参照部分指紋の異なるサブセットとの間のマッチの複数のトータルカウントを格納するカウントベクトルを生成するステップであって、異なるサブセットの各々が参照点からの異なるオフセットで問合せ部分指紋にアラインされ、異なるオフセットの各々が、カウントベクトルによって複数のトータルカウントのうちの1つの異なるトータルカウントにマッピングされる、ステップと、
カウントベクトルに格納されたトータルカウントのうちの最大カウントを計算するステップと、
カウントベクトル内の最大カウントに基づいて、参照部分指紋を問合せ部分指紋とのマッチとして分類するステップと、
を含んでいる動作を実行させる。
【0106】
[0106]第20の実施形態は、
問合せ指紋にアクセスするステップが、問合せ音声を識別することの要求の受信に応答するものであり、この要求がクライアントデバイスから受信され、動作が、
クライアントデバイスに、参照音声が問合せ音声にマッチするとの通知を提示させるステップであり、この通知が、問合せ音声の一部が参照音声にマッチしている一部のオフセットを示し、この提示させるステップが、参照部分指紋を問合せ部分指紋とのマッチとして分類するステップに基づく、ステップをさらに含んでいる、第19の実施形態に記載のシステムを提供する。
【0107】
[0107]第21の実施形態は、前述した実施形態のうちのいずれか1つにおいて挙げられた動作を実行するようにマシンを制御するためのマシン可読命令を搬送する搬送媒体を提供する。
[要約]
識別対象の問合せ音声の一部から生成された問合せ指紋を取得することを実行する問合せ応答器(210)と、
参照音声内で複数の参照指紋が発生する複数の時点に前記複数の参照指紋をマッピングしているインデックスに基づき前記問合せ指紋との比較のために前記複数の参照指紋から一の参照指紋を選択することを実行する候補選択器(220)と、
選択された前記参照指紋における複数の参照部分指紋の異なるサブセットと、前記問合せ指紋における複数の問合せ部分指紋との間のマッチのトータルカウントを格納するカウントベクトルを生成することを実行するベクトル生成器であり、前記異なるサブセットの各々が、前記参照音声における参照時点とは異なるオフセットで前記複数の問合せ部分指紋にアラインされている、ベクトル生成器(230)と、
マッチ分類器であり、
前記カウントベクトルに格納された前記トータルカウント内の最大カウントを計算することと(650)、
前記カウントベクトル内の前記トータルカウントの中央値を計算することと(950)、
前記トータルカウントの中央値と前記最大カウントとの間の差を計算することと(952)、
前記トータルカウントの中央値と前記カウントベクトル内の前記最大カウントとの間の前記差に基づき前記問合せ指紋とのマッチとして前記参照指紋を分類することと(660)、
を実行するマッチ分類器(240)と、
を備える装置(110)。