JP3569981B2 - 探索方法および音声認識装置 - Google Patents
探索方法および音声認識装置 Download PDFInfo
- Publication number
- JP3569981B2 JP3569981B2 JP26080894A JP26080894A JP3569981B2 JP 3569981 B2 JP3569981 B2 JP 3569981B2 JP 26080894 A JP26080894 A JP 26080894A JP 26080894 A JP26080894 A JP 26080894A JP 3569981 B2 JP3569981 B2 JP 3569981B2
- Authority
- JP
- Japan
- Prior art keywords
- candidate
- candidates
- distance
- representative
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【産業上の利用分野】
本発明は、例えばベクトル量子化における最適なセントロイドの探索などのように、ある評価基準(距離)に基づいて、複数の候補の中から、入力値との距離が最も近いもの(入力値との類似度が最も高いもの)を選び出す(探索(検索)する)場合に用いて好適な探索方法、並びに音声認識装置に関する。
【0002】
【従来の技術】
与えられた複数の候補の中から、入力(入力値)と最も距離の近いものを求める探索問題は、さまざまなところで必要とされる。即ち、例えばベクトル量子化などにおいては、入力値と最も類似するセントロイドを探索する必要がある。この探索問題を解決する探索方法としては、例えば「ディジタル音声処理」、古井貞煕、東海大学出版会、125乃至133ページに記載されているような、入力値とすべての候補それぞれとの類似度を求めた上で、最も距離の近いものを決定する全探索(full search)と呼ばれる手法や、あらかじめ候補を2値木(binary tree)に構造化しておき、その二値木をたどることによって距離の近いものを決定する二値木探索(binary tree search)と呼ばれる手法が従来から用いられている。
【0003】
【発明が解決しようとする課題】
ところで、このような探索問題においては、演算量と記憶容量を低減し、かつ歪みを小さくすることが重要となる。
【0004】
従来の探索方法の1つである全探索では、すべての候補との距離の計算を行うため演算量が大きくなり、その結果、多大な探索時間を要する課題があった。
【0005】
また、二値木探索では、すべての候補との距離の計算を行う必要はないため、全探索に比較して演算量を低減することができるが、歪みが大きくなるという課題があった。さらに、候補を2値木として構造化するため、木の節点数だけの記憶容量(全探索の約2倍の記憶容量)が必要であった。
【0006】
本発明は、このような状況に鑑みてなされたものであり、入力値と最も距離の近い候補を、歪みをできるだけ低く抑えて、高速に探索することができるようにするものである。
【0007】
【課題を解決するための手段】
本発明の探索方法は、複数の候補の中から、入力値と最も距離の近いものを探索する探索方法であって、候補を、小グループにグループ化し、小グループ間の距離である小グループ間距離を求め、小グループ間距離の近い小グループどうしを統合して統合グループとし、各統合グループを代表する候補である代表候補を選択し、代表候補を含む、その代表候補に隣接する他の代表候補を通る境界面で囲まれる空間内に存在する候補を、その代表候補が代表する統合グループに再配置することにより、候補を階層構造に、あらかじめ構造化しておき、入力値と各代表候補との間の距離である入力代表間距離を求め、入力代表間距離の近い代表候補を含む統合グループに属する各候補それぞれと、入力値との距離である入力候補間距離を求め、入力候補間距離の最も近い候補を探索結果とすることを特徴とする。
【0009】
また、この探索方法においては、代表候補を候補とみなして、それを階層構造に構造化することを繰り返すようにすることができる。さらに、所定の階層の代表候補と、入力値との間の入力代表間距離を求め、入力代表間距離が近い代表候補を含むグループに属し、所定の階層の下位階層の候補それぞれと、入力値との間の入力候補間距離を求め、その後、入力候補間距離が近い候補を代表候補とするグループに属し、下位階層のさらに下位階層の候補それぞれと、入力値との間の入力候補間距離を求めることを、最下位の階層にたどりつくまで繰り返すようにすることができる。また、この探索方法においては、所定の階層の代表候補のうちの、入力代表間距離が所定の距離以下になるものを中心とする所定の半径の球内に存在する代表候補のみを対象として、入力値との入力代表間距離を求めるようにすることができる。
【0010】
所定の階層の代表候補の総数のK(Kは1未満の正数)倍の数の代表候補を含む最小半径の球のうちの、半径が最も大きい球の中心に位置する代表候補である中心候補との入力代表間距離を求め、入力代表間距離が、中心候補を中心とする球の半径のα(αは0.5以上1以下の実数)倍以下になっていないときには、各代表候補それぞれを中心とし、総数のK倍の数の代表候補を含む球のうちの、半径がより大きい球の中心に位置し、かつ既に中心候補とされた代表候補からより遠い位置にある代表候補を、新たな中心候補とし、その中心候補との入力代表間距離を求めることを、その入力代表間距離が、中心候補を中心とする球の半径のα倍以下になるまで繰り返す絞り込みを行い、入力代表間距離が、中心候補を中心とする球の半径のα倍以下になったときには、そのときに中心候補となっている代表候補を中心とする球内に存在する、総数のK倍の数の代表候補のみを対象として、入力値との入力代表間距離を求めるようにすることができる。さらに、αは、0.5とすることができる。また、入力代表間距離を求める対象とした代表候補に対し、絞り込みを繰り返し行い、入力代表間距離を求める対象とする代表候補の数を、総数のKの累乗倍に減らすようにすることができる。
【0011】
この探索方法においては、探索結果である候補を中心とする球に含まれる候補であって、その球の中心により近い位置に存在する所定の数r1の候補それぞれと、入力値との間の入力候補間距離を求め、その入力候補間距離の最も近い候補を、新たな探索結果とするようにすることができる。また、探索結果である候補を中心とする球に含まれる候補であって、その球の中心により近い位置に存在する所定の数r1の候補それぞれと、入力値との間の入力候補間距離を求め、その入力候補間距離の最も近い候補を、新たな探索結果とすることを、探索結果として得られる候補が変わらなくなるまで繰り返すようにすることができる。
【0012】
探索結果である候補との入力候補間距離が、その候補を中心とする球であって、所定の数r1のL(Lは1未満の正数)の累乗倍の数の候補を含む最小半径の球の半径のβ(βは0.5以上1以下の実数)倍以下であるときには、その球に含まれる所定の数r1のLの累乗倍の数の候補のみを、探索の対象とすることができる。また、βは、0.5とすることができる。
【0015】
さらに、この探索方法においては、入力値との入力候補間距離または入力代表間距離を一度求めた候補または代表候補について、その入力候補間距離または入力代表間距離を記憶しておくようにすることができる。
【0016】
本発明の音声認識装置は、音声から特徴パラメータを抽出する抽出手段(例えば、図22に示す音響分析部3など)と、抽出手段により抽出された特徴パラメータをベクトル量子化し、所定のコードを出力するベクトル量子化手段(例えば、図22に示すベクトル量子化部4など)と、ベクトル量子化手段より出力されるコードに基づいて、音声を認識する認識手段(例えば、図22に示す認識部5など)とを備え、ベクトル量子化手段は、請求項1に記載の探索方法により、特徴パラメータに対応するコードを探索することを特徴とする。
【0017】
【作用】
本発明の探索方法においては、候補を、小グループにグループ化し、小グループ間の距離である小グループ間距離を求め、小グループ間距離の近い小グループどうしを統合して統合グループとし、各統合グループを代表する候補である代表候補を選択し、代表候補を含む、その代表候補に隣接する他の代表候補を通る境界面で囲まれる空間内に存在する候補を、その代表候補が代表する統合グループに再配置することにより、候補が階層構造に、あらかじめ構造化されている。そして、入力値と各代表候補との間の距離である入力代表間距離が求められ、入力代表間距離の近い代表候補を含む統合グループに属する各候補それぞれと、入力値との距離である入力候補間距離を求められて、入力候補間距離の最も近い候補が探索結果とされる。従って、入力値と最も距離の近い候補を、歪みをできるだけ低く抑えて、高速に探索することができる。
【0018】
本発明の音声認識装置においては、音声から特徴パラメータが抽出され、それが、ベクトル量子化部4でベクトル量子化されて、所定のコードとされる。そして、このコードに基づいて、音声が認識される。ベクトル量子化部4では、請求項1に記載の探索方法により、特徴パラメータに対応するコードが探索される。従って、特徴パラメータを、歪みをできるだけ低く抑えて、高速にベクトル量子化することができる。
【0019】
【実施例】
以下、図面を参照して、本発明の実施例について説明する。本発明の探索方法は、与えられた複数の候補の中から入力と最も距離の近い(類似度の高い)ものを選び出すという探索(検索)問題において、あらかじめ全候補を構造化しておき、その構造を用いることで探索すべき候補を絞り込みながら、その中で入力と最も距離の近い候補を求め、それを探索結果とするようになされている。ここで、その全体の流れを、図1に示す。
【0020】
まず最初に、ステップS1においては、近傍高速探索処理(詳細は後述する)が行われる。この近傍高速探索処理により、探索範囲を制限することができる場合には、可能な限り制限する。そして、探索範囲が、1つの候補にまで制限することができた場合には、処理を終了する。また、探索範囲を、1つの候補にまで制限することができない場合には、ステップS2に進む。
【0021】
ステップS2では、構造化探索処理が行われる。この構造化探索処理は、階層構造を用いた探索方法による処理で、ステップS3の初期探索処理と、ステップS4の構造探索処理で構成される(詳細は後述する)。構造化探索処理後は、ステップS5に進み、構造化探索処理による歪みを小さくするための近傍精密探索処理が行われ、処理を終了する。
【0022】
次に、ステップS2の構造化探索処理について説明するが、その前段階の準備として、この構造化探索処理を行うために、探索対象である候補を構造化する構造化方法について説明する。
【0023】
なお、与えられたすべての候補をC={Ci:1≦i≦N}(但し、iは整数)とし、CiとCjとの間の距離(類似度)(例えば、ユークリッド距離)をd(Ci,Cj)と表すものとする。ここで、Nは全候補の数を表す。また、入力(値)をXと表す。従って、入力値XとCiとの間の距離はd(X,Ci)となる。
【0024】
探索問題とは、全候補C={Ci:1≦i≦N}の中から、入力値Xとの距離d(X,Ci)が最も小さくなるような候補Ciを求める問題であり、例えばベクトル量子化(VQ)について言えば、セントロイドベクトルの集合がC={Ci:1≦i≦N}に、入力ベクトルがXに、それぞれ対応する。また、セントロイドベクトルCiとCj(但し、jは、1乃至Nの範囲の整数)との間のユークリッド距離がd(Ci,Cj)に、入力ベクトルXとセントロイドベクトルCiとの間のユークリッド距離がd(X,Ci)に、それぞれ対応する。
【0025】
候補C={Ci:1≦i≦N}の構造化は、図2に示すフローチャートにしたがって行われる。即ち、まず最初に、ステップS11において、初期グループ(小グループ)が決定される。即ち、各候補Ciそれぞれを1つだけを要素とするN個のグループGi={Ci}が作成される。なお、このとき、グループGiに属する候補数をn(Gi)で表せば、n(Gi)=1となる。
【0026】
そして、ステップS12に進み、n(Gi)≧1のグループGiについて、各グループ間の相互距離(グループ間距離)D(Gi,Gj)が計算され、ステップS13に進む。ステップS13では、ステップS12で求められたグループ間距離が近いものどうしが結合(統合)され、1つのグループ(統合グループ)とされる。そして、ステップS14に進み、グループの統合を中止するか否かが判定され、グループの統合を中止しないと判定された場合、即ちグループの統合を続けると判定された場合、ステップS12に戻り、ステップS12乃至S14の処理を繰り返す。
【0027】
ステップS12乃至S14の処理が繰り返されることにより、1つだけの候補を要素としていたグループ(初期グループ)が統合され、複数の候補を要素として有するグループが生成される。
【0028】
一方、ステップS14において、グループの統合を中止すると判定された場合、ステップS15に進み、ステップS12乃至S14の処理により生成されたグループに属する候補の中から、そのグループを代表する候補(代表候補)が抽出(選択)される。そして、ステップS16に進み、代表候補に選択されなかった候補が、改めて各グループの要素として再配置し直され、各グループに属する候補が、最終的に決定されて、処理を終了する。
【0029】
以上により、全候補C={Ci}が幾つかのグループに分割され、また各グループには、代表候補が一つずつ存在している状態となる。代表候補を上位階層の候補とみなすとともに、その代表候補が代表するグループに属する候補を下位階層の候補とみなすことにより、図2に示した構造化処理を1度行うことで、全候補は、2階層に構造化されたものと考えることができる。
【0030】
そして、代表候補だけを、新たな候補とみなして、図2の構造化処理を繰り返すことにより、さらに多くの階層からなる階層構造が出来上がる。
【0031】
即ち、図3(a)に示すように、全体(全候補)に対して、構造化処理を施し、その処理結果のうちの代表候補だけに着目する。そして、その着目した代表候補を、新たな候補とし、その候補に対し、再度構造化処理を施して、その処理結果のうちの代表候補だけに着目する。以下、同様の処理を繰り返すことにより、図3(b)に示すように、候補が階層構造に構造化される。
【0032】
次に、図2のステップS12乃至S16それぞれの処理の詳細について説明する。ステップS12乃至S14の処理を繰り返すことにより、グループどうしが統合され、グループの要素は増加する(要素の増加するグループと、要素がなくなるグループとに分かれる)。従って、グループに属する候補が、常に1つである場合は、例えばその候補どうしの距離を、グループ間距離とすることができるが、グループに属する候補が複数になった場合は、ステップS12でグループ間距離を計算するために、複数の候補を要素として有するグループGiとGjと間の距離(グループ間距離)D(Gi,Gj)を定義する必要が生じてくる。
【0033】
このグループ間距離D(Gi,Gj)は、例えばベクトル量子化における場合のように、候補間の距離d(Ci,Cj)が定義されている場合、例えば図4に示すように、グループGi,Gjそれぞれに属する候補x,yのうち、最も近い候補間の距離とすることができる。この場合、グループ間距離D(Gi,Gj)は、次式で定義される。
【0034】
D(Gi,Gj)=min{d(x,y):x∈Gi,y∈Gj}
但し、min{}は、{}内の最小値を意味する。
【0035】
また、グループ間距離D(Gi,Gj)は、例えば図5に示すように、グループGi,Gjそれぞれに属する候補x,yのうち、最も遠い候補間の距離とすることができる。この場合、グループ間距離D(Gi,Gj)は、次式で定義される。
【0036】
D(Gi,Gj)=max{d(x,y):x∈Gi,y∈Gj}
但し、max{}は、{}内の最大値を意味する。
【0037】
さらに、グループ間距離D(Gi,Gj)は、例えば図6に示すように、グループGi,Gjそれぞれの平均値ベクトルui,uj間の距離とすることもできる。この場合、グループ間距離D(Gi,Gj)は、次式で定義される。
D(Gi,Gj)=d(ui,uj)
但し、
【数1】
【0038】
あるいはまた、グループ間距離D(Gi,Gj)は、例えば図7に示すように、グループGi,Gjそれぞれの分散σi,σjによって定義することもできる。この場合、グループ間距離D(Gi,Gj)は、例えば次式で定義される。
【0039】
D(Gi,Gj)=σi+σj
但し、
【数2】
【0040】
さらに、グループ間距離D(Gi,Gj)は、例えば図8に示すように、グループGi,Gjそれぞれに属する候補すべての平均値(平均値ベクトル)uから、その候補全体のうちの最も遠い候補(候補ベクトル)xまでの距離(分布半径)とすることもできる。この場合、グループ間距離D(Gi,Gj)は、次式で定義される。
【0041】
D(Gi,Gj)=max{d(u,x):x∈Gi∪Gj}
但し、
【数3】
【0042】
また、グループ間距離D(Gi,Gj)は、例えば図9に示すように、グループGi,Gjそれぞれに属する候補すべての分散σによって定義することもできる。この場合、グループ間距離D(Gi,Gj)は、例えば次式で定義される。
【0043】
D(Gi,Gj)=σ
但し、
【数4】
【0044】
さらにまた、グループ間距離D(Gi,Gj)は、以上述べたような評価値を組み合わせて定義するようにしても良い。
【0045】
ステップS12では、以上のように定義されるグループ間距離のいずれかが計算される。尚、図4乃至図9のうちの図5に示したグループ間処理D(Gi,Gj)を用いた場合が、探索における歪が最も小さいという実験結果が得られた。
【0046】
ステップS12の処理の結果、グループ間距離D(Gi,Gj)を計算する2つのグループGi,Gjのサフィックスi,jを、それぞれ縦軸、横軸にとった表を、図10に示すように、グループ間距離D(Gi,Gj)で埋めたものが得られる。但し、ステップS12において、候補数n(Gk)=0のグループGkに対応する行と列(i=kの行と、j=kの列)は不定として使用しない(グループ間距離D(Gk,Gj)とD(Gi,Gk)とは計算されない)。なお、kは、1乃至Nの範囲の整数である。
【0047】
そして、ステップS13では、例えば図11に示すようにして、グループ間距離D(Gi,Gj)の近いグループGi,Gjどうしが統合される。即ち、まず最初に、ステップS21において、図10に示した表におけるグループ間距離D(Gi,Gj)が最小となるグループGi,Gjが検出され、ステップS22に進み、グループGjの要素(グループGjに属する候補)が、グループGiに追加され、これによりグループGiとGjとが統合される(グループGjが、グループGiに統合される)。
【0048】
その後、ステップS23に進み、グループGjが空集合とされ、ステップS24に進む。ステップS24では、グループGiに属する候補数n(Gi)に、グループGjに属する候補数n(Gj)が加算され、これがグループGiに属する、新たな候補数n(Gi)とされる。そして、ステップS25に進み、グループGjに属する候補数n(Gj)が0とされ、処理を終了する。
【0049】
なお、図11に詳細に示したステップS13(図2)において、2つ以上のグループ間距離が等しく、その距離が最小である場合には、そのようなグループ間距離にあるグループは、同時に統合される。即ち、例えばグループ間距離D(Gi,Gj)とD(Gi,Gk)とが等しく、かつ最も小さい場合には、グループGi,Gj,Gkは、同時に統合(結合)される。また、例えばグループ間距離D(Gi,Gj)とD(Gp,Gq)とが等しく、かつ最も小さい場合には、グループGi,Gjが統合されると同時に、グループGp,Gqも結合される。但し、p,qは、1乃至Nの範囲の整数である。
【0050】
ステップS13の処理後、グループが統合されることにより、その総数が減少し、ステップS14では、上述したように、グループの統合を中止するか否かが判定される。この判定は、例えば、グループの総数がある所定の数以下になったか否かや、所定の回数だけステップS12乃至S14のループを繰り返したか否か、あるいは各グループの分散が所定の値を越えたか否かなどを基準として行われる。
【0051】
次に、図2のステップS15における代表候補の選択では、上述したステップS12乃至S14の処理により最終的に得られたグループに属する候補のうちの、例えば平均値に最も近いものが代表候補として抽出(選択)される。即ち、例えばベクトル量子化を考えた場合には、グループは、セントロイドベクトルの集合として与えられ、その平均値ベクトルに最も近いベクトルが代表候補として抽出される。
【0052】
そして、ステップS16では、上述したように各グループに属する候補の再配置が行われるが、これについては図12を参照して説明する。ここで、ステップS15で抽出された代表候補をR={Ri:1≦i≦N1}とし、各代表候補が代表するグループを、g={gi:1≦i≦N1}と表す。なお、N1≦N,R⊂Cである。
【0053】
まず最初に、ステップS31においては、代表候補Riそれぞれが、それが代表するグループgiの1つ目の要素とされ、ステップS32に進み、ステップS15で代表に選ばれなかった(代表候補として選択されなかった)残りの候補全体R’(図12においては、Rの上にバー(−)を付して示してある)から、1つだけ候補が抽出される。
【0054】
ここで、R’⊂C,C=R∪R’,R∩R’=0である。
【0055】
そして、ステップS33に進み、ステップS32で抽出された候補が、グループgのうちのいずれのグループに含まれるのかが判定され(調査され)、そのグループに配置される。即ち、ステップS33では、ステップS32で抽出された候補x∈R’について、次式を満たす代表候補Riが存在するか否かが判定される。
【0056】
そして、式(1)を満たす代表候補Riが存在する場合には、その代表候補Riを代表とするグループgiに、候補xが含められる(配置される)。
【0057】
ここで、図13は、式(1)で示される条件を幾何学的に表している。式(1)によれば、ある代表候補Riに着目した場合、ステップS32で抽出された候補xと、残りの代表候補Rjすべてとの関係が、図13(a)に示すようなとき、即ち∠xRjRiが鋭角のとき(90度未満のとき)、グループgiに、候補xが含められる。また、候補xと、残りの代表候補Rjのうちの少なくとも1つとの関係が、図13(b)に示すようなとき、即ち∠xRjRiが直角または鈍角のとき(90度以上のとき)、候補xは、グループgiには含められない。
【0058】
従って、候補xを、グループgiに含めるかどうかは、ある代表候補Riと、その他の代表候補Rjとを結ぶ直線に垂直な平面であって、代表候補Rjを通る平面より、候補xが、代表候補Ri側にあるかどうかで決定される。
【0059】
以上の処理後、ステップS34(図12)に進み、代表候補Riを除くすべての候補R’の配置が完了したか否かが判定される。ステップS34において、候補R’の配置が完了していないと判定された場合、ステップS32に戻り、まだ配置がなされていない候補が抽出され、以下ステップS33以降の処理が繰り返される。そして、ステップS32乃至S34の処理が繰り返されることにより、代表候補Riを除くすべての候補R’が、グループgに再配置される。
【0060】
一方、ステップS34において、候補R’の配置が完了したと判定された場合、処理を終了する。
【0061】
なお、以上の処理において、候補xが、複数の代表候補について、式(1)の条件を満たす場合には、その複数の代表候補がそれぞれ代表するグループに、重複して配置される。
【0062】
また、例えば、候補がベクトルで表される場合(候補x、並びに代表候補RiおよびRjがベクトルである場合)、式(1)に代えて、次式を用いることが可能である。
(x−Rj)*(Ri−Rj)>0
但し、*は内積を表す。
【0063】
ここで、図14は、以上説明した図2の構造化処理によって得られるグループgiを模式的に示している。探索の対象となる候補は、図14(a)に示すように、元々ある空間に分布しているが、ステップS11乃至S15の処理により、グループが統合され、そのグループを代表する代表候補が抽出される。
【0064】
代表候補どうしを、お互いを2等分するような境界で分割していくと、図14(b)に示すように、各代表候補を含むセルが得られるが、このセルの境界を、その代表候補を中心として2倍遠くまで広げた、図14(c)に示すような閉空間(図中、太線で囲んである部分)が、図2の構造化処理によって得られるグループgi に相当する。このグループgi に相当する空間は、代表候補Ri を含む、その代表候補Ri に隣接する他の代表候補Rjを通る境界面で囲まれる空間である。
【0065】
上述したステップS33(図12)では、式(1)を満足するか否かを判定することにより、代表候補を除く候補それぞれが、この閉空間の内部に存在するか否かが判定される。
【0066】
図14(c)に示した閉空間が球になる場合、入力値から、ある代表候補Riまでの距離(但し、この距離は、三角不等式を満たすものである必要がある)が、その代表候補Riを代表とする球(グループgi)の半径の1/2以下であれば、入力値との距離が最も近い候補は、その球、即ち代表候補Riを代表とするグループgiに属する候補の中に存在する。
【0067】
以上のようにして、探索対象であるすべての候補C={Ci}を幾つかのグループに分割して、各グループの代表候補をそれぞれ選択した後、その代表候補だけを用いて、図2の構造化処理を繰り返すことにより、上述したように、図3に示したような階層構造が得られる。
【0068】
次に、以上のようにして階層構造に構造化された候補の中から、その階層構造を利用して、入力値との距離が最も近いものを探索するステップS2(図1)の構造化探索処理について、図15を参照して説明する。構造化探索処理(ステップS2)は、上述したように初期探索処理(ステップS3)と、構造探索処理(ステップS4)とからなり、まず初期探索処理が行われてから、構造探索処理が行われる。初期探索処理では、ステップS41乃至S43の処理が順次行われ、構造探索処理では、ステップS44乃至S49の処理が行われる。
【0069】
即ち、まず最初に、ステップS41において、探索(初期探索)を開始する階層が決定される。なお、最下位の階層から探索を開始することは全探索に相当する。従って、それより上位の階層から探索を開始することにより、構造化の効果が得られることになる。探索は、一般的には、より上位の階層から開始した方がより高速に、探索結果が得られ、また、より下位の階層から開始した方がより歪みが小さくなる。
【0070】
探索を開始する階層(以下、適宜、初期階層という)が決定された後、ステップS42に進み、その階層に属する代表候補すべてが探索(初期探索)の対象とされる(その階層に属する代表候補すべてが、探索の対象に決定される)。そして、ステップS43に進み、初期探索が行われる。即ち、ステップS43では、ステップS42で探索の対象とされた候補それぞれと、入力値との間の距離(入力代表間距離)(例えば、ユークリッド距離)が計算される。
【0071】
そして、ステップS44に進み、その距離の最も近いものから上位n個の候補が抽出される。なお、ここで抽出される候補は、探索を開始した階層が最下位の階層でない限り、上述した構造化処理(図2)を繰り返す過程で、一度は代表候補とされたものである。
【0072】
その後、ステップS45に進み、ステップS44で抽出された候補に下位の階層があるか否かが判定される。ステップS45において、ステップS44で抽出された候補に下位の階層があると判定された場合、ステップS46に進み、その下位の階層に、探索の対象とする階層が移行され、ステップS47に進む。
【0073】
ステップS47では、移行された階層に属する候補の中から、探索の対象とする候補が決定される。即ち、ステップS44で抽出された候補を代表候補とするグループに属し、かつ、その代表候補の階層の下位階層に属する候補が、探索の対象とされる。そして、ステップS48に進み、ステップS47で決定された候補を対象に、探索が行われる。即ち、ステップS48では、ステップS47で決定された候補それぞれと、入力値との間の距離(入力代表間距離または入力候補間距離)が計算され、ステップS44に戻り、以下ステップS44以降の処理が繰り返される。
【0074】
一方、ステップS45において、ステップS44で抽出された候補に下位の階層がないと判定された場合、即ち、いまの階層が最下位階層である場合、ステップS49に進み、その抽出された候補のうち、入力値との距離(入力候補間距離)が最も近いものが検索結果とされ、処理を終了する。
【0075】
ステップS41乃至S43の処理は、初期階層の下位階層に属する候補すべてを対象とした探索を、その候補が属するグループの代表候補、即ち初期階層に属する候補(代表候補)だけで行うことに相当する。そして、最初のステップS44の処理で、初期階層に属する候補のうち、入力値との距離が最も近いものから上位n個それぞれを代表とするグループであって、その下位の階層に属する候補に、次の探索の対象が絞り込まれる。
【0076】
また、ステップS46乃至S48の処理は、その絞り込まれた候補の下位階層に属する候補すべてを対象とした検索を、その候補が属するグループの代表候補、即ち絞り込まれた候補(代表候補)だけで行うことに相当する。そして、ステップS44の処理が行われることにより、絞り込まれた候補のうち、入力値の距離が最も距離の近いものから上位n個それぞれを代表とするグループであって、その下位の階層に属する候補に、さらに次の探索の対象が絞り込まれる。
【0077】
以下、探索の対象となる候補の階層が、最下位階層になるまで、順次、下位階層に移行されていき、最下位階層にたどりついたところで、探索を終了する。この時点で、すべての候補に対する探索そのものが局所的ではあるが完了しており、探索が完了した候補、即ち最下位階層に属する候補であって、いま探索の対象となっている候補のうち、入力値との距離が最も近いものが、探索結果とされる。
【0078】
ここで、以上のようにして、構造化を用いた探索を行うのに際し、入力値との距離が最も近い候補を含むグループの代表候補が、ステップS44で抽出されない場合には、構造化による探索の結果は歪みの大きなものとなる。逆に、ステップS44で、そのような代表候補が抽出された場合には、局所的な探索であっても歪みはそれほど大きくならない。従って、ステップS44で抽出する候補の数nを大きな値にするほど、歪みを小さくすることができる。その一方、nを小さな値にするほど、探索処理は、基本的に高速になる。よって、nは、歪および処理の高速化のうちのいずれを優先させるかによって決めたり、あるいはその両方をバランスさせるように決めれば良い。
【0079】
なお、ステップS44で抽出する候補の数nは、必ずしも常に一定にする必要はなく、階層ごとに変えるようにすることができる。
【0080】
以上の検索処理によれば、全探索のように、すべての候補との距離の計算を行う必要がないので、検索処理の高速化を図ることができる。さらに、二値木探索のように、探索対象とする候補を2値木として構造化するのではなく、図3で説明したように、所定の空間内に存在する距離の近い候補(グループ)どうしを統合することにより構造化するようにしたので、歪を小さく抑えることができる。
【0081】
なお、以上の検索処理において、入力値との距離を一度計算した候補については、その距離を記憶しておくようにする。このようにすることにより、各階層で抽出された候補の中に、既に入力値との距離を計算したものがあれば、その候補については、記憶しておいた距離を用いることで、改めて距離計算をする必要がなくなる。即ち、重複した距離計算を避けることができる。
【0082】
また、この場合、入力値との距離計算を、幾つの候補について行ったかが、実質的に、探索時における演算量を決めることになる。その意味で、構造化探索処理は、上述したように、全探索に比べて、入力値との距離計算を行う候補数が少なくなるので、短時間で探索結果を得ることができる。
【0083】
次に、ステップS3(図15)の初期探索を高速化する方法について説明する。図15で説明した構造化探索処理において、初期探索すべき階層を決めれば、初期探索の対象となる候補は必然的に確定する。即ち、初期探索すべき階層に属する候補すべてが初期探索の対象となる。従って、初期探索を高速化するには、その階層に属する候補を絞り込んで、初期探索の対象とすれば良い。
【0084】
そこで、本件出願人が先に出願している特願平6−8179号に記載されているベクトル量子化方法を基本原理として、初期探索の対象とする候補を絞り込むようにする。ここで、この基本原理について、図16および図17を参照して、簡単に説明する。
【0085】
例えばいま、図16に示すように、初期階層に属する候補が存在する場合において(図16に示した場合では、{Ci:1≦i≦10})、例えば候補C1が着目候補とされ、それと入力値Xとの間の距離が計算される(ステップS51)。
【0086】
そして、ステップS52において、入力値Xと着目候補C1との間の距離が、その着目候補C1から、任意の他の候補(図16に示した場合では、候補C5)までの距離Dの半分(0.5倍)以下であるか否かが判定される。ステップS52において、入力値Xと着目候補C1との間の距離が、その着目候補C1から候補C5までの距離Dの半分以下であると判定された場合、着目候補C1を中心とした半径Dの球内にある候補(図16に示した場合では、{Ci:1≦i≦5})の中に、入力値Xとの距離が最も近い候補があることなり、従ってその球内に存在する候補に探索対象を絞り込む(限定する)ことができる(ステップS53)。
【0087】
一方、ステップS52において、入力値Xと着目候補C1との間の距離が、その着目候補C1から候補C5までの距離Dの半分以下でないと判定された場合、着目候補C1を中心とした半径Dの球内にある候補(図16に示した場合では、{Ci:1≦i≦5})の中に、入力値Xとの距離が最も近い候補があるとは限らず、従ってその球内に存在する候補に探索対象を絞り込む(限定する)ことはできない(ステップS54)。
【0088】
次に、以上の原理に基づいて初期探索を行うステップS3(ステップS43)(図15)の処理の詳細について、図18のフローチャートを参照して説明する。まず、初期階層に属する全候補をC={Ci:1≦i≦r}としたとき(但し、r≦N)、各候補Ciからの距離が、r/2(r/21)番目に近い候補までの距離D2(Ci),r/4(=r/22)番目に近い候補までの距離D4(Ci),r/8(r/23)番目に近い候補までの距離D8(Ci),・・・をあらかじめ求めておく。即ち、初期階層に属する候補それぞれを中心とする球であって、その総数rの1/21,1/22,1/23,・・・倍の候補を含む最小の球の半径を求めておく。
【0089】
そして、ステップS61において、変数tに初期値としての2がセットされ、ステップS62に進み、距離Dt(Ci)、即ちいまの場合、距離D2(Ci)の最も大きな候補Ciについて、入力値Xとの距離d(X,Ci)が、距離D2(Ci)の半分以下になるか否かが判定される。ステップS62において、距離D2(Ci)の最も大きな候補Ciに対して、入力値Xとの距離が、距離D2(Ci)の半分以下にならないと判定された場合、候補Ciからより遠く、かつ距離D2(Cj)のより大きな候補Cjについて、入力値Xとの距離が、距離D2(Cj)の半分以下になるか否かが判定される。以下、候補Ckについて、入力値Xとの距離が、距離D2(Ck)の半分以下になるまで、同様の処理が繰り返される。
【0090】
即ち、ステップS62では、次式
d(X,Ck)≦1/2×Dt(Ck) ・・・(2)
を満たす候補Ckが検出される(見つけられる)(但し、いまの場合、t=2である)。
【0091】
ここで、候補Ciからより遠く、かつ距離D2(Cj)のより大きな候補Cjというのは、候補Ciからの距離と、距離D2(Cj)との、例えば加算値(あるいは重み付け加算値)が最も大きい候補Cjである。
【0092】
そして、ステップS63に進み、ステップS62で式(2)を満たす候補Ckが検出されたか否かが判定される。ステップS63において、式(2)を満たす候補Ckが検出されたと判定された場合、ステップS64に進み、探索対象が絞り込まれる。即ち、ステップS64では、図16および図17を参照して説明したように、検出された候補Ckを中心とする、半径が距離D2(Ck)の球内に存在する候補(初期探索の候補)に、探索対象が絞り込まれる。
【0093】
ここで、候補Ckを中心とする、半径が距離D2(Ck)の球内に存在する候補は、初期階層に属する候補の総数rの1/2であるから、探索対象は半減することになる。
【0094】
その後、ステップS65において、変数tが2倍され、ステップS66に進み、変数tが、初期階層に属する候補の総数r以下であるか否かが判定される。ステップS66において、変数tが、初期階層に属する候補の総数r以下であると判定された場合、即ち探索対象の絞り込みが、まだ可能な場合、ステップS62に戻り、絞り込まれた候補を対象に、再びステップS62乃至66以降の処理が繰り返される。
【0095】
即ち、ステップS62乃至S66では、まず距離D2(Ci)の最も大きな候補Ciについて、入力値Xとの距離が距離D2(Ci)の半分以下になるかどうかが調査され、半分以下になるなら、図16および図17で説明した原理に基づいて、探索候補が半分に限定される(候補Ciを中心とする、半径が距離D2(Ci)の球に含まれる球内に存在する候補に限定される)。また、距離D2(Ci)の最も大きな候補Ciに対して、入力値Xとの距離がD2(Ci)の半分以下にならないなら、その候補Ciから、より遠くかつ距離D2(Cj)がより大きい候補Cjについて、同様のことが調査される。そして、このような調査が、その調査が既に終了した候補(群)からはできるだけ遠く、かつ距離D2(Ck)の大きな候補Ckの順番で行われていき、入力値Xとの距離が距離D2(Ck)の半分以下になる候補Ckが検出される。
【0096】
入力値Xとの距離が距離D2(Ck)の半分以下になる候補Ckが検出された場合、その候補Ckを中心とする半径D2(Ck)の球内に存在する候補に処理対象を絞り込み、上述した場合と同様の調査が行われ、入力値Xとの距離が、距離D4(Ck)の半分以下になる候補Ckが検出される。なお、tが4以上では、限定された候補が存在する球の中心に位置する候補Ckについて、まず最初に調査が行われ、その後は、上述した場合と同様に、調査が終了した候補群からはできるだけ遠く、かつD4(Ck)の大きな候補Ciの順番で、調査が行われる。
【0097】
以下、入力値Xとの距離が、距離D8(Ck),D16(Ci),・・・の半分以下になる候補Ciを検出することができなくなるまで、上述の絞り込みが繰り返される。以上により、初期階層に属する候補は、その総数rの1/2の累乗倍の数に減少されることになる。
【0098】
なお、以上においては、初期階層に属する候補の総数rの1/2の累乗倍の個数の候補を含む最小の球の半径を求めておくようにしたが、この他、その総数rのK(Kは1未満の正数)の累乗倍の候補を含む最小の球の半径を求めておき、上述したような処理を行っても良い。この場合、探索の対象となる候補は、初期階層の候補の総数rのKの累乗倍に絞り込まれることになる。
【0099】
一方、ステップS63において、式(2)を満たす候補Ckが検出されなかったと判定された場合、ステップS68に進み、それまでに絞り込まれた候補を対象として探索が行われる。即ち、それまでに絞り込まれた候補それぞれと、入力値Xとの距離が計算される。そして、ステップS68に進み、入力値Xとの距離が最も近い候補が、初期探索結果として確定され、処理を終了する。
【0100】
一方、ステップS66において、変数tが、初期階層に属する候補の総数r以下でないと判定された場合、即ち初期階層に属する候補Cを絞り込むことにより、そのうちの1つの候補だけが残った場合、ステップS67に進み、その残った候補が、初期探索の結果とされ、処理を終了する。
【0101】
即ち、入力値Xとの距離が距離Dt(Ck)の半分以下になる候補Ckが検出されなかった場合、その時点で残っている候補のうちの、入力値Xとの距離が最も近いものが、初期探索結果とされる。また、絞り込みにより残った候補が1つだけになった場合には、その候補が、初期探索結果とされる。
【0102】
以上のようにして、入力値Xとの距離計算を行う候補数を絞り込むことにより、ステップS3(図1、図15)の初期探索処理を高速に行うことができる。さらに、初期階層に属する候補数は、その階層が上位の階層ならば、それほど多くはないので、上述したような処理を行うための記憶容量もあまり大きくはならない。
【0103】
なお、この場合(以下説明する処理についても同様)においても、上述した場合と同様に、入力値との距離を一度計算した候補については、その距離を記憶しておくことで、重複した距離計算を行わないようにすることができる。
【0104】
また、上述の場合では、最初に、距離D2(Ci)の最も大きな候補Ciから調査(式(2)を満たすかどうかの調査)を開始するようにしたが、この他、例えば入力値Xとの距離が、距離D2(Ci)の半分以下になる可能性の高い候補Ciが存在することがあらかじめわかっている場合には、その候補Ciから調査を開始するようにすることが可能である。
【0105】
例えば、滑らかに変化する時系列の入力値(ベクトル)をベクトル量子化するような場合、1時刻前(前回)のベクトル量子化の結果として得られたセントロイドから、今回の入力値についての調査を開始することにより、そのセントロイドの近傍に、今回の入力値が存在する可能性が高いことから、より高速に、探索候補を絞り込むことが可能となる。
【0106】
また、上述した処理において、距離としては、例えばユークリッド距離などのように三角不等式を満足するものを用いる必要がある。
【0107】
ところで、ステップS4で行われる構造化を用いた探索によれば、従来の全探索に比べて歪みが大きくなる危険性がある(歪が、必ず大きくなるということではなく、あくまでもその危険性が、全探索よりは高くなるということ)。これは、局所的な探索のために、本来最も類似度の高い(入力値Xとの距離が最も近い)候補が、探索対象から除外されてしまうことに起因する。
【0108】
そこで、図1では、ステップS2の構造化探索処理の後に、ステップS5において、近傍精密探索処理を行うようになされている。即ち、すべての候補について、その近傍に位置するr1(但し、r1は、N以下の数で、通常は、Nより充分小さな値とされる)個の候補を求めておき、ステップS5では、ステップS2の構造化探索処理の結果得られた候補の近傍に位置するr1個の候補(正確には、ステップS2の構造化探索処理の結果得られた候補を中心とする球に含まれる候補であって、その球の中心により近い位置に存在するr1個の候補)を対象として、精密に探索が行われる。
【0109】
このようにすることによって、真に入力値Xとの距離が最も近い候補が、構造化探索処理の過程において、探索の対象から除外された場合でも、その候補が、ステップS5の近傍精密探索処理の対象とされれば、最終的に得られる探索結果は、全探索を行った場合と同様に、真に入力値Xとの距離が最も近い候補が、探索結果として得られることになる。また、仮に、真に入力値Xとの距離が最も近い候補が、ステップS5の近傍精密探索処理の対象とされなかった場合には、そもそも構造化探索処理における歪みが比較的大きかったのであるから、それよりは歪みの小さな探索結果を得ることが可能となる。
【0110】
このステップS5の近傍精密探索処理の詳細を、図19に示す。近傍精密探索処理では、まず最初に、ステップS71において、構造化探索処理の結果得られた候補が着目され(着目候補とされ)、ステップS72に進み、あらかじめ求められた、着目候補を中心とする球に含まれる候補であって、その球の中心により近い位置に存在するr1個の候補を対象として探索が行われる。即ち、そのr1個の候補それぞれと、入力値Xとの間の距離が計算され、その距離が最も小さい候補が検出される。
【0111】
そして、ステップS73に進み、ステップS72で得られた(検出された)候補が、着目候補であるか否かが判定される。ステップS73において、ステップS72で得られた候補が、着目候補であると判定された場合、即ち、着目候補の近傍を対象として探索を再度行っても、その探索結果が変わらない場合、ステップS75に進み、その着目候補が最終的な探索結果とされる。
【0112】
一方、ステップS73において、ステップS72で得られた候補が、着目候補でないと判定された場合、即ち着目候補が、入力値Xとの距離が最も近い候補ではなかった場合、ステップS74に進み、ステップS72で得られた候補が、新たに着目され(新たな着目候補とされ)、ステップS72に進み、以下、ステップS73において、ステップS72で得られた候補が、着目候補であると判定されるまで、ステップS72乃至74の処理を繰り返す。
【0113】
即ち、着目候補が、それを中心とする球に含まれる候補であって、その球の中心により近い位置に存在するr1個の候補の中で、入力値Xとの距離が最も近いものでない場合には、その中で、入力値Xとの距離が最も近い候補が、新たな着目候補とされ、以下同様の処理が繰り返される。
【0114】
以上のようにして、真に入力値Xとの距離が最も近い候補、あるいは歪みのより小さな候補が、探索結果として得られる。
【0115】
なお、以上の近傍精密探索処理において、r1を大きくするほど、歪みを小さくすることができ、あるいは真に入力値Xとの距離が最も近い候補を得られる可能性が高くなる。一方、r1を小さくほど、近傍精密探索処理が高速に行われ、かつその処理に必要な記憶容量が少なくて済む。従って、r1は、歪と、処理速度および記憶容量とをバランスさせるように、あるいは両者のうちのいずれかを必要に応じて優先させて決めるようにすれば良い。
【0116】
また、処理の高速化を最優先させるならば、図19に示したステップS73乃至75の処理は行わず、ステップS71およびS72の処理だけ行うようにすれば良い。
【0117】
次に、図1のステップS1の近傍高速探索処理の詳細について、図20のフローチャートを参照して説明する。まず最初に、すべての候補それぞれについて、各候補を中心とする球に含まれる候補であって、その球の中心により近い位置に存在するr2(但し、r2は、N以下の数で、通常は、Nより充分小さな値とされる)個の候補を求めておき、さらにそのr2個の候補を含む最小の球の半径を求めておく。
【0118】
そして、図16および図17で説明した原理に基づいて、探索の対象とされる候補が絞り込まれる。
【0119】
即ち、まずステップS81において、最終的に探索結果とされる可能性の高い候補が推定され、これが着目候補とされる。なお、最終的に探索結果とされる可能性の高い候補の推定が不可能な場合には、ステップS1の近傍高速探索処理を行わずに、ステップS2の構造化探索処理に進むようにすることが可能である。
【0120】
その後、ステップS82に進み、着目候補と入力値Xとの間の距離が計算される。そして、ステップS83に進み、その距離が、着目候補を中心とする球であって、r2 個の候補を含む最小半径の球の半径Dの半分(1/2倍)以下になるか否かが判定される。ステップS83において、着目候補と入力値Xとの間の距離が、その着目候補を中心とする球であって、r2 個の候補を含む最小半径の球の半径Dの半分以下にならないと判定された場合、ステップS2(図1)に進む。
【0121】
一方、ステップS83において、着目候補と入力値Xとの間の距離が、その着目候補を中心とする球であって、r2個の候補を含む最小半径の球の半径Dの半分以下になると判定された場合、ステップS84に進み、そのr2個の候補のみを対象として探索が行われる。即ち、r2個の候補それぞれと、入力値Xとの距離が計算される。そして、ステップS85に進み、入力値Xとの距離が最も近い候補が、最終的な探索結果として確定され、処理を終了する。
【0122】
このようにして得られた探索結果の歪みは、全探索と比較して大きくなることはほぼない(上述したように、図14(c)に示した閉空間が球になる場合は、全探索と比較して大きくなることはない)。
【0123】
以上のような近傍高速探索処理は、例えば滑らかに変化する時系列の入力値をベクトル量子化する場合などに有効である。即ち、滑らかに変化する時系列の入力値は、ある時刻におけるものと、その前の時刻におけるものとで大きな差はないと予想されるので、一時刻前のベクトル量子化の結果得られたセントロイドを、現時刻におけるベクトル量子化結果の推定値として用いることができる。これにより、ステップS83においては、着目候補と入力値Xとの間の距離が、その着目候補を中心とする球であって、r2個の候補を含む最小半径の球の半径Dの半分以下になると判定される可能性が高くなるので、ベクトル量子化処理のより高速化を図ることが可能となる。
【0124】
なお、図19で説明した近傍精密探索処理を行うために、各候補それぞれの近傍に存在するr1個の候補が求めてあるならば、上述の近傍高速探索処理では、それを共有して使用することができるので、この処理のために必要な記憶容量の増加分はほとんどない。
【0125】
つぎに、図19および図20で説明した処理を、図16および図17で説明した原理に基づいて高速化する方法について、図21を参照して説明する。なお、図19または図20で説明した処理いずれにおいても、すべての候補それぞれを中心とする球に含まれる候補であって、その球の中心に、より近い位置に存在するr1(またはr2)個の候補を求めておくようにしたが、いまの場合、各候補それぞれを中心とする球であって、その中心の近傍に位置する候補を、それぞれ、r1×L1(またはr2×M1)個、r1×L2(またはr2×M2)個、r1×L3(またはr2×M3)個、・・・を含む最小の球の半径も、さらに求めておくようにする。
【0126】
なお、L(またはM)は1未満の正数で、ここでは、例えば1/2とする。また、以下説明する処理は、図19及び図20で説明した処理に共通なので、以降では、図19の処理を対象に説明する。
【0127】
そして、ステップS91において、着目候補(図19のステップS71で着目候補とされた候補)と、入力値Xとの距離dが計算され、ステップS92に進み、変数nに初期値としての2(1/L)がセットされ、ステップS93に進む。ステップS93では、着目候補を中心とする球であって、その中心の近傍に位置するr1/n(いまの場合、r1/2)個の候補を含む最小の球の半径Dが求められ(この半径Dは、上述したようにあらかじめ求めてあるので、実際には、その求めてあるものの中から選択するだけである)、ステップS94に進み、距離dが、上述の球の半径Dの半分(1/2倍)以下であるか否かが判定される。
【0128】
ステップS94において、距離dが、半径Dの半分以下であると判定された場合、ステップS95に進み、変数nが2(1/L)倍され、ステップS96に進む。ステップS96では、変数nが、元の候補の個数r1 以上であるか否かが判定される。ステップS96において、変数nが、個数r1 以上でないと判定された場合、ステップS93に戻り、再びステップS93からの処理が繰り返される。
【0129】
即ち、距離dが、着目候補を中心とする球であって、その中心の近傍に位置するr1/2個の候補を含む最小の球の半径Dの半分以下である場合、図16および図17を参照して説明した原理に基づいて、探索の対象とする候補を、1/2に限定することができる(着目候補を中心とする、半径が距離Dの球内に存在するr1/2個の候補に限定することができる)。そこで、距離dが、着目候補を中心とする球であって、その中心の近傍に位置するr1/4個の候補を含む最小の球の半径Dの半分以下になるか否かを判定することにより、探索の対象とする候補を、さらに1/2にすることができるかどうかが調査される。従って、ステップS93乃至S96の処理が繰り返されることにより、探索の対象とする候補の数がr1からr1/2,r1/4,・・・と減少していく(r1の1/2の累乗倍に絞り込まれていく)ことになる。
【0130】
一方、ステップS94において、距離dが、半径Dの半分以下でないと判定された場合、ステップS98に進み、その時点までに絞り込まれた候補、即ち着目候補を中心とする、半径Dの球内に存在するr1/n個の候補(r1の1/2の累乗倍の個数の候補)のみを対象として、探索が行われ、処理を終了する。
【0131】
また、ステップS96において、変数nが、個数r1以上であると判定された場合、即ちr1個の候補に対して、ステップS93乃至S96の絞り込み処理を行った結果、そのうちの1つの候補だけが残った場合、ステップS97に進み、その残った候補が、探索結果とされ、処理を終了する。
【0132】
以上の処理を、図19、図20で説明した処理に適用することにより、ある着目候補を中心とする球内に存在するr1(またはr2)個の候補を対象とする探索を、高速で行うことができるようになる。また、この処理のために余分に必要となる記憶容量は僅かであり、従って探索処理全体に要する記憶容量を大きく増加させることはない。
【0133】
以上のように、探索の対象となる候補を構造化しておき、探索時には、探索の対象とする候補を制限する(絞り込む)ようにしたので、入力値との距離を求める候補の数を少なくすることができ、その結果、探索のために必要な演算量を低減することができる。また、構造化探索処理の後に近傍精密探索処理を行うようにしたので、構造化を用いることによる局所的な探索の結果生じる歪みをなくす、あるいは低減することができる。さらに、図16および図17で説明した原理を適用し、着目候補を中心とする半径Dの球に含まれる候補に探索の対象を制限する(絞り込む)ようにしたので、演算量のさらなる低減化を図ることができる。
【0134】
なお、上述の実施例においては、図16および図17で説明した探索対象を制限するための重要な原理を適用するにあたって、入力値Xと着目候補との間の距離dが、その着目候補から、任意の他の候補までの距離Dの半分(0.5倍)(1/2倍)以下であるか否かを基準とするようにしたが、即ち式d≦0.5×Dを満足するか否かを基準とするようにしたが、この他、例えば式d≦Σ×D(但し、Σは、0.5より大きく1以下の実数)を満足するか否かを基準とするようにすることも可能である。
【0135】
この場合、Σが大きいほど、歪が大きくなる一方、探索処理は高速化される。即ち、逆に言えば、Σが小さいほど、探索処理に時間がかかるようになる一方、歪は小さくなる。そして、Σが0.5の場合、即ち式d≦0.5×Dを満足するか否かを基準とするようにした場合は、歪を大きくすることなく、探索対象を限定することができる。
【0136】
次に、図22は、本発明を適用した音声認識装置の一実施例の構成を示すブロック図である。例えば、図示せぬマイクなどから供給された音声信号は、A/D変換部1に入力され、そこでA/D変換される。A/D変換された音声信号は、音声区間検出部2に供給される。音声区間検出部2は、音声信号から音声区間を検出し、その音声区間を、元の音声信号(A/D変換部1から供給された音声信号)とともに音響分析部3に出力する。
【0137】
ここで、音声区間検出部2では、例えば音声信号のパワーや、零交差数、スペクトルパワーなどを用いて有音声と無音声の判別を行うなどして、認識すべき音声区間を検出するようになされている。また、この他、装置にスイッチを設けておき、発話者に、発話するときにそのスイッチを操作してもらうようにしておくことも可能である。この場合、音声区間検出部2では、そのスイッチの操作に対応して音声区間が検出される。
【0138】
音響分析部3は、音声区間の音声信号を音響分析し、音声の特徴パラメータ(特徴ベクトル)を抽出する。即ち、音響分析部3は、音声信号に対し、例えばLPC分析(線形予測分析)や、FFT(高速フーリエ変換)分析、バンドパスフィルタなどのスペクトル分析などの処理を施して、特徴パラメータを抽出する。この特徴パラメータは、ベクトル量子化部4に供給される。
【0139】
ベクトル量子化部4は、音響分析部3から供給される特徴パラメータをベクトル量子化し、所定のコードを出力する。即ち、ベクトル量子化部4は、その内蔵するメモリ(図示せず)に、例えばLBG(Linde, Buzo, Gray)アルゴリズムなどを用いて作成されたコードブックを記憶している。このコードブックにおけるセントロイドは、図2乃至図14を参照して説明したよう構造化されており、さらに各セントロイドには、ユニークなコードが付されている。
【0140】
そして、ベクトル量子化部4では、音響分析部3からの特徴パラメータとの距離(例えば、ユークリッド距離などの距離尺度)が最も近い(特徴パラメータに最も類似する)セントロイドが、コードブックの中から探索される。この探索処理は、図1に示したフローチャートにしたがって行われる。従って、この場合、特徴パラメータを、歪みを最低限に抑えて、高速にベクトル量子化することができる。
【0141】
その後、探索処理の結果得られたセントロイドに付されたコードが、認識部5に供給される。認識部5では、ベクトル量子化部4から時系列に供給されるコードに基づき、例えばDPマッチング法やHMMなどの確率モデルを用いた認識方法などにしたがって、音声が認識され、その認識結果が出力される。
【0142】
なお、本発明は、以上のように音声認識装置における音声信号のベクトル量子化に適用することができる他、例えば画像信号などの情報圧縮に用いるベクトル量子化その他に適用可能である。
【0143】
【発明の効果】
以上の如く、本発明の探索方法によれば、入力値と最も距離の近い候補を、歪みをできるだけ低く抑えて、高速に探索することができる。
【0144】
また、本発明の音声認識装置によれば、特徴パラメータを、歪みをできるだけ低く抑えて、高速にベクトル量子化することができるので、リアルタイムで音声認識を行うことが可能となり、さらに認識率を向上させることができる。
【図面の簡単な説明】
【図1】本発明の一実施例の探索方法を説明するフローチャートである。
【図2】図1の探索方法にしたがって探索を行う候補を構造化する方法を説明するフローチャートである。
【図3】図1の探索方法にしたがって探索を行う候補を構造化する方法を説明する図である。
【図4】グループGi,Gjそれぞれに属する候補x,yのうち、最も近い候補間の距離をグループ間距離とする場合を説明する図である。
【図5】グループGi,Gjそれぞれに属する候補x,yのうち、最も遠い候補間の距離をグループ間距離とする場合を説明する図である。
【図6】グループGi,Gjそれぞれの平均値ベクトルui,uj間の距離をグループ間距離とする場合を説明する図である。
【図7】グループGi,Gjそれぞれの分散σi,σjによってグループ間距離を定義する場合を説明する図である。
【図8】グループGi,Gjそれぞれに属する候補全体の平均値から、その候補全体のうちの最も遠い候補までの距離をグループ間距離とする場合を説明する図である。
【図9】グループGi,Gjそれぞれに属する候補全体の分散σによってグループ間距離を定義する場合を説明する図である。
【図10】図2のステップS12の処理の結果得られるグループ間距離のテーブルを示す図である。
【図11】図2のステップS13の処理のより詳細を説明するフローチャートである。
【図12】図2のステップS16の処理のより詳細を説明するフローチャートである。
【図13】図12のステップS33で行われる処理を説明するための図である。
【図14】図2の処理(構造化処理)によって得られるグループgiを模式的に表した図である。
【図15】図1のステップS2(ステップS3およびS4)の処理のより詳細を説明するフローチャートである。
【図16】探索対象を絞り込む原理を説明するための図である。
【図17】探索対象を絞り込む原理を説明するフローチャートである。
【図18】探索対象を絞り込む原理を適用した初期探索処理の詳細を説明するフローチャートである。
【図19】図1のステップS5の近傍精密探索処理の詳細を説明するフローチャートである。
【図20】図1のステップS1の近傍高速探索処理の詳細を説明するフローチャートである。
【図21】図19および図20の処理を高速化する方法を説明するためのフローチャートである。
【図22】本発明を適用した音声認識装置の一実施例の構成を示すブロック図である。
【符号の説明】
1 A/D変換部
2 音声区間検出部
3 音響分析部
4 ベクトル量子化部
5 認識部
Claims (13)
- 複数の候補の中から、入力値と最も距離の近いものを探索する探索方法であって、
前記候補を、小グループにグループ化し、前記小グループ間の距離である小グループ間距離を求め、前記小グループ間距離の近い小グループどうしを統合して統合グループとし、各統合グループを代表する候補である代表候補を選択し、前記代表候補を含む、その代表候補に隣接する他の代表候補を通る境界面で囲まれる空間内に存在する候補を、その代表候補が代表する統合グループに再配置することにより、前記候補を階層構造に、あらかじめ構造化しておき、
前記入力値と各代表候補との間の距離である入力代表間距離を求め、
前記入力代表間距離の近い代表候補を含む統合グループに属する各候補それぞれと、前記入力値との距離である入力候補間距離を求め、
前記入力候補間距離の最も近い候補を探索結果とする
ことを特徴とする探索方法。 - 前記代表候補を候補とみなして、それを階層構造に構造化することを繰り返す
ことを特徴とする請求項1に記載の探索方法。 - 所定の階層の代表候補と、前記入力値との間の入力代表間距離を求め、
前記入力代表間距離が近い代表候補を含むグループに属し、前記所定の階層の下位階層の候補それぞれと、前記入力値との間の入力候補間距離を求め、
その後、前記入力候補間距離が近い候補を前記代表候補とするグループに属し、前記下位階層のさらに下位階層の候補それぞれと、前記入力値との間の入力候補間距離を求めることを、最下位の階層にたどりつくまで繰り返す
ことを特徴とする請求項2に記載の探索方法。 - 前記所定の階層の代表候補のうちの、前記入力代表間距離が所定の距離以下になるものを中心とする所定の半径の球内に存在する代表候補のみを対象として、前記入力値との入力代表間距離を求める
ことを特徴とする請求項3に記載の探索方法。 - 前記所定の階層の代表候補の総数のK(Kは1未満の正数)倍の数の代表候補を含む最小半径の球のうちの、半径が最も大きい球の中心に位置する代表候補である中心候補との入力代表間距離を求め、
前記入力代表間距離が、前記中心候補を中心とする前記球の半径のα(αは0.5以上1以下の実数)倍以下になっていないときには、各代表候補それぞれを中心とし、前記総数のK倍の数の代表候補を含む前記球のうちの、半径がより大きい球の中心に位置し、かつ既に前記中心候補とされた代表候補からより遠い位置にある代表候補を、新たな中心候補とし、その中心候補との入力代表間距離を求めることを、その入力代表間距離が、前記中心候補を中心とする前記球の半径のα倍以下になるまで繰り返す絞り込みを行い、
前記入力代表間距離が、前記中心候補を中心とする前記球の半径のα倍以下になったときには、そのときに中心候補となっている代表候補を中心とする前記球内に存在する、前記総数のK倍の数の代表候補のみを対象として、前記入力値との入力代表間距離を求める
ことを特徴とする請求項4に記載の探索方法。 - 前記αは、0.5である
ことを特徴とする請求項5に記載の探索方法。 - 前記入力代表間距離を求める対象とした代表候補に対し、前記絞り込みを繰り返し行い、前記入力代表間距離を求める対象とする代表候補の数を、前記総数のKの累乗倍に減らす
ことを特徴とする請求項5に記載の探索方法。 - 前記探索結果である候補を中心とする球に含まれる候補であって、その球の中心により近い位置に存在する所定の数r1の候補それぞれと、前記入力値との間の入力候補間距離を求め、その入力候補間距離の最も近い候補を、新たな探索結果とする
ことを特徴とする請求項1に記載の探索方法。 - 前記探索結果である候補を中心とする球に含まれる候補であって、その球の中心により近い位置に存在する所定の数r1の候補それぞれと、前記入力値との間の入力候補間距離を求め、その入力候補間距離の最も近い候補を、新たな探索結果とすることを、探索結果として得られる候補が変わらなくなるまで繰り返す
ことを特徴とする請求項1に記載の探索方法。 - 前記探索結果である候補との入力候補間距離が、その候補を中心とする球であって、前記所定の数r1のL(Lは1未満の正数)の累乗倍の数の候補を含む最小半径の球の半径のβ(βは0.5以上1以下の実数)倍以下であるときには、その球に含まれる前記所定の数r1のLの累乗倍の数の候補のみを、探索の対象とする
ことを特徴とする請求項8に記載の探索方法。 - 前記βは、0.5である
ことを特徴とする請求項10に記載の探索方法。 - 前記入力値との入力候補間距離または入力代表間距離を一度求めた候補または代表候補について、その入力候補間距離または入力代表間距離を記憶しておく
ことを特徴とする請求項1に記載の探索方法。 - 音声から特徴パラメータを抽出する抽出手段と、
前記抽出手段により抽出された特徴パラメータをベクトル量子化し、所定のコードを出力するベクトル量子化手段と、
前記ベクトル量子化手段より出力されるコードに基づいて、前記音声を認識する認識手段と
を備え、
前記ベクトル量子化手段は、請求項1に記載の探索方法により、前記特徴パラメータに対応するコードを探索する
ことを特徴とする音声認識装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26080894A JP3569981B2 (ja) | 1994-10-26 | 1994-10-26 | 探索方法および音声認識装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26080894A JP3569981B2 (ja) | 1994-10-26 | 1994-10-26 | 探索方法および音声認識装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08123460A JPH08123460A (ja) | 1996-05-17 |
JP3569981B2 true JP3569981B2 (ja) | 2004-09-29 |
Family
ID=17353045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26080894A Expired - Fee Related JP3569981B2 (ja) | 1994-10-26 | 1994-10-26 | 探索方法および音声認識装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3569981B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010204274A (ja) * | 2009-03-02 | 2010-09-16 | Toshiba Corp | 音声認識装置、その方法及びそのプログラム |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08146988A (ja) * | 1994-11-21 | 1996-06-07 | N T T Data Tsushin Kk | 音声認識方法及び音声認識装置 |
JP3817784B2 (ja) * | 1996-08-14 | 2006-09-06 | ソニー株式会社 | 音声認識装置および音声認識方法 |
JP4099981B2 (ja) * | 2001-12-04 | 2008-06-11 | 日本電気株式会社 | 画像認識システム、画像認識方法および画像認識プログラム |
EP3113159A1 (en) * | 2015-06-30 | 2017-01-04 | Thomson Licensing | Method and device for processing a part of an immersive video content according to the position of reference parts |
-
1994
- 1994-10-26 JP JP26080894A patent/JP3569981B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010204274A (ja) * | 2009-03-02 | 2010-09-16 | Toshiba Corp | 音声認識装置、その方法及びそのプログラム |
Also Published As
Publication number | Publication date |
---|---|
JPH08123460A (ja) | 1996-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6587625B2 (ja) | オーディオ指紋探索の最適化のためのシステムおよび方法 | |
EP0355748B1 (en) | A pattern recognition apparatus and method for doing the same | |
KR102305568B1 (ko) | 일정한 처리 시간 내에 k개의 극값을 찾는 방법 | |
JP3337233B2 (ja) | 音声符号化方法及び装置 | |
US7627474B2 (en) | Large-vocabulary speech recognition method, apparatus, and medium based on multilayer central lexicons | |
Fulzele et al. | A hybrid model for music genre classification using LSTM and SVM | |
KR980011007A (ko) | 음성 인식 방법, 정보 형성 방법, 음성 인식 장치 및 기록 매체 | |
CN111400540B (zh) | 一种基于挤压和激励残差网络的歌声检测方法 | |
JP6004015B2 (ja) | 学習方法、情報処理装置および学習プログラム | |
US11321387B2 (en) | Search system, search method and program recording medium | |
JP2000099632A (ja) | 検索装置、検索方法及び検索プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP3569981B2 (ja) | 探索方法および音声認識装置 | |
JP5989576B2 (ja) | パターン識別装置、パターン識別方法、プログラム、学習装置および学習方法 | |
Sonkamble et al. | Speech recognition using vector quantization through modified K-MeansLBG Algorithm | |
JP6004014B2 (ja) | 学習方法、情報変換装置および学習プログラム | |
Bahatti et al. | An efficient audio classification approach based on support vector machines | |
JP4424023B2 (ja) | 素片接続型音声合成装置 | |
Dhakal | Novel Architectures for Human Voice and Environmental Sound Recognitionusing Machine Learning Algorithms | |
Gotlur et al. | Music genre classification using machine learning | |
Tsai et al. | Speaker clustering of unknown utterances based on maximum purity estimation. | |
KR100497212B1 (ko) | 데이터 마이닝에서의 앙상블 기법에 적용되는 연관성 규칙생성 장치 및 그 방법 | |
Vali et al. | Deep Learning for Cover Song Apperception | |
JP2006011622A (ja) | 部分画像検索システム及び方法並びにプログラム | |
Sul et al. | LPCC Based Music Genrefication Using Hybrid Computational Model | |
JPH10133681A (ja) | 音声認識装置およびこの音声認識装置で使用する標準パターンの作成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040601 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040614 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |