以下、本発明の実施形態について図面を参照して詳細に説明する。
<1.本発明の基本概念>
まず、本発明の基本概念について説明する。図1は、本発明の基本概念を説明するための図である。図1に示すように、原音響データについては、その原音響データに対して特徴ワード生成処理を実行し、得られた複数個の特徴ワードを音響データベースに登録しておく。さらに、複数個の特徴ワードに対して代表特徴データ生成処理を実行し、原音響データごとに1つの代表特徴データを登録しておく。検索時には、検索音響データに対して特徴ワード生成処理を実行した後、特徴ワードに対して代表特徴データ生成処理を実行し、1つの代表特徴データを生成する。そして、検索音響データから得られた代表特徴データと音響データベース内の各代表特徴データの照合処理を行う。そして、照合の結果、条件を満たす原音響データに対してのみ、特徴ワード同士の照合を行う。
このように、まず、音響データごとに1つだけ生成され、音響データ全体の特徴を表現した代表特徴データを用いて絞込みを行うことにより、大きく相違している音響データを対象から除外する。そして、比較的類似している原音響データに対して、部分的特徴を表現した特徴ワードを用いて照合を行うことにより、的確な検索を行うことができる。
<2.音響データの関連情報登録装置>
以下、本発明の実施形態について図面を参照して詳細に説明する。まず、音響データの関連情報の登録について説明する。音響データの関連情報の登録は、音響データの関連情報の登録装置(以下「関連情報登録装置」という。)により行う。関連情報登録装置は、原音響データから登録特徴ワード、代表登録特徴データを作成し、当該音響データに関連する関連情報(一般にメタデータと呼ばれる)とともに、作成した登録特徴ワード、代表登録特徴データを、音響データを特定する情報(例えば、音響データID)と対応付け、音響データベースに登録する。1つの原音響データに関する音響データID、登録特徴ワード、代表登録特徴データ、関連情報は1レコードとして音響データベースに登録される。この音響データベースは、原音響データの関連情報を検索するために用いられるものであり、原音響データ自体は、登録されないのが通常である。これは、著作権上の問題であり、機能的には、原音響データを登録する構成とすることも当然可能である。
音響データとは、音楽や音声等をデジタル形式で記録したものであり、アナログ音響信号に対して、PCM等の手法によりサンプリングして得られたものである。そして、原音響データとは、検索対象とされる楽曲等の音響素材の音響データである。著作権保護対策から、CD原盤の品質をもつPCM形式の音響データは一般にライセンス配布されないことが多いため、音響データベースに登録するデータとしては、あらかじめMP3(MPEG-1/Layer3)などの各種非可逆圧縮処理が施された音響データファイルが与えられる場合が一般的である。しかし、入手できたデータがMP3形式であったとしても、特徴ワードを作成するためには、MP3形式のデータを伸張し、サンプル列の音響データを生成する必要がある。
図2は、関連情報登録装置のハードウェア構成図である。関連情報登録装置は、汎用のコンピュータで実現することができ、図2に示すように、CPU2a(CPU: Central Processing Unit)と、コンピュータのメインメモリであるRAM2b(RAM: Random Access Memory)と、データを記憶するための大容量のデータ記憶装置2c(例えば,ハードディスク)と、CPUが実行するプログラムを記憶するためのプログラム記憶装置2d(例えば,ハードディスク)と、キーボード、マウス等のキー入力I/F2eと、外部デバイス(データ記憶媒体)とデータ通信するためのデータ入出力インターフェース2fと、表示デバイス(ディスプレイ)に情報を送出するための表示出力インターフェース2gと、を備え、互いにバスを介して接続されている。
関連情報登録装置のプログラム記憶装置2dには、CPU2aを動作させ、コンピュータを、関連情報登録装置として機能させるための専用のプログラムが実装されている。また、データ記憶装置2cは、処理結果として得られる登録特徴ワード、代表登録特徴データ等を関連情報と対応付けて記憶し、音響データベースとして機能するとともに、処理に必要な様々なデータを記憶する。
図3は、関連情報登録装置の機能ブロック図である。図3において、10は登録特徴ワード生成手段、20は代表登録特徴データ生成手段、30は登録手段、40は音響データベースである。上述のように、各手段は、CPU2aがプログラム記憶装置2dから読み込んだ専用のプログラムを実行することにより実現される。
登録特徴ワード生成手段10は、音響データから所定数のサンプルを音響フレームとして順次読み込み、読み込んだ音響フレームを利用して、周波数解析を行い、その音響データの特徴を表現した特徴ワードを生成する機能を有している。この特徴ワードは、ある音響データの特徴を少ないデータ量で表現したものであり、スペクトルの特徴を表した特徴パターンと、音量データにより構成される(著作権法上、生成された特徴ワードより原音響データを再現できない、即ち複製行為ができないことが要求され、特徴ワードはその条件を満たすので音響データベースへの登録が認められている。)。音響データベース40に登録される特徴ワードを特に「登録特徴ワード」と呼ぶ。また、この特徴ワードを作成する基になる音響データを特に「原音響データ」と呼ぶ。この「原音響データ」としては、著作権者等が有している「原本」となるデータそのものではなく、この「原本」に著作権保護のための改変が施されたものを用いるのが普通である。もちろん「原本」となるデータそのものを「原音響データ」として用いることも可能である。後述するように、本発明においては、部分特徴ワードや検索特徴ワード等の他の特徴ワードが出現するが、これらは、いずれも特徴ワードの基本的な構造としては同一であるが、部分特徴ワードと検索特徴ワードは登録特徴ワードと異なり、後述する検索処理において位相をずらした照合に対応させるため、位相をずらした複数(本実施形態では5種)の特徴ワード群のセットをもたせているという相違がある。また、本明細書では、40ビット構成の最小単位を「特徴ワード」、照合に用いられる特徴ワードの集合を「特徴ワード群」と呼ぶ。
代表登録特徴データ生成手段20は、登録特徴ワード生成手段10により生成された登録特徴ワード群を用いて、1音響データにつき、1つの代表登録特徴データを生成する機能を有する。登録特徴ワードは、原音響データの部分的な特徴を表現するのに対して、代表登録特徴データは、1つの原音響データの全体的な特徴を表現する。
登録手段30は、登録特徴ワード生成手段10により生成された登録特徴ワード群と、代表登録特徴データ生成手段20により生成された代表登録特徴データを、元の原音響データの制作や著作権に関連する関連情報(一般にメタデータと呼ばれる)、および原音響データを特定するために原音響データの著作権情報等を管理する事業者が個別に定義付けたIDと対応付けて音響データベース40に登録する機能を有している。ここで、関連情報とは、楽曲名、ジャンル名など楽曲を特定するテキスト情報、作詞・作曲・編曲者名、アーチスト名、プロデューサ名など原音響データの制作に関わる著作権者・著作隣接権者名に関するテキスト情報を示すものである。ただし、原音響データそのものは著作権法上の制約から、音響データベース40に通常登録することはない。また、原音響データの制作・マスタリングに使用した一連のバイナリ形式の素材データ(ミックスダウンする前の個別の録音データ、MIDI打ち込みデータ)等についても、著作権法上の制約により通常登録することはない。
<2.2.関連情報登録装置の処理動作>
次に、図3に示した関連情報登録装置の処理動作について説明する。まず、関連情報登録装置では、登録特徴ワード生成手段10が、指定された原音響データから登録特徴ワードを生成する。図4は、登録特徴ワードの生成処理を示すフローチャートである。まず、登録特徴ワード生成手段10が、原音響データを読み込む。関連情報登録装置では、登録特徴ワード生成手段10が、指定された原音響データから、所定数のサンプルを1音響フレームとして読み込む。登録特徴ワード生成手段10が読み込む1音響フレームのサンプル数は、適宜設定することができるが、サンプリング周波数が44.1kHzの場合、4096サンプル程度とすることが望ましい。これは、約0.092秒に相当する。ただし、後述する周波数変換におけるハニング窓関数の利用により、隣接窓間の連続性を考慮して、音響フレームは、所定数分のサンプルを重複させて読み込むことにしている。本実施形態では、音響フレームの区間長のちょうど半分となる2048サンプルを重複させている。したがって、先頭の音響フレームはサンプル1〜4096、2番目の音響フレームはサンプル2049〜6144、3番目の音響フレームはサンプル4097〜8192というように、順次読み込まれていくことになる。
続いて、登録特徴ワード生成手段10は、読み込んだ各音響フレームに対して、周波数変換を行って、その音響フレームのスペクトルであるフレームスペクトルを得る(S11)。具体的には、登録特徴ワード生成手段10が読み込んだ音響フレームについて、窓関数を利用して周波数変換を行う。周波数変換としては、フーリエ変換、ウェーブレット変換その他公知の種々の手法を用いることができる。本実施形態では、フーリエ変換を用いた場合を例にとって説明する。
ここで、本実施形態においてフーリエ変換に利用する窓関数について説明しておく。一般に、所定の信号に対してフーリエ変換を行う場合、信号を所定の長さに区切って行う必要があるが、この場合、所定の長さの信号に対してそのままフーリエ変換(正確には短時間フーリエ変換とよばれる)を行うと、高域部に擬似成分が発生する。そこで、一般にフーリエ変換を行う場合には、ハニング窓と呼ばれる窓関数を用いて、窓の境界部のコサイン波形状で重みを落とすように信号の値を変化させた後、変化後の値に対してフーリエ変換を実行する。
S11においてフーリエ変換を行う場合、具体的には、サンプルiにおける値X(i)(i=0,…,N−1)に対して、0〜1の実数値をもち、Nサンプル区間に定義されるハニング窓関数W(i)(=0.5−0.5cos(2πi/N)を用いて、以下の〔数式1〕の第1式、第2式に従った処理を行い、各周波数における実部A(j)、虚部B(j)を得る。
続いて、スペクトル成分の算出を行う(S12)。具体的には、以下の〔数式1〕第3式に従った処理を行い、各周波数における強度値E(j)を得る。
〔数式1〕
A(j)=Σi=0,…,N-1W(i)・X(i)・cos(2πij/N)
B(j)=Σi=0,…,N-1W(i)・X(i)・sin(2πij/N)
E(j)=A(j)2+B(j)2
〔数式1〕において、iは、各音響フレーム内のN個のサンプルに付した通し番号であり、i=0,1,2,…,N−1の整数値をとる。また、jは周波数の値について、値の小さなものから順に付した通し番号であり、j=0,1,2,…,N/2−1の整数値をとる。サンプリング周波数が44.1kHz、N=4096の場合、jの値が1つ異なると、周波数が10.8Hz異なることになる。
続いて、スペクトル成分の統合処理を行う(S13)。上記の周波数変換により、22kHz付近までのスペクトル成分が得られるが、本実施形態における特徴ワードの生成には、340Hz以上で4kHz付近より低い範囲のスペクトル成分を用いる。これは、携帯電話の音声再生で使用される3GPP規格等の音声圧縮形式に対応させるためである(ただし、本実施形態では常にデジタル音響データが与えられるため、携帯電話の音声録音信号を用いた照合には対応する必要はない。)。そのため、正確に、携帯電話の音声再生範囲に合わせる場合は、特徴ワードの生成の上限を3.4kHz付近とするようにしても良い。本実施形態では、j=0〜2047の周波数成分のうち、4kHz付近より高いj=385〜2047については利用しない。また、340Hz以下であるj=0〜32の低周波成分についても利用しない。すなわち、本実施形態では、j=33〜384の周波数成分を用いる。具体的には、以下の〔数式2〕に従った処理を実行し、11周波数成分単位のPnに統合することになる。
〔数式2〕
P0=(E33+E34+…+E43)1/4
P1=(E44+E45+…+E54)1/4
:
:
P31=(E374+E375+…+E384)1/4
上記〔数式2〕により、j=33〜384の352個の周波数成分が、n=0〜31の32個の周波数成分に統合されることになる。上記処理は、各音響フレームについて行われ、各音響フレームについて、32個の周波数成分が得られることになる。
次に、各音響フレームについて、直前の音響フレームのスペクトル成分との差分を算出する(S14)。上記S11〜S13の処理は、各音響フレームに対して順次行われる。このS14におけるフレーム間差分の算出処理は、各音響フレームについてS13までの処理を行った結果得られたP0〜P31を利用するものである。具体的には、以下の〔数式3〕に従った処理を行い、フレーム間差分Dn(t)を得る。
〔数式3〕
Dn(t)=|Pn(t)−Pn(t−1)|、n=0,…,31
上記〔数式3〕においてPn(t)は、t番目の音響フレームにおける統合された周波数成分である。このように、隣接する音響フレーム間の差分を算出するのは、音響データの振幅レベルがわずかに変化するような箇所についても、振幅レベルの変化を強調させ、音響データの特徴を反映した特徴ワードを生成するためである。
フレーム間差分の算出処理を終えたら、所定フレーム数の処理が終了したかどうかを判断する(S15)。具体的には、t≧Tであるかどうかを判断する。その結果、t<Tである場合は、tをインクリメントしてS11に戻る。S15における判断の結果、t≧Tである場合は、得られたT個の差分Dn(t)の総和を求める(S16)。すなわち、上記S11〜S14の処理を各音響フレームに対して順次行い、音響フレーム間の差分Dn(t)がT個(本実施形態では11個)得られたら、T個の差分Dn(t)の総和算出を行うことになる。具体的には、以下の〔数式4〕に従った処理を行い、フレーム間差分の総和Snを得る。
〔数式4〕
Sn=Σt=0,…,T-1Dn(t)
上記〔数式4〕において、“Σt=0,…,T-1”は、t=0からT−1までtを1ずつ増加させたときの総和を意味する。続いて、上記〔数式4〕により得られたSnの二値化処理を行う(S17)。具体的には、まず、32個のSn配列をn≧14とn≦13の上下帯域で2分割し、n≦13の14個のうち値の大きい7個に1を与え、値の小さい7個に0を与えるとともに、n≧14の18個のうち値の大きい9個に1を与え、値の小さい9個に0を与える。ここで、単純に全32個のSnのうち値の大きい16個と、小さい16個に1と0を与えるのではなくて、32バンドを周波数が高い18バンドのグループと、周波数が低い14バンドのグループに分けて、それぞれそのグループ内で均等に1と0を与えるようにしたのは、各種データ圧縮処理に伴う周波数特性の影響を補正するためである。上下のバンドを18バンドと14バンドの位置で分けたのは、実験の結果、この位置で分けたとき、検索に使用する検索音響データに対してMP3などの各種データ圧縮処理を施した結果、検索精度が最も高かったためである。S17における処理により、各周波数帯nについてのフレーム間差分の総和Snが1ビットで表現可能となる。そして、n=0をLSB、n=31をMSBとして32ビットの特徴パターンFd(y)を得る。ここで、y(=0,…,Y−1)は、1つの原音響データから生成されるY個の特徴ワードにおいて、その順番を示す変数である。したがって、yは演奏開始からの時刻に比例する変数となる。
次に、音量データの算出を行う(S18)。具体的には、まず、以下の〔数式5〕を用いて総和音量Volを算出する。
〔数式5〕
Vol=Σt=0,…,T-1{Σn=0,…,31Pn(t)}
上記〔数式5〕において、“Σt=0,…,T-1”は、t=0からT−1までtを1ずつ増加させたときの総和を意味する。上記〔数式5〕に示すように、統合処理により得られた全ての成分Pn(t)の値をT個の音響フレームについて加算する。これにより、T個の音響フレームについての音量の総和である総和音量Volが得られる。この総和音量Volの値に適宜設定した固定のスケーリング値を乗算して、0〜255の範囲に収まるように正規化して音量データVd(y)を得る。正規化により音量データVd(y)は8ビットで表現されることとなる。音量データVd(y)は、上記〔数式5〕に示されるように、T個の音響フレームに渡る総和音量Volを基礎としているため、各フレーム単位の音量ではなく、T個の音響フレームの総和音量を表現していることになる。
上記S17、S18の処理は、順序を入れ替えて行うことも可能である。S17、S18による処理の結果、32ビットの特徴パターンと8ビットの音量データにより構成される40ビットの特徴ワードが得られる。
以上の処理を各音響フレームに対して実行することにより、その音響データについての特徴ワードが多数生成されることになる。例えば、上記の例のように、サンプリング周波数44.1kHz、1音響フレームが4096サンプル、音響フレームを2048サンプルずつ重複させた場合、1特徴ワードは約0.506秒となり、5分間の音響データからは、約600個の特徴ワードが生成されることになる。
ここで、上記特徴ワードの生成処理を、図5の概念図を用いて説明する。図5(a)は、特徴ワードの生成対象とする音響データの波形を示す図である。関連情報登録装置では、音響データを音響フレーム単位で読み取っていくが、図5(b)に示すように、読取範囲を重複させて読み取らせる。そして、各音響フレームに対して、図5(c)に示すように所定の周波数範囲における周波数成分を抽出し、32バンドに統合する。これは、上記S11〜S13に相当する。次に、図5(d)に示すように統合成分のバンドごとの隣接する音響フレーム間における差分処理、32バンドの統合成分の総和処理を行う。統合成分の差分処理は上記S14に相当し、統合成分の総和処理は上記S18の各周波数成分(n=0〜31)の総和処理に相当する。次に、図5(e)に示すように32バンド差分成分の総和処理、および音量の総和処理を行う。32バンド差分成分の総和処理は、上記S16に相当し、音量の総和処理は上記S18の各音響フレーム(t=0〜T−1)の総和処理に相当する。次に、図5(f)に示すように32バンド総和成分の二値化処理、および音量の圧縮処理(上記〔数式5〕に基づき算出された値に所定のスケーリング値を乗算して256段階に音量レベルを圧縮する処理)を行う。32バンド総和成分の二値化処理は上記S17に相当し、音量の圧縮処理は上記S18に相当する。図5に示すように、音響データから順次音響フレームを読み込み、T個の音響フレーム単位で1つの特徴ワードを生成していく処理が行われることになる。
指定された1つの原音響データ全体に対して、登録特徴ワード群(登録特徴ワードの集合)が得られたら、次に、代表登録特徴データ生成手段20が、登録特徴ワード群を用いて代表登録特徴データを生成する。代表登録特徴データは、登録特徴ワードを基礎とする特徴成分の時間方向における平均値、標準偏差の組として構成される。図6は、登録特徴ワードを基礎とする特徴成分の時間方向における平均値、標準偏差の算出処理を示すフローチャートである。まず、代表登録特徴データ生成手段20は、登録特徴ワードを多値化処理することにより登録特徴データ配列を生成する(S19)。具体的には、以下の〔数式6〕に従った処理を実行することにより、登録特徴ワードを基礎とする特徴成分である登録特徴データ配列Z(n,y)(n=0,…,31; y=0, …,Y−1)を生成する。
〔数式6〕
Fd(y)の各ビットnが1の場合、Z(n,y)←Vd(y)
Fd(y)の各ビットnが0の場合、Z(n,y)←−Vd(y)
次に、代表登録特徴データ生成手段20は、登録特徴データ配列Z(n, y)の時間方向yにおける平均値配列Cd(n, r)、標準偏差配列Ld(n, r)を算出する(S20)。具体的には、以下の〔数式7〕に従った処理を実行することにより、平均値配列Cd(n, r)、標準偏差配列Ld(n, r)を算出する。
〔数式7〕
Cd(n, r)=[Σy=0,…,Y-1Z(n, y)]/Y
Ld(n, r)=[Σy=0,…,Y-1(Z(n, y)−Cd(n,r)) 2/Y]1/2
図7は、S19、S20による登録特徴データ配列の平均値、標準偏差の算出処理の概念図である。図7に示すように、登録特徴ワードは各時刻y(y=0,…,Y−1)に対応して32ビットの特徴パターンF(y)と8ビットの音量データV(y)を有している。図7においては、特徴パターンの32個の各ビットをBit0〜Bit31で示している。
そして、上記〔数式6〕に示したようにビットn(Bit0〜Bit31)の値が0であるか1であるかにより、Z(n,y)の値を音量データの値そのままとするか、音量データの値に−1を乗じたものとするかを決定し、ビットnに対応するZ(n,y)の値を定める。このとき、8ビットの音量データを負の値とする場合が生じるため、Z(n,y)は16ビットで表現する。32ビット特徴パターンでは、各バンドについて1ビットで表現されていたものが、16ビット(2バイト)で表現されることになるので、各時刻yにおける登録特徴データは64バイトとなる。
代表登録特徴データ生成手段20により代表登録特徴データとして生成された平均値配列Cd(n, r)、標準偏差配列Ld(n, r)は、音響データID等の音響データを特定する情報(rと1対1で対応)と対応付けて音響データベース40に登録される。
各原音響データについて、その原音響データについての関連情報、音響データID、登録特徴ワード群、代表登録特徴データを対応付けて音響データベース40に登録する。関連情報としては、当該原音響データに関連する情報であれば、どのようなものでも良いが、例えば、当該原音響データが楽曲であれば、曲名や演奏者名、当該原音響データがCM音声であれば、そのスポンサー企業の名前やURL等を用いることができる。ただし、当該原音響データの制作・マスタリングに使用した一連のバイナリ形式の素材データ(ミックスダウンする前の個別の録音データ、MIDI打ち込みデータ)等は著作権法上の制約により通常対象外とする。
<3.関連情報検索装置>
次に、本発明に係る音響データの関連情報検索装置(以下「関連情報検索装置」という。)について説明する。図8は、関連情報検索装置のハードウェア構成図である。関連情報検索装置は、関連情報登録装置と同様、汎用のコンピュータで実現することができ、図8に示すように、CPU3a(CPU: Central Processing Unit)と、コンピュータのメインメモリであるRAM3b(RAM: Random Access Memory)と、データを記憶するための大容量のデータ記憶装置3c(例えば,ハードディスク)と、CPUが実行するプログラムを記憶するためのプログラム記憶装置3d(例えば,ハードディスク)と、キーボード、マウス等のキー入力I/F3eと、外部デバイス(データ記憶媒体)とデータ通信するためのデータ入出力インターフェース3fと、表示デバイス(ディスプレイ)に情報を送出するための表示出力インターフェース3gと、を備え、互いにバスを介して接続されている。
関連情報検索装置のプログラム記憶装置3dには、CPU3aを動作させ、コンピュータを、関連情報検索装置として機能させるための専用のプログラムが実装されている。また、データ記憶装置3cは、登録特徴ワード、代表登録特徴データ等を関連情報と対応付けて記憶されており、音響データベースとして機能するとともに、処理に必要な様々なデータを記憶する。図8では、単体のコンピュータで実現した例を示したが、音響データベースが稼動されているサーバーコンピュータとネットワークで接続されている高性能な演算処理機能を備えているパーソナルコンピュータが、専用のプログラムに従って各手段の内容を実行するようにしても良い。
図9は、本発明に係る関連情報検索装置の機能ブロック図である。図9において、40は音響データベース、45はモード設定手段、50は検索特徴ワード生成手段、60は代表検索特徴データ生成手段、70は照合範囲決定手段、80は代表特徴データ照合手段、90は特徴ワード照合手段、100は情報出力手段である。関連情報検索装置は、利用者が保有している検索音響データを用いて、音響データベースに登録されている原音響データに関する関連情報を検索音響データに関連する関連情報として検索するものである。検索音響データとは、検索に用いる音響データである。検索の際、検索音響データから生成した特徴ワードである検索特徴ワードと、あらかじめ音響データベース40に登録されている登録特徴ワードの照合を行う必要がある。そのため、検索特徴ワードと登録特徴ワードは基本的に同一の構造である必要がある(なお、前者の検索特徴ワード群は位相を変化させた複数(H個)の特徴ワード群のセットが生成される)。検索特徴ワードと登録特徴ワードの基になる検索音響データと原音響データは種々の符号化形式で圧縮され、入手形態により互いに異なる符号化形式になるのが一般的であるため、同一の符号化形式になるように変換する必要がある。本実施形態では、検索音響データも原音響データも同じ仕様(サンプリング周波数:44.1kHz、量子化ビット数:16bits、チャンネル数:1・モノラルといったPCM形式のパラメータ)のPCM形式になるように変換し統一させるようにしている。
モード設定手段45は、関連情報検索装置が備えている複数のモードの中からいずれのモードに従って処理を行うかを設定するものであり、キーボード、マウス等の入力機器およびキー入力I/F3eにより実現される。設定可能なモードとしては、検索音響データモードおよび音量判定モードが用意されている。検索音響データモードは、検索音響データの状態を示すものであり、イントロ検索、全尺検索の2つが選択可能になっている。イントロ検索とは、検索音響データが、音響素材(楽曲の場合、原曲を意味する。)の先頭を含む場合であり、全尺検索は、検索音響データが音響素材から一切切り出しを行われたものでなく、音響素材全てを用いた場合、すなわち、音響素材と同一の時間的長さをもつ場合に対応するものである。音量判定モードは、後述するワード単位相違度D(r,y+w,h,x+w)に音量成分をどのように加味するかを設定するものであり、Off、Weight、Match、Bothの4つが選択可能になっている。
検索特徴ワード生成手段50は、図3に示した登録特徴ワード生成手段10と同様、読み込んだ音響フレームを利用して、周波数解析を行い、その検索音響データの特徴を表現した特徴ワードを生成する機能を有している。ただし、位相をずらした複数(H個)の特徴ワード群のセットを生成するようにしている。代表検索特徴データ生成手段60は、図3に示した代表登録特徴データ生成手段20と同様、検索特徴ワード生成手段50により生成された検索特徴ワード群を用いて、1つの検索音響データにつき、1つの代表検索特徴データを生成する機能を有する。検索特徴ワードは、検索音響データの部分的な特徴を表現するのに対して、代表検索特徴データは、1つの検索音響データの全体的な特徴を表現する。
代表特徴データ照合手段80は、生成した代表検索特徴データと、音響データベース40に登録されている代表登録特徴データとの照合を行う機能を有している。特徴ワード照合手段90は、生成した検索特徴ワードと、音響データベース40に登録されている登録特徴ワードとの照合を行う機能を有している。情報出力手段100は、特徴ワード照合手段90による照合の結果、検索音響データの特徴に類似する原音響データについての関連情報を、音響データベース40から抽出して出力する機能を有している。
<3.2.関連情報検索装置の処理動作>
続いて、図9に示した装置の処理動作について説明する。まず、検索オペレータが保有している検索音響データを検索したいと思った場合、関連情報検索装置に対して起動の指示を行い、起動後、検索対象とする検索音響データを指定する。これは、キー入力I/F3eを介して所定のコンピュータ画面上のボタンを操作し、関連情報検索装置のデータ記憶装置3c内に保存されている検索音響データを指定することにより実行できる。現実には、検索音響データは、MP3等の圧縮形式であることが多いため、PCM形式に変換した後、処理を行う。また、検索オペレータは、モード設定手段45により、検索モード、音量判定モードの設定を行う。設定を行わない場合は、検索モードについては、“イントロ検索” “全尺検索”以外の通常検索が実行され、音量判定モードについては、“Off”が設定される。設定された情報は、CPU3aにより、RAM3bの所定の領域に書き込まれ、各手段が参照可能な状態となる。検索モードにおいて、“イントロ検索” “全尺検索”が選択された場合は、その検索音響データが音響素材の先頭から始まることが設定されることになる。
指示が入力されると、検索特徴ワード生成手段50が、指定された検索音響データから、それぞれ所定数のサンプルを1音響フレームとして読み込む。この処理は、関連情報登録装置が行ったのと同様に行われる。すなわち、1音響フレームのサンプル数は、サンプリング周波数が44.1kHzの場合、4096サンプルとする。また、音響フレームは、2048サンプルを重複させて読み込むことにしている。
ここから検索特徴ワードの生成までの処理は、図10のフローチャートに従ったものとなる。図10のフローチャートは、登録特徴ワード生成についての図4のフローチャートとほぼ同様のものとなっている。検索特徴ワード生成手段50は、S11と同様にして、読み込んだ各音響フレームに対して周波数変換を行って、その音響フレームのスペクトルであるフレームスペクトルを得る(S21)。関連情報登録装置と同様、周波数変換としては、フーリエ変換、ウェーブレット変換その他公知の種々の手法を用いることができるが、関連情報登録装置の処理と合わせる必要があるため、本実施形態では、フーリエ変換を用いる。
続いて、スペクトル成分の算出を行う(S22)。具体的には、S12と同様、上記〔数式1〕第3式に従った処理を行い、各周波数における強度値E(j)を得る。
続いて、スペクトル成分の間引き処理を行う(S23)。具体的には、S13と同様、上記〔数式2〕に従った処理を実行し、11周波数成分単位のPnに間引くことになる。
上記〔数式2〕により、j=33〜384の352の周波数成分が、n=0〜31の32の周波数成分に間引かれることになる。上記処理は、各音響フレームについて行われ、各音響フレームについて、32個の周波数成分が得られることになる。
次に、各音響フレームについて、直前の音響フレームのスペクトル成分との差分を算出する(S24)。上記S21〜S23の処理は、各音響フレームに対して順次行われる。このS24におけるフレーム間差分の算出処理は、各音響フレームについてS23までの処理を行った結果得られたP0〜P31を利用するものである。具体的には、S14と同様、上記〔数式3〕に従った処理を行い、フレーム間差分Dn(t)を得る。
上記S21〜S24の処理を各音響フレームに対して順次行い、音響フレーム間の差分Dn(t)がT個(本実施形態では11個)得られたら、そのT個分の総和を求める(S26)。すなわち、以下の〔数式8〕に従った処理を行い、フレーム間差分の総和Sn(h)を得る。〔数式8〕のhsは位相をずらす最小単位の音響フレーム数であり、(T/Hで定義される。ただし、hsは整数値でないと意味を持たないため、本実施形態では小数点以下を切り捨て、hs=−2としている。
〔数式8〕
Sn(h)=Σt=0,…,T-1Dn(t+h・hs)
上記〔数式8〕において、hは位相を特定する位相番号であり、0≦h≦H−1のH通りの値をとる整数である。続いて、上記〔数式8〕により得られたSn(h)の二値化処理を行う(S27)。具体的には、S17と同様の処理をSn(h)配列に対して実行する。すなわち、Sn(h)配列をn≧14とn≦13の上下帯域で2分割し、n≦13の14個中値の大きい7個に1を与え、値の小さい7個に0を与えるとともに、n≧14の18個中値の大きい9個に1を与え、値の小さい9個に0を与える。S27における処理により、各nについてのSn(h)が1ビットで表現可能となる。そして、n=0をLSB、n=31をMSBとして32ビットの特徴パターンF(h,x)を得る。ここで、x(=0,…,X)は、検索音響データから生成されるX個の特徴ワードにおいて、その順番を示す変数である。したがって、xは演奏開始からの時刻に比例する変数となる。
次に、音量データの算出を行う(S28)。具体的には、まず、以下の〔数式9〕を用いて各位相番号hについて総和音量Vol(h)を算出する。
〔数式9〕
Vol(h)=Σt=0,…,T-1{Σn=0,…,31Pn(t+h・hs)}
上記〔数式5〕に示すように、間引き処理した全ての成分Pn(t+h・hs)の値をT個の音響フレームについて加算する。これにより、各位相番号hについて、T個の音響フレームについての音量の総和である総和音量Vol(h)が得られる。この総和音量Volの値に適宜設定した固定のスケーリング値を乗算して、0〜255の範囲に収まるように正規化して音量データV(h,x)を得る。正規化により音量データV(h,x)は8ビットで表現されることとなる。音量データV(h,x)は、上記〔数式9〕に示されるように、T個の音響フレームに渡る音量の総和を基礎としているため、各フレーム単位の音量ではなく、T個の音響フレームの総和音量を表現していることになる。
上記S27、S28の処理は、順序を入れ替えて行うことも可能である。S27、S28による処理の結果、32ビットの特徴パターンと8ビットの音量データにより構成される40ビットの特徴ワードが得られる。
以上の処理を各音響フレームに対して実行することにより、その音響データについての特徴ワードが多数(X個)生成されることになる。例えば、上記の例のように、サンプリング周波数44.1kHz、1音響フレームが4096サンプル、音響フレームを2048サンプルずつ重複させた場合、1特徴ワードは約0.506秒となり、30秒間の音響データからは、約60個(=X個)の特徴ワードが生成されることになる。
上記のようにして、関連情報検索装置では、関連情報登録装置に比べて音響データの単位時間あたりH倍(本実施形態では、H=5)の特徴ワードを生成する。(ただし、全体としては関連情報検索装置で生成される特徴ワードの方が、関連情報登録装置に比べて顕著に少なくなる。)関連情報登録装置に比べて検索対象とする検索音響データは、楽曲の一部が切り取られたものであることが多い。これは、利用者が演奏されている音楽の一部を録音することにより取得されることがあるためである。そのため、必ずしも、データベースに登録された原音響データとのタイミングが一致するものではなく、位置ズレが生じることがある。関連情報登録装置において生成した手法でも、11個の音響フレームを平均化して生成しているため、比較的位置ズレには強い。しかし、リズム変化が激しい検索音響データの場合、特徴ワードの生成単位である11音響フレームの、ほぼ半分である5音響フレーム程度ずれると、顕著に異なる特徴ワードが生成され、誤った情報が検索されてしまう。そのため、1解析単位である11音響フレームの範囲内でhs(=2音響フレーム)ずつ遅らせて(位相を変更して)複数の検索特徴ワードを生成して、音響データベース40内の登録特徴ワードと照合するようにする。
具体的には、関連情報登録装置では、フレーム1〜フレーム11までで1つの特徴ワードを生成するが、関連情報検索装置では、フレーム1〜フレーム11で特徴ワードを生成するとともに、2音響フレーム分、4音響フレーム分、6音響フレーム分、8音響フレーム分ずらした(位相を変更した)音響フレーム群からも特徴ワードを生成する。すなわち、フレーム3〜フレーム13、フレーム5〜フレーム15、フレーム7〜フレーム17、フレーム9〜フレーム19においても特徴ワードを生成する。結局、図10のフローチャートに従った処理を各音響フレームに対して実行することにより、X個の検索特徴ワードを構成する配列として、[F(h, x), V(h, x)](h=0, …,H−1;x=0, …,X−1)が得られることになる。
位相のズレを考慮してH個の検索特徴ワード群を生成したら、次に、代表検索特徴データ生成手段60が、検索特徴ワード群を用いて代表検索特徴データを生成する。代表検索特徴データは、検索特徴ワードを基礎とする特徴成分の時間方向における平均値、標準偏差の組として構成される。図11は、検索特徴ワードを基礎とする特徴成分の時間方向における平均値、標準偏差の算出処理を示すフローチャートである。まず、代表検索特徴データ生成手段60は、検索特徴ワードを多値化処理することにより検索特徴データ配列を生成する(S29)。具体的には、以下の〔数式10〕に従った処理を実行することにより、検索特徴ワードを基礎とする特徴成分である検索特徴データ配列Z(n, h, x)(n=0,…,31;h=0, …,H−1;x=0, …,X−1)を生成する。
〔数式10〕
F(h, x)の各ビットnが1の場合、Z(n, h, x)←V(h, x)
F(h, x)の各ビットnが0の場合、Z(n, h, x)←−V(h, x)
次に、代表検索特徴データ生成手段60は、検索特徴データ配列Z(n, h, x)を用いて平均値配列C(n)、標準偏差配列L(n)を算出する(S30)。具体的には、以下の〔数式11〕に従った処理を実行することにより、平均値配列C(n)、標準偏差配列L(n)を算出する。
〔数式11〕
C(n)=[Σx=0, …,X-1Σh=0, …,H-1Z(n, h, x)]/(5X)
L(n)=[Σx=0, …,X-1Σh=0, …,H-1(Z(n, h, x)− C(n))2/(5X)]1/2
図12は、S29、S30による代表検索特徴データの平均値、標準偏差の算出処理の概念図である。図12は、ある特定の位相hに対する代表検索特徴データの平均値、標準偏差の算出処理を示している。図12に示すように、検索特徴ワードは各時刻x(x=0, …,X−1)に対応して32ビットの特徴パターンと8ビットの音量データを有している。図12においては、特徴パターンの32個の各ビットをBit0〜Bit31で示している。
そして、上記〔数式10〕に示したようにビットn(Bit0〜Bit31)の値が0であるか1であるかにより、Z(n, h, x)の値を音量データの値そのままとするか、音量データの値に−1を乗じたものとするかを決定し、ビットnに対応するZ(n, h, x)の値を定める。このとき、8ビットの音量データを負の値とする場合が生じるため、Z(n, h, x)は16ビットで表現する。32ビット特徴パターンでは、各バンドについて1ビットで表現されていたものが、16ビット(2バイト)で表現されることになるので、各時刻xにおける検索特徴データは64バイトとなる。
検索の目的とする検索音響データについて、検索特徴ワード群および代表検索特徴データが得られたら、実際に音響データベース40を参照して照合処理を実行することになる。この際、まず、照合範囲決定手段70が、登録特徴ワードの照合範囲を決定する処理を行う。検索音響データは、利用者が検索用に用いる音響データであるため、必ずしも楽曲全体を記録しているとは限らず、楽曲の一部だけを録音して音響データとして取得したような場合もある。そのため、照合範囲決定手段70は、検索音響データが実際に元の楽曲のどの部分から取得されたものであるかがわからないことを前提として、効率的に照合を行うための照合範囲の決定を行う。照合範囲決定の概念図を図13に示す。図13における矩形の横幅は、特徴ワード群を構成する特徴ワード数を示している。
具体的には、まず、照合範囲決定手段70は、検索特徴ワード群の検索特徴ワード数Xとあるレコードrについての登録特徴ワード群の登録特徴ワード数Y(r)を比較する。ここでは、検索特徴ワード群の検索特徴ワード数は、再生時の長さに比例するものとして登録特徴ワード群の登録特徴ワード数との比較を行っている。したがって、検索特徴ワード数Xは位相を考慮しない場合のものとする。
そして、検索特徴ワード群の検索特徴ワード数Xと登録特徴ワード群の登録特徴ワード数Y(r)の比較の結果、XがY(r)より大きい場合、すなわち、図13(a)に示すような場合、照合範囲決定手段70は、そのレコードを検索対象から除外し、次のレコードに移行する。XがY(r)より大きい場合、検索音響データの一部が原音響データより長いことになる。原音響データは音響データ全体を記録しているため、この両者は異なる原音響データに基づくものであることが明らかとなる。そこで、この場合は、そのレコードを検索対象から除外するのである。
検索特徴ワード群の検索特徴ワード数Xと登録特徴ワード群の登録特徴ワード数Y(r)の比較の結果、XがY(r)より小さい場合、照合範囲決定手段70は、検索特徴ワード群に、原音響データの先頭部分から作成した特徴ワードが含まれているかどうかを判断する。具体的には、RAM3bの所定の領域を参照し、モード設定手段45によりイントロ検索または全尺検索が設定されているかどうかを確認する。これらの検索モードが設定されている場合、検索特徴ワード群に、原音響データの先頭部分から作成した特徴ワードが含まれていることが明らかであるため、検索音響データと原音響データが同一であるとすれば、先頭の検索特徴ワードと登録特徴ワードが一致するはずである。そこで、検索特徴ワード群に、原音響データの先頭部分から作成した特徴ワードが含まれている場合は、照合範囲決定手段70は、先頭の検索特徴ワードと登録特徴ワードを照合対象として設定する処理を行う。しかし、先頭の1つの特徴ワード同士を比較しただけでは、他の楽曲にも同様な特徴ワードをもつ可能性もあるため、正しい照合結果が得られなくなる。そこで、照合範囲決定手段70は、所定の時間の長さに対応するα個の特徴ワードを照合対象とする処理を行う。本実施形態では、12秒程度に相当する特徴ワード群を照合対象とする処理を行っている。上述のように、本実施形態では、1特徴ワードは約0.506秒であるので、12秒は、特徴ワード24個分に相当する。すなわち、この場合、検索特徴ワード群の先頭からの特徴ワード24個と、登録特徴ワード群の先頭からの特徴ワード24個が照合対象とされる。このときの状態を示したものが図13(b)である。
検索特徴ワード群に、原音響データの先頭部分から作成した特徴ワードが含まれていない場合で、かつ検索特徴ワード群の先頭部分からα(<X)個を照合対象とする場合、照合範囲決定手段70は、登録特徴ワード群における検索特徴ワード群の先頭検索特徴ワード(x=0)との照合範囲を、先頭(y=0)から登録特徴ワード群の最後尾登録特徴ワード(y=Y(r)−1)より検索特徴ワード群の個数(X)だけ前方に位置する範囲までとする。すなわち、登録特徴ワード群における検索特徴ワード群の先頭検索特徴ワード(x=0)との照合範囲は、図13(c)に示すように、先頭(y=0)から(Y(r)−X−1)番目の登録特徴ワードまでとなる。
本実施形態では、標準設定として、検索特徴ワード群の先頭からの特徴ワードα個を照合対象としているが、検索特徴ワード群の最後尾からの特徴ワードα個、検索特徴ワード群の中央の特徴ワードα個を照合対象に設定しておくことも可能である。検索特徴ワード群の最後尾からの特徴ワードα個が照合対象として設定されている場合、登録特徴ワード群における検索特徴ワード群の先頭検索特徴ワード(x=0)との照合範囲は、図13(d)に示すように、(X−α)番目から(Y(r)−α)番目の登録特徴ワードまでとなる。
また、検索特徴ワード群の中央の特徴ワードα個が照合対象として設定されている場合、登録特徴ワード群における検索特徴ワード群の先頭検索特徴ワード(x=0)との照合範囲は、図13(d)に示すように、{(X−α)/2}番目から{Y(r)−α−(X−α)/2}番目の登録特徴ワードまでとなる。照合範囲決定手段70は、以上のようにして決定した登録特徴ワードの照合範囲を、レコード別に特徴ワード照合手段90に渡す。
登録特徴ワードの照合範囲が決定したら、次に、代表特徴データ照合手段80が、代表検索特徴データを用いて、検索対象であるレコードの絞込みを行う。具体的には、代表検索特徴データと音響データベース40に登録された代表登録特徴データとの比較を行い、所定の条件を満たすレコードのみを、特徴ワード照合手段90として抽出する。そして、特徴ワード照合手段90が、検索特徴ワード群を用いて、音響データベース40に登録された原音響データの関連情報を検索する。具体的には、検索特徴ワード群と、音響データベース40に登録された登録特徴ワード群との比較を行い、所定の条件を満たすレコードを抽出する。代表特徴データ照合手段80による処理は、検索特徴ワード群を用いた比較処理の演算負荷が高いため、検索対象とするレコードを絞込むために行われる。
ここで、代表特徴データ照合手段80により行われる代表特徴データの概念について説明しておく。図14は、代表特徴データの概念を示す図である。代表特徴データは、図7、図12に示したように、32個の統合周波数帯に応じた値を持つ。したがって、各統合周波数帯を1次元とする32次元構造をとることになる。代表特徴データを用いた絞込みでは、32次元空間にプロットした検索音響データの代表検索特徴データと交わる代表登録特徴データを有する原音響データのみを絞り込み結果として抽出する。
図14では、概念的に示すため、32次元の代表特徴データのうち、ある2次元についてプロットしている。図14において、黒丸は、音響データごとの平均値、黒丸を中心とした円は、黒丸から音響データごとの標準偏差を半径としている。そして、その円が検索音響データの円と交わらない原音響データを検索対象から除外し、その円が検索音響データの円と交わる原音響データのみを絞り込み結果として抽出する。そして、これを全32次元について交わるものを抽出するか、所定数の次元で交わるものを抽出するかは、適宜設定することができる。本実施形態では、〔数式7〕〔数式11〕に示したように、32の周波数帯ごとに平均値と標準偏差で2次元化している。
続いて、代表特徴データ照合手段80、特徴ワード照合手段90による検索処理を、図15〜図19のフローチャートを用いて説明する。図15〜図19においては、各変数を以下のように定義する。
[登録特徴ワード]
R:レコード件数(音響データベース40が管理する原音響データの数)
Y(r):レコードr(r=0,…,R−1)の登録特徴ワード数
Fd(r,y):レコードr(r=0,…,R−1)の特徴パターン配列(y=0,…,Y−1)、32ビット
Vd(r,y):レコードr(r=0,…,R−1)の音量データ配列(y=0,…,Y−1)、8ビット
Cd(n,r):レコードr(r=0,…,R−1)における登録特徴データ配列の平均値
Ld(n,r):レコードr(r=0,…,R−1)における登録特徴データ配列の標準偏差
[検索特徴ワード]
X(h):位相番号h(h=0,…,H−1)における検索特徴ワード数
F(h,x):特徴パターン配列(x=0,…,X(h)−1)、32ビット
V(h,x):音量データ配列(x=0,…,X(h)−1)、8ビット
C(n):検索特徴データ配列の平均値
L(n):検索特徴データ配列の標準偏差
[照合変数]
W:照合ワード数(w=0,…,W−1)、照合する登録特徴ワード、検索特徴ワードの数(例.W=6)
U(r):代表特徴データ距離
D(r,y+w,h,x+w):特徴パターンのワード単位不一致ビット数(0以上32以下)
S(r,y,h,x):合算不一致ビット数、照合ワード数W個のワード単位不一致ビット数D(r,y+w,h,x+w)を合算したもの(Σw=0,…,W-1D(r,y+w,h,x+w))
[判定しきい値(事前に設定)]
Mu:代表特徴データ距離U(r)の判定しきい値
M1:合算不一致ビット数S(r,y,ho,x)の判定しきい値
M2:合算不一致ビット数S(r,y,h,x)の判定しきい値
Mw1:ワード単位不一致ビット数D(r,y,ho,x)の判定しきい値
Mw2:ワード単位不一致ビット数D(r,y,h,x)の判定しきい値
判定しきい値Mu、M1、M2、Mw1、Mw2については、以下のようにして、原音響データごとに求めることができる。Muは登録対象の原音響データに対して登録特徴ワードおよび代表登録特徴データを生成してレコードrに登録する際に、原音響データより無作為に数箇所切り出した部分音響データを複数個作成し、各部分音響データに対して検索特徴ワードと代表検索特徴データを作成し、各々後述の数式12に基づいて算出される代表特徴データ距離U(r)を算出して、全てのレコードrについて各々算出される複数の代表特徴データ距離U(r)の最大値+βをMuとして与える。(βは最大値より少し大きめに設定する言う意味で、例えばβ=1)。これにより、少なくとも該当するレコードrに対する代表特徴データ距離U(r)はMuを超えることは無いため、代表特徴データ距離U(r)がMuを超えれば該当しないレコードであると即判断できる。
M1とMw1については、登録特徴ワードと複数の検索特徴ワードの各々と、h=ho固定にして、ワード単位不一致ビット数D(r,y,ho,x)を後述する方法で所定のワード数だけ連続して算出し、それらの総和を基に合算不一致ビット数S(r,y,ho,x)を算出し、この値が最も小さくなるときの最小合算不一致ビット数Smin(r,y,ho,x)を算出するとともに、その時の総和の各要素D(r,y,ho,x)の最大ワード単位不一致ビット数Dmax(r,y,ho,x)を求め、複数の検索特徴ワードごとに求めたSmin(r,y,ho,x)の最大値+βをM1とし、Dmax(r,y,ho,x)の最大値+βをMw1とする。
M2とMw2については、登録特徴ワードと複数の検索特徴ワードの各々と、hを0からH−1の範囲で変化させながら、ワード単位不一致ビット数D(r,y,h,x)を後述する方法で所定のワード数だけ連続して算出し、それらの総和を基に合算不一致ビット数S(r,y,h,x)を算出し、この値が最も小さくなるときの最小合算不一致ビット数Smin(r,y,h,x)を算出するとともに、その時の総和の各要素D(r,y,h,x)の最大ワード単位不一致ビット数Dmax(r,y,h,x)を求め、複数の検索特徴ワードごとに求めたSmin(r,y,h,x)の最大値+βをM2とし、Dmax(r,y,h,x)の最大値+βをMw1とする。
上記のような処理を、コンピュータに専用のプログラムを実行させることにより行い、レコードごとに異なる判定しきい値Mu、M1、M2、Mw1、Mw2を得ることができる。そして、全てのレコードに対して算出された各判定しきい値の最大値を、全てのレコードに共通な判定しきい値として設定する。本実施形態では、Mu=350、M1=70、M2=54、Mw1=20、Mw2=13と与えている。例えば、レコード1がMu=350、M1=60、M2=54、Mw1=18、Mw2=13で、レコード2がMu=300、M1=70、M2=44、Mw1=20、Mw2=12であれば、双方のレコードに共通な判定しきい値として、Mu=350、M1=70、M2=54、Mw1=20、Mw2=13と与える。
図15は、特徴ワード照合手段90による検索特徴ワード群を用いた音響データ検索のフローチャートである。まず、初期設定を行う(S210)。具体的には、適合テーブルSmin(c)=初期値Big2、適合テーブルRmin(c)=−1、適合件数c=0、レコード番号r=0に設定する。初期値Big2は、最小不一致ビット数として取り得る値よりも十分に大きな値であれば良く、事前に設定されることになる。
次に、特徴ワード照合手段90は、代表特徴データ距離U(r)の算出を行う(S211)。具体的には、以下の〔数式12〕に従った処理を実行し、レコードrについての、代表登録特徴データと代表検索特徴データの距離である代表特徴データ距離U(r)を算出する。
〔数式12〕
U(r)=256×[Σn=0,…,31{(Cd(n,r)−C(n))/(Ld(n,r)+L(n))}2]1/2/[Σn=0,…,31{Cd(n,r)/(Ld(n,r)+L(n))}2]1/4/[Σn=0,…,31{(C(n)/(Ld(n,r)+L(n))}2]1/4
上記〔数式12〕では、[]で括った項が3つ存在するが、1番目の[]の平方根を、2番目の[]の4乗根、3番目の[]の4乗根で除したものに正規化のための係数“256”を乗じている。正規化のための係数は、正規化の範囲に合わせて適宜変更することが可能である。なお、上記〔数式12〕において、“Σn=0,…,31”は、n=0から31までnを1ずつ増加させたときの32個分の総和を意味する。[]で括った各項のべき乗根として、具体的に何乗にするかは適宜変更することができるが、本実施形態では、〔数式12〕に示すように平方根、4乗根、4乗根としている。
上記〔数式12〕は、代表検索特徴データと代表登録特徴データとの距離を示すが、 双方の正規化相関係数を基に定義している。具体的には、代表検索特徴データの各要素nを検索特徴データ配列の平均値に対して検索特徴データ配列の標準偏差値と登録特徴データ配列の標準偏差値との和で32個の各要素ごとに除して正規化した各値で定義し、(C(n)/(Ld(n,r)+L(n))とする。同様に、代表登録特徴データの各要素を登録特徴データ配列の平均値に対して検索特徴データ配列の標準偏差値と登録特徴データ配列の標準偏差値との和で32個の各要素ごとに除して正規化した各値で定義し、Cd(n,r)/(Ld(n,r)+L(n))とする。これら、32個の要素どうしの正規化相関係数は、[Σn=0,…,31{(Cd(n,r)−C(n))/(Ld(n,r)+L(n))}2] /[Σn=0,…,31{Cd(n,r)/(Ld(n,r)+L(n))}2]1/2/[Σn=0,…,31{(C(n)/(Ld(n,r)+L(n))}2]1/2で与えられ、−1〜+1の実数値をとる。上記〔数式12〕では、この正規化相関係数値に所定の整数値256を乗算して整数表現にし、かつ整数値の変動範囲を拡大して該当レコードと非該当レコードとの格差をつけるため、平方根をとるようにした。このとき、正規化相関係数値をそのまま使用するか、平方根にするか、4乗根にするかは運用上の設計事項で適宜最適な方法を選択すれば良い。
代表特徴データ距離U(r)は、図14の検索音響データの円と、原音響データの円の距離に相当する。現実には、絞り込み結果として抽出する対象の決定を、図14に示した円と円が交わった場合とするか円と円が所定の距離範囲内である場合とするか等適宜設定することができる。本実施形態では、〔数式12〕により算出された代表特徴データ距離U(r)と判定しきい値との比較により絞り込み対象を決定する。
次に、特徴ワード照合手段90は、算出した代表特徴データ距離U(r)と事前に設定されている判定しきい値Muの比較を行う(S212)。比較の結果、代表特徴データ距離U(r)がしきい値Mu以上である場合は、S250に進み、rをインクリメントして、次のレコードr+1についての処理を行う。代表特徴データ距離U(r)が判定しきい値Mu以上である場合、そのレコードrについての詳細な照合計算は行わないことになる。すなわち、本実施形態では、代表特徴データ距離U(r)の値によって、検索対象の絞込みを行っていることになる。
S212における比較の結果、代表特徴データ距離U(r)が判定しきい値Muより小さい場合は、レコードrに対応付けて登録された登録特徴ワード群と、検索特徴ワード群との照合を行う(S220)。S220における照合の結果、所定の条件を満たすレコードについては、Rmin(c)にそのレコード番号rが与えられて出力される。このS220の処理については後述する。
Rmin(c)が得られたら、Rmin(c)が0以上かどうかを判断する(S230)。Rmin(c)が0以上の場合、レコードが適合したと判断して、適合件数cに1加算する処理を行う(S240)。Rmin(c)が0未満の場合、レコードが適合しなかったと判断して、適合件数cの加算は行わない。詳しくは後述するが、S220において、Rmin(c)に0未満の値を初期値として設定しておき、レコードが適合すると判断された場合に0以上の値であるレコード番号rをRmin(c)に与える。このため、S240においては、Rmin(c)が0以上かどうかを判断することによりレコードの適合を判断するのである。
次に、レコードを特定する変数rをインクリメント、すなわち1だけ増加する(S250)。そして、レコードを特定する変数rが音響データベース40内の総レコード数Rに達したかどうかを判断し(S260)、達していない場合は、S220に戻って、次のレコードrについて照合処理を行う。各レコードrについて処理を実行し、レコードrが総レコード数Rに達したら、すなわちR個全ての総レコードに対する処理を終えたら、適合テーブルRmin(c)を、適合テーブルSmin(c)の値に基づいて昇順ソートし、適合件数cとともに一覧出力する(S270)。
次に、図15のS220におけるレコードrの照合処理の詳細について図16のフローチャートを用いて説明する。まず、初期設定を行う(S221)。具体的には、適合テーブルSmin(c)=初期値Big2、適合テーブルRmin(c)=−1、検索特徴ワードを特定する変数x=0、位相を特定する変数h=ho、登録特徴ワードを特定する変数y=0に設定する。hoとしては、H=5の場合、ho=0,1,2,3,4のいずれかに設定することができるが、通常演算処理が最も少ないho=0に設定する。続いて、合算不一致ビット数S(r,y,ho,x)の算出を行う(S222)。合算不一致ビット数S(r,y,ho,x)が得られたら、合算不一致ビット数S(r,y,ho,x)が、判定しきい値M1以下であるかどうかを判断する(S223)。判定しきい値M1の値は、適宜設定することが可能であり、本実施形態では事前に設定されている。合算不一致ビット数S(r,y,ho,x)が判定しきい値M1より大きい場合、S225に進み、xをインクリメントして、次の検索特徴ワードx+1についての処理を行う。合算不一致ビット数S(r,y,ho,x)が判定しきい値M1以下である場合、特定された(x,y)における登録特徴ワードyと、検索特徴ワードxとの照合を行う(S224)。
次に、変数xをインクリメントする(S225)。そして、xとX(h)の比較を行う(S226)。比較の結果、xがX(h)に達していない場合は、S222に戻って次の検索特徴ワードx+1についての処理を行う。比較の結果、xがX(h)に達している場合は、x=0としてhをインクリメントして、S222〜S227の処理を繰り返し、X(h)がHになったら、x=0としてyをインクリメントする(S227)。そして、yとY(r)の比較を行う(S228)。比較の結果、yがY(r)に達していない場合は、S222に戻って次の登録特徴ワードy+1についての処理を行う。
比較の結果、yがY(r)に達している場合は、Y(r)個全ての登録特徴ワードに対する処理を終えたことになるので、その時点における適合テーブルRmin(c)、適合テーブルSmin(c)を出力する。この適合テーブルRmin(c)、適合テーブルSmin(c)が図15のS220において得られることになる。
次に、図16のS222における合算不一致ビット数S(r,y,ho,x)の算出処理の詳細について図17のフローチャートを用いて説明する。まず、初期設定を行う(S281)。具体的には、合算不一致ビット数S(r,y,ho,x)=0、特徴ワードの照合個数を示す変数w=0に設定する。初期設定後、登録特徴ワードの音量データVd(r,y+w)、検索特徴ワードの音量データV(h,x+w)がともに0より大きいという条件を満たすかどうかを判断する(S282)。登録特徴ワードの音量データVd(r,y+w)、検索特徴ワードの音量データV(h,x+w)は、それぞれ原音響データ、検索音響データに対して〔数式5〕、〔数式9〕に従った処理を実行し、算出された“Vol”、“Vol(h)”を正規化したものである。S282における判断の結果、登録特徴ワードの音量データVd(r,y+w)、検索特徴ワードの音量データV(z,h,x+w)がともに0より大きいという条件を満たす場合に限り、登録特徴ワード1つと検索特徴ワード1つを比較した場合の、不一致ビット数であるワード単位不一致ビット数D(r,y+w,ho,x+w)を算出する(S283)。
次に、ワード単位不一致ビット数D(r,y+w,ho,x+w)が判定しきい値Mw1以下であるかどうかを判断する(S284)。判定しきい値Mw1の値は、適宜設定することが可能であり、本実施形態では事前に設定されている。S284における判断の結果、ワード単位不一致ビット数D(r,y+w,ho,x+w)が判定しきい値Mw1以下である場合に限り、ワード単位不一致ビット数D(r,y+w,ho,x+w)を合算不一致ビット数S(r,y,ho,x)に加算する処理を行う(S285)。
S285においては、特徴ワードの照合個数を示す変数wをインクリメントする処理も行う。そして、特徴ワードの照合個数を示す変数wが所定数Wに達したかどうかを判断し(S286)、達していない場合は、S282に戻って、次の特徴ワードについて処理を行う。各特徴ワードについて処理を実行し、変数wが所定数Wに達したら、その時点における合算不一致ビット数S(r,y,ho,x)を、あるx,h(=0),yについての合算不一致ビット数S(r,y,ho,x)として出力する。この合算不一致ビット数S(r,y,ho,x)が図16のS222において得られることになる。なお、S282、S284において条件を満たさないと判断された場合には、合算不一致ビット数の算出エラーが出力される。
次に、図16のS224におけるレコード内照合処理の詳細について図18のフローチャートを用いて説明する。まず、初期設定を行う(S321)。位相を特定する変数h=0に設定する。続いて、合算不一致ビット数S(r,y,h,x)の算出を行う(S322)。合算不一致ビット数S(r,y,h,x)が得られたら、合算不一致ビット数S(r,y,h,x)が、判定しきい値M2以下であるかどうかを判断する(S323)。判定しきい値M2の値は、適宜設定することが可能であり、本実施形態では事前に設定されている。合算不一致ビット数S(r,y,h,x)が判定しきい値M2以下である場合、合算不一致ビット数S(r,y,h,x)が、合算不一致ビット数最小値Smin(c)より小さいかどうかを判断する(S324)。
合算不一致ビット数S(r,y,h,x)が合算不一致ビット数最小値Smin(c)より小さい場合に限り、rの値を適合テーブルRmin(c)にセットし、S(r,y,h,x)の値を適合テーブルSmin(c)にセットする処理を行う(S325)。次に、変数hをインクリメントする(S326)。そして、hとHの比較を行う(S327)。比較の結果、hがHに達していない場合は、S322に戻って次の位相番号h+1についての処理を行う。
比較の結果、hがHに達している場合は、H個全ての位相に対する処理を終えたことになるので、その時点における適合テーブルRmin(c)、適合テーブルSmin(c)を出力する。この適合テーブルRmin(c)、適合テーブルSmin(c)が図16のS224において得られることになる。
次に、図18のS322における合算不一致ビット数S(r,y,h,x)の算出処理の詳細について図19のフローチャートを用いて説明する。まず、初期設定を行う(S381)。具体的には、合算不一致ビット数S(r,y,h,x)=0、特徴ワードの照合個数を示す変数w=0に設定する。初期設定後、登録特徴ワードの音量データVd(r,y+w)、検索特徴ワードの音量データV(h,x+w)がともに0より大きいという条件を満たすかどうかを判断する(S382)。S382における判断の結果、登録特徴ワードの音量データVd(r,y+w)、検索特徴ワードの音量データV(z,h,x+w)がともに0より大きいという条件を満たす場合に限り、登録特徴ワード1つと検索特徴ワード1つを比較した場合の、不一致ビット数であるワード単位不一致ビット数D(r,y+w,h,x+w)を算出する(S383)。
次に、ワード単位不一致ビット数D(r,y+w,h,x+w)が判定しきい値Mw2以下であるかどうかを判断する(S384)。判定しきい値Mw2の値は、適宜設定することが可能であり、本実施形態では事前に設定されている。S384における判断の結果、ワード単位不一致ビット数D(r,y+w,h,x+w)が判定しきい値Mw2以下である場合に限り、ワード単位不一致ビット数D(r,y+w,h,x+w)を合算不一致ビット数S(r,y,h,x)に加算する処理を行う(S385)。S385においては、特徴ワードの照合個数を示す変数wをインクリメントする処理も行う。そして、特徴ワードの照合個数を示す変数wが所定数Wに達したかどうかを判断し(S386)、達していない場合は、S382に戻って、次の特徴ワードについて処理を行う。各特徴ワードについて処理を実行し、変数wが所定数Wに達したら、その時点における合算不一致ビット数S(r,y,h,x)を、あるx,h,yについての合算不一致ビット数S(r,y,h,x)として出力する。この合算不一致ビット数S(r,y,h,x)が図18のS322において得られることになる。なお、S382、S384において条件を満たさないと判断された場合には、合算不一致ビット数の算出エラーが出力される。
<3.3.ワード単位不一致ビット数の算出>
図17のS283、図19のS383におけるワード単位不一致ビット数D(r,y+w,h,x+w)の算出について説明する。ワード単位不一致ビット数D(r,y+w,h,x+w)の算出については、利用者により設定される音量判定モードにより具体的な処理内容が異なる。音量判定モードとしては、Off、Weight、Match、Bothの4つが存在する。
<3.3.1.音量判定モード“Off”>
音量判定モード“Off”は重みを付加しないモードであり、音量判定モード“Off”が設定されている場合、ワード単位不一致ビット数D(r,y+w,h,x+w)は、そのままワード単位の相違の程度を示すワード単位相違度D(r,y+w,h,x+w)となる。音量判定モード“Off”の場合、ワード単位不一致ビット数D(r,y+w,h,x+w)=0として初期値を設定した後、Fd(r,y+w)とF(h,x+w)の32ビットを対応するビット単位に順次比較し、ビットが異なるごとに、D(r,y+w,h,x+w)に1加算していく。登録特徴ワード群、検索特徴ワード群のいずれにおいても、特徴ワードの特徴パターンは同様の規則で作成され、低周波成分をLSB、高周波成分をMSBとした32ビットの構成であるので、照合はこれらの各ビット値が一致するかどうかにより行うことができる。
<3.3.2.音量判定モード“Weight”>
音量判定モード“Weight”は重みを付加するモードであり、音量判定モード“Weight” が設定されている場合、ワード単位不一致ビット数D(r,y+w,h,x+w)=0として初期値を設定した後、Fd(r,y+w)とF(h,x+w)の32ビットを対応するビット単位に順次比較する。比較の結果に基づき、以下の〔数式13〕に従った処理を実行して、D(r,y+w,h,x+w)の値を定める。この結果、D(y+w,z,h,x+w)はワード単位不一致ビット数ではなく、音量データを加味したワード単位の相違の程度を示すワード単位相違度となる。このモードは、登録特徴ワードと検索特徴ワードとの照合の際、検索特徴ワードの基礎となる検索音響データがアナログ変換などの信号処理を伴っていて、原音響データと音量の相対変化と音量の絶対値の双方が異なる場合に適切な照合結果を与える。
〔数式13〕
Fd(r,y+w)側がビット1で、F(h,x+w)側がビット0の場合、
D(r,y+w,h,x+w)←D(r,y+w,h,x+w)+Vd(r,y+w)・2/{Vd(r,y+w)+V(h,x+w)}
Fd(r,y+w)側がビット0で、F(h,x+w)側がビット1の場合、
D(r,y+w,h,x+w)←D(r,y+w,h,x+w)+V(h,x+w)・2/{Vd(r,y+w)+V(h,x+w)}
<3.3.3.音量判定モード“Match”>
音量判定モード“Match”が設定されている場合、まず、音量判定モード“Off”の場合の処理を行って、D(r,y+w,h,x+w)を得る。そして、以下の〔数式14〕に従った処理を実行することにより、重みを乗算してD(r,y+w,h,x+w)の値を定める。この結果、D(y+w,z,h,x+w)はワード単位不一致ビット数ではなく、音量データの変動パターンの相違分を加味したワード単位の相違の程度を示すワード単位相違度となる。このモードは、登録特徴ワードと検索特徴ワードとの照合の際、検索特徴ワードの基礎となる検索音響データが各種データ圧縮などの信号処理を伴っていて、原音響データと音量の相対変化にはあまり相違がないが、絶対値が異なる場合に適切な照合結果を与える。本実施形態では本モードが最も推奨される。
〔数式14〕
Vd(r,y+w)・Vd(r,y+w−1)>V(h,x+w)・V(h,x+w−1)の場合、
D(r,y+w,h,x+w)←D(r,y+w,h,x+w)・Vd(r,y+w)・Vd(r,y+w−1)/{V(h,x+w)・V(h,x+w−1)}
Vd(r,y+w)・Vd(r,y+w−1)<V(h,x+w)・V(h,x+w−1)の場合、
D(r,y+w,h,x+w)←D(r,y+w,h,x+w)・V(h,x+w)・V(h,x+w−1)/{Vd(r,y+w)・Vd(r,y+w−1)}
なお、w=0の場合、上記〔数式14〕において、Vd(r,y+w−1)=Vd(r,y+w)およびV(h,x+w−1)=V(h,x+w)とする。
<3.3.4.音量判定モード“Both”>
音量判定モード“Both”が設定されている場合、まず、音量判定モード“Weight”の場合の処理を行って、D(r,y+w,h,x+w)を得る。そして、以下の〔数式15〕に従った処理を実行することにより、重みを乗算してD(r,y+w,h,x+w)の値を定める。この結果、D(y+w,z,h,x+w)はワード単位不一致ビット数ではなく、音量データを加味したワード単位の相違の程度を示すワード単位相違度となる。このモードは、登録特徴ワードと検索特徴ワードとの照合の際、検索特徴ワードの基礎となる検索音響データが波形歪みを伴う高い圧縮率のデータ圧縮やアナログ変換などの信号処理を伴っていて、原音響データと音量の相対変化と音量の絶対値の双方が顕著に異なる場合に適切な照合結果を与える。
〔数式15〕
Vd(r,y+w)・V(h,x+w−1)>V(h,x+w)・Vd(r,y+w−1)の場合、
D(r,y+w,h,x+w)←D(r,y+w,h,x+w)・Vd(r,y+w)・V(h,x+w−1)/{V(h,x+w)・Vd(r,y+w−1)}
Vd(r,y+w)・V(h,x+w−1)<V(h,x+w)・Vd(r,y+w−1)の場合、
D(r,y+w,h,x+w)←D(r,y+w,h,x+w)・V(h,x+w)・Vd(r,y+w−1)/{Vd(r,y+w)・V(h,x+w−1)}
なお、w=0の場合、上記〔数式15〕において、Vd(r,y+w−1)=Vd(r,y+w)およびV(h,x+w−1)=V(h,x+w)とする。
音量判定モード“Off”以外の場合、D(r,y+w,h,x+w)はワード単位不一致ビット数ではなく、音量データを加味したワード単位の相違の程度を示すワード単位相違度となるため、図16、図17におけるS(r,y,h,x)は合算不一致ビット数ではなく、合算相違度を表すことになる。また、図15、図16におけるSminは最小不一致ビット数ではなく、最小相違度を表すことになる。
結局、図15のS270において適合テーブルRmin(c)が、適合テーブルSmin(c)の値に基づいて昇順ソートされ、適合件数cとともに一覧出力されるので、これが検索音響データを用いて検索された検索結果となる。出力された一覧の中から1つが選択された場合には、情報出力手段100は、そのレコードを音響データベース40から抽出する。その際、原音響データの取得指示が行われると、情報出力手段100は、レコードに記録されたファイル名から記憶装置内に格納されている当該原音響データに関連する関連情報や当該原音響データを特定するIDを出力する。
以上、本発明の好適な実施形態について説明したが、本発明は、上記実施形態に限定されず種々の変形が可能である。上記実施形態においては、様々な処理が組み合わされて、全体として処理負荷を抑えて、的確な検索を行うことを可能としているが、複数の処理の組み合わせのうち1以上の処理を省略することが可能である。この場合、処理負荷が若干増えたり、検索精度が若干低下したりすることになるが、本発明の効果は充分発揮することができる。例えば、上記実施形態では、照合範囲決定手段70は、図13(a)〜(e)に示した全ての場合に対応して照合範囲を決定するようにしたが、図13(a)〜(e)のいずれか1つ以上に対応した処理を実行するようにしても良い。できれば、図13(a)(b)の2つの処理を含むようにするのが望ましい。
また、上記実施形態では、図16、図18に示したように、特徴ワード照合手段90は、位相hを特定した状態で第1の照合を行い、第1の照合の結果、相違の程度である相違度が、所定の判定しきい値M1より小さい場合に、位相hを変更しながら行う第2の照合を実行するようにしたが、このような2段階の照合処理とせずに、位相を変化させる第2の照合のみを行うようにしても良い。第2の照合のみの場合は、処理負荷が増加することになるが、照合精度は変化しないため、代表特徴データ照合手段80による照合対象の絞り込みにより、本発明の効果は得ることができる。
また、上記実施形態では、図16、図17に示したように、特徴ワード照合手段90は、W個のワード単位不一致ビット数D(r,y+w,ho,x+w)が全て判定しきい値Mw1より小さい場合に、合算不一致ビット数S(r,y,ho,x)が、判定しきい値M1以下であるかどうかを判断し、図18、図19に示したように、特徴ワード照合手段90は、W個のワード単位不一致ビット数D(r,y+w,h,x+w)が全て判定しきい値Mw2より小さい場合に、合算不一致ビット数S(r,y,h,x)が、判定しきい値M2以下であるかどうかを判断するようにしたが、いずれの場合も、ワード単位不一致ビット数Dが、判定しきい値Mw1、Mw2以下であるかどうかの判定を省略しても良い。ワード単位不一致ビット数Dの判定を省略した場合、個々の特徴ワードの差が大きいものが含まれる可能性があるが、全体として相違度M1、M2以下であれば、両者が類似していることの許容範囲とすることもできるためである。また、W個のワード単位不一致ビット数D(r,y+w,ho,x+w)が全て判定しきい値Mw1より小さいかどうかの判断、および合算不一致ビット数S(r,y,ho,x)が、判定しきい値M1以下であるかどうかの判断を省略し、W個のワード単位不一致ビット数D(r,y+w,h,x+w)が全て判定しきい値Mw2より小さく、合算不一致ビット数S(r,y,h,x)が、判定しきい値M2以下であるかどうかだけを判断するようにしても良い。
また、上記実施形態では、照合範囲決定手段70により登録特徴ワードの照合範囲を決定する処理を行ったが、処理負荷を特に抑える必要がない場合は、この処理は必ずしも行う必要はない。
また、上記実施形態では、統合後の周波数バンドの数をn=0〜31までの32バンドとしたが、状況に応じて適宜増減することが可能である。
また、上記実施形態では、音量判定モードとして4つのモードを選択可能としたが、上記4つのモードのうち、2つまたは3つのモードが選択可能に設定されていても良いし、1つのモードが固定的に設定されていても良い。
また、上記実施形態では、著作権上の問題から原音響データを音響データベースに登録しない場合について説明したが、原音響データそのものを関連情報の一部として音響データベースに登録しておき、検索の結果、抽出されたレコードに対応する原音響データを取得するようにしても良い。