以下、本発明の実施形態について図面を参照して詳細に説明する。
(1.本発明の基本概念)
最初に、本発明の基本概念について説明しておく。本発明では、人間の聴覚心理特性である音脈分凝の原理を利用する。音脈分凝とは、時系列に高い音と低い音が交互に進行するパターンに対して、人間が、あたかも高低2つのトラックが連続して流れるように音を補間して聞いてしまう錯覚現象である。
たとえば、図13(a)に示すように、3つの低い音である低音1、低音3、低音5と3つの高い音である高音2、高音4、高音6が、低音1、高音2、低音3、高音4、低音5、高音6の順に演奏されている場合を考えてみる。低音1、低音3、低音5と高音2、高音4、高音6は1オクターブ程度離れており、低い音と高い音は同時に演奏されることはないが、時間的間隔は、ほぼ連続しているものとする。この場合、人間には、図13(b)に示すように、低い音と高い音が演奏されていない部分も補間されて演奏されているように聞こえる。すなわち、実際の演奏は単旋律であるのに、人間には、図13(b)に示すように、高音1´、高音3´、高音5´、低音2´、低音4´、低音6´が補間されて複旋律であるように聞こえる。例えば、高音3´は高音2と高音4が連続的につながるように、高音2と高音4の平均的な成分に聞こえる。また、末端部の高音1´と低音6´についても、隣接する高音2と低音5に近い成分で、各々低音1と高音6に対応するように聞こえる。しかし、マイクロフォン等の電気音響装置は、図13(a)に示したものをそのままの音として取得することになる。本発明および特許文献3の発明は、このような性質を利用するのである。なお、補間された音は、前後に演奏されている音と必ずしも同じレベルに補間されて聴こえるのではなく、大雑把に言って、前後に演奏されている音の50%程度があたかも補間されているように聞こえる。
本発明および特許文献3の発明のいずれにおいても、音響信号をサンプリングすることにより得られた所定数のサンプルを1音響フレームとして、処理を行う。先頭から奇数番目と偶数番目の音響フレームは、互いに半分のサンプルを重複する形で設定される。ここで、特許文献3の発明における埋め込み時の各音響フレームの強度変化の様子を図14に示す。図14において、L、Rはそれぞれ左チャンネル、右チャンネルを示し、u、dはそれぞれ相対的に高周波、低周波成分を示し、1〜6は先頭からの音響フレームの順番を示している。したがって、図14の例では、L、R各チャンネル6個ずつの音響フレームを示しており、例えば、“Lu1”は、左チャンネルの1番目の音響フレームの高周波側成分を示していることになる。また、奇数番目と偶数番目の音響フレームは、実際に半分のサンプルが重複して設定されるが、図14では、説明の便宜上独立した形態で示している。また、図14において、“Lu1”等の各周波数成分の文字の大きさは、相対的な強度の大小を示している。
図14においては、L、R、2チャンネルの音響信号について示しているが、特許文献3の発明では、L、R両チャンネルに対して同様の処理が行われる。図14(a)は元の音響信号を示しており、図14(b)は埋め込み処理後の音響信号を示している。特許文献3の発明では、奇数番目の音響フレームの高周波側と低周波側の成分強度の大小関係と、偶数番目の音響フレームの高周波側と低周波側の成分強度の大小関係が逆転するように処理を行う。奇数番目と偶数番目のどちらの音響フレームの高周波側を大きくするかによって、埋め込むビット値を変化させることができる。図14の例では、偶数番目の音響フレームの高周波側を大きくすることにより“0”、奇数番目の音響フレームの高周波側を大きくすることにより“1”を埋め込むことを示している。したがって、元の音響信号に“010”という3ビットの情報を埋め込んだ場合、音響フレームの状態は、図14(b)に示すように変化する。
特許文献3の発明では、奇数番目と偶数番目の音響フレームで高周波側の強度と低周波側の強度を逆転させるので、図14(b)に示すように、2音響フレーム単位で見た場合、高周波側にも低周波側にも必ず信号強度の強い部分が存在する。このため、音脈分凝の原理により、人間には、音が途切れたようには聞こえないが、抽出装置では、その明確な変化を認識することができる。
しかし、上述のように、特許文献3の発明では、高周波と低周波の成分強度の関係を、奇数番目と偶数番目の音響フレームで無理やり逆転させるため、改変の程度が大きくなり、音質の劣化が避けられない。
本発明では、図14に示したように、高周波と低周波の成分強度の関係を、奇数番目と偶数番目の音響フレームで無理やり逆転させるのではなく、奇数番目の音響フレームの高周波と偶数番目の音響フレームの低周波の成分強度の積、奇数番目の音響フレームの低周波と偶数番目の音響フレームの高周波の成分強度の積のいずれか一方が他方より所定の比率以上大きくなるように変化させるようにした。本発明では、特許文献3の発明のように極端に変化させるものではないため、音質の劣化を避けることができ、一方、奇数番目と偶数番目の音響フレームにおける高周波と低周波を緩やかに変化させるため、音脈分凝の原理が働き、人間には、音が途切れたようには聞こえないという効果もある。
(2.1.埋め込み装置の構成)
次に、本発明に係る音響信号に対する情報の埋め込み装置について説明する。図1は、本発明に係る音響信号に対する情報の埋め込み装置の構成を示す機能ブロック図である。図1において、10は音響フレーム読込手段、20は周波数変換手段、30は周波数成分変更手段、40は周波数逆変換手段、50は改変音響フレーム出力手段、60は記憶手段、61は音響信号記憶部、62は付加情報記憶部、63は改変音響信号記憶部、70はビット配列作成手段である。なお、図1に示す装置は、ステレオ音響信号、モノラル音響信号の両方に対応可能であるが、ここでは、ステレオ音響信号に対して処理を行う場合について説明していく。
音響フレーム読込手段10は、付加情報の埋め込み対象とする元のステレオ音響信号の各チャンネルから所定数のサンプルを1フレームとして読み込む機能を有している。周波数変換手段20は、音響フレーム読込手段10が読み込んだ音響信号のフレームをフーリエ変換等により周波数変換してスペクトルを生成する機能を有している。周波数成分変更手段30は、生成されたスペクトルから所定の周波数範囲に相当するスペクトル集合を複数抽出し、付加情報記憶部62から抽出した付加情報よりビット配列作成手段70が作成したビット配列に基づいて、スペクトル集合の状態を変更する機能を有している。周波数逆変換手段40は、変更されたスペクトル集合を含む複数のスペクトルに対して周波数逆変換を行うことにより、改変音響フレームを生成する機能を有している。改変音響フレーム出力手段50は、生成された改変音響フレームを順次出力する機能を有している。
記憶手段60は、付加情報を埋め込む対象とするステレオ音響信号を記憶した音響信号記憶部61と、ビット配列として構成され、ステレオ音響信号に埋め込まれる付加情報を記憶した付加情報記憶部62と、付加情報埋め込み後の改変音響信号を記憶する改変音響信号記憶部63を有しており、その他処理に必要な各種情報を記憶するものである。ビット配列作成手段70は、付加情報記憶部62から付加情報を抽出し、付加情報の各ワードに対して、1ビットのパリティビットを追加した後、さらに所定の規則により4ビットの検査符号ビットを追加したビット配列を作成する機能を有している。なお、付加情報とは、音響情報に付加して埋め込むべき情報であり、タイトルやアーティスト名等の属性情報、および属性情報以外の他の情報を含むものである。本実施形態では、付加情報のコード形式としてASCIIコードを採用するため、付加情報においては7ビットを1ワードとし、ビット配列作成手段70が作成するビット配列は、パリティビットを付加した後、検査符号付加処理を施した12ビットを1ワードとする。図1に示した各構成手段は、現実にはコンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。
(2.2.埋め込み装置の処理動作)
次に、図1に示した音響信号に対する情報の埋め込み装置の処理動作について説明する。音響フレーム読込手段10は、音響信号記憶部61に記憶されたステレオ音響信号の左右の各チャンネルから、それぞれ所定数のサンプルを1音響フレームとして読み込む。音響フレーム読込手段10が読み込む1音響フレームのサンプル数は、適宜設定することができるが、サンプリング周波数が44.1kHzの場合、4096サンプル程度とすることが望ましい。したがって、音響フレーム読込手段10は、左チャンネル、右チャンネルについてそれぞれ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であっても良い。
周波数変換手段20は、音響フレーム読込手段10が読み込んだ音響フレームに対して、周波数変換を行って、その音響フレームのスペクトルを得る。具体的には、窓関数を利用して周波数変換を行う。周波数変換としては、フーリエ変換、ウェーブレット変換その他公知の種々の手法を用いることができる。本実施形態では、フーリエ変換を用いた場合を例にとって説明する。
一般に、所定の信号に対してフーリエ変換を行う場合、信号を所定の長さに区切って行う必要があるが、この場合、所定長さの信号に対してそのままフーリエ変換を行うと、擬似高調波成分が発生する。そこで、一般にフーリエ変換を行う場合には、ハニング窓と呼ばれる窓関数を用いて、信号の値を変化させた後、変化後の値に対してフーリエ変換を実行する。
本発明においても、窓関数を利用しているが、Aタイプの音響フレーム、Bタイプの音響フレームで、使用する窓関数を分けている。本実施形態では、図2(a)(b)に示したような第1窓関数W(1,i)、第2窓関数W(2,i)を用意し、抽出側で認識し易いようにした。第1窓関数W(1,i)は、Aタイプの音響フレームに対して用いるためのものであり、図2(a)に示すように所定のサンプル番号iの位置において、最大値1をとり、後部においては、最小値0をとるように設定されている。どのサンプル番号の場合に最大値をとるかについては、窓関数W(1,i)の設計によって異なってくるが、本実施形態では、後述する〔数式1〕で定義される。Aタイプの音響フレームについてのフーリエ変換は、この窓関数W(1,i)を乗じたものに対して行われることになる。
また、第2窓関数W(2,i)は、Bタイプの音響フレームに対して用いるためのものであり、図2(b)に示すように、所定のサンプル番号iの位置において、最大値1をとり、前部においては、最小値0をとるように設定されている。どのサンプル番号の場合に最大値をとるかについては、窓関数W(2,i)の設計によって異なってくるが、本実施形態では、後述する〔数式2〕で定義される。Bタイプの音響フレームについてのフーリエ変換は、この窓関数W(2,i)を乗じたものに対して行われることになる。
なお、本発明においては、音響フレームは重複して読み込まれる。すなわち、奇数番目の音響フレームと偶数番目の音響フレームは、所定数のサンプルを重複して読み込む。上記のように、奇数フレームと偶数フレームでは、用いられる窓関数が異なるが、奇数フレームと偶数フレームは単に奇数か偶数かの違いだけであるため、どちらに対してどちらの処理を行っても良い。したがって、本明細書では、奇数フレーム、偶数フレームの一方をAタイプフレーム、他方をBタイプフレームと呼ぶことにする。本実施形態では、奇数フレームをAタイプフレーム、偶数フレームをBタイプフレームとして説明するが、逆に偶数フレームをAタイプフレーム、奇数フレームをBタイプフレームとしても良い。
本実施形態では、窓関数W(1,i)、W(2,i)は、以下の〔数式1〕〜〔数式2〕で定義される。なお、図2において、横軸は時間軸(i)である。iは、後述するように、各音響フレーム内のN個のサンプルに付した通し番号であるため時刻tに比例している。また、図2(a)(b)において縦軸は信号の振幅値(レベル)を示す。図2(a)(b)において縦軸は窓関数W(1,i)、W(2,i)の値を示しており、W(1,i)、W(2,i)の最大値はいずれも1である。
〔数式1〕
i≦N/4のとき、W(1,i)=0.5−0.5cos(4πi/N)
N/4<i≦11N/16のとき、W(1,i)=1.0
11N/16<i≦13N/16のとき、W(1,i)=0.5−0.5cos(8π(i−9N/16)/N)
i>13N/16のとき、W(1,i)=0.0
〔数式2〕
i≦3N/16のとき、W(2,i)=0.0
3N/16<i≦5N/16のとき、W(2,i)=0.5−0.5cos(8π(i−3N/16)/N)
5N/16<i≦3N/4のとき、W(2,i)=1.0
i>3N/4のとき、W(2,i)=0.5−0.5cos(4π(i−N/2)/N)
なお、図2および上記〔数式1〕〔数式2〕から明らかなように、窓関数W(1,i)とW(2,i)は、互いに非対称な形状である。これは、後述する抽出側において、両者の識別を容易にするためである。
本発明においては、奇数フレームと偶数フレームを、所定サンプルずつ重複して読み込むため、情報の埋め込みを行った後、音響信号に復元する際に、窓関数を乗じた奇数フレームと、窓関数を乗じた偶数フレームの重複サンプルを加算した場合に、ほぼ元の値に戻るようにしなければならない。このため、奇数フレームと偶数フレームの重複部分において、窓関数W(1,i)、W(2,i)を加算すると、全区間固定値1になるように定義されている。
周波数変換手段20が、Aタイプの音響フレームに対してフーリエ変換を行う場合は、左チャンネル信号Xl(i)、右チャンネル信号Xr(i)(i=0,…,N−1)に対して、窓関数W(1,i)を用いて、以下の〔数式3〕に従った処理を行い、左チャンネルに対応する変換データの実部Al(1,j)、虚部Bl(1,j)、右チャンネルに対応する変換データの実部Ar(1,j)、虚部Br(1,j)を得る。
〔数式3〕
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)
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)
周波数変換手段20が、Bタイプの音響フレームに対してフーリエ変換を行う場合は、左チャンネル信号Xl(i)、右チャンネル信号Xr(i)(i=0,…,N−1)に対して、窓関数W(2,i)を用いて、以下の〔数式4〕に従った処理を行い、左チャンネルに対応する変換データの実部Al(2,j)、虚部Bl(2,j)、右チャンネルに対応する変換データの実部Ar(2,j)、虚部Br(2,j)を得る。
〔数式4〕
Al(2,j)=Σi=0,…,N-1W(2,i)・Xl(i+N/2)・cos(2πij/N)
Bl(2,j)=Σi=0,…,N-1W(2,i)・Xl(i+N/2)・sin(2πij/N)
Ar(2,j)=Σi=0,…,N-1W(2,i)・Xr(i+N/2)・cos(2πij/N)
Br(2,j)=Σi=0,…,N-1W(2,i)・Xr(i+N/2)・sin(2πij/N)
上記〔数式3〕〔数式4〕において、iは、各音響フレーム内のN個のサンプルに付した通し番号であり、i=0,1,2,…N−1の整数値をとる。また、jは周波数の値について、値の小さなものから順に付した通し番号であり、iと同様にj=0,1,2,…N/2−1の整数値をとる。サンプリング周波数が44.1kHz、N=4096の場合、jの値が1つ異なると、周波数が10.8Hz異なることになる。
上記〔数式3〕〔数式4〕に従った処理を実行することにより、各音響フレームの各窓関数に対応するスペクトルが得られる。続いて、周波数成分変更手段30が、生成されたスペクトルから所定周波数範囲のスペクトル集合を抽出する。本実施形態では、F1以上F2以下の範囲のものを抽出する。
周波数成分変更手段30は、Aタイプの音響フレームについて、ビット配列作成手段70が作成したビット配列に応じて、所定周波数成分の割合を変更する処理を行う。本発明では、ビット配列を1ビットずつ読み込み、Aタイプ、Bタイプの1対の音響フレームに対して1ビットの情報を埋め込む。埋め込まれる1ビットの値は、“0” “1”の2通りがある。本実施形態では、これらを値1、値2と定義する。2種類の符号を埋め込むことができるという点で、これらを符号1、符号2と表現することも可能である。この際、“0”“1”の2通りのうち、いずれを値1、値2(符号1、符号2)と定義しても良い。抽出側において、埋め込み側で埋め込まれた1ビットが特定できれば良いためである。したがって、この定義は、埋め込み側と抽出側で一致している必要がある。
本実施形態では、音響フレームの変更対象周波数帯の成分を2つの状態に変更し、1ビットの情報を埋め込むようにしている。ここで、埋め込み処理の前後における音響フレームの所定周波数成分の変化の状態について説明する。図3に、本実施形態によるAタイプ、Bタイプの各チャンネル1音響フレームの所定周波数成分の状態を示す。図3に示す各音響フレームにおいて、横軸は時間方向、縦軸は周波数方向を示している。
図3においては、縦軸の周波数方向において、周波数領域が4つに区分されているが、上から2番目と3番目の領域、すなわち、周波数F1以上F2以下の間が変更対象周波数帯であり、最上部すなわち周波数F2超、最下部すなわちF1未満は、変更対象でない周波数帯である。すなわち、本実施形態では、周波数F1以上F2以下を所定周波数範囲として、スペクトル集合の強度を変更することになる。図3(a)に示すように、LチャンネルのAタイプ音響フレームの変更対象周波数帯については、高周波側におけるスペクトルをL1U、低周波側におけるスペクトルをL1Dで表現し、RチャンネルのAタイプ音響フレームの変更対象周波数帯については、高周波側におけるスペクトルをR1U、低周波側におけるスペクトルをR1Dで表現することとする。また、図3(b)に示すように、LチャンネルのBタイプ音響フレームの変更対象周波数帯については、高周波側におけるスペクトルをL2U、低周波側におけるスペクトルをL2Dで表現し、RチャンネルのBタイプ音響フレームの変更対象周波数帯については、高周波側におけるスペクトルをR2U、低周波側におけるスペクトルをR2Dで表現することとする。
本実施形態で、符号1を埋め込む場合、図3(c)(e)に示すように、L1DとL2Uの強度の積、R1DとR2Uの強度の積を相対的に強い状態に変更し、L1UとL2Dの強度の積、R1UとR2Dの強度の積を相対的に弱い状態に変更する。この状態を“状態1”と呼ぶことにする。符号2を埋め込む場合は、図3(d)(f)に示すように、L1UとL2Dの強度の積、R1UとR2Dの強度の積を相対的に強い状態に変更し、L1DとL2Uの強度の積、R1DとR2Uの強度の積を相対的に弱い状態に変更する。この状態を“状態2”と呼ぶことにする。網掛けされた部分の濃さは、同濃度のものは、積を求めるための組となるスペクトルであることを示している。網掛けの色が濃い方が相対的に強度が強い状態に変更される組を示している。
本実施形態では、図3(c)(e)または(d)(f)に示すような2つの状態にAタイプ、Bタイプの音響フレームの周波数成分を変更することにより、情報の埋め込みを行っている。2つの状態であるので1ビット分の情報量に相当する。
本実施形態では、上記変更対象周波数帯F1〜F2を、“1.7kHz〜3.4kHz”に設定する。これは、以下のような理由による。すなわち、音声通信として普及度の高い携帯電話機を受信端末として利用する場合、上限については、電話回線帯域および携帯電話機の上限である3.4kHzとする必要がある。そこで、下限については、上限の3.4kHzから1オクターブ下がった1.7kHzとすることとした。
また、上記変更対象周波数帯F1〜F2を、“3.4kHz〜6.8kHz”に設定することもできる。これは、以下のような理由による。すなわち、携帯電話機以外を受信端末として利用する場合には、可聴周波数の上限(22kHz)以下であれば3.4kHzより高い周波数領域を用いることができるが、10kHzを超える高音域では、圧縮・変調などの信号処理の影響を受け易く、スピーカによっては再生能力が低下するため、下限を電話回線帯域の上限である3.4kHzとし、上限を3.4kHzから1オクターブ上がった6.8kHzとすることとした。なお、“1.7kHz”“3.4kHz”“6.8kHz”という値は、代表的な値であり、必ずしも正確な値である必要はなく、そこから若干ずれた値であっても良い。なお、本明細書においては、“1.7kHz〜3.4kHz”を「電話高周波帯」、“3.4kHz〜6.8kHz”を「超電話周波帯」と呼ぶことにする。また、電話回線帯域の上限は上述のように3.4kHz近辺であるので、上記「電話高周波帯」、「超電話周波帯」はそれぞれ可聴周波数範囲で電話回線帯域の上限より若干低音側、若干高音側における所定の周波数帯に該当する。
図3に示した例では、相対的に強い状態と弱い状態に変更することについて説明したが、この強弱の程度については、状況に応じて設定することが可能である。両者の割合は、以下に述べるように、大きいほど抽出時の精度が高くなるが、補間される割合は不完全になり、再生時に不連続成分によるノイズが聞こえる。一方、両者の割合が均等であるほど再生品質は原音に近付くが、埋め込んだビットの抽出ができなくなり、再生品質と抽出精度はトレードオフの関係になる。例えば、強い方を100%、弱い方を0%とした場合、音脈分凝により、補間される部分の音は図3のような変更を行なう前に原音響信号で鳴っていた音の50%程度となることが確認されている。そこで、強い方を70%、弱い方を30%とした場合、音脈分凝により、補間される部分の音は図3のような変更を行なう前に原音響信号で鳴っていた音とほぼ同程度となり、この割合が抽出精度を維持できる限界であることが確認されている。このため、相対的に強いスペクトル集合と、相対的に弱いスペクトル集合の強度の割合を70%と30%とすることを目標に設定することが好ましい。これを実現するため、本実施形態では、後述する具体的な処理において、強い状態を設定するための係数α=0.7、弱い状態を設定するための係数β=0.3とする。ただし、強い状態に変更すべきスペクトル集合の強度が元々小さい場合には、係数α、βを補正する必要が生じる。このため、周波数成分変更手段30は、まず、以下の〔数式5〕に従った処理を実行することにより、弱い状態に変更すべきスペクトル集合に対する強い状態に変更すべきスペクトル集合の強度割合γを算出する。
〔数式5〕
E1d=Σj=m,…,m+G-1{Al(1,j)2+Bl(1,j)2}
E2d=Σj=m,…,m+G-1{Al(2,j)2+Bl(2,j)2}
E1u=Σj=m+G,…,m+2G-1{Al(1,j)2+Bl(1,j)2}
E2u=Σj=m+G,…,m+2G-1{Al(2,j)2+Bl(2,j)2}
埋め込みデータが値1の場合、γ=(E1d・E2u)/(E1u・E2d)
埋め込みデータが値2の場合、γ=(E1u・E2d)/(E1d・E2u)
上記〔数式5〕において、mは変更対象周波数帯の下限の成分の番号、m+2Gは変更対象周波数帯の上限の成分の番号である。例えば、変更対象周波数帯として、1.7kHz〜3.4kHzを設定する場合、m=160、m+2G=320となる。したがって、1つの周波数領域の幅G=80である。
そして、さらに強度割合γの値に応じて、周波数成分変更手段30は、以下の〔数式6〕に従った処理を実行することにより、係数α、βを補正して係数α´、β´を得る。
〔数式6〕
0.01≦γ<1.0の場合、α´=α・γ-1/2、β´=β・γ1/2
γ<0.01の場合、α´=10.0・α、β´=0.1・β
なお、γ≧1.0の場合は、補正を行わない。さらに、周波数成分変更手段30は、埋め込むべき情報が“値1”である場合、以下の〔数式7〕に従った処理を実行することにより、周波数成分の状態を“状態1”、すなわち、図3(c)(e)に示したような状態に変更する。
〔数式7〕
j=m〜m+G−1の各成分に対して
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
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
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(2,j)={Al(2,j)2+Bl(2,j)2+Ar(2,j)2+Br(2,j)2}1/2
Al´(2,j)=Al(2,j)・E(2,j)・β/{Al(2,j)2+Bl(2,j)2}1/2
Bl´(2,j)=Bl(2,j)・E(2,j)・β/{Al(2,j)2+Bl(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
j=m+G〜m+2G−1の各成分に対して
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
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
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(2,j)={Al(2,j)2+Bl(2,j)2+Ar(2,j)2+Br(2,j)2}1/2
Al´(2,j)=Al(2,j)・E(2,j)・α/{Al(2,j)2+Bl(2,j)2}1/2
Bl´(2,j)=Bl(2,j)・E(2,j)・α/{Al(2,j)2+Bl(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
埋め込むべき情報が“値2”である場合は、以下の〔数式8〕に従った処理を実行することにより、周波数成分の状態を“状態2” 、すなわち、図3(d)(f)に示したような状態に変更する。
〔数式8〕
j=m〜m+G−1の各成分に対して
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
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
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(2,j)={Al(2,j)2+Bl(2,j)2+Ar(2,j)2+Br(2,j)2}1/2
Al´(2,j)=Al(2,j)・E(2,j)・α/{Al(2,j)2+Bl(2,j)2}1/2
Bl´(2,j)=Bl(2,j)・E(2,j)・α/{Al(2,j)2+Bl(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
j=m+G〜m+2G−1の各成分に対して
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
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
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(2,j)={Al(2,j)2+Bl(2,j)2+Ar(2,j)2+Br(2,j)2}1/2
Al´(2,j)=Al(2,j)・E(2,j)・β/{Al(2,j)2+Bl(2,j)2}1/2
Bl´(2,j)=Bl(2,j)・E(2,j)・β/{Al(2,j)2+Bl(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
なお、上記〔数式6〕に従った処理を実行して係数α´、β´を得た場合は、上記〔数式7〕〔数式8〕において、係数α、βに代えて係数α´、β´を用いる。
周波数逆変換手段40は、上記のようにして、周波数成分の状態が変更されたフレームスペクトルを周波数逆変換して改変音響フレームを得る処理を行う。この周波数逆変換は、当然のことながら、周波数変換手段20が実行した手法に対応していることが必要となる。本実施形態では、周波数変換手段20において、フーリエ変換を施しているため、周波数逆変換手段40は、フーリエ逆変換を実行することになる。
具体的には、Aタイプの音響フレームに対しては、周波数逆変換手段40は、上記〔数式7〕〔数式8〕のいずれかにより得られたスペクトルの左チャンネルの実部Al´(1,j)等、虚部Bl´(1,j)等、右チャンネルの実部Ar´(1,j)等、虚部Br´(1,j)等を用いて、以下の〔数式9〕に従った処理を行い、Xl´(i)、Xr´(i)を算出する。なお、上記〔数式7〕〔数式8〕において改変されていない周波数成分については、Al´(1,j)等として、元の周波数成分であるAl(1,j)等を用いる。
〔数式9〕
Xl´(i)=1/N・{ΣjAl´(1,j)・cos(2πij/N)−ΣjBl´(1,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)}+Xrp(i+N/2)
上記〔数式9〕においては、式が繁雑になるのを防ぐため、Σj=0,…,N-1をΣjとして示している。上記〔数式9〕における第1式の“+Xlp(i+N/2)”、第2式の“+Xrp(i+N/2)”の項は、直前に改変された改変音響フレームのデータXlp(i)、Xrp(i)が存在する場合に、時間軸上N/2サンプル分重複することを考慮して加算するためのものである。上記〔数式9〕によりAタイプの改変音響フレームの左チャンネルの各サンプルXl´(i)、右チャンネルの各サンプルXr´(i)、が得られることになる。
Bタイプの音響フレームに対しては、周波数逆変換手段40は、上記〔数式7〕〔数式8〕のいずれかにより得られたスペクトルの左チャンネルの実部Al´(2,j)、虚部Bl´(2,j)、右チャンネルの実部Ar´(2,j)、虚部Br´(2,j)を用いて、以下の〔数式10〕に従った処理を行い、Xl´(i)、Xr´(i)を算出する。なお、上記〔数式7〕〔数式8〕において改変されていない周波数成分については、以下の〔数式10〕においてはAl´(2,j)、Bl´(2,j)、Ar´(2,j)、Br´(2,j)として、元の値であるAl(2,j)、Bl(2,j)、Ar(2,j)、Br(2,j)を用いる。
〔数式10〕
Xl´(i+N/2)=1/N・{ΣjAl´(2,j)・cos(2πij/N)−ΣjBl´(2,j)・sin(2πij/N)}+Xlp(i+N)
Xr´(i+N/2)=1/N・{ΣjAr´(2,j)・cos(2πij/N)−ΣjBr´(2,j)・sin(2πij/N)}+Xrp(i+N)
上記〔数式10〕によりBタイプの改変音響フレームの左チャンネルの各サンプルXl´(i)、右チャンネルの各サンプルXr´(i)、が得られることになる。
改変音響フレーム出力手段50は、周波数逆変換手段40の処理により得られたAタイプの改変音響フレーム、Bタイプの改変音響フレームを順次出力ファイルに出力する。
次に、図1に示した音響信号に対する情報の埋め込み装置の処理の全体的な流れを、図4のフローチャートに従って説明する。図1に示した装置を構成する各構成要素は、連携して図4に従った処理を実行する。図4は、付加情報1ワード分の処理に対応したものとなっている。1ワードとしては、任意のビット数に設定することができるが、上述のように、本実施形態では、ASCIIコードの実質7ビットに設定されている。
図4においては、まず、ビット配列作成手段70は、付加情報記憶部62から抽出した付加情報に対して所定の処理を施し新たなビット配列を作成する(S101)。具体的には、まず、付加情報記憶部62から1ワード(7ビット)単位で抽出し、これに検査符号を5ビット付加して12ビットとする。
具体的には、図5(a)に示すように、付加情報から抽出した7ビットD1〜D7に対して5つの検査符号P1〜P5を付加したビット配列を作成する。各検査符号P1〜P5は、図5(b)に示したように定義される。このうち、検査符号P1はパリティ符号であり、検査符号P2〜P5は4ビットのハミング符号である。具体的には、検査符号P1は、ビットD1〜D7の排他的論理和として算出される。検査符号P2は、ビットD1、D2、D3、D7の排他的論理和として算出される。検査符号P3は、ビットD1、D4、D5、D7、P1の排他的論理和として算出される。検査符号P4は、ビットD2、D4、D6、D7、P1の排他的論理和として算出される。検査符号P5は、ビットD3、D5、D6、P1の排他的論理和として算出される。したがって、ビット配列作成手段70は、S101において、図5(b)に示した定義に従って図5(a)に示したような12ビットのビット配列を作成することになる。
そして、この12ビットが、音響信号に対する情報の埋め込み装置として用いられるコンピュータ内のレジスタに読み込まれることになる。このように、付加情報記憶部62においては、1ワードは7ビットであるが、埋め込み処理時は、この12ビットの配列で、付加情報内の1ワード分の処理を行う。
次に、周波数成分変更手段30が、レジスタに保持された12ビットから1ビットを読み込む処理を行う(S102)。続いて、音響フレーム読込手段10が、音響信号記憶部61に記憶されたステレオ音響信号の左右の各チャンネルから、それぞれ所定数のサンプルをAタイプの1音響フレームとして読み込む(S103)。続いて、周波数変換手段20および周波数成分変更手段30が、読み込んだビット値に応じてAタイプ音響フレームの周波数成分の状態を変更する処理を行う(S104)。具体的には、まず、読み込んだ音響フレームに対して、周波数変換を行って、その音響フレームのスペクトルであるフレームスペクトルを得る。すなわち、各音響フレームについて、窓関数W(1,i)を用いて、上記〔数式3〕に従った処理を行う。そして、周波数成分変更手段30は、ビット配列作成手段70から受け取った値1、値2に応じて上記〔数式7〕〔数式8〕に従った処理を実行し、変更対象周波数帯の成分の状態を“状態1”、“状態2”に応じた状態のいずれかに変更する。
次に、周波数逆変換手段40が、上記S104の処理により各スペクトル集合の強度が変更されたスペクトルを周波数逆変換して改変音響フレームを得る処理を行う(S105)。この周波数逆変換は、当然のことながら、周波数変換手段20がS104において実行した手法に対応していることが必要となる。本実施形態では、周波数変換手段20において、フーリエ逆変換を施しているため、周波数逆変換手段40は、フーリエ逆変換を実行することになる。具体的には、上記〔数式7〕〔数式8〕のいずれかにより得られたスペクトルの左チャンネルの実部Al´(1,j)等、虚部Bl´(1,j)等、右チャンネルの実部Ar´(1,j)等、虚部Br´(1,j)等を用いて、上記〔数式9〕に従った処理を行い、Xl´(i)、Xr´(i)を算出する。改変音響フレーム出力手段50は、得られた改変音響フレームを順次出力ファイルに出力する。
続いて、音響フレーム読込手段10が、音響信号記憶部61に記憶されたステレオ音響信号の左右の各チャンネルから、それぞれ所定数のサンプルをBタイプの1音響フレームとして読み込む(S106)。次に、周波数変換手段20および周波数成分変更手段30が、読み込んだビット値に応じてBタイプ音響フレームの周波数成分の状態を変更する処理を行う(S107)。具体的には、まず、読み込んだ音響フレームに対して、周波数変換を行って、その音響フレームのスペクトルであるフレームスペクトルを得る。すなわち、各音響フレームについて、窓関数W(2,i)を用いて、上記〔数式4〕に従った処理を行う。そして、周波数成分変更手段30は、ビット配列作成手段70から受け取った値1、値2に応じて上記〔数式7〕〔数式8〕に従った処理を実行し、変更対象周波数帯の成分の状態を“状態1”、“状態2”に応じた状態のいずれかに変更する。
次に、周波数逆変換手段40が、上記S107の処理により各スペクトル集合の強度が変更されたスペクトルを周波数逆変換して改変音響フレームを得る処理を行う(S108)。具体的には、上記〔数式7〕〔数式8〕のいずれかにより得られたスペクトルの左チャンネルの実部Al´(2,j)等、虚部Bl´(2,j)等、右チャンネルの実部Ar´(2,j)等、虚部Br´(2,j)等を用いて、上記〔数式10〕に従った処理を行い、Xl´(i)、Xr´(i)を算出する。
図4のフローチャートにおいては、S103〜S105においてAタイプ音響フレームの状態を変更し、S106〜S108においてBタイプ音響フレームの状態を変更していることになる。
改変音響フレーム出力手段50は、得られた改変音響フレームを順次出力ファイルに出力する。こうして各チャンネルについて、Aタイプ、Bタイプ1つずつの音響フレームに対する処理を終えたら、周波数成分変更手段30がビット配列中の次の1ビットを読み込む(S102)。以上のような処理を音響信号の両チャンネルの全サンプルに渡って実行していく。すなわち、所定数のサンプルを音響フレームとして読み込み、音響信号から読み込むべき音響フレームがなくなったら(S103、S106)、処理を終了する。なお、S101において読み込んだ1ワード分のビット配列(12ビット)の各ビットに対応する処理を終えた場合、S102からS101に戻り、付加情報の次のワードを読み込んでビット配列を作成する処理を行うことになる。付加情報の全ワードに対して処理が終了した場合は、付加情報の先頭ワードに戻って処理を行う。この結果、全ての音響フレームに対して処理を行った全ての改変音響フレームが出力ファイルに記録されて、改変音響信号として得られる。得られた改変音響信号は、記憶手段60内の改変音響信号記憶部63に出力され、記憶される。
なお、本実施形態では、付加情報を1ワード7ビットとし、検査符号を加えて12ビットとして、付加情報1ワード分の処理をする場合について説明したが、抽出側と取り決めがある限り、付加情報の1ワードを任意のビット数単位で記録することが可能である。
上記のようにして得られた改変音響信号の左チャンネルのうち、付加情報が埋め込まれている部分については、変更対象周波数帯の成分は、上記状態1、状態2の2通りの分布しかないことになる。しかし、変更対象周波数帯の成分以外については、元の音響信号のままであるので、制作者の設定に基づいた種々な分布になる。また、上記〔数式7〕〔数式8〕の処理からも明らかなように、変更対象周波数帯の成分は、左チャンネルと右チャンネルにおいて同等の割合で変化させられている。したがって、両スピーカと等距離の位置においても、変更対象周波数帯の成分は、相殺されることなく増幅させる関係となり、情報を抽出し易くなる。
特許文献3に記載の発明と本発明を比べてみる。連続する奇数番目の音響フレームと偶数番目の時間的な変化には相関があるため、特許文献3に記載の発明のように、高周波側と低周波側の成分強度の大小関係が完全に逆になるように変更することは不自然であり、品質を維持するために、変更の程度について妥協せざるを得ない。具体的には、特許文献3に記載の発明では、対角に位置する2つのスペクトル集合の強度値の和が、他の2つのスペクトル集合の強度値の和に比べ所定比率以上になるように補正を行う。しかし、この比率を維持するためにも、音響フレームによっては、かなりの変更を加える必要が生じるため、品質を維持する都合上、比率を達成できない音響フレームが随所に発生し、抽出時の精度不良につながっていた。
本発明では、高周波側、低周波側ごとに隣接する音響フレーム間での信号成分の比率の相乗平均が所定の値以上になるように変更を行う。例えば、高周波側の奇数・偶数フレーム間の強度の比率が1:2のとき、低周波側の奇数・偶数フレーム間の強度の比率が2:1になるのが理想であるが、高周波側の比率を1:8に大きく変更できれば、低周波側の比率は無理に2:1にせず、1:2でも許容することができる。
(3.1.抽出装置の構成)
次に、本発明に係る音響信号からの情報の抽出装置について説明する。図6は、本発明に係る音響信号からの情報の抽出装置の一実施形態を示す構成図である。図6において、100は音響信号入力手段、110は基準フレーム獲得手段、120は位相変更フレーム設定手段、130は周波数変換手段、140は符号判定パラメータ算出手段、150は符号出力手段、160は付加情報抽出手段、170は音響フレーム保持手段である。
音響信号入力手段100は、流れている音声をデジタル音響信号として取得し、入力する機能を有している。現実には、マイクロフォンおよびA/D変換器により実現される。マイクロフォンとしては、変更対象周波数帯の成分が検出可能なものであれば、モノラル無指向性のものであっても、ステレオ指向性のものであっても使用可能である。ステレオ指向性のものであっても一方のチャンネルだけ利用すれば良い。また、図1に示した装置で情報の埋め込みを行った場合には、ステレオで再生されるが、左右どちらのスピーカの音を入力しても、双方のスピーカの音を混合入力しても良く、マイクロフォンの設置位置に制約がない。もちろん、上記信号がモノラル再生される場合、あるいは上記と異なりモノラルで情報が埋め込まれた場合は、再生される単一のスピーカにマイクロフォンを向ければ良い。このマイクロフォンは特別精度の高いものでなく、一般的な精度のマイクロフォンを用いても情報の抽出が可能となる。基準フレーム獲得手段110は、入力されたデジタルのモノラル音響信号(あるいはステレオ音響信号の1チャンネル)から所定数のサンプルで構成される音響フレームを基準フレームとして読み込む機能を有している。基準フレームとしては、埋め込み時と同様にAタイプ、Bタイプのものが設定される。位相変更フレーム設定手段120は、Aタイプ、Bタイプそれぞれの基準フレームと所定サンプルずつ移動させることにより位相を変更した音響フレームを位相変更フレームとして設定する機能を有している。
周波数変換手段130は、基本的には、図1に示した周波数変換手段20とほぼ同様の機能を有している。ただし、音を取り込むタイミングが、音響信号の先頭からとはならないため、正しい位相を特定するために、複数の位相で周波数変換を行う点、元の音響信号がステレオであっても、1つのチャンネルで行う点が異なっている。
周波数変換手段130は、Aタイプの音響フレームに対してフーリエ変換を行う場合は、信号X(i)(i=0,…,N−1)に対して、窓関数W(1,i)を用いて、以下の〔数式11〕に従った処理を行い、変換データの実部A(1,j,p)、虚部B(1,j,p)を得る機能を有している。pは位相番号であり、0〜5の整数値をとる。
〔数式11〕
A(1,j,p)=Σi=0,…,N-1W(1,i)・X(i−N/2+pN/6)・cos(2πij/N)
B(1,j,p)=Σi=0,…,N-1W(1,i)・X(i−N/2+pN/6)・sin(2πij/N)
周波数変換手段130は、Bタイプの音響フレームに対してフーリエ変換を行う場合は、信号X(i)(i=0,…,N−1)に対して、窓関数W(2,i)を用いて、以下の〔数式12〕に従った処理を行い、変換データの実部A(2,j,p)、虚部B(2,j,p)を得る機能を有している。
〔数式12〕
A(2,j,p)=Σi=0,…,N-1W(2,i)・X(i+pN/6)・cos(2πij/N)
B(2,j,p)=Σi=0,…,N-1W(2,i)・X(i+pN/6)・sin(2πij/N)
符号判定パラメータ算出手段140は、生成されたスペクトルから所定の周波数範囲に相当するスペクトル集合を抽出し、各スペクトル集合の強度値を算出するとともに、この強度値を利用して符号判定パラメータを算出し、この符号判定パラメータの大小関係に基づいて、所定の状態であると判断する機能を有している。上述のように、本実施形態では、Aタイプの音響フレームとBタイプの音響フレームがN/2サンプルずつ重複して設定されているため、ある音響フレームについて、強度値、符号判定パラメータを算出する際には、直前の音響フレームによる残響成分を考慮する必要がある。ところが、残響成分は計算により算出されるものであるので、必ずしも正確なものが算出されるとは限らず、算出された残響成分を除去することにより、反って抽出精度が低下する場合がある。そこで、本実施形態では、残響成分を除去しない場合の強度値E1、E2、E3、E4、および符号判定パラメータCと、除去した場合の強度値E1´、E2´、E3´、E4´、および補正符号判定パラメータC´を算出し、これらを利用して最適であると思われる状態を判断する。
Aタイプの音響フレームの各成分A(1,j,p)、B(1,j,p)に対して1フレーム分前のBタイプの音響フレームに対応する各成分をA-1(2,j,p)、B-1(2,j,p)とすると、Bタイプの音響フレームの各成分A(2,j,p)、B(2,j,p)に対応して、1フレーム分前の音響フレームは以下補正を施す前の前記Aタイプの音響フレームとなる。符号判定パラメータ算出手段140は、各スペクトル集合の強度値の算出の前に、まず、各スペクトル集合の基本強度値E(1,j,p)、E(2,j,p)、および残響成分を除去した基本強度値E´(1,j,p)、E´(2,j,p)を、以下の〔数式13〕に従った処理により算出する。
〔数式13〕
E(1,j,p)=A(1,j,p)2+B(1,j,p)2
E(2,j,p)=A(2,j,p)2+B(2,j,p)2
E-1(1,j,p)=A-1(1,j,p)2+B-1(1,j,p)2
E-1(2,j,p)=A-1(2,j,p)2+B-1(2,j,p)2
E´(1,j,p)=E(1,j,p)−q{E-1(2,j,p)+qE-1(1,j,p)}
E´(2,j,p)=E(2,j,p)−q{E(1,j,p)+qE-1(2,j,p)}
上記〔数式13〕における6つの式のうち、上から5番目(下から2番目)の式は、あるAタイプの音響フレームに着目したときに、その前半のN/2サンプルが重複するBタイプの音響フレームからの残響成分を除去するためのものである。また、上から6番目(下から1番目)の式は、あるBタイプの音響フレームに着目したときに、その前半のN/2サンプルが重複するAタイプの音響フレームからの残響成分を除去するためのものである。E´(1,j,p)≧0、E´(2,j,p)≧0とし、〔数式13〕の上から5番目、6番目の式に従った処理の結果、負の値となった場合には、0に設定する。
上記〔数式13〕において、qは残響成分の大きさを示す係数であるが、この係数qは1未満の値を持つものであり、実験の結果、N=4096のときq=0.06、N=2048のときq=0.12、N=1024のときq=0.24、N=512のときq=0.48が最適である。
そして、残響成分を除去しない場合の各スペクトル集合の強度値E1、E2、E3、E4、除去した場合の強度値E1´、E2´、E3´、E4´を、算出した基本強度値E(1,j,p)、E(2,j,p)、E´(1,j,p)、E´(2,j,p)を用いて以下の〔数式14〕に基づいて算出する。
〔数式14〕
E1(p)=Σj=m,…,m+G-1E(1,j,p)・F(j)
E2(p)=Σj=m,…,m+G-1E(2,j,p)・F(j)
E3(p)=Σj=m+G,…,m+2G-1E(1,j,p)
E4(p)=Σj=m+G,…,m+2G-1E(2,j,p)
E1´(p)=Σj=m,…,m+G-1E´(1,j,p)・F(j)
E2´(p)=Σj=m,…,m+G-1E´(2,j,p)・F(j)
E3´(p)=Σj=m+G,…,m+2G-1E´(1,j,p)
E4´(p)=Σj=m+G,…,m+2G-1E´(2,j,p)
結局〔数式13〕〔数式14〕により、各スペクトル集合の強度値E1、E2、E3、E4が算出されるとともに、当該各スペクトル集合に対応する直前の同タイプの音響フレームにおけるスペクトル集合の強度にq2を乗じた値と、タイプの別を問わない直前の音響フレームにおけるスペクトル集合の強度にqを乗じた値を減じることにより強度値E1´、E2´、E3´、E4´が算出されることになる。
上記〔数式14〕において、F(j)は各jに対応するスペクトル要素を補正するために用いられる関数である。ここで、音響信号の周波数とエネルギー分布の関係を図7に示す。図7に示すように、音響信号のエネルギー分布は、周波数fの2乗に比例して下がる傾向にある。このため、高周波成分について、情報が埋め込まれているかどうかの判断を行う際、低周波成分よりも信号強度が大きくなるように補正した方が、誤判断が生じ難くなる。そこで、本発明では、低周波側について、補正関数F(j)により補正した強度値E1、E2、E1´、E2´を求めるのである。補正関数F(j)は、以下の〔数式15〕で定義される周波数方向窓関数である。補正関数F(j)は、各スペクトル要素に対して作用するが、スペクトル集合の強度の算出にあたり、上記〔数式14〕では、各スペクトル要素の強度の総和を求めるため、その総和に作用させる形式となっている。
〔数式15〕
j<m+3G/4のときF(j)=0.1
j≧m+3G/4のときF(j)=1.0
上記〔数式15〕において、Gは所定周波数帯におけるスペクトル集合の成分数を示し、G=(M−m)/2である。ここで、周波数方向窓関数F(j)のグラフを図8に示す。上記〔数式14〕においては、jがmからm+G−1のそれぞれG個の各スペクトル要素に対して、周波数方向窓関数F(j)が乗じられることになる。
また、符号判定パラメータ算出手段140は、残響成分を除去せずに算出した強度値E1、E2、E3、E4を用いて、以下の〔数式16〕に従った処理を実行し、符号判定パラメータCを算出する。
〔数式16〕
1)E1(p)>E2(p)かつE4(p)>E3(p)の場合
B=0と仮判定、
C={E1(p)・E4(p)−E2(p)・E3(p)}/{E1(p)・E4(p)+E2(p)・E3(p)}
2)E2(p)>E1(p)かつE3(p)>E4(p)の場合
B=1と仮判定、
C={E2(p)・E3(p)−E1(p)・E4(p)}/{E1(p)・E4(p)+E2(p)・E3(p)}
3)E1(p)・E4(p)>E2(p)・E3(p)の場合
B=0と仮判定、
C={E1(p)・E4(p)−E2(p)・E3(p)}/{E1(p)・E4(p)+E2(p)・E3(p)}
4)上記1)〜3)以外の場合
B=1と仮判定、
C={E2(p)・E3(p)−E1(p)・E4(p)}/{E1(p)・E4(p)+E2(p)・E3(p)}
また、符号判定パラメータ算出手段140は、残響成分を除去して算出した強度値E1´、E2´、E3´、E4´を用いて、以下の〔数式17〕に従った処理を実行し、補正符号判定パラメータC´を算出する。
〔数式17〕
1)E1´(p)>E2´(p)かつE4´(p)>E3´(p)の場合
B´=0と仮判定、
C´={E1´(p)・E4´(p)−E2´(p)・E3´(p)}/{E1´(p)・E4´(p)+E2´(p)・E3´(p)}
2)E2´(p)>E1´(p)かつE3´(p)>E4´(p)の場合
B´=1と仮判定、
C´={E2´(p)・E3´(p)−E1´(p)・E4´(p)}/{E1´(p)・E4´(p)+E2´(p)・E3´(p)}
3)E1´(p)・E4´(p)>E2´(p)・E3´(p)の場合
B´=0と仮判定、
C´={E1´(p)・E4´(p)−E2´(p)・E3´(p)}/{E1´(p)・E4´(p)+E2´(p)・E3´(p)}
4)上記1)〜3)以外の場合
B´=1と仮判定、
C´={E2´(p)・E3´(p)−E1´(p)・E4´(p)}/{E1´(p)・E4´(p)+E2´(p)・E3´(p)}
符号出力手段150は、1つの基準フレームに対応する音響フレーム(基準フレームおよび位相変更フレーム)の中から最適な位相であると判断されるものを判断し、その音響フレームの状態に対応する符号を出力する機能を有している。符号判定パラメータ算出手段140と符号出力手段150により符号化手段が構成される。付加情報抽出手段160は、符号出力手段150により出力された2値の配列を、所定の規則により変換して意味のある付加情報として抽出する機能を有している。音響フレーム保持手段170は、チャンネルごとのAタイプ、Bタイプそれぞれについて連続する2個の基準フレーム(チャンネルごとに計4個の基準フレーム)を保持可能なバッファメモリである。図6に示した各構成手段は、現実には情報処理機能を有する小型のコンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。特に、本発明の目的をより簡易に達成するためには、携帯電話機等の携帯型端末装置をハードウェアとして用いることが望ましい。なお、携帯電話機等の携帯型端末装置であっても、演算処理機能を有するものは、コンピュータの一種と考えられる。
(3.2.抽出装置の処理動作)
次に、図6に示した音響信号からの情報の抽出装置の処理動作について説明する。本発明に係る抽出装置は、検査符号によりエラーを検出した際、エラー訂正を行わない設定とすることもできるし、1ビットのエラー訂正をするものと設定することもできる。ここからは、エラー訂正を行わない設定における抽出装置の処理動作を、図9のフローチャートに従って説明する。まず、本装置では、位相判定テーブルS(p)、位相決定ログ、位相確定フラグ、ビットカウンタを初期化する(S200)。位相判定テーブルS(p)は、位相を判定するためのテーブルであり、pは0〜5の整数値をとる。初期値はS(p)=0に設定されている。位相決定ログは、1つの基準フレームと5つの位相変更フレームの組ごとに、決定された位相すなわち位相番号pを記録していくものであり、初期状態では0が設定されている。位相確定フラグは、位相が確定しているかどうかを示すフラグであり、初期状態ではOffに設定されている。ビットカウンタについては初期値として0を設定する。
このように、初期値が設定されている状態で、利用者が流れている音楽について、その楽曲名等の属性情報を知りたいと思った場合、まず、抽出装置に対して、抽出装置としての起動の指示を行う。これは、例えば、抽出装置を携帯電話機等の携帯端末で実現している場合は、所定のボタンを操作することにより実行できる。抽出装置は、指示が入力されると、音響信号入力手段100が、流れている音楽を録音し、デジタル化してデジタル音響信号として入力する。具体的には、無指向性マイクロフォン(または指向性マイクロフォンの一方のチャンネル)から入力される音声を、A/D変換器によりデジタル化する処理を行うことになる。
続いて、基準フレーム獲得手段110が、音響信号入力手段100から入力された音響信号から、所定数のサンプルで構成される音響フレームを基準フレームとして抽出する(S201)。具体的には、Aタイプ、Bタイプについての基準フレームを抽出して音響フレーム保持手段170に読み込むことになる。基準フレーム獲得手段110が基準フレームとして読み込む1音響フレームのサンプル数は、図1に示した音響フレーム読込手段10で設定されたものと同一にする必要がある。したがって、本実施形態の場合、基準フレーム獲得手段110は、Aタイプ、Bタイプについてそれぞれ4096サンプルずつ、順次基準フレームとして読み込んでいくことになる。音響フレーム保持手段170には、各チャンネルについて、Aタイプ、Bタイプ2個ずつの基準フレーム、すなわち2.5Nサンプルが格納可能となっており、新しい基準フレームが読み込まれると、古い基準フレームを破棄するようになっている。したがって、音響フレーム保持手段170には、常に基準フレーム4個分(連続する10240サンプル)が格納されていることになる。
抽出装置で処理する音響フレームは、先頭から途切れることなく隣接して設定される基準フレームと、この基準フレームと位相を変更した位相変更フレームとに分けることができる。基準フレームについては、Aタイプの音響フレームとBタイプの音響フレームが、2048サンプルずつ重複している場合、最初の基準フレームとしてサンプル番号1からサンプル番号4096までを設定したら、次の基準フレームは、サンプル番号2049からサンプル番号6144、さらに次の基準フレームは、サンプル番号4097からサンプル番号8192、さらに次の基準フレームは、サンプル番号6145からサンプル番号10240、というように途切れることなく設定される。そして、各基準フレームについて、1/6フレーム(約683サンプル)ずつ移動した5個の位相変更フレームを設定する。例えば、最初の基準フレームについては、サンプル番号683、1366、2049、2732、3413から始まる4096のサンプルで構成される5個の位相変更フレームが設定されることになる。続いて、周波数変換手段130、符号判定パラメータ算出手段140が、読み込んだ各音響フレームについて、位相を特定した後、埋め込まれている情報を判定し、対応する符号を出力する(S202)。出力される情報の形式は、付加情報が埋め込まれる場合に対応する値1、値2の2通りの形式となる。
ここで、ステップS202の位相確定および符号判定の詳細を図10のフローチャートに従って説明する。まず、位相確定フラグがOnであるかOffであるかの確認を行う(S301)。位相確定フラグがOnである場合は、位相確定処理(S303〜S309)を行わず、符号判定処理のみを行う(S302)。ただし、初期状態では位相は確定しておらず、位相確定フラグがOffとなっているので、候補符号テーブルB(p)の初期化を行う(S303)。候補符号テーブルB(p)は、1つの基準フレームおよび5個の位相変更フレームを特定するp=0〜5の位相番号および、この6個の音響フレームの状態から得られる2値の符号を記録するものである。
続いて、符号判定パラメータ算出手段140は、符号判定処理を行う(S302)。ここで、符号判定処理の詳細を図11に示す。まず、周波数変換手段130が、読み込んだ各音響フレームに対して、周波数変換を行って各窓スペクトルを得る(S401)。具体的には、上記〔数式11〕〔数式12〕に従った処理を実行し、変換データの実部A(2,j,p)、虚部B(2,j,p)、実部A(2,j,p)、虚部B(2,j,p)を得る。
S401の処理については、実際には、Aタイプ音響フレームについて周波数変換を行った後、N/2サンプルだけシフトしてBタイプ音響フレームについて周波数変換を行う。
上記周波数変換手段130における処理により、周波数に対応した成分であるスペクトルで表現されたフレームスペクトルが得られる。続いて、符号判定パラメータ算出手段140は、符号判定パラメータC、C´を上述のようにして算出した後、符号判定パラメータC、C´を用いて、変更対象周波数帯の成分の状態がどのような状態であるか、すなわち、1ビットの値としてどのような値が埋め込まれていたかを判断する処理を行う(S402)。具体的には、上記〔数式13〕〜〔数式16〕に従った処理を実行して、符号判定パラメータC、C´を算出する。そして、この両者を比較して、C≧C´であれば候補符号Bを候補符号テーブルB(p)に設定し、C<C´であれば候補符号B´を候補符号テーブルB(p)に出力する。
S402の具体的な処理手順としては、まず、上記〔数式13〕の1番目の式と2番目の式を利用して基本強度値E(1,j,p)、E(2,j,p)を算出した後、上記〔数式14〕の1番目から4番目までの式を利用してE1(p)、E2(p)、E3(p)、E4(p)を算出し、上記〔数式16〕に従って候補符号Bおよび符号判定パラメータCを算出する処理を行う。続いて、上記〔数式13〕の3番目から6番目までの式を利用して、残響補正処理を行って基本強度値E´(1,j,p)、E´(2,j,p)を算出する。そして、上記〔数式14〕の5番目から8番目までの式を利用してE1´(p)、E2´(p)、E3´(p)、E4´(p)を算出し、上記〔数式17〕に従って候補符号B´および補正符号判定パラメータC´を算出する処理を行う。
また、上記判定の結果、位相pにおける候補符号テーブルB(p)に値1、値2のいずれかを出力した場合には、さらに、以下の〔数式18〕に従って位相判定テーブルS(p)の更新を行う(S403)。
〔数式18〕
C≧C´である場合、S(p)←S(p)+C
C<C´である場合、S(p)←S(p)+C´
ここで、図10のフローチャートに戻って、符号判定パラメータ算出手段140は、候補符号テーブルB(p)に、位相pにおいて符号判定処理(S302)で仮決定された符号を保存する(S304)。
続いて、全ての位相番号pに対応する処理を終えたかどうかを判定する(S305)。これは、ある基準フレームに対して全ての位相変更フレームの処理を行ったかどうかを判定している。本実施形態では、pが0〜5までの値をとるので、6回分処理していない場合は、処理していた音響フレームから所定サンプル数ずらして、位相の異なる音響フレームを設定し、S302に戻って処理を繰り返す。なお、p=0の場合が基準フレームであり、p=1〜5の場合が位相変更フレームである。全ての位相番号pに対応する処理を終えた場合は、位相判定テーブルS(p)の値が最大となる位相番号pmaxに対応する位相が最適位相であると判定し、候補符号テーブルB(p)に記録されている符号B(pmax)を出力する(S306)。
続いて、位相決定ログの更新を行う(S307)。位相決定ログとは、1つの基準フレームと5つの位相変更フレームの組ごとに、決定された位相すなわち位相番号pを記録するものである。そして、位相決定ログを参照して、位相が過去所定回数同一であったかどうかを判断する(S308)。本実施形態では、この回数を10回としている。位相が過去所定回数同一であった場合には、位相確定フラグをOnに設定する(S309)。これにより、同一位相が所定回数続いた場合には、最適位相はpmaxとなる可能性が高いため、位相確定処理(S303〜S309)を行わず、位相番号p=pmaxに対してのみ符号判定処理(S302)を行うことになる。
再び図9のフローチャートに戻って説明する。位相確定および符号出力が行なわれたら、出力された符号の値に対応する1ビットをバッファに保存する(S203)。次に、ビットカウンタを“1”だけカウントアップする(S204)。
次に、ビットカウンタが11以下であるか12以上であるかを判断する(S205)。ビットカウンタが11以下の場合は、S201に戻って、次のAタイプ、Bタイプの基準フレームを抽出する処理を行う。
ビットカウンタが12以上である場合は、バッファに保存されたビット配列のうちの前7ビットから検査符号を算出する(S206)。具体的には、図5(b)に示した定義に従って算出することになる。これにより、5個の検査符号が得られる。続いて、算出した検査符号とビット配列中の後5ビットとの照合を行う(S207)。具体的には、S206において算出された5個の検査符号と、後5ビットの各値をそれぞれ順に照合する。この結果、5個全て一致する場合は完全適合、その他の場合は不適合と判断する。S207において不適合と判断された場合は、S201に戻って、次の基準フレームを抽出する処理を行う。
S207において完全適合と判断された場合は、付加情報抽出手段160が、前7ビットに1ビット付加して出力する(S208)。S207において完全適合であった場合は、バッファ中の先頭の1ビット目が、付加情報内のワードの1ビット目であった可能性が高いことになる。このため、その先頭からの7ビットにビット“0”を付加することによりASCIIコードにおける1ワードとして出力するのである。不適合の場合は、照合に用いた前7ビットが、付加情報内のワードとずれている可能性が高いことになる。この場合は、先頭の1ビットを破棄して、S201からS204の処理により新たな1ビットを得るための処理を行う。
完全適合と判断された場合は、その部分がワードの区切りである可能性が高いので、それが本当に区切りであれば、以降は12ビットずつ抽出すれば、全て正確にワード単位で抽出を行うことができる。逆に、完全適合と判断されたとしても、それが偶然であり、実はワードの区切りではない場合も考えられる。このような場合は、次の検査の際に不適合となる可能性が高く、何回か繰り返しているうちに正しい区切りが正確に判断できることになる。S208において、前7ビットに1ビット付加して出力した場合には、ビットカウンタを0に初期化する(S209)。そして、S201に戻って、次の基準フレームを抽出する処理を行う。
図9に示す処理を各基準フレームに対して実行することにより、付加情報が抽出されることになる。S201において全ての基準フレームが抽出されたと判断された場合には、処理を終了する。
上記S208の処理において、付加情報抽出手段160は、まず、符号出力手段150により出力された値を、所定の規則により変換して意味のある付加情報として抽出する。所定の規則としては、情報を埋め込む者が意図した情報が受け取った者に認識可能な状態にすることができるものであれば、さまざまな規則が採用できるが、本実施形態では、ASCIIコードを採用している。すなわち、付加情報抽出手段160は、符号判定パラメータ算出手段140が判定し、符号出力手段150から出力される符号から得られるビット値の配列を1バイト(8ビット)単位で認識し、これをASCIIコードに従って文字情報を認識する。このようにして得られた文字情報は、表示装置(図示省略)の画面に表示出力される。
従って、埋め込み装置により音響信号に、その楽曲の曲名やアーチスト等の属性情報を文字情報として埋め込んでおけば、利用者は、その音楽が流れているのを聞いて、その曲名やアーチストを知りたいと思ったときに、抽出装置として機能する自身の携帯端末に所定の操作を行えば、自身の携帯端末の画面に曲名やアーチスト等の属性情報が文字情報として表示されることになる。
上記の例では、図9のフローチャートに従ってエラー訂正を行わない設定における抽出装置の処理動作を説明した。エラー訂正を行わない場合は、エラーが生じない場合にのみ、付加情報1ワードの出力が可能となる。
次に、1ビットのエラー訂正をする設定における抽出装置の処理動作を、図12のフローチャートに従って説明する。図12においては、図9と同一処理を行う部分が含まれている。そこで、図9と同一処理を行う部分については、同一符号を付して説明を省略する。図12の例においても、まず、初期化処理を行う(S200)。この初期化処理では、図9の例と同様、位相判定テーブルS(p)、位相決定ログ、位相確定フラグ、ビットカウンタを初期化するが、さらに、自動訂正モードをOFFにする設定を行う。
続いて、図9と同様、所定数のサンプルで構成される音響フレームを基準フレームとして抽出した後(S201)、読み込んだ各音響フレームについて、位相を特定した後、埋め込まれている情報を判定し、対応する符号を出力する(S202)。なお、S202の処理については、図10、図11に示したようなものとなる。
位相確定および符号出力が行なわれたら、出力された符号の値に対応する1ビットをバッファに保存して(S203)、ビットカウンタを“1”だけカウントアップする(S204)。そして、ビットカウンタが11以下であるか12以上であるかを判断し(S205)、ビットカウンタが11以下の場合は、S201に戻って、次の基準フレームを抽出する処理を行う。
ビットカウンタが12以上である場合は、バッファに保存されたビット配列のうちの前7ビットから検査符号を算出する(S206)。続いて、算出した検査符号と後5ビットとの照合を行う(S207)。S207において、完全適合、と判断された場合は、S208におけるビット列の出力処理の直前に、自動訂正モードをONに設定する処理を行う(S210)。
S207において不適合と判断された場合は、誤りビットが特定できるかどうかを判断する(S211)。具体的には、P1が不合格で、P2とP3、P2とP4、P2とP5、P3とP4、P3とP5、P4とP5のいずれか2ビットが不合格の場合、各々D1、D2、D3、D4、D5、D6の1ビット誤りと特定する。P1が不合格で、P2とP3とP4、P3とP4とP5のいずれか3ビットが不合格の場合、各々D7、P1の1ビット誤りと特定する。P1が不合格で、P2〜P5のいずれか1ビットが不合格の場合、各々それ自身の1ビット誤りと特定する。判断の結果、誤りビットが特定できなかった場合には、自動設定モードをOFFに設定する処理を行った後(S212)、S201に戻って、次の基準フレームを抽出する処理を行う。
S211における判断の結果、誤りビットが特定できた場合には、自動訂正モードがONであるかOFFであるかの判断を行う(S213)。自動訂正モードがOFFである場合は、S201に戻って、次の基準フレームを抽出する処理を行う。
自動訂正モードがONである場合は、前7ビット中の1ビットを反転訂正する(S214)。この際、反転すべきビットは、S211において特定された誤りビットである。続いて反転訂正後のバッファ内ビットのうち前7ビットにビット“0”を付加して出力する(S208)。
図12の例のように、1ビットのエラー訂正をする設定の場合は、1ビットのエラーが生じた場合であっても、付加情報1ワードの出力が可能となる。
(3.3.位相補正処理について)
上記のように、抽出時には、埋め込み時に埋め込んだ音響フレームに対応して、音響信号を読み込むことができるとは限らない。そこで、音響フレームの位相をずらして複数通り(本実施形態では6通り)で読み込み、その中で最適な位相を決定し、その位相で特定される音響フレームに対応する符号を出力することにしている。例えば、6通りで読み込む場合、先頭の音響フレームは、本来サンプル番号1〜4096のサンプルであるが、サンプル番号1、683、1366、2049、2732、3413から始まる4096のサンプルで構成される6個の各音響フレームに対して処理を行い、最適な音響フレームに対応する符号を出力することになる。なお、図10のフローチャートを用いて説明したように、本実施形態では、同一位相が所定回数連続した場合には、それ以降はその位相を確定したものとして処理を行う。
(4.信号成分が小さくても情報の埋め込みを確実に行う手法)
ここまでの説明のように、本発明では、元の信号成分の状態如何にかかわらず、常に変更対象周波数帯の信号成分を変更するものであるが、その成分の大きさは、両チャンネルの信号強度より大きくなることはない。このため、元の信号成分が存在しないか、または小さすぎる場合には、抽出に必要な信号成分が得られないため、情報の抽出を適切に行うことができず抽出エラーとなる。そこで、以下、元の信号成分が小さくても、情報の抽出を適切に行えるように信号の埋め込みを可能とする手法について説明する。
従来は、元の信号成分が小さい場合に情報の抽出を適切に行うために、上記特許文献2に示すように、所定の固定値をスペクトル集合中の成分の強度として強制的に与えることにより、情報の埋め込みを可能とした。しかし、この手法では、再生品質に劣化が生ずるという問題がある。そこで、本実施形態では、音響信号に聴取困難な微弱な白色ノイズを重畳させることとした。
この場合、図1に示した音響フレーム読込手段10は、所定数のサンプルを1音響フレームとして読み込んだ後、所定の振幅範囲で所定サンプル数単位で同一値を加算または減算する機能を有している。本実施形態では、左チャンネル信号Xl(i)、右チャンネル信号Xr(i)(i=0,…,N−1)に対して、−32〜+32の振幅範囲(Xl(i)、Xr(i)のとり得る値が−32768〜+32767の場合)で一様乱数Hを発生させ、K(本実施形態ではK=5)個のサンプル間は同一値Hを用いて以下の〔数式19〕に示すような処理を実行し、Xl(i)、Xr(i)の値を更新する。
〔数式19〕
Xl(i)←Xl(i)+H
Xr(i)←Xr(i)−H
すなわち、上記〔数式19〕に従った処理をNサンプルに渡って実行することにより、1つの音響フレームに白色ノイズが発生されることになる。この白色ノイズの発生処理は、図4のフローチャートにおいては、S103の音響フレーム抽出処理の直後に行われることになる。
上記のように、白色ノイズを発生させた場合であっても、抽出側の、音響信号からの情報の抽出装置の構成は図6と同一であり、処理動作は図9〜図12のフローチャートに従ったものと同一である。
(5.その他)
以上、本発明の好適な実施形態について限定したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記実施形態では、1音響フレームのサンプル数N=4096としたが、N=2048、1024、512等を設定するようにしても良い。これにより、同一時間あたりの音響フレーム数が、2倍、4倍、8倍となり、全体として2〜8倍の情報の埋め込みが可能となる。
また、上記実施形態では、音響信号からの情報の抽出装置を、携帯電話機等の携帯型端末装置単体で実現した場合を例にとって説明したが、他のコンピュータと連携して実現するようにしても良い。具体的には、携帯型端末装置と専用コンピュータを無線通信可能に接続し、音響信号入力手段100〜音響フレーム保持手段170の構成要素のうち、演算負荷の大きいものは、専用コンピュータで処理する。例えば、音響信号入力手段100、基準フレーム獲得手段110、位相変更フレーム設定手段120、付加情報抽出手段160を携帯型端末装置に備え、周波数変換手段130、符号判定パラメータ算出手段140、符号出力手段150、音響フレーム保持手段170を専用コンピュータに備えるようにして、必要な情報を両者間で通信するようにする。これにより、携帯型端末装置の処理性能が低い場合であっても高速な処理を行うことが可能となる。
また、上記実施形態では、2チャンネルのステレオ音響信号を利用した場合を例にとって説明したが、1チャンネルのモノラル音響信号を利用しても良い。この場合は、上記LチャンネルまたはRチャンネルのいずれか一方に対して行った処理を実行すれば良い。