以下、本発明の実施形態について図面を参照して詳細に説明する。
(1.関連情報データベースの準備)
まず、関連情報データベースに登録する特徴ワードの生成を、登録特徴ワード生成装置により行う。図1は、登録特徴ワード生成装置の構成を示す機能ブロック図である。図1において、10は音響フレーム読込手段、20は特徴ワード生成手段、30は特徴ワード登録手段、40は関連情報データベースである。
音響フレーム読込手段10は、ある音を素材として記録したデジタルの音響信号から所定数のサンプルを音響フレームとして順次読み込む機能を有している。特徴ワード生成手段20は、読み込んだ音響フレームを利用して、周波数解析を行い、その素材についての音響信号の特徴を表現した特徴ワードを生成する機能を有している。この特徴ワードは、ある音響信号の特徴を少ないデータ量で表現したものであり、特徴ベクトルとも呼ばれるものである。特徴ワード登録手段30は、生成した特徴ワードを、元の音響信号が表す素材に関連する関連情報、および音響信号の素材を特定するためのIDと対応付けて登録特徴ワードとして関連情報データベース40に登録する機能を有している。ここで、素材とは、音響信号に記録されている楽曲や音声を示すものである。図1に示した各構成手段は、現実にはコンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。
次に、図1に示した登録特徴ワード生成装置の処理動作について図2のフローチャートに従って説明する。まず、登録特徴ワード生成装置は、音響データファイルからデジタルの音響信号を読み込む。このデジタル音響信号は、アナログ音響信号に対して、PCM等の手法によりサンプリングを行うことにより得られたものである。登録特徴ワード生成装置では、音響フレーム読込手段10が、音響信号ファイルから、所定数のサンプルを1音響フレームとして読み込む。音響フレーム読込手段10が読み込む1音響フレームのサンプル数は、適宜設定することができるが、サンプリング周波数が44.1kHzの場合、4096サンプル程度とすることが望ましい。これは、約0.092秒に相当する。ただし、後述する周波数変換におけるハニング窓関数の利用により、値が減少するサンプルを考慮して、音響フレームは、所定数分のサンプルを重複させて読み込むことにしている。本実施形態では、音響フレームの区間長のちょうど半分となる2048サンプルを重複させている。したがって、先頭の音響フレームはサンプル1〜4096、2番目の音響フレームはサンプル2049〜6144、3番目の音響フレームはサンプル4097〜8192というように、順次読み込まれていくことになる。
続いて、周波数変換手段20は、読み込んだ各音響フレームに対して、周波数変換を行って、その音響フレームのスペクトルであるフレームスペクトルを得る(S101)。具体的には、音響フレーム読込手段10が読み込んだ音響フレームについて、窓関数を利用して周波数変換を行う。周波数変換としては、フーリエ変換、ウェーブレット変換その他公知の種々の手法を用いることができる。本実施形態では、フーリエ変換を用いた場合を例にとって説明する。
ここで、本実施形態においてフーリエ変換に利用する窓関数について説明しておく。一般に、所定の信号に対してフーリエ変換を行う場合、信号を所定の長さに区切って行う必要があるが、この場合、所定長さの信号に対してそのままフーリエ変換を行うと、高域部に擬似成分が発生する。そこで、一般にフーリエ変換を行う場合には、ハニング窓と呼ばれる窓関数を用いて、信号の値を変化させた後、変化後の値に対してフーリエ変換を実行する。
S101においてフーリエ変換を行う場合、具体的には、サンプルiにおける値X(i)(i=0,…,N−1)に対して、ハニング窓関数W(i)を用いて、以下の〔数式1〕の第1式、第2式に従った処理を行い、各周波数における実部A(j)、虚部B(j)を得る。
続いて、スペクトル成分の算出を行う(S102)。具体的には、以下の〔数式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異なることになる。
続いて、スペクトル成分の間引き処理を行う(S103)。上記の周波数変換により、22kHz付近までのスペクトル成分が得られるが、本実施形態における特徴ワードの生成には、4kHz付近より低いものを用いる。これは、携帯電話の音声録音で対応できるレベルに対応させるためである。したがって、j=0〜2047の周波数成分のうち、4kHz付近より高いj=385〜2047については利用しない。また、音の特徴の抽出が困難なj=0〜32の低周波成分についても利用しない。すなわち、本実施形態では、j=33〜384の周波数成分を用いる。具体的には、以下の〔数式2〕に従った処理を実行し、11周波数成分単位のP(n)に間引くことになる。
〔数式2〕
P(0)=(E33+E34+…+E43)1/4
P(1)=(E44+E45+…+E54)1/4
:
:
P(31)=(E374+E375+…+E384)1/4
上記〔数式2〕により、j=33〜384の352の周波数成分が、n=0〜31の32の周波数成分に間引かれることになる。上記処理は、各音響フレームについて行われ、各音響フレームについて、32個の周波数成分が得られることになる。
次に、各音響フレームについて、直前の音響フレームのスペクトル成分との差分を算出する(S104)。上記S101〜S103の処理は、各音響フレームに対して順次行われる。このS104におけるフレーム間の処理は、各音響フレームについてS103までの処理を行った結果得られたP(0)〜P(31)を利用するものである。具体的には、以下の〔数式3〕に従った処理を行い、差分Dn(t)を得る。
〔数式3〕
Dn(t)=|Pn(t)−Pn(t−1)|、n=0,…,31
このように、隣接する音響フレーム間の差分を算出するのは、音響信号の信号レベルが大きく変化するような箇所についても、信号レベルの大小に影響されず、音響信号の特徴を反映した特徴ワードを生成するためである。
音響フレーム間の差分Dn(t)がT個(本実施形態では11個)得られたら、そのT個分の総和を求める(S106)。すなわち、以下の〔数式4〕に従った処理を行い、差分の総和Snを得る。
〔数式4〕
Sn=Σt=0,…,T-1Dn(t)
続いて、この差分総和Snが音響フレームの個数T以上であるかどうかの判定を行う(S107)。ここで、差分総和SnがTより小さい場合は、T個の音響フレームに相当する区間において音が小さく、無音である可能性が高いため、そのフレーム群についての特徴ワードの生成は中止し、後続のフレーム群についての処理に移行する(S101)。逆に、差分総和SnがT以上である場合は、音が存在する可能性が高いため、特徴ワードの生成を続行する。
特徴ワードの生成を続行する場合、上記〔数式4〕により得られたSnの二値化処理を行う(S108)。具体的には、まず、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バンドの位置で分けたのは、実験の結果、この位置で分けたとき検索精度が最も高かったためである。S108における処理により、各nについてのSnが1ビットで表現可能となる。そして、n=0をLSB、n=31をMSBとして32ビットの特徴ワードを得る。
以上の処理を各音響フレームに対して実行することにより、その音響信号の特徴ワードが生成されることになる。例えば、上記の例のように、サンプリング周波数44.1kHz、1音響フレームが4096サンプル、音響フレームを2048サンプルづつ重複させた場合、1特徴ワードは約0.506秒となり、1分の音響信号からは、約120個の特徴ワードが生成されることになる。
上記のようにして、各音響信号について特徴ワードを生成したら、各音響信号について、その音響信号の素材についての関連情報、IDと特徴ワードとを対応付けて関連情報データベース40に登録する。関連情報としては、その素材に関連する情報であれば、どのようなものでも良いが、例えば、その素材が楽曲であれば、曲名や演奏者名、その素材がCM音声であれば、そのスポンサー企業の名前やURL等を用いることができる。
ここで、上記特徴ワードの生成処理を、図3の概念図を用いて説明する。図3(a)は、特徴ワードの生成対象とする音響信号の波形を示す図である。登録特徴ワード生成装置では、音響信号を音響フレーム単位で読み取っていくが、図3(b)に示すように、読取範囲を重複させて読み取らせる。そして、各音響フレームに対して、図3(c)に示すように32バンドに分離する。これは、上記S101〜S103に相当する。次に、図3(d)に示すように分離成分の差分処理を行う。これは、上記S104に相当する。次に、図3(e)に示すように32バンド差分成分の総和処理を行う。これは、上記S106に相当する。次に、図3(f)に示すように32バンド総和成分の二値化処理を行う。これは、上記S108に相当する。図3に示すように、音響信号から順次音響フレームを読み込み、T個の音響フレーム単位で1つの特徴ワードを生成していく処理が行われることになる。
(2.音響信号の検索)
次に、本発明に係る音響信号検索装置について説明する。図1は、本発明に係る音響信号検索装置の構成図である。図1において、50はマイクロフォン、11は音響フレーム読込手段、21は特徴ワード生成手段、60は特徴ワード照合手段、70は関連情報出力手段である。
マイクロフォン50は、携帯電話等で用いられている汎用的なマイクロフォンである。マイクロフォン50は、低周波成分や高周波成分を取り込む性能を持っている必要はなく、上記のような400Hz弱から4kHz強(j=33〜384に対応)に相当する周波数感度を有していれば良い。音響フレーム読込手段11は、音響フレーム読込手段10と同様、デジタルの音響信号から所定数のサンプルを音響フレームとして順次読み込む機能を有している。ただし、音響フレーム読込手段11は、マイクロフォン50で取り込んだアナログ音響信号をデジタル化する機能も有している。本実施形態では、マイクロフォン50と音響フレーム読込手段11で、音源より発信されている音声を音響信号として獲得する音響信号獲得手段としての役割を果たすことになる。
特徴ワード生成手段21は、特徴ワード生成手段20と同様、読み込んだ音響フレームを利用して、周波数解析を行い、その素材についての音響信号の特徴を表現した特徴ワードを生成する機能を有している。ただし、後述するように、特徴ワード生成手段20よりも多くの特徴ワードを生成するようにしている。特徴ワード照合手段60は、生成した特徴ワードと、関連情報データベース40に登録されている登録特徴ワードとの照合を行う機能を有している。関連情報出力手段70は、特徴ワード照合手段60による照合の結果、録音により得られた音響信号の特徴に最も類似する素材についての関連情報を、関連情報データベース40から抽出して出力する機能を有している。図4に示した各構成手段は、現実には演算処理装置を備えた機器に専用のプログラムを搭載することにより実現される。好ましい例としては、演算処理機能を備えている携帯電話機が、専用のプログラムに従って各手段の内容を実行する場合が挙げられる。
続いて、図4に示した装置の処理動作について説明する。まず、利用者が流れている音についての関連情報を知りたいと思った場合、音響信号検索装置に対して起動の指示を行う。これは、例えば、音響信号検索装置を携帯電話機等の携帯端末で実現している場合は、所定のボタンを操作することにより実行できる。音響信号検索装置は、指示が入力されると、マイクロフォン50から流れている音楽を取り込み、録音してデジタル音響信号として入力する。具体的には、マイクロフォン50から入力される音声を、A/D変換器によりデジタル化する処理を行うことになる。
次に、音響フレーム読込手段11が、マイクロフォン50から取り込んでデジタル化した音響信号から、それぞれ所定数のサンプルを1音響フレームとして読み込む。この処理は、登録特徴ワード生成装置が行ったのと同様に行われる。すなわち、1音響フレームのサンプル数は、サンプリング周波数が44.1kHzの場合、4096サンプルとする。また、音響フレームは、2048サンプルを重複させて読み込むことにしている。
ここから特徴ワードの生成までの処理は、図5のフローチャートに従ったものとなる。図5のフローチャートは、登録特徴ワード生成装置についての図2のフローチャートとほぼ同様のものとなっている。周波数変換手段21は、読み込んだ各音響フレームに対して、周波数変換を行って、その音響フレームのスペクトルであるフレームスペクトルを得る(S201)。登録特徴ワード生成装置と同様、周波数変換としては、フーリエ変換、ウェーブレット変換その他公知の種々の手法を用いることができるが、特徴ワード生成装置の処理と合わせる必要があるため、本実施形態では、フーリエ変換を用いる。
さらに、S202〜S208において、上記〔数式2〕〜上記〔数式4〕に従った処理を行ってSnを得た後、32ビットの特徴ワードを生成する。ただし、音響信号検索装置では、登録特徴ワード生成装置に比べて5倍の特徴ワードを生成する。音響信号検索装置においては、流れている音声を録音して音響信号を取得するため、録音開始のタイミングにより、位置ずれが生じることがある。登録特徴ワード生成装置において生成した手法でも、11個の音響フレームを平均化して生成しているため、比較的位置ずれには強い。しかし、リズム変化が激しい音楽素材の場合、特徴ワードの生成単位である11音響フレームの、ほぼ半分である5音響フレーム程度ずれると、顕著に異なる特徴ワードが生成され、誤った情報が検索されてしまう。そのため、1解析単位である11音響フレームの範囲内で2フレームずつ遅らせて複数の特徴ワードを生成して、関連情報データベース40内の登録特徴ワードと照合するようにする。
具体的には、登録特徴ワード生成装置では、フレーム1〜フレーム11までで1つの特徴ワードを生成するが、音響信号検索装置では、フレーム1〜フレーム11で特徴ワードを生成するとともに、2フレーム分、4フレーム分、6フレーム分、8フレーム分ずらしたフレーム群からも特徴ワードを生成する。すなわち、フレーム3〜フレーム13、フレーム5〜フレーム15、フレーム7〜フレーム17、フレーム9〜フレーム19においても特徴ワードを生成する。
本実施形態では、利用者に3秒程度録音を行わせるようにしている。これは、あまり長すぎると、利用者が作業をわずらわしく感じるためであり、短すぎると、照合に必要な特徴ワードが生成できない可能性があるためである。上述のように、本実施形態の場合、1特徴ワードは約0.506秒であるため、3秒程度録音することにより、6個の特徴ワードが生成される。この6個の特徴ワードを1セットとする。ただし、上述のように、2〜8フレームずらした特徴ワードを生成するため、全部で30個の特徴ワードが1セットとして生成されることになる。
続いて、特徴ワード照合手段60が、特徴ワード生成手段21により生成された特徴ワードと、関連情報データベース40に登録された特徴ワードとの照合を行う。ここで、関連情報データベース40に登録された情報の一例を図6(a)に示す。図6(a)に示すように、関連情報データベース40には、音響素材を特定するIDである素材IDと、登録特徴ワードが対応付けて登録されている。実際には、音響素材に対応する関連情報も登録されているが、図6(a)においては省略している。
まず、ずらし0グループの6個の特徴ワード01〜06のうち、先頭の特徴ワード01を抽出し、この特徴ワード01と、関連情報データベース40に登録された全ての特徴ワードとの照合を行う。生成した特徴ワードと、関連情報データベース40内の登録特徴ワードはともに同様の規則で作成され、低周波成分をLSB、高周波成分をMSBとした32ビットの構成であるので、照合はこれらの各ビット値が一致するかどうかにより行うことができる。特にコンピュータが処理し易い8ビットの倍数単位であるため、高速な照合が可能である。
そして、値が不一致となるビット数が最小となる場合のビット数を各素材ごとに記録していく、同様にずらし2グループ〜ずらし8グループの先頭の特徴ワード21〜特徴ワード81についてもデータベース内の特徴ワードとの照合を行い、値が不一致となるビット数が最小となる場合のビット数を各素材ごとに記録していく。この結果、図6(b)に示すように、各素材について、ずらしグループ別の不一致ビット数が得られることになる。
そして、この最小ビット数が、あらかじめ定めた閾値より小さい場合は、その最小ビット数が記録された素材のレコードのみを候補レコードとして抽出し、2番目の特徴ワードの照合対象とする。
次に、ずらし2グループから、2番目の特徴ワード02を抽出し、この特徴ワード02と、先頭の特徴ワードにより絞り込まれた候補レコードについての全ての登録特徴ワードとの照合を行う。そして、値が不一致となるビット数が最小となる場合のビット数を各素材(候補レコード)ごとに記録していく、同様にずらし2グループ〜ずらし8グループの先頭の特徴ワード22〜特徴ワード82についても絞り込まれた素材の登録特徴ワードとの照合を行い、値が不一致となるビット数が最小となる場合のビット数を各素材単位で記録していく。そして、この最小ビット数が、あらかじめ定めた閾値より小さい場合は、その最小ビット数が記録された素材のレコードのみを新たな候補レコードとして抽出し、3番目の特徴ワードの照合対象とする。
以上のようにして、6番目の特徴ワード06〜特徴ワード86と、絞り込まれた素材の登録特徴ワードとの照合までを行っていく。ただし、途中で素材が1つに絞り込まれた場合には、その素材を適合音響素材として決定する。適合音響素材が決定されたら、関連情報出力手段70が、その関連情報を抽出し、音響信号検索装置が備える表示装置等に出力する。
以上のようにして、流れている音を録音することにより、流れている音に関連した情報を抽出することができる。検索装置を携帯電話機で実現した場合には、関連情報をその液晶画面に表示させることができる。
また、ネットワーク接続機能を有する携帯電話機では、URLを利用して他のコンピュータにアクセスすることが可能であるが、本発明の装置で取得する関連情報として、アドレス情報であるURLをデータベースに記録しておき、関連情報としてURLを取得した際に、上記ネットワーク接続機能を利用すれば、流れている音に対応したサイトにアクセスすることが可能となる。ここで、ネットワーク接続機能を有する音響信号検索装置の機能ブロック図を図7に示す。図7において、80はネットワークアクセス部、100はネットワーク、200はサイトである。
ネットワークアクセス部80は、関連情報抽出手段70が関連情報として抽出したアドレス情報を用いて、そのアドレス情報に対応するサイト200に、ネットワーク100を介してアクセスする機能を有している。ネットワークアクセス部80は、アドレス情報を取得してネットワーク上のサイトにアクセスするWebブラウザにより実現される。図7に示した装置によれば、例えば、関連情報データベース40にライオンの鳴き声から作成した特徴ワードと、ライオンの情報を有するサイトのURLとを対応付けて記録しておき、利用者が動物園などでライオンの鳴き声を録音するだけで、携帯電話機からライオンの情報を有するサイト200にアクセスすることになる。
(3.電子透かしによる情報埋め込みとの組み合わせ)
本発明に係る音響信号検索装置は、付加情報を電子透かしとして音響信号に埋め込む手法と組み合わせることにより、関連情報抽出の精度を高めることを可能としている。ここで、電子透かしの埋め込みおよび抽出を組み合わせた場合の音響信号検索装置の機能ブロック図を図8に示す。図8においては、図7に示したものに、さらに音響信号再生装置500と埋込情報抽出部90を追加している。音響信号再生装置は、付加情報を埋め込んだ音響信号を再生するためのものである。これは、デジタル音響信号を再生可能な市販の音楽プレーヤを採用することができる。埋込情報抽出部90は、デジタル音響信号から、埋め込まれている付加情報を抽出する機能を有している。この埋込情報抽出部90の処理については、後述する。図8に示した装置によれば、埋め込み情報抽出部が付加情報を抽出するので、この付加情報を事前に関連情報データベース40にも登録しておくことにより、特徴ワードの照合により得られた情報をさらに絞り込んだ検索を行うことが可能となる。以下、音響信号再生装置500で再生する音響信号に付加情報を埋め込む手法と、埋込情報抽出部90における付加情報の抽出について説明する。
(3.1.音響信号への付加情報の埋め込み)
次に、音響信号への付加情報の埋め込みについて説明する。この付加情報が埋め込まれた音響信号は、音響信号再生装置500により再生される。図7は、音響信号に対する情報の埋込装置の構成を示す機能ブロック図である。図7において、310は音響フレーム読込手段、320は周波数変換手段、330は低周波成分変更手段、340は周波数逆変換手段、350は改変音響フレーム出力手段、360は記憶手段、361は音響信号記憶部、362は付加情報記憶部、363は改変音響信号記憶部、370は付加情報読込手段である。なお、図7に示す装置は、ステレオ音響信号、モノラル音響信号の両方に対応可能であるが、ここでは、ステレオ音響信号に対して処理を行う場合について説明していく。
音響フレーム読込手段310は、付加情報の埋め込み対象とする元のステレオ音響信号の各チャンネルから所定数のサンプルを1フレームとして読み込む機能を有している。周波数変換手段320は、音響フレーム読込手段310が読み込んだ音響信号のフレームをフーリエ変換等により周波数変換してフレームスペクトルを生成する機能を有している。低周波成分変更手段330は、Aタイプの音響フレームについては、生成されたフレームスペクトルから3つの所定周波数範囲に相当するスペクトル集合を3セット抽出し、付加情報記憶部62から抽出した付加情報に基づいて、低周波強度データのスペクトル集合間の割合(比率)を変更し、Bタイプの音響フレームについては、生成されたフレームスペクトルの所定周波数範囲の低周波強度データを“0”にする機能を有している。周波数逆変換手段340は、変更された低周波強度データを含む複数のフレームスペクトルに対して周波数逆変換を行うことにより、改変音響フレームを生成する機能を有している。改変音響フレーム出力手段350は、生成された改変音響フレームを順次出力する機能を有している。記憶手段360は、付加情報を埋め込む対象とするステレオ音響信号を記憶した音響信号記憶部361と、ビット配列として構成され、ステレオ音響信号に埋め込まれる付加情報を記憶した付加情報記憶部62と、付加情報埋め込み後の改変音響信号を記憶する改変音響信号記憶部363を有しており、その他処理に必要な各種情報を記憶するものである。付加情報読込手段370は、付加情報記憶部62から付加情報を抽出する機能を有している。なお、付加情報とは、音響信号に付加するものとして埋め込む音響信号そのもの以外の情報であり、その内容は、IPアドレスやURL等の、ネットワーク上のコンピュータにアクセスするためのアドレス情報であるか、またはアドレス情報に変換するためのIDである。本実施形態では、IDを用いた場合について説明する。図7に示した各構成手段は、現実にはコンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。
次に、図7に示した音響信号に対する情報の埋込装置の処理動作について図10のフローチャートに従って説明する。ここでは、音響信号として、L(左)、R(右)の2チャンネルを有するステレオ音響信号に対して処理を行う場合について説明していく。図10は、付加情報1ワード分の処理に対応したものとなっている。1ワードとしては、任意のビット数に設定することができるが、通常1バイトに設定する。まず、付加情報読込手段370は、付加情報記憶部62から付加情報を1ワード単位で読み込む(S301)。具体的には、音響信号に対する情報の埋め込み装置として用いられるコンピュータ内のレジスタに1ワード読み込むことになる。続いて、モードを区切りモードに設定する(S302)。モードは区切りモードと、ビットモード、継続識別モードの3種類が存在する。区切りモードは1ワード単位の区切りにおける処理を行うモードを示し、ビットモードは1ワードの各ビットの値に基づいた処理を行うモードを示している。付加情報記憶部62から1ワード読み込んだ場合には、その直後に必ず区切りモードに設定されることになる。継続識別モードは、低周波成分の信号レベルが小さい音響フレームが出現した場合に、区切り情報が埋め込まれた場合、次のビットが先頭から始まる新規なものか、中断されたために継続されたものであるかを識別するための情報を記録するモードを示している。
続いて、音響フレーム読込手段310が、音響信号記憶部361に記憶されたステレオ音響信号の左右の各チャンネルから、それぞれ所定数のサンプルを1音響フレームとして読み込む(S304)。音響フレーム読込手段310が読み込む1音響フレームのサンプル数は、適宜設定することができるが、サンプリング周波数が44.1kHzの場合、4096サンプル程度とすることが望ましい。したがって、音響フレーム読込手段310は、左チャンネル、右チャンネルについてそれぞれ4096サンプルずつ、順次音響フレームとして読み込んでいくことになる。本発明においては、音響フレームとしてAタイプとBタイプが存在する。Aタイプの音響フレーム、Bタイプの音響フレームは、それぞれ同タイプの先行する音響フレームの最後のサンプルの次のサンプルを先頭サンプルとして設定される。そして、AタイプとBタイプの音響フレームは互いに所定数(本実施形態では2048)のサンプルを重複して設定される。例えば、Aタイプの音響フレームを先頭からA1、A2、A3…とし、Bタイプの音響フレームを先頭からB1、B2、B3…とすると、A1はサンプル1〜4096、A2はサンプル4097〜8192、A3はサンプル8193〜12288、B1はサンプル2049〜6144、B2はサンプル6145〜10240、B3はサンプル10241〜14336となる。なお、AタイプとBタイプは相対的なものであるので、どちらが先であっても良い。すなわち、上記とは逆にA1がサンプル2049〜6144、A2がサンプル6145〜10240、A3がサンプル10241〜14336、B1がサンプル1〜4096、B2がサンプル4097〜8192、B3がサンプル8193〜12288であっても良い。図10の例では、Bタイプ音響フレームを先に設定した場合を示している。
続いて、周波数変換手段320は、読み込んだBタイプの音響フレームに対して、周波数変換を行って、その音響フレームのスペクトルであるフレームスペクトルを得る(S305)。具体的には、S304で読み込んだBタイプの音響フレームについて、窓関数を利用して周波数変換を行う。周波数変換としては、フーリエ変換、ウェーブレット変換その他公知の種々の手法を用いることができる。本実施形態では、フーリエ変換を用いた場合を例にとって説明する。なお、後述するS309においては、同様にして、S308で読み込んだAタイプの音響フレームについて、窓関数を利用して周波数変換を行う。
ここで、本実施形態においてフーリエ変換に利用する窓関数について説明しておく。一般に、所定の信号に対してフーリエ変換を行う場合、信号を所定の長さに区切って行う必要があるが、この場合、所定長さの信号に対してそのままフーリエ変換を行うと、高域部に擬似成分が発生する。そこで、一般にフーリエ変換を行う場合には、ハニング窓と呼ばれる窓関数を用いて、信号の値を変化させた後、変化後の値に対してフーリエ変換を実行する。本実施形態においては、Aタイプの音響フレームに対しては、ハニング窓関数に代えて図11(b)〜(d)に示したような窓関数W(1,i)、W(2,i)、W(3,i)を用いてフーリエ変換を行う。これにより、埋め込まれた情報が抽出側でより認識し易くなる。窓関数W(1,i)は、音響フレームの前部を抽出するためのものであり、図11(b)に示すように前部の所定のサンプル番号iの位置において、最大値1をとり、後部においては、最小値0をとるように設定されている。どのサンプル番号の場合に最大値をとるかについては、窓関数W(1,i)の設計によって異なってくるが、本実施形態では、後述する〔数式5〕で定義される。窓関数W(1,i)を乗じることにより、図11(a)に示すような音響フレームの信号波形は、図11(f)に示すように、前部に信号成分が残り、後部の信号成分が削除されたものとなり、これがフーリエ変換対象となる。
また、窓関数W(2,i)は、音響フレームの中央部を抽出するためのものであり、図11(c)に示すように、中央部の所定のサンプル番号iの位置において、最大値1をとり、前部、後部においては、最小値0をとるように設定されている。どのサンプル番号の場合に最大値をとるかについては、窓関数W(2,i)の設計によって異なってくるが、本実施形態では、後述する〔数式6〕で定義される。窓関数W(2,i)を乗じることにより、図11(a)に示すような音響フレームの信号波形は、図11(g)に示すように、中央部に信号成分が残り、前部と後部の信号成分が除去されたものとなり、これがフーリエ変換対象となる。
また、窓関数W(3,i)は、音響フレームの後部を抽出するためのものであり、図11(d)に示すように、前部においては最小値0をとり、後部の所定のサンプル番号iの位置において、最大値1をとるように設定されている。どのサンプル番号の場合に最大値をとるかについては、窓関数W(3,i)の設計によって異なってくるが、本実施形態では、後述する〔数式7〕で定義される。窓関数W(3,i)を乗じることにより、図11(a)に示すような音響フレームの信号波形は、図11(h)に示すように、前部の信号成分が除去され、後部に信号成分が残ったものとなり、これがフーリエ変換対象となる。このように前部、中央部、後部を抽出した後、フーリエ変換を実行するため、前部、中央部、後部に対応したスペクトルが得られることになる。1つの音響フレームにビット値を埋め込むためには、本来、前部と後部の2つに分けられれば良いのであるが、抽出側においては、必ずしも、信号を同期して読み込むことができるとは限らず、したがって、前部と後部をはっきりと区別するため、本実施形態では、埋め込み時に中央部の信号成分を常に削除し、前部と後部を時間的に分離することとしている(ただし、抽出時は前部と後部だけを解析すればよく、中央部は無視してよい)。本実施形態において用いる窓関数の最大の特徴は、窓関数W(1,i)と窓関数W(3,i)が左右非対称である点である。このため、特に、ビット反転が起こりにくくなる。
また、本実施形態では、音響フレームを重複させて読み込み、奇数フレーム(または偶数フレーム)については、窓関数W(1,i)、W(2,i)、W(3,i)を用い、偶数フレーム(または奇数フレーム)については、図11(e)に示したような窓関数W(4,i)を用いるようにした。
なお、本実施形態においては、音響フレームは重複して読み込まれる。すなわち、奇数番目の音響フレームと偶数番目の音響フレームは、所定数のサンプルを重複して読み込む。上記のように、奇数フレームと偶数フレームでは、用いられる窓関数が異なるが、奇数フレームと偶数フレームは単に奇数か偶数かの違いだけであるため、どちらに対して処理をどちらの処理を行っても良い。したがって、本明細書では、奇数フレーム、偶数フレームの一方をAタイプフレーム、他方をBタイプフレームと呼ぶことにする。図10の例に従うと、奇数フレームをBタイプフレーム、偶数フレームをAタイプフレームとなるが、逆に偶数フレームをBタイプフレーム、奇数フレームをAタイプフレームとしても良い。
本実施形態では、窓関数W(1,i)〜W(4,i)は、以下の〔数式5〕〜〔数式8〕で定義される。なお、図11において、横軸は時間軸(i)である。iは、後述するように、各音響フレーム内のN個のサンプルに付した通し番号であるため時刻tに比例している。また、図11(a)(f)(g)(h)(i)において縦軸は信号の振幅値(レベル)を示す。図11(b)〜(e)において縦軸は窓関数W(1,i)、W(2,i)、W(3,i)、W(4,i)の値を示しており、W(1,i)、W(2,i)、W(3,i)、W(4,i)の最大値はいずれも1である。
〔数式5〕
i≦3N/8のとき、W(1,i)=0.5−0.5cos(8πi/(3N))
3N/8<i≦N/2のとき、W(1,i)=0.5−0.5cos(8π(i−N/4)/N)
i>N/2のとき、W(1,i)=0.0
〔数式6〕
i≦3N/8のとき、W(2,i)=0.0
3N/8<i≦N/2のとき、W(2,i)=0.5−0.5cos(4π(i−N/4)/N)
i>3N/4のとき、W(2,i)=0.0
〔数式7〕
i≦N/2のとき、W(3,i)=0.0
i>N/2のとき、W(3,i)=0.5−0.5cos(4π(i−N/2)/N)
〔数式8〕
i≦N/4のとき、W(4,i)=0.0
N/4<i≦N/2のとき、W(4,i)=0.5−0.5cos(4π(i−N/4)/N)
N/2<i≦7N/8のとき、W(4,i)=0.5−0.5cos(8π(i−N/8)/(3N))
i>7N/8のとき、W(4,i)=0.0
なお、図16および上記〔数式5〕〜〔数式8〕から明らかなように、窓関数W(1,i)とW(3,i)は、互いに非対称な形状である。これは、後述する抽出側において、両者の識別を容易にするためである。また、窓関数W(1,i)、W(2,i)、W(3,i)は、iが所定の値のときに最大値1をとり、iがその他の値をとる場合には、iの値に応じて単調増加、または単調減少する窓関数を分割したものであるため、窓関数W(1,i)とW(3,i)が定まると、窓関数W(2,i)も必然的に定まる。このため、窓関数W(2,i)は左右非対称の形状となっている。
本実施形態においては、奇数フレームと偶数フレームを、所定サンプルずつ重複して読み込むため、情報の埋め込みを行った後、音響信号に復元する際に、窓関数を乗じた奇数フレームと、窓関数を乗じた偶数フレームの重複サンプルを加算した場合に、ほぼ元の値に戻るようにしなければならない。このため、窓関数W(4,i)の形状は、窓関数W(1,i)、W(2,i)、W(3,i)の値に応じて必然的に定まる。すなわち、奇数フレームと偶数フレームの重複部分において、窓関数W(1,i)、W(2,i)、W(3,i)、W(4,i)を加算すると、全区間固定値1になるように定義されている。以上が、本実施形態で用いる窓関数の概要である。
S305に戻って説明する。S305おいてフーリエ変換を行う場合、具体的には、左チャンネル信号Xl(i)、右チャンネル信号Xr(i)(i=0,…,N−1)に対して、窓関数W(4,i)を用いて、以下の〔数式9〕に従った処理を行い、左チャンネルに対応する変換データの実部Al(4,j)、虚部Bl(4,j)、右チャンネルに対応する変換データの実部Ar(4,j)、虚部Br(4,j)を得る。
〔数式9〕
Al(4,j)=Σi=0,…,N-1W(4,i)・Xl(i)・cos(2πij/N)
Bl(4,j)=Σi=0,…,N-1W(4,i)・Xl(i)・sin(2πij/N)
Ar(4,j)=Σi=0,…,N-1W(4,i)・Xr(i)・cos(2πij/N)
Br(4,j)=Σi=0,…,N-1W(4,i)・Xr(i)・sin(2πij/N)
〔数式9〕において、iは、各音響フレーム内のN個のサンプルに付した通し番号であり、i=0,1,2,…N−1の整数値をとる。また、jは周波数の値について、値の小さなものから順に付した通し番号であり、iと同様にj=0,1,2,…N−1の整数値をとる。サンプリング周波数が44.1kHz、N=4096の場合、jの値が1つ異なると、周波数が10.8Hz異なることになる。次に、低周波成分変更手段330は、窓4成分(第4窓関数による低周波スペクトルの各成分)の除去を行う(S306)。具体的には、窓4成分に対して、以下の〔数式10〕に従った処理を実行することになる。
上記〔数式9〕に従った処理を実行することにより、各音響フレームの信号成分を周波数に対応した成分であるスペクトルで表現されたフレームスペクトルが得られる。続いて、低周波成分変更手段330が、生成されたフレームスペクトルから3つの所定周波数範囲のスペクトル集合を抽出する。人間の聴覚は、200〜300Hz程度までの低周波成分については、方向性を感知しにくくなっていることが知られている(コロナ社1990年10月30日発行「音響工学講座1.基礎音響工学、日本音響学会編」p247図9・26参照)。したがって、本実施形態では、低周波成分を200Hz程度以下としている。周波数200Hz付近は、上記jが20に相当するので、上記〔数式9〕により算出された実部Al(4,j)、虚部Bl(4,j)、実部Ar(4,j)、虚部Br(4,j)、のうち、j≦20(=M)のものを抽出することになる。
〔数式10〕
j=1〜Mの各成分に対して
Al´(4,j)=0
Bl´(4,j)=0
ステレオの場合、右信号に対応した以下も算出
E(4,j)={Al(4,j)2+Bl(4,j)2+Ar(4,j)2+Br(4,j)2}1/2
Ar´(4,j)=Ar(4,j)・E(4,j)/{Ar(4,j)2+Br(4,j)2}1/2
Br´(4,j)=Br(4,j)・E(4,j)/{Ar(4,j)2+Br(4,j)2}1/2
次に、周波数逆変換手段340が、上記S306の処理により窓4成分が除去されたフレームスペクトルを周波数逆変換して改変音響フレームを得る処理を行う(S307)。この周波数逆変換は、当然のことながら、周波数変換手段320がS305において実行した手法に対応していることが必要となる。本実施形態では、周波数変換手段320において、フーリエ変換を施しているため、周波数逆変換手段340は、フーリエ逆変換を実行することになる。具体的には、上記〔数式10〕のいずれかにより得られたスペクトルの左チャンネルの実部Al´(4,j)、虚部Bl´(4,j)、右チャンネルの実部Ar´(4,j)、虚部Br´(4,j)を用いて、以下の〔数式11〕に従った処理を行い、Xl´(i)、Xr´(i)を算出する。なお、上記〔数式10〕において改変されていない周波数成分については、以下の〔数式11〕においてはAl´(4,j)、Bl´(4,j)、Ar´(4,j)、Br´(4,j)として、元の値であるAl(4,j)、Bl(4,j)、Ar(4,j)、Br(4,j)を用いる。
〔数式11〕
Xl´(i)=1/N・{ΣjAl´(4,j)・cos(2πij/N)−ΣjBl´(4,j)・sin(2πij/N)}+Xlp(i+N/2)
Xr´(i)=1/N・{ΣjAr´(4,j)・cos(2πij/N)−ΣjBr´(4,j)・sin(2πij/N)}+Xrp(i+N/2)
上記〔数式11〕によりAタイプの改変音響フレームの左チャンネルの各サンプルXl´(i)、右チャンネルの各サンプルXr´(i)、が得られることになる。改変音響フレーム出力手段350は、得られた改変音響フレームを順次出力ファイルに出力する。続いて、音響フレーム読込手段310が、音響信号記憶部361に記憶されたステレオ音響信号の左右の各チャンネルから、それぞれ所定数のサンプルをAタイプの音響フレームとして読み込む(S308)。上述のように、Bタイプの音響フレームとAタイプの音響フレームは、2048サンプル重複したものとなっている。したがって、音響フレーム読込手段310は、S308においては、S304でBタイプ音響フレームを読み込んだ位置から2048サンプル分移動させて、音響フレームを読み込むことになる。
続いて、周波数変換手段320は、読み込んだAタイプの音響フレームに対して、周波数変換を行って、その音響フレームのスペクトルであるフレームスペクトルを得る(S309)。具体的には、各音響フレームについて、窓関数W(1,i)、W(2,i)、W(3,i)の3つの窓関数を用いて行う。周波数変換としては、フーリエ変換、ウェーブレット変換その他公知の種々の手法を用いることができるが、上記S305の場合と同様、本実施形態では、フーリエ変換を用いる。
S309においてフーリエ変換を行う場合、具体的には、左チャンネル信号Xl(i)、右チャンネル信号Xr(i)(i=0,…,N−1)に対して、3つの窓関数W(1,i)、W(2,i)、W(3,i)を用いて、以下の〔数式12〕に従った処理を行い、左チャンネルに対応する変換データの実部Al(1,j)、Al(2,j)、Al(3,j)、虚部Bl(1,j)、Bl(2,j)、Bl(3,j)、右チャンネルに対応する変換データの実部Ar(1,j)、Ar(2,j)、Ar(3,j)、虚部Br(1,j)、Br(2,j)、Br(3,j)を得る。なお、窓関数W(1,i)、W(2,i)、W(3,i)は、それぞれ音響フレームの前部(先頭)付近、中央付近、後部付近において値が大きくなる関数となっている。
〔数式12〕
Al(1,j)=Σi=0,…,N-1W(1,i)・Xl(i)・cos(2πij/N)
Bl(1,j)=Σi=0,…,N-1W(1,i)・Xl(i)・sin(2πij/N)
Al(2,j)=Σi=0,…,N-1W(2,i)・Xl(i)・cos(2πij/N)
Bl(2,j)=Σi=0,…,N-1W(2,i)・Xl(i)・sin(2πij/N)
Al(3,j)=Σi=0,…,N-1W(3,i)・Xl(i)・cos(2πij/N)
Bl(3,j)=Σi=0,…,N-1W(3,i)・Xl(i)・sin(2πij/N)
Ar(1,j)=Σi=0,…,N-1W(1,i)・Xr(i)・cos(2πij/N)
Br(1,j)=Σi=0,…,N-1W(1,i)・Xr(i)・sin(2πij/N)
Ar(2,j)=Σi=0,…,N-1W(2,i)・Xr(i)・cos(2πij/N)
Br(2,j)=Σi=0,…,N-1W(2,i)・Xr(i)・sin(2πij/N)
Ar(3,j)=Σi=0,…,N-1W(3,i)・Xr(i)・cos(2πij/N)
Br(3,j)=Σi=0,…,N-1W(3,i)・Xr(i)・sin(2πij/N)
上記〔数式9〕と同様に、〔数式12〕において、iは、各音響フレーム内のN個のサンプルに付した通し番号であり、i=0,1,2,…N−1の整数値をとる。また、jは周波数の値について、値の小さなものから順に付した通し番号であり、iと同様にj=0,1,2,…N−1の整数値をとる。サンプリング周波数が44.1kHz、N=4096の場合、jの値が1つ異なると、周波数が10.8Hz異なることになる。
上記〔数式12〕に従った処理を実行することにより、各音響フレームの信号成分を周波数に対応した成分であるスペクトルで表現されたフレームスペクトルが得られる。続いて、低周波成分変更手段330が、生成されたフレームスペクトルから3つの所定周波数範囲のスペクトル集合を抽出する。上述のように、人間の聴覚は、200〜300Hz程度までの低周波成分については、方向性を感知しにくくなっているため、ここでも、低周波成分を200Hz程度以下としている。周波数200Hz付近は、上記jが20に相当するので、上記〔数式12〕により算出された実部Al(1,j)、Al(2,j)、Al(3,j)、虚部Bl(1,j)、Bl(2,j)、Bl(3,j)、実部Ar(1,j)、Ar(2,j)、Ar(3,j)、虚部Br(1,j)、Br(2,j)、Br(3,j)のうち、j≦20(=M)のものを抽出することになる。
続いて、低周波成分変更手段330は、抽出した左チャンネルの実部Al(1,j)、Al(3,j)、虚部Bl(1,j)、Bl(3,j)、右チャンネルの実部Ar(1,j)、Ar(3,j)、虚部Br(1,j)、Br(3,j)を利用して、以下の〔数式13〕により、合算値E1、合算値E2を算出する。
〔数式13〕
E1=Σj=1,…,M-3{Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}
E2=Σj=1,…,M-3{Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}
上記〔数式13〕により算出されたE1は音響フレーム前部付近のスペクトル集合の成分強度の合算値、E2は音響フレーム後部付近のスペクトル集合の成分強度の合算値を示すことになる。続いて、この合算値E1、E2がレベル下限値Lev以上であるかどうかの判定を行う。レベル下限値Levは、音響信号Xl(i)、Xr(i)の振幅最大値が1に正規化されており、M=20に設定されている場合、0.5に設定する。このLev=0.5という値は、経験的にアナログ変換への耐性が維持できるレベルであり、低周波成分が少ない場合は適宜下げることになるが、その場合は、アナログ変換により検出精度も低下することになる。
合算値E1、E2がレベル下限値Lev以上であるかどうかを判断するのは、信号の強度が小さいと、信号を変化させても、その変化を抽出側で検出することができないためである。また、本実施形態では、第1の値(例えば“1”)と第2の値(例えば“0”)をとり得るビット値が“1”の場合、窓3成分(第3窓関数による低周波スペクトルの各成分)に、ビット値が“0”の場合、窓1成分(第1窓関数による低周波スペクトルの各成分)に、埋め込むこととしている。したがって、埋め込むビット値が“1”の場合は、合算値E1が下限値Lev未満であるとき、埋め込むビット値が“0”の場合は、合算値E2がレベル下限値Lev未満であるとき、アクセス情報のビット値に応じた記録をせず、先頭ビットから再度処理するため、読み込み位置を先頭ビットに戻し、モードを区切りモードに設定する(S310)。一方、埋め込むビット値が“1”で合算値E1がレベル下限値Lev以上であるか、埋め込むビット値が“0”で合算値E2がレベル下限値Lev以上であるときには、モードを判断することになる。
低周波成分変更手段330は、モードが区切りモードである場合、左(L)チャンネル信号において、窓1成分と窓3成分の低周波成分を均等(全て0となる場合も含む)とする処理を行う(S312)。具体的には、以下の〔数式14〕に従って、L側の双方を0に設定する処理を実行することになる。この場合、右(R)チャンネル信号の窓1成分と窓3成分は必ずしも均等ではない。
〔数式14〕
j=1〜Mに対して、
Al´(1,j)=0
Bl´(1,j)=0
Al´(3,j)=0
Bl´(3,j)=0
ステレオの場合、右信号に対応した以下も算出
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(1,j)2}1/2
上記〔数式14〕に従った処理を実行することにより、左チャンネルのフレームスペクトルの低周波数成分は、窓1成分と窓3成分共に“0” で同一となる。この窓1成分と窓3成分が均等のパターンは、付加情報の先頭位置(区切り)を示す情報となる。なお、上記〔数式14〕においては、窓1成分と窓3成分ともにAl´(j)=Bl´(j)=0としているが、抽出側で区切りであることが認識可能とすることを目的としているため、十分小さな値であれば、必ずしも0とする必要はない。また、必ずしも窓1成分と窓3成分において同一である必要はなく、差が小さければ良い。この意味で、ここでは「均等」という言葉を用いている。
一方、低周波成分変更手段330は、モードがビットモード又は継続識別モードである場合、付加情報記憶部62から抽出した付加情報のビット配列のビット値に応じて、左チャンネル信号の窓1成分と窓3成分のスペクトル強度の割合を窓1成分が優位か、窓3成分が優位かのいずれかの状態に変更する処理を行う(S311)。ここで、「優位」とは、一方の窓成分のスペクトル集合におけるスペクトル強度が、他方の窓成分のスペクトル集合におけるスペクトル強度よりも大きいことを示す。そこで、S311においては、第1の値と第2の値をとり得るビット値に応じて以下の〔数式15〕、〔数式16〕のいずれかに従った処理を実行することにより、窓1成分のスペクトル強度と、窓3成分のスペクトル強度の大小関係を変更し、窓1成分が優位か、窓3成分が優位かのいずれかに変更する処理を行う。例えば、第1の値を1、第2の値を0とした場合、ビット値が1のとき、窓1成分に対して、以下の〔数式15〕に従った処理を実行する。
〔数式15〕
j=1〜Mに対して
Al´(1,j)=0
Bl´(1,j)=0
ステレオの場合、右信号に対応した以下も算出
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
なお、この場合、窓3成分に対しては、以下の〔数式16〕に従った処理を実行する。
〔数式16〕
j=M−2、M−1、Mの3成分に対して
Al´(3,j)=0
Bl´(3,j)=0
ステレオの場合、右信号に対応した以下も算出
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
更にステレオの場合、残存成分を強調させるため、次のように右チャンネル成分を左チャンネル成分に移動させる処理を行う。j=1〜M−3に対して
Ar´(3,j)=0
Br´(3,j)=0
Al´(3,j)=Al(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
上記〔数式15〕〔数式16〕による処理を行った結果、窓3成分のj=M−2、M−1、Mにおいては、値が“0”となるが、他は所定値以上の信号成分が存在することになる。したがって、この場合、窓3成分が優位な状態にスペクトル強度の割合が変更されたことになる。続いて、ビット値が0のとき、窓3成分に対して、以下の〔数式17〕に従った処理を実行する。
〔数式17〕
j=1〜Mの各成分に対して
Al´(3,j)=0
Bl´(3,j)=0
ステレオの場合、右信号に対応した以下も算出
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
なお、この場合、窓1成分に対しては、以下の〔数式18〕に従った処理を実行する。
〔数式18〕
j=M−2、M−1、Mの3成分に対して
Al´(1,j)=0
Bl´(1,j)=0
ステレオの場合、右信号に対応した以下も算出
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
更にステレオの場合、残存成分を強調させるため、次のように右チャンネル成分を左チャンネル成分に移動させる処理を行う。j=1〜M−3に対して
Ar´(1,j)=0
Br´(1,j)=0
Al´(1,j)=Al(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
上記〔数式17〕〔数式18〕による処理を行った結果、窓1成分のj=M−2、M−1、Mにおいては、値が“0”となるが、他は所定値以上の信号成分が存在することになる。したがって、この場合、窓1成分が優位な状態にスペクトル強度の割合が変更されたことになる。
上記〔数式15〕および〔数式16〕、又は〔数式17〕および〔数式18〕のいずれかに従った処理を実行することにより、付加情報のビット配列の各ビット値に応じて、左チャンネル信号の窓1成分が優位か、窓3成分が優位かのどちらかのパターンに変更されることになる。なお、S311においては、継続識別モードの場合は、新規であるときは〔数式15〕に従って低周波成分の窓1成分、窓3成分間の分布を窓3成分が優位な状態に変更し、継続であるときは〔数式16〕に従って低周波成分の窓1成分、窓3成分間の分布を窓1成分が優位な状態に変更することになる。
この場合、高周波帯と低周波数帯の間には、必ず信号成分が“0”の部分が存在し、これにより、高周波帯と低周波数帯の信号成分が混在することを防いでいる。結局、低周波成分変更手段330は、区切りモードの場合に〔数式14〕に基づく処理をS312において行い、ビットモード又は継続識別モードの場合に〔数式15〕〔数式16〕又は〔数式17〕〔数式18〕に基づく処理をS311において行うことになる。
上記S311、S312いずれの場合であっても、次に、低周波成分変更手段330は、窓2成分(第2窓関数による低周波スペクトルの各成分)の削除を行う(S313)。具体的には、窓2成分に対して、以下の〔数式19〕に従った処理を実行することになる。
〔数式19〕
j=1〜Mの各成分に対して
Al´(2,j)=0
Bl´(2,j)=0
ステレオの場合、右信号に対応した以下も算出
E(2,j)={Al(2,j)2+Bl(2,j)2+Ar(2,j)2+Br(2,j)2}1/2
Ar´(2,j)=Ar(2,j)・E(2,j)/{Ar(2,j)2+Br(2,j)2}1/2
Br´(2,j)=Br(2,j)・E(2,j)/{Ar(2,j)2+Br(2,j)2}1/2
次に、周波数逆変換手段340が、上記S311〜S313の処理により各窓成分のスペクトル集合間の割合が変更されたフレームスペクトルを周波数逆変換して改変音響フレームを得る処理を行う(S314)。この周波数逆変換は、当然のことながら、周波数変換手段320がS305において実行した手法に対応していることが必要となる。本実施形態では、周波数変換手段320において、フーリエ逆変換を施しているため、周波数逆変換手段340は、フーリエ逆変換を実行することになる。具体的には、上記〔数式14〕〜〔数式19〕のいずれかにより得られたスペクトルの左チャンネルの実部Al´(1,j)等、虚部Bl´(1,j)等、右チャンネルの実部Ar´(1,j)等、虚部Br´(1,j)等を用いて、以下の〔数式20〕に従った処理を行い、Xl´(i)、Xr´(i)を算出する。なお、上記〔数式14〕〜〔数式19〕において改変されていない周波数成分については、Al´(1,j)等として、元の周波数成分であるAl(1,j)等を用いる。
〔数式20〕
Xl´(i)=1/N・{ΣjAl´(1,j)・cos(2πij/N)−ΣjBl´(1,j)・sin(2πij/N)}+1/N・{ΣjAl´(2,j)・cos(2πij/N)−ΣjBl´(2,j)・sin(2πij/N)}+1/N・{ΣjAl´(3,j)・cos(2πij/N)−ΣjBl´(3,j)・sin(2πij/N)}+Xlp(i+N/2)
Xr´(i)=1/N・{ΣjAr´(1,j)・cos(2πij/N)−ΣjBr´(1,j)・sin(2πij/N)}+1/N・{ΣjAr´(2,j)・cos(2πij/N)−ΣjBr´(2,j)・sin(2πij/N)}+1/N・{ΣjAr´(3,j)・cos(2πij/N)−ΣjBr´(3,j)・sin(2πij/N)}+Xrp(i+N/2)
上記〔数式20〕においては、式が繁雑になるのを防ぐため、Σj=0,…,N-1をΣjとして示している。上記〔数式20〕における第1式の“+Xlp(i+N/2)”、第2式の“+Xrp(i+N/2)”の項は、直前に改変された改変音響フレームのデータXlp(i)、Xrp(i)が存在する場合に、時間軸上N/2サンプル分重複することを考慮して加算するためのものである。上記〔数式20〕によりAタイプの改変音響フレームの左チャンネルの各サンプルXl´(i)、右チャンネルの各サンプルXr´(i)、が得られることになる。改変音響フレーム出力手段350は、得られた改変音響フレームを順次出力ファイルに出力する。こうして1つの音響フレームに対する処理を終えたら、モードの判定を行い(S316)、モードが区切りモードである場合は、モードを継続識別モードに設定した後(S317)、音響フレーム読込手段310が、Bタイプ音響フレームを読み込む(S304)。一方、モードがビットモード又は継続識別モードである場合は、モードをビットモードに設定した後(S318)、低周波成分変更手段330がアクセス情報のビット配列中の次のビットを読み込む(S303)。以上のような処理を音響信号の両チャンネルの全サンプルに渡って実行していく。すなわち、所定数のサンプルを音響フレームとして読み込み、音響信号から読み込むべき音響フレームがなくなったら(S304)、処理を終了する。なお、S301において読み込んだ1ワードのデータの各ビットに対応する処理を終えた場合、S303からS301に戻り、アクセス情報の次のワードを読み込み処理をすることになる。アクセス情報の全ワードに対して処理が終了した場合は、アクセス情報の先頭ワードに戻って処理を行う。この結果、全ての音響フレームに対して処理を行った全ての改変音響フレームが出力ファイルに記録されて、改変音響信号として得られる。得られた改変音響信号は、記憶手段360内の改変音響信号記憶部363に出力され、記憶される。
以上の処理による左チャンネル信号の変化の様子を図12を用いて説明する。図12において、図面左右方向は、時間軸であり、サンプル数に比例する。また、図中多数存在する矩形は、改変音響フレームの窓1成分、窓3成分を示している。窓成分を示す矩形の横幅はサンプル数、縦幅は強度を示しているが、図12においては、横幅、縦幅とも正確に示したものではなく、窓1成分に対応する先頭部分に強い信号成分があるか、窓3成分に対応する後部部分に強い信号成分があるかということを示すものである。図12(a)は、上記〔数式13〕により算出された合算値E1、E2がレベル下限値Lev未満となる音響フレームが存在しない場合、すなわち、付加情報を埋め込むには、良好な信号である場合を示している。図12(b)は、上記〔数式13〕により算出された合算値E1、E2がレベル下限値Lev未満となる音響フレームが存在する場合、すなわち、付加情報を埋め込むには、良好でない信号である場合を示している。
例えば、付加情報として、1ワード目が「11011100」、2ワード目が「11000001」の2ワードのビット配列を埋め込むとする。まず、各ワードの先頭には、区切りを示す情報として、窓1成分、窓3成分が均等な状態に設定されることになる。これは、S302により区切りモードに設定され、S312において、上記〔数式14〕に従った処理を実行した結果得られる。続いて、付加情報の各ビットに対応した処理を行う前に、新規であるか継続であるかを示す情報を記録することになる。
本実施形態では、レベル下限値Lev未満となる音響フレームが存在した場合であっても、その時点で処理したビットは有効とし、そこから継続して行うため、そのビットが新規であるか継続であるかの情報を記録しておく必要がある。そこで、区切りを示す情報を記録した後には、新規であるか継続であるかを示す情報を記録する。具体的には、区切りモードの状態で、モード判断を行うことにより(S316)、継続識別モードに設定され(S317)、付加情報のビットを読み込むことなく、Bタイプ音響フレームの抽出に戻る(S304)。そして、周波数変換後(S309)、新規である場合には、〔数式15〕に従った処理により、低周波成分である窓1成分、窓3成分間の分布を窓3成分が優位な状態に変更する(S311)。
このようにして、新規か継続かを示す情報を記録した後は、継続識別モードの状態でモード判断を行うため(S316)、ビットモードに設定され(S318)、レジスタから先頭のビットを読み込み(S303)、Bタイプ音響フレームの抽出を行う(S304)。図12(a)の例では、レベル下限値Lev未満となる音響フレームが存在しないため、1ワードが連続してS311により処理されることになる。これは、S303からS318を経由するループが8回(1ワード=1バイトの場合)連続して繰り返され、その間レベル下限値Lev未満であるとしてS310およびS312、S317を経由することがなかったことを示している。図12に示すように、付加情報のビット値が1の場合は、窓3成分に低周波成分が存在し、付加情報のビット値が0の場合は、窓1成分に低周波成分が存在する。上記〔数式15〕〜〔数式18〕からもわかるように、この場合は他方の窓成分の低周波成分は0となる。
図12(b)の例では、上記〔数式13〕に従った処理の結果、レベル下限値Lev未満となる音響フレームが存在するので、この場合S310およびS312を経由して、上記〔数式14〕に従った処理を実行した結果、窓1成分と窓3成分が均等な状態に設定される。この場合、S310において、区切りモードに設定されるため、S317を経由して、新規か継続かを示す情報を記録することになる。図12(b)の例では、1ワード目の「11011100」を埋め込む場合に、最初は第1ビット目の「1」の1ビット処理した時点でレベル下限値Lev未満の音響フレームが出現しているため、区切りを示す情報を記録した後、継続を示す情報を記録し、継続して第2ビット目の「1」から処理をしている。そして、第2ビット目から第5ビット目の「1011」を処理した時点でレベル下限値Lev未満の音響フレームが出現しているため、区切りを示す情報を記録した後、継続を示す情報を記録し、継続して第6ビット目の「1」から処理をしている。
なお、図12の例では、付加情報の1ワードを1バイトとした場合について説明したが、新規か継続かを示す情報を記録するため、付加情報の1ワードを任意のビット数単位で記録することが可能である。
上記のようにして得られた改変音響信号の左チャンネルのうち、付加情報が埋め込まれている部分については、低周波成分は、窓1成分と窓3成分が均等となっているか、あるいは窓1成分が優位か、窓3成分が優位かの3通りの分布しかないことになる。しかし、高周波成分については、元の音響信号のままであるので、制作者の設定に基づいた種々な分布になる。また、上記の例で示したように、ステレオ音響信号を利用した場合には、左チャンネルにおいて変化させられた低周波成分は、上記〔数式14〕〜〔数式19〕の処理からも明らかなように、必ず右チャンネルの低周波成分に付加されている。したがって、右チャンネルが左チャンネルにおいて削除された成分を補っているため、両チャンネル全体として見ると、信号の劣化がない。人間の聴覚は、高周波成分については、方向性を感知し易いが、低周波成分については、方向性を感知しにくくなっている。したがって、低周波成分が一方に偏っていても、聴いている人にとっては、通常の音響信号と変わりなく聴こえることになる。
したがって、上記のようにして付加情報が埋め込まれた音響信号を音響信号再生装置500において再生して、スピーカから音として発した音は、通常の音響信号と変わりなく聴こえるが、その音を取得した音響信号検索装置においては、付加情報の抽出が可能となる。
(3.2.埋込情報抽出部90の詳細)
次に、上記埋込情報抽出部90の詳細について説明する。図13は、埋込情報抽出部90の詳細を示す図である。図13において、410は基準フレーム獲得手段、420は位相変更フレーム設定手段、430は周波数変換手段、440は符号判定パラメータ算出手段、450は符号出力手段、460は付加情報抽出手段、470は音響フレーム保持手段である。
基準フレーム獲得手段410は、入力されたデジタルのモノラル音響信号(あるいはステレオ音響信号の1チャンネル)から所定数のサンプルで構成される音響フレームを基準フレームとして読み込む機能を有している。位相変更フレーム設定手段420は、基準フレームと所定サンプルずつ移動させることにより位相を変更した音響フレームを位相変更フレームとして設定する機能を有している。周波数変換手段430は、図9に示した周波数変換手段320と同様の機能を有している。符号判定パラメータ算出手段440は、生成されたフレームスペクトルから所定の周波数以下に相当する各低周波強度データを抽出し、窓1成分、窓3成分ごとに各低周波強度データの合算値EC1、EC2を以下の〔数式21〕に基づいて算出し、この合算値EC1、EC2を符号判定パラメータとし、この符号判定パラメータEC1、EC2の比率に基づいて、所定の状態であると判断する機能を有している。以下の〔数式21〕は上記〔数式13〕において右チャンネル成分を削除したもので、抽出時には右チャンネル成分を参照しないためである。
〔数式21〕
EC1=Σj=1,…,M-3{Al(1,j)2+Bl(1,j)2}
EC2=Σj=1,…,M-3{Al(3,j)2+Bl(3,j)2}
符号出力手段450は、1つの基準フレームに対応する音響フレーム(基準フレームおよび位相変更フレーム)の中から最適な位相であると判断されるものを判断し、その音響フレームの状態に対応する符号を出力する機能を有している。付加情報抽出手段460は、符号出力手段450により出力された符号の集合である3値配列を、所定の規則により変換して意味のある付加情報として抽出する機能を有している。音響フレーム保持手段470は、連続する2個の基準フレームを保持可能なバッファメモリである。
次に、図13に示した埋込情報抽出部90の処理動作について図14のフローチャートに従って説明する。まず、本装置では、平均符号レベルHL1、HL2、位相判定テーブルが初期化される。これらについて説明する。平均符号レベルHL1、HL2は、ビット値に対応する2値が埋め込まれていたと判断される音響フレーム(以下、有効フレームと呼ぶことにする)についての、上記〔数式21〕で算出される低周波成分の合算値EC1、EC2の平均値、すなわち、過去の有効フレームにおける合算値EC1、EC2の平均値で与えられるものであり、初期値は、上記埋め込み装置においても用いられるレベル下限値Levに設定されている。位相判定テーブルS(p)は、位相を判定するためのテーブルであり、pは0〜5の整数値をとる。初期値はS(p)=0に設定されている。
このように、初期値が設定されている状態で、基準フレーム獲得手段410が、デジタル化された音響信号から、所定数のサンプルで構成される音響フレームを基準フレームとして抽出する(S401)。具体的には、基準フレームを抽出して音響フレーム保持手段470に読み込むことになる。基準フレーム獲得手段410が基準フレームとして読み込む1音響フレームのサンプル数は、図9に示した音響フレーム読込手段310で設定されたものと同一にする必要がある。したがって、本実施形態の場合、基準フレーム獲得手段410は、4096サンプルずつ、順次基準フレームとして読み込んでいくことになる。音響フレーム保持手段470には、上述のように2個の基準フレームが格納可能となっており、新しい基準フレームが読み込まれると、古い基準フレームを破棄するようになっている。したがって、音響フレーム保持手段470には、常に基準フレーム2個分(連続する8192サンプル)が格納されていることになる。
埋込情報抽出部90で処理する音響フレームは、先頭から途切れることなく隣接して設定される基準フレームと、この基準フレームと位相を変更した位相変更フレームとに分けることができる。基準フレームについては、最初の基準フレームをサンプル番号1からサンプル番号4096までを設定したら、次の基準フレームは、サンプル番号4097からサンプル番号8192、さらに次の基準フレームは、サンプル番号8193からサンプル番号12288、というように途切れることなく設定される。そして、各基準フレームについて、1/6フレーム(約683サンプル)ずつ移動した5個の位相変更フレームを設定する。例えば、最初の基準フレームについては、サンプル番号683、1366、2049、2732、3413から始まる4096のサンプルで構成される5個の位相変更フレームが設定されることになる。
続いて、周波数変換手段430、符号判定パラメータ算出手段440が、読み込んだ各音響フレームから、埋め込まれている情報を判定し、対応する符号を出力する(S402)。出力される情報の形式は、埋め込み側のビット値に対応する2値、および区切りとして入力された値の3値の形式となる。
ここで、ステップS402の符号判定処理の詳細を図15のフローチャートに従って説明する。まず、周波数変換手段430が、読み込んだ各音響フレームに対して、周波数変換を行ってフレームスペクトルを得る(S501)。この処理は、図9に示した周波数変換手段320における処理と同様である。ただし、抽出に用いるのは、左チャンネルだけであるので、上記〔数式12〕に従った処理を行い、左チャンネルに対応する変換データの実部Al(1,j)等、虚部Bl(1,j)等を得る。
上記周波数変換手段430における処理により、周波数に対応した成分であるスペクトルで表現されたフレームスペクトルが得られる。続いて、符号判定パラメータ算出手段440は、平均符号レベルHL1、HL2の算出を行う(S502)。具体的には、過去窓1成分が優位な状態と判断された音響フレームについての合算値EC1の積算値であるv1を、過去窓1成分が優位な状態と判断された音響フレームの数であるn1で除算することによりHL1を算出し、過去窓3成分が優位な状態と判断された音響フレームについての合算値EC2の積算値であるv2を、過去窓3成分が優位な状態と判断された音響フレームの数であるn2で除算することによりHL2を算出する。したがって、平均符号レベルHL1、HL2は、過去対応する窓成分が優位な状態と判断された音響フレームの低周波強度データの合算値の平均値となる。
さらに、符号判定パラメータ算出手段440は、生成されたフレームスペクトルから所定の周波数範囲の各低周波強度データを抽出する。抽出すべき周波数範囲は、埋め込み装置と対応させる必要がある。したがって、ここでは、周波数が200Hz程度以下の低周波強度データを抽出することになり、埋め込み装置の場合と同様、上記〔数式12〕により算出された左チャンネルの実部Al(j)、虚部Bl(j)のうち、j≦20のものを抽出する。そして、符号判定パラメータ算出手段440は、上記〔数式21〕に従った処理を実行することにより、窓1成分の合算値EC1、窓3成分の合算値EC2を算出する。埋込情報抽出部90においては、これを符号判定パラメータとして用いる。
続いて、符号判定パラメータ算出手段440は、候補符号テーブルの初期化を行う(S503)。候補符号テーブルは、1つの基準フレームおよび5個の位相変更フレームを特定する0〜5の位相番号および、この6個の音響フレームの状態から得られる3値の符号を記録するものである。
続いて、符号判定パラメータ算出手段440は、窓1成分の合算値EC1、窓3成分の合算値EC2がそれぞれ所定値以下であるかどうかの判定を行う(S504)。具体的には、所定値としてそれぞれ平均符号レベルHL1、HL2の20分の1を設定する。合算値EC1が平均符号レベルHL1の20分の1以下であり、かつ、合算値EC2が平均符号レベルHL2の20分の1以下である場合、符号判定パラメータ算出手段440は、区切り情報であると判定する(S508)。
一方、符号判定パラメータ算出手段440は、上記算出された符号判定パラメータEC1、EC2の所定値との比較判定および相互の比較判定を以下の〔数式22〕に従って行い(S505)、比較結果に対応する符号を出力する。
〔数式22〕
EC2>(所定値)かつEC2/EC1>2の場合、窓3成分が優位な状態
EC1>(所定値)かつEC1/EC2>2の場合、窓1成分が優位な状態
上記以外の場合、両窓成分が均等
符号判定パラメータ算出手段440は、各音響フレーム単位で、上記判定結果に応じて3値の符号を出力する。すなわち、窓3成分が優位な状態と判定した場合には、第1のビット値(例えば“1”)を出力し(S506)、窓1成分が優位な状態と判定した場合には、第2のビット値(例えば“0”)を出力し(S507)、両窓成分が均等と判定した場合には、区切り情報を示す符号を出力する(S508)。なお、S505において、窓3成分が優位な状態と判定した場合は、EC1がHL1以上であるか、また、窓1成分が優位な状態と判定した場合は、EC2がHL2以上であるかを判定し、これらの条件を満たしていない場合は、区切り情報を示す符号を出力する(S508)。
窓3成分が優位な状態と判定して、第1のビット値を出力した場合(S506)、又は窓1成分が優位な状態と判定して、第2のビット値を出力した場合(S507)は、さらに、以下の〔数式23〕に従って位相判定テーブルS(p)の更新を行う(S509)。
〔数式23〕
窓3成分が優位な状態の場合、S(p)←S(p)+EC1/EC2
窓1成分が優位な状態の場合、S(p)←S(p)+EC2/EC1
続いて、符号判定パラメータ算出手段440は、候補符号テーブルに、最適位相となる候補を保存する(S410)。具体的には、位相判定テーブルに記録されているS(p)の値が最大となる位相番号pの値、前記S506〜S508により判定された3値のいずれかの符号、その音響フレームについての上記〔数式13〕に従った処理を実行することにより算出した、低周波数成分に対応する各EC1、EC2の値を最適位相の候補として候補符号テーブルに保存する。
続いて、全ての位相番号pに対応する処理を終えたかどうかを判定する(S411)。これは、ある基準フレームに対して全ての位相変更フレームの処理を行ったかどうかを判定している。本実施形態では、pが0〜5までの値をとるので、6回分処理していない場合は、処理していた音響フレームから所定サンプル数ずらして、位相の異なる音響フレームを設定し、S504に戻って処理を繰り返す。なお、p=0の場合が基準フレームであり、p=1〜5の場合が位相変更フレームである。全ての位相番号pに対応する処理を終えた場合は、候補保存テーブルに記録されている位相番号pに対応する位相が最適位相であると判定し、候補保存テーブルに記録されている符号を出力する(S412)。
再び図14のフローチャートに戻って説明する。S402による処理の結果、ビット値に相当する符号が出力された場合には、平均符号レベルのパラメータの更新を行う(S403)。具体的には、平均符号レベルHL1、HL2算出の際の分子となる積算値v1、v2にそれぞれ合算値EC1、EC2を加算して積算値v1、v2を更新し、分母となるフレーム数n1、n2にそれぞれ1を加算してフレーム数n1、n2を更新する。続いて、モードの判定を行う(S404)。モードは、区切りモードとビット出力モードの2つが用意されている。ビット出力モードである場合は、そのビット値をバッファに保存する(S409)。続いて、ビットカウンタをカウントアップする(S410)。一方、S404による判定の結果、区切りモードである場合には、さらに抽出された符号が、新規を意味するものか継続を意味するものかを判定する(S405)。この結果、新規である場合には、その直前で1ワードが終了していることを意味するので、バッファに記録された1ワード分のデータを、付加情報抽出手段460が出力する(S406)。そして、ビットカウンタを0に初期化する(S407)。さらに、モードをビット出力モードに設定する(S408)。S405において、継続と判定された場合には、バッファ内のビットに値を出力すべきであるので、ビット出力モードに設定する処理のみを行う。また、S402において、区切り情報に相当する符号が抽出された場合には、次の音響フレームから新規か継続かの情報を抽出するため、モードを区切りモードに設定する(S411)。図14に示す処理を各基準フレームに対して実行することにより、付加情報が抽出されることになる。S401において全ての基準フレームが抽出されたと判断された場合には、処理を終了する。
上記S406の処理において、付加情報抽出手段460は、まず、符号判定パラメータ算出手段440により出力された3値の符号のうち、窓3成分と窓1成分が均等であることを示す符号を区切り位置として、その次の符号を先頭とし、窓3成分が優位な状態、窓1成分が優位な状態であることを示す符号をビット値に対応させて、ビット配列を作成する。続いて、このビット配列を、所定の規則により変換して意味のある付加情報として抽出する。所定の規則としては、情報を埋め込む者が意図した情報が受け取った者に認識可能な状態とできるものであれば、さまざまな規則が適用できるが、本実施形態では、文字情報として認識するための規則としている。すなわち、付加情報抽出手段460は、符号判定パラメータ算出手段440が判定し、符号出力手段450から出力される符号を1バイト(8ビット)単位で認識し、これを設定されたコード体系に従って文字情報であるアクセス情報を認識する。本実施形態ではURLを認識することになる。
従って、埋め込み装置により音響信号に、その楽曲の曲名やアーチスト等に関連するwebサイトのURLを文字情報として埋め込んでおけば、利用者は、その音楽が流れているのを聞いて、その曲名やアーチストに関連する詳細な情報を知りたいと思ったときに、抽出装置として機能する自身の携帯端末に所定の操作を行えば、自身の携帯端末で、その楽曲やアーチストに関連するwebサイトのURLが取得できることになる。
ここで本実施形態に示すような窓関数窓関数W(1,i)、W(2,i)、W(3,i)、W(4,i)を用いることの利点について説明する。図16は、本実施形態の特徴を有しない窓関数を利用した場合の埋め込み直前と埋め込み後の低周波成分の状態を示す図であり、図17は、本発明による埋め込み直前と埋め込み後の低周波成分の状態を示す図である。埋め込み後の低周波成分の状態である図16(b)と図17(b)を比較すると、本実施形態では、そうでない場合と比べてAタイプ音響フレームにおいて広い範囲で値を有していることがわかる。そのため、S502において〔数式21〕を用いて算出される合算値EC1、EC2の値が大きくなり、S506、S507においてビット値が抽出される確率が高まる。
以上の処理においては、埋込情報抽出部90において正確に付加情報を抽出するために、位相を補正する処理、窓3成分と窓1成分の強度のバランスを補正する処理、無効フレームであることを判断するための下限閾値を補正する処理を行っている。次に、これら3つの補正処理について補足説明を行う。
上記のように、抽出時には、埋め込み時に埋め込んだ音響フレームに対応して、音響信号を読み込むことができるとは限らない。そこで、音響フレームの位相をずらして複数通り(本実施形態では6通り)で読み込み、その中で最適な位相を決定し、その位相で特定される音響フレームに対応する符号を出力することにしている。例えば、6通りで読み込む場合、先頭の音響フレームは、本来サンプル番号1〜4096のサンプルであるが、サンプル番号1、683、1366、2049、2732、3413から始まる4096のサンプルで構成される6個の各音響フレームに対して処理を行い、最適な音響フレームに対応する符号を出力することになる。この位相補正処理は、S503、S509、S410、S411、S412における処理を中心として行われることになる。
信号レベルが小さい場合には、窓成分の強度の大小が判定できず、抽出側で誤判断することが多くなる。そこで、合算値EC1およびEC2が所定の閾値以下のフレームについては、無効なフレームであると判断するようにしているが、この際の閾値を過去の有効フレームについての低周波強度の積算値を利用して補正する処理を行っている。このように閾値を変動させることにより、信号レベルが変動しても無効なフレームであるか、有効なフレームであるかを正確に判断することが可能となる。この下限閾値補正処理は、S502、S403における処理を中心として行われることになる。
上記実施形態においては、埋め込み装置、埋込情報抽出部90のいずれにおいても、左右のチャンネルを有するステレオ音響信号の左チャンネル信号に付加情報を埋め込む場合を例にとって説明したが、逆に右チャンネル信号に付加情報を埋め込むようにしても良い。本発明は、左右の特性には無関係だからである。また、1つのチャンネルしかないモノラル音響信号に対して処理を行う場合は、上記実施形態において、左チャンネル信号に対して行った処理を行うことになる。本発明は、1つのチャンネル信号に対して付加情報を埋め込み、また抽出を行うので、モノラル音響信号であってもステレオ音響信号であっても同様に行うことができる。
図18にステレオ音響信号とモノラル音響信号に対して、本発明により付加情報を埋め込む場合の概念図を示す。図18(a)はステレオ音響信号の場合、図18(b)はモノラル音響信号の場合である。なお、図18の例では、音響フレーム1つ分の低周波成分を波形で表現しており、ビット値“0”を埋め込む場合を例に示している。
ステレオ音響信号の場合、埋め込みは左チャンネル(L−ch)信号に対して行われる。図18(a)に示すように、周波数変換後、信号分離し、さらに、ビット埋め込み処理を行う。具体的には、〔数式14〕〜〔数式19〕の処理の結果、ビット埋め込みがなされることになる。ここで、上述のように、“0”を埋め込む場合は〔数式17〕および〔数式18〕を用いる。したがって、ビット埋め込み処理後は、音響フレームの中央付近(窓2に相当)と後部付近(窓3に相当)は、低周波数帯の信号成分は0(図中、波形がないことで表現)となる。この際、〔数式17〕および〔数式18〕の内容から明らかなように、左チャンネル信号の削除された信号成分は、右チャンネル(R−ch)信号に加算される。したがって、図18(a)の下段に示すように、右チャンネル信号の低周波成分は大きくなる。ビット埋め込み処理後は、高周波成分を含めて信号合成された後、周波数逆変換され、改変音響信号が得られることになる。一方、上記〔数式15〕の最後の3つの式から明らかなように、左チャンネル信号の残っている信号成分に対応する右チャンネル(R−ch)信号の成分は、左チャンネル信号に加算される。したがって、図18(a)の上段に示すように、左チャンネル信号の窓1に相当する低周波成分は大きくなる。
モノラル音響信号の場合、図18(b)に示すように処理が行われるが、図18(a)の上段と比較するとわかるように、ステレオ音響信号の左チャンネルと同様の処理が行われることになる。
ここまで、説明してきた処理においては、窓1成分、窓3成分に所定の大きさ以上の信号成分が存在していることが必要となり、窓1成分、窓3成分が共に所定の大きさ以下の場合には、情報の埋め込みを行うことができない。そこで、以下、窓1成分、窓3成分が共に所定の大きさ以下であっても、信号の埋め込みを可能とする手法について説明する。
この場合、図9に示した埋め込み装置における情報の埋め込み処理は、図19のフローチャートに従って行われる。図19のフローチャートにおいて、図10のフローチャートと異なる点は、S709における周波数変換処理において低周波成分変更手段330がレベルの判定を行わず、さらに、S310に相当する区切りモードへの設定処理が存在しない点である。これは、図19に従った処理では、信号レベルが小さくても強制的に情報を埋め込むこととしているため、情報の埋め込みが不可能な信号レベルが小さい部分が存在するかどうかを判断し、区切りモードに設定する必要がないからである。
したがって、S710における窓1成分、窓3成分のいずれかを優位な状態に設定する処理としては、まず、以下の〔数式24〕に従って算出される固定値Vを、低周波成分の強度として、上記合算値E1、E2に代えて設定する。
〔数式24〕
V={0.5・Lev/(M−3)}1/2
そして、第1の値を1、第2の値を0とした場合、ビット値が1のとき、上記〔数式15〕および〔数式16〕に従った処理を実行した後、以下の〔数式25〕に従った処理を実行する。
〔数式25〕
窓3成分に対して
Al´(3,j)=Al(3,j)・V/{Ar(3,j)2+Br(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・V/{Ar(3,j)2+Br(3,j)2}1/2
ビット値が0の場合、上記〔数式17〕および〔数式18〕に従った処理を実行した後、以下の〔数式26〕に従った処理を実行する。
〔数式26〕
窓1成分に対して
Al´(1,j)=Al(1,j)・V/{Ar(1,j)2+Br(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・V/{Ar(1,j)2+Br(1,j)2}1/2
S710における上記処理を行った後、窓2成分削除処理(S712)以降の処理は、図10に示したS313以降の処理と同様にして行われる。
上記のように、周波数成分が小さい場合に情報を埋め込んだ場合であっても、抽出側の、音響信号からの情報の抽出装置の構成は図13と同一であり、処理動作は図14のフローチャートに従ったものと同一である。
図20にステレオ音響信号とモノラル音響信号に対して、信号成分が小さい場合に、付加情報を埋め込む場合の概念図を示す。図20(a)はステレオ音響信号の場合、図20(b)はモノラル音響信号の場合である。なお、図20の例では、図18の場合と同様に、音響フレーム1つ分の低周波成分を波形で表現しており、ビット値“0”を埋め込む場合を例に示している。
図20において、図18の場合と異なるのは、元の信号成分が小さい点である。図20(a)に示す例のように、信号分離後の段階では、窓1成分、窓3成分の値が小さい場合であっても、上記〔数式24〕〜〔数式26〕の処理に従ってビット埋め込みを行うことにより、図18と同様な信号成分を有することとなる。
モノラル音響信号の場合、図20(b)に示すように処理が行われるが、図20(a)の上段と比較するとわかるように、ステレオ音響信号の左チャンネルと同様の処理が行われることになる。