以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、以下の説明において、音声から構成される信号を音声信号、音楽等の音声以外の信号を音響信号と称することとし、音声信号と音響信号とから構成される信号をオーディオ信号と称することとする。
[基盤技術に関する説明]
まず、本発明に係る好適な実施形態について詳細な説明をするに先立ち、本実施形態を実現する上で基盤を成す技術的事項について説明する。なお、本実施形態は、以下に記載する基盤技術の上に改良を加えることにより、より顕著な効果を得ることができるように構成されたものである。従って、その改良に係る技術こそが本実施形態の特徴を成す部分である。つまり、本実施形態は、ここで述べる技術的事項の基礎概念を踏襲するが、その本質はむしろ改良部分に集約されており、その構成が明確に相違すると共に、その効果において基盤技術とは一線を画するものであることに注意されたい。
<PICOLAに関する説明>
PICOLAは、上述のように、デジタル音声信号に対する時間領域での伸張圧縮アルゴリズムであって、以下のような方法で、音声信号の伸張や圧縮を行う。以下では、図1〜図5を参照しながら、PICOLAの信号処理方法について説明する。
図1は、PICOLAを用いてオーディオ信号を伸張する例を示した説明図である。なお、以下の説明において、原波形とは、PICOLAに入力されたままの状態の信号の波形を意味する。また、図1各図の縦軸は、信号の振幅(すなわち、強度)を表し、横軸は、時間を表している。
(PICOLAにおける波形の伸張処理)
PICOLAにおいては、まず、原波形(a)から、波形が類似している区間Aおよび区間Bを検出する。区間Aおよび区間Bは、図1(a)に示したように、同一の長さを有する連続した2つの区間であって、区間Aと区間Bのサンプル数は、同じである。続いて、検出した区間Aでの波形はそのままで、検出した区間Bでフェードアウトする波形(b)を生成する。同様にして、区間Aからフェードインし、区間Bでの波形はそのままである波形(c)を生成する。次に、生成した波形(b)と波形(c)とを足し合わせると、伸張波形(d)が得られる。
このように、フェードアウトする波形とフェードインする波形とを足し合わせることを、クロスフェードと称する。区間Aと区間Bとのクロスフェード区間を区間A×Bと表すこととすると、以上説明した操作を行なうことにより、原波形(a)の区間Aと区間Bは、伸張波形(d)の区間Aと区間A×Bと区間Bに変更される。
(類似波形長の検出について)
ここで、上述の波形の伸張処理において、入力された信号の中から、波形が類似している連続した2つの区間を検出する必要があるが、以下においては、図2を参照しながら、類似波形である区間Aと区間Bの区間長Wを検出する方法を説明する。図2は、類似波形長の探索の一例を説明するための説明図である。
まず、ある信号波形における処理開始位置P0を起点として、jサンプルの区間Aと区間Bとを、図2(a)のように定める。次に、図2(a)→(b)→(c)に示したように、少しずつj(すなわち、サンプル数)を伸ばしながら、区間Aと区間Bが最も類似するjを検出する。ここで、区間Aと区間Bとの類似度を測る尺度として、例えば、以下の式1に示す関数D(j)を用いることが可能である。
関数D(j)は、類似波形長の探索範囲の最小値(WMIN)から探索範囲の最大値(WMAX)までの区間(すなわち、WMIN≦j≦WMAX)で計算され、最も小さなD(j)を与えるjを求める。この、最も小さなD(j)を与えるパラメータjが、区間Aと区間Bの区間長Wとなる。なお、上記j、WMIN、WMAXは、周期のサンプル数表記である。
ここで、上記の式1において、x(i)は区間Aの各サンプル値を表し、y(i)は区間Bの各サンプル値を表す。また、x(i)が区間Bの各サンプル値を表し、y(i)が区間Aの各サンプル値を表していてもよい。なお、類似波形長の探索周波数範囲は、例えば50Hz〜250Hz程度の値とすることができる。サンプリング周波数が例えば8kHzであれば、WMAX=160、WMIN=32程度となる。図2に示した例では、(b)におけるjが関数D(j)を最も小さくするjとして選ばれる。
続いて、図3を参照しながら、PICOLAを用いて任意の長さにオーディオ信号を伸張する方法を説明する。図3は、PICOLAによるオーディオ信号の伸張方法を説明するための説明図である。
まず、図2で説明したように、処理開始位置P0を起点として関数D(j)が最小となるjを求め、W=jとおく。続いて、区間301を区間303にコピーし、区間301と区間302のクロスフェード波形を、区間304に生成する。そして、原波形(a)の位置P0から位置P0’までの区間から区間301を除いた残りの区間を、伸張波形(b)にコピーする。以上の操作により、原波形(a)の位置P0から位置P0’までのLサンプルが、伸張波形(b)ではW+Lサンプルとなり、サンプル数はre倍となる。ここで、サンプル数の伸張率(サンプル数の増加率)を表すreは、以下の式2を用いて定義される。
ここで、上記式2をLについて書き換えると、以下の式3のようになる。
すなわち、式3から明らかなように、原波形(a)のサンプル数をre倍したい場合には、以下に示す式4を用いて、位置P0’を定めればよい。
また、以下の式5のようにパラメータREを定義すると、サンプル数Lは、以下の式6のように表すことができる。
上述のように定義したREを用いると、原波形(a)を「RE倍速再生する」といった表現も可能である。以下では、このREを、「話速変換率」と称することとする。
原波形(a)の位置P0から位置P0’の処理が終了すると、位置P0’を位置P1とし、改めて処理の起点と見なして、同様の処理を繰り返す。かかる処理を繰り返すことで、原波形を伸張することができる。
図3に示した例では、サンプル数Lが約2.5Wであるので、式2および式5から、話速変換率REは約0.7となる。すなわち、図3に示した例は、約0.7倍速再生の遅聴に相当する。
(PICOLAにおける波形の圧縮処理)
続いて、図4および図5を参照しながら、PICOLAにおける波形の圧縮処理について説明する。
図4は、PICOLAを用いてオーディオ信号を圧縮する例を説明するための説明図である。PICOLAにおいては、まず、原波形(a)から、波形が類似している区間Aおよび区間Bを検出する。区間Aおよび区間Bは、図4(a)に示したように、同一の長さを有する連続した2つの区間であって、区間Aと区間Bのサンプル数は、同じである。なお、波形が類似している区間は、図2を参照しながら説明した方法を適用することが可能である。続いて、区間Aでフェードアウトする波形(b)を生成するとともに、区間Bからフェードインする波形(c)を生成する。次に、生成した波形(b)と波形(c)とを足し合わせることで、圧縮波形(d)を得ることができる。以上の操作を行なうことによって、原波形(a)の区間Aおよび区間Bは、圧縮波形(d)の区間A×Bに変更される。
続いて、図5を参照しながら、PICOLAを用いて任意の長さにオーディオ信号を圧縮する方法を説明する。図5は、PICOLAによるオーディオ信号の圧縮方法を説明するための説明図である。
まず、図2で説明したように、処理開始位置P0を起点として関数D(j)が最小となるjを求め、W=jとおく。続いて、区間501と区間502のクロスフェード波形を、区間503に生成する。そして、原波形(a)の位置P0から位置P0’までの区間から区間501と区間502を除いた残りの区間を、圧縮波形(b)にコピーする。以上の操作により、原波形(a)の位置P0から位置P0’までのW+Lサンプルが、圧縮波形(b)ではLサンプルとなり、サンプル数はrc倍となる。ここで、サンプル数の圧縮率を表すrcは、以下の式7を用いて定義される。
ここで、上記式7をLについて書き換えると、以下の式8のようになる。
すなわち、式8から明らかなように、原波形(a)のサンプル数をrc倍したい場合には、以下に示す式9を用いて、位置P0’を定めればよい。
また、以下の式10のようにパラメータRCを定義すると、サンプル数Lは、以下の式11のように表すことができる。
上述のように定義したRCを用いると、原波形(a)を「RC倍速再生する」といった表現も可能である。原波形(a)の位置P0から位置P0’の処理が終了したら、位置P0’を位置P1とし、改めて処理の起点と見なして同様の処理を繰り返す。かかる処理を繰り返すことで、原波形を伸張することができる。
図5に示した例では、サンプル数Lが約1.5Wであるので、式7および式10から、話速変換率RCは約1.7となる。すなわち、図5に示した例は、約1.7倍速再生の速聴に相当する。
(PICOLAにおける信号の伸張処理の流れ)
続いて、図6を参照しながら、PICOLAにおける信号の伸張処理の流れについて、簡単に説明する。図6は、PICOLAを用いたオーディオ信号の伸張処理の流れを説明するためのフローチャートである。
まず、PICOLAにおいては、PICOLAが実装されている情報処理装置等の入力バッファに、処理すべきオーディオ信号があるか否かが判定される(ステップS601)。ここで、処理すべきオーディオ信号がないと判断した場合には、処理を終了するが、処理すべきオーディオ信号が存在すると判断した場合には、処理開始位置Pを起点として関数D(j)が最小になるjを求め、W=jとおく(ステップS602)。続いて、PICOLAでは、ユーザが指定した話速変換率REからLを求め(ステップS603)、処理開始位置PからWサンプル分の区間Aを、PICOLAが実装されている情報処理装置等の出力バッファに出力する(ステップS604)。
次に、PICOLAにおいては、処理開始位置PからWサンプル分の区間Aと、この区間Aに連続している次のWサンプル分の区間Bとのクロスフェードを求め、区間Cとする(ステップS605)。その後、生成した区間Cを、出力バッファに出力する(ステップS606)。続いて、PICOLAでは、入力バッファの位置P+WからL−Wサンプル分を新たに出力バッファに出力し(ステップS607)、処理開始位置PをP+Lに移動してから(ステップS608)、ステップS601に戻り処理を繰り返す。かかる処理を、入力バッファに処理すべきオーディオ信号がなくなるまで繰り返すことで、オーディオ信号の伸張処理を行うことが可能である。
(PICOLAにおける信号の圧縮処理の流れ)
続いて、図7を参照しながら、PICOLAにおける信号の圧縮処理の流れについて、簡単に説明する。図7は、PICOLAを用いたオーディオ信号の圧縮処理の流れを説明するためのフローチャートである。
まず、PICOLAにおいては、PICOLAが実装されている情報処理装置等の入力バッファに、処理すべきオーディオ信号があるか否かが判定される(ステップS701)。ここで、処理すべきオーディオ信号がないと判断した場合には、処理を終了するが、処理すべきオーディオ信号が存在すると判断した場合には、処理開始位置Pを起点として関数D(j)が最小になるjを求め、W=jとおく(ステップS702)。続いて、PICOLAでは、ユーザが指定した話速変換率RCからLを求める(ステップS703)。
次に、処理開始位置PからWサンプル分の区間Aと、この区間Aに連続している次のWサンプル分の区間Bのクロスフェードを求め、区間Cとし(ステップS704)、この区間Cを出力バッファに出力する(ステップS705)。続いて、入力バッファの位置P+2WからL−Wサンプル分を新たに出力バッファへと出力し(ステップS706)、処理開始位置PをP+(W+L)に移動してから(ステップS707)、ステップS701に戻り処理を繰り返す。かかる処理を、入力バッファに処理すべきオーディオ信号がなくなるまで繰り返すことで、オーディオ信号の圧縮処理を行うことが可能である。
(類似波形長検出の流れ)
続いて、図8および図9を参照しながら、類似波形長を検出する処理について、詳細に説明する。図8および図9は、類似波形長を検出する処理を説明するための流れ図である。
類似波形長の検出に際しては、まず、パラメータであるインデックスjに、初期値WMINをセットする(ステップS801)。ここで、WMINは、上述のように、類似波形を検索する探索範囲の最小値である。類似波形検索のための初期値が設定されると、PICOLAが実装された情報処理装置等においては、図9に示すサブルーチンを実行する(ステップS802)。このサブルーチンは、後に詳述するように、波形の類似度を判定するために用いられる関数D(j)を計算するルーチンである。ここで、関数D(j)は、以下の式12で与えられる関数である。
ここで、上記式12において、fは、入力オーディオ信号であり、例えば、図2の例であれば、位置P0を起点としたサンプルを指す。なお、式1と式12は、同じことを表現している。
続いて、サブルーチンで求まった関数D(j)の値を変数minに代入し、インデックスjをWに代入する(ステップS803)。その後、インデックスjを1増加させる(ステップS804)。次に、インデックスjが、WMAX以下か否かを判定し(ステップS805)、WMAX以下ではない場合(すなわち、WMAXを超過している場合)には、処理を終了し、処理終了時に変数Wに格納されている値が、関数D(j)を最小にするインデックスj、つまり、類似波形長となり、そのときの変数minの値が、関数D(j)の最小値となる。
また、インデックスjがWMAX以下である場合には、上記サブルーチンにて、新たなインデックスjに対して関数D(j)を求める(ステップS806)。次に、新たなインデックスjについて求まった関数D(j)の値が、min以下か否かを判定する(ステップS807)。ここで、関数D(j)の値がmin以下の場合は、関数D(j)の値を変数minに代入し、インデックスjをWに代入して(ステップS808)、ステップS804に戻る。また、関数D(j)の値がmin以下でない場合(すなわち、minを超過していた場合)は、ステップS804に戻る。かかる処理を行うことで、入力されたオーディオ信号の類似波形部分を探索して、類似波形長を検出することができる。
(関数D(j)の値の算出)
続いて、図9を参照しながら、波形の類似度を判定するために用いられる関数D(j)を算出するサブルーチンの流れについて、詳細に説明する。
サブルーチンの処理が始まると、まず、インデックスiと変数sを、0にセットする(ステップS901)。次に、インデックスiがインデックスjより小さいか否かを判定し(ステップS902)、インデックスiがインデックスjよりも小さい場合には、後述するステップS903を実行し、インデックスiがインデックスjよりも小さくない場合(すなわち、インデックスiがインデックスj以上である場合)には、後述するステップS905を実行する。ここで、インデックスjは、図8に示したフローチャートのインデックスjと同じものである。
ステップS903では、入力オーディオ信号の差の自乗を算出して、変数sに加算する。その後、インデックスiを1増加させ(ステップS904)、ステップS902に戻る。また、ステップS905では、変数sをインデックスjで除して、その商を関数D(j)の値としてサブルーチンを終了する。
(クロスフェード信号の生成について)
続いて、図10を参照しながら、クロスフェード信号の生成方法について、詳細に説明する。図10は、クロスフェード信号の生成処理を説明するための流れ図である。
クロスフェード信号の生成に際して、まず、インデックスiを0にセットする(ステップS1001)。次に、インデックスiと類似波形長Wを比較し(ステップS1002)、インデックスiがWより小さくない場合(すなわち、インデックスiがW以上である場合)には、処理を終了する。また、インデックスiがWよりも小さい場合には、フェードインとフェードアウトに用いるための係数hを求める(ステップS1003)。係数hの算出が終了すると、フェードインする信号x(i)に係数hを掛けるとともに、フェードアウトする信号y(i)に1−hを掛け、これらの信号の和をz(i)に代入する(ステップS1004)。例えば、図1に示した例では、区間Aにおける信号がx(i)に対応し、区間Bにおける信号がy(i)に対応する、また、例えば、図4に示した例では、区間Bにおける信号がx(i)に対応し、区間Aにおける信号がy(i)に対応する。このようにして生成された信号z(i)が、クロスフェード信号となる。次の処理では、インデックスiを1増加させ(ステップS1005)、ステップS1002に戻る。かかる処理を繰り返すことで、クロスフェード信号を算出することができる。
以上、図1〜図10を参照しながら説明したように、話速変換アルゴリズムPICOLAによって、任意の話速変換率(0.5≦RE<1.0,1.0<RC≦2.0)でオーディオ信号を伸張/圧縮することが可能であり、特に音声信号に対しては良好な音質を実現することが可能である。
<PICOLAの問題点についての検討>
しかしながら、上記のようなPICOLAでは、音声信号に対しては良好な音質が得られるものの、音楽等の音響信号に対しては良好な音質が得られ難いという問題が存在する。例えば、最も顕著な問題は、原信号に存在しない、うねりのような異音が、伸張圧縮処理した信号に発生する傾向があり、耳障りになるという問題である。
そこで、本願発明者は、このうねりのような異音を解決するために鋭意研究を行った結果、以下のような知見を得ることができた。以下に、得られた知見について、図11〜図18を参照しながら、詳細に説明する。
一般に音響信号では、様々な楽器の音が同時に鳴っている。図11(a)では、そのような音響信号の一例として、点線で示した波形に、実線で示した小振幅の波形が重なっている様子を模式的に示している。
図11は、波形(a)の区間Aと区間Bとを伸張して、伸張波形(b)を得る場合の波形の様子を示したものである。図11(a)から明らかなように、区間Aにおける実線波形と、区間Bにおける実線波形は、同相である。原波形(a)を1.5倍に伸張する場合、先に説明したように、原波形(a)の区間A(1101)における波形を、伸張波形(b)の区間A(1103)にコピーするとともに、原波形(a)の区間A(1101)における信号と区間B(1102)における信号のクロスフェード信号を、伸張波形(b)の区間A×B(1104)に生成する。最後に、原波形(a)の区間B(1102)における信号を、伸張波形(b)の区間B(1105)にコピーする。このような処理を行うことで、原波形(a)を1.5倍に伸張することができる。
伸張波形である図11(b)を参照すると、区間A(1101)における実線波形の位相と、区間B(1102)における実線波形の位相が同相である場合には、区間A×B(1104)における実線波形の振幅は、区間A(1103)および区間B(1105)における実線波形の振幅とほぼ同一となることがわかる。この実線波形の包絡線の様子を模式的に表すために、伸張波形(b)のそれぞれの区間(1103,1104,1105)における実線波形の包絡線を、図11(c)のように表現することとする。
同様に、図12は、波形(a)の区間Aと区間Bとを伸張して、伸張波形(b)を得る場合の波形の様子を示したものである。図12の場合には、図12(a)から明らかなように、区間Aにおける実線波形と区間Bにおける実線波形とは、逆相である。原波形(a)を1.5倍に伸張する場合、先に説明したように、原波形(a)の区間A(1201)における波形を伸張波形(b)の区間A(1203)にコピーするとともに、原波形(a)の区間A(1201)における信号と区間B(1202)における信号のクロスフェード信号を、伸張波形(b)の区間A×B(1204)に生成する。最後に、原波形(a)の区間B(1202)における信号を、伸張波形(b)の区間B(1205)にコピーする。
伸張波形である図12(b)を参照すると、区間A(1201)における実線波形の位相と、区間B(1202)における実線波形の位相が逆相である場合には、区間A×B(1204)における実線波形の振幅は、区間A×B(1204)の左端から減衰して、区間A×B(1204)の略中央部分でほぼゼロとなり、区間A×B(1204)の右端に向けて増幅していることがわかる。このような実線波形の包絡線を模式的に表すために、図11(c)と同様にして、伸張波形(b)のそれぞれの区間(1203,1204,1205)における実線波形の包絡線を、図12(c)のように表すこととする。
一般の音響信号において、図12(a)の実線波形のような信号がそのまま含まれることは考え難いが、選択された区間Aと区間Bに逆相に近い信号が含まれることは、実際に頻発する。図11と図12を比較すると容易に確認できるように、クロスフェード後の信号の波形は、クロスフェード前の2つの波形の相関関係によって、振幅を大きく変える。
図13は、図11および図12で説明した内容を、もう少し長い信号に対して適用した例を、模式的に説明するための説明図である。原波形(a)を5つの区間A1,A2,A3,A4,A5に分けた場合、それぞれの区間が同相の関係を持っていれば、(b)に示すような波形(包絡)となり、逆相の関係を持っていれば(c)のような波形(包絡)となる。更に、それぞれの区間が無相関の場合には(d)のようになる。図13から明らかなように、(c)や(d)で示した波形は、うねりを伴っていることがわかる。
図14は、それぞれの区間が無相関である信号を伸張した場合の具体例を示している。無相関の信号として白色ノイズ(ホワイトノイズ)を入力信号とした場合、白色ノイズである図14(a)の原波形を5つの区間A1,A2,A3,A4,A5に分けて伸張処理を施すと、その伸張波形は、図14(b)のようになる。図14(b)を参照すると、クロスフェード信号に相当する区間では、逆相の場合のようにほぼゼロまで減衰することはないものの、これらの区間の略中央部分で信号の振幅が減衰していることがわかる。この図14から明らかなように、信号波形を構成するそれぞれの区間が無相関の場合には、伸張処理後の信号波形は、ほぼ図13(d)の模式図の通りであることが確認できる。
また、上記の説明では、信号波形を伸張処理する場合について説明したが、圧縮処理する場合にも同様の現象が確認される。
以上、図11〜図14に示したように、PICOLAによって信号の伸張/圧縮処理を行うと、原信号に存在しない、うねり状の異音が、話速変換後の信号に発生する様子が視覚的に確認できる。実際の音響信号では、ここまで極端ではないものの、瞬間瞬間に含まれる音の成分がこのような影響を受ける結果、聴覚的にうねり状の異音を確認するに至る。
<基盤技術:クロスフェード信号を補正する方法について>
このような、うねり状の異音を解消するための方法として、例えば、クロスフェード信号に所定の補正信号を加算して接続信号とすることでクロスフェード信号の包絡線の形を補正し、原波形の包絡線に近づけるという方法が考えられる。このクロスフェード信号を補正する方法について、以下で詳細に説明する。
図15は、クロスフェード信号A×Bをどれだけ補正すれば、クロスフェード前の信号の包絡に近くなるかを、模式的に示したものである。(a)は、同相波形同士のクロスフェード信号の場合である。同相波形を基にクロスフェード信号を生成した場合には、生成されたクロスフェード信号にうねり状の波形は存在しないため、補正を施す必要はない。(b)は、逆相波形同士のクロスフェード信号の場合であり、図15に示したような補正Sを適用すれば、クロスフェード前の信号の包絡を保つことができる。(c)は、無相波形同士のクロスフェード信号の場合であり、図15に示したような補正Sを適用すれば、クロスフェード前の信号の包絡を保つことができる。
従って、クロスフェード信号を補正する信号Sを適切に生成することで、伸張/圧縮信号に発生するうねり状の異音を除去することが可能である。ここで、クロスフェード前の2つの区間の信号を、x(i)(i=0,1,2,・・・,W−1)、y(i)(i=0,1,2,・・・,W−1)とし、補正信号Sをs(i)(i=0,1,2,・・・,W−1)とすると、Sは、以下の式13のように定められる。
ここで、上記式13において、Δは、例えば図16に一例を示したような窓関数である。図16に示した窓関数は、いわゆる三角窓であって、以下の式14で表される。
図16に示した窓関数を幅がWの波形に対して適用すると、W/2の場所に位置する原波形の強度を保ったまま、他の箇所の波形強度を補正する。しかしながら、三角窓の最大強度は、図16に示した例に限定されるわけではなく、任意の値に設定することが可能である。また、窓関数自体も、図16に示した例に限定されるわけではなく、窓関数を作用させる信号の包絡線の形状を補正可能な関数であれば、任意のものを使用可能である。例えば、図16に示した窓関数に換えて、三角関数(正弦関数)等を利用することが可能である。
式13に示した計算では、クロスフェード前の2つの区間における信号の差分を求め、2で割ってから、時間軸を反転し、窓関数を掛けている。クロスフェード前の信号の差信号を求めることにより、クロスフェード前の2つの区間の波形が同相であれば、その差信号の振幅は小さく、逆相であればその差信号の振幅は大きく、無相であればその差信号の振幅は中間程度になり、図15で示したように、クロスフェード区間の波形の振幅の減衰を適当に補うことができる。また、窓関数を掛けることにより、クロスフェード区間の包絡に差信号を合わせることできる。差信号の時間軸を反転することにより、クロスフェード区間A×Bと補正信号Sとの位相がずれ、補正信号として確実に機能するようになる。
また、時間軸を反転しない場合、図17に示すように、実質的に短い区間でのクロスフェードと等価になり、振幅が小さくなる区間の長さが短くなるだけで、うねり状の異音を減衰させる効果を発揮しない。更に、クロスフェード区間長を短くすることは別の異音を発生させる要因となる。以下に、時間軸を反転しない場合に発生する現象について、詳細に説明する。
図17(a)は、区間Aと区間Bからなる原信号を、クロスフェード信号を使って伸張した信号の模式図である。図17(a)において、クロスフェード区間1701では、区間Aにおける信号と区間Bにおける信号の成分の比率を示している。図17(b)は、補正信号Sを示したものである。この補正信号Sは、区間Aにおける信号から区間Bにおける信号を引き、得られた差信号に対して図16に示した三角窓を窓関数として掛けたものである。なお、この補正信号Sには、時間軸反転を行っていない。この例は、区間Aおよび区間Bにおける波形が、逆相の関係にある場合を示している。
図17(a)に示したクロスフェード信号に図17(b)に示した補正信号を加えると、図17(c)に示したように、区間Aにおける信号に由来する成分1702が増加し、区間Bにおける信号に由来する成分1703が減少する。その結果、図17(c)に示した補正後のクロスフェード信号は、図17(a)におけるクロスフェード区間長1701の半分程度の長さのクロスフェードをしていることになる。
なお、区間Aにおける波形と区間Bにおける波形が同相の場合は、差信号はゼロに近くなるため、図17(c)のクロスフェード区間1703は、図17(a)の区間1701と同じ、単なるクロスフェードとなる。また、区間Aにおける波形と区間Bにおける波形が無相の場合は、図17(c)のクロスフェード区間1703と図17(a)の区間1701の中間となる。このように、差信号の時間軸反転を行なわない場合、結果的に、クロスフェード区間長を従来のクロスフェード区間長以下にしたものと等価になる。従って、このようなクロスフェード区間においては、クロスフェード信号に由来する音が急激に変化することとなってしまう。
なお、図17(c)のクロスフェード区間1703の位置が区間1702の区間A側になっているのは、区間Aから区間Bを引いて差信号である図17(b)を生成しているためである。逆に、区間Bから区間Aを引いて差信号を生成すれば、図17(c)に示したクロスフェード区間1703の位置は、区間1702の区間B側になる。
(接続信号の生成について)
続いて、図18を参照しながら、補正処理を行ったクロスフェード信号である接続信号の生成処理について、詳細に説明する。図18は、接続信号の生成処理を説明するための流れ図である。なお、図18において、W、x(i)、y(i)、z(i)等の記号の意味は、上述の説明の通りである。
接続信号の生成処理では、まず、インデックスiの値を0にセットする(ステップS1801)。次に、インデックスiの値が、Wより小さいか否かを判定する(ステップS1802)。ここで、インデックスiの値がWよりも小さくない場合(すなわち、インデックスiの値がW以上である場合)には、補正信号Sの生成処理を終了する。また、インデックスiの値がWよりも小さい場合には、インデックスiをWで除することで係数hを算出する(ステップS1803)。続いて、インデックスiとWを用いて、式14により窓関数kを算出する(ステップS1804)。窓関数kの算出が終了すると、各サンプル値x(i)およびy(i)からクロスフェード信号t(i)を算出するとともに、補正信号s(i)を算出する。そして、これらt(i)とs(i)から、うねり状の異音が発生し難いクロスフェード信号(すなわち、接続信号)z(i)を生成する(ステップS1805)。次に、インデックスiを1増加させた後(ステップS1806)、ステップS1802に戻り、処理を繰り返す。以上の処理により、伸張圧縮処理する信号が音声信号のみならず音響信号であっても、原音に近い良好な話速変換の実現を可能とするオーディオ信号を得ることができる。
[本実施形態に関する説明]
<補正後のオーディオ信号の高音質化について>
上記のような補正を施したオーディオ信号を生成することで、伸張/圧縮信号に発生するうねり状の異音を抑制することが可能であるが、本願発明者は、伸張/圧縮後のオーディオ信号の更なる高音質化を目指して、更なる検討を行った。その検討結果を、以下で詳細に説明する。
(補正後のオーディオ信号の再検討)
図1〜図10を用いて説明したように、接続信号を生成するためには、波形が類似する連続した区間を求める必要がある。換言すると、接続信号を生成するための連続した区間は、それらの区間の波形が類似していることを前提にしている。しかしながら、それらの区間の波形が、必ずしも類似しない場合がある。
音声信号の場合、ピッチは例えば50Hz〜250Hz程度であるため、類似波形長Wの探索を上記範囲で行なうことにより、良好な音質を実現することができる。これに対し、音響信号では、ピッチがより広範囲に広がる。そこで、本願発明者は、類似波形長Wの探索を例えば50Hz〜250Hz程度の範囲として音響信号の伸張圧縮処理を行なった場合について、より詳細に検討を行った。その結果、音響信号のピッチが上記探索範囲より高い周波数(例えば250Hzより高い周波数)であっても、処理音に異音(ノイズ)は殆ど感じられないが、音響信号のピッチが上記探索範囲より低い周波数(例えば50Hzより低い周波数)であると、処理音に大きな異音を発生させてしまうことがあることに想到した。
図19は、類似波形長Wの探索範囲よりも高い周波数を有するオーディオ信号に対して、波形圧縮処理を行なった場合の例を示している。例えば、類似波形長Wの探索範囲を50Hz〜250Hzとし、原波形(a)が300Hzであるとする。この場合、原波形(a)の周波数300Hzは、探索範囲の上限周波数250Hzを超えているため、類似波形長Wとして300Hzが選ばれることはない。しかしながら、300Hzの波形は、150Hzや75Hz等の整数分の1となる周波数においても、周期を持っている。例えば、300Hzの整数分の1となる周波数の中で、類似波形長Wの探索範囲50Hz〜250Hzに収まっているものは、150Hz、100Hz、75Hz、60Hzおよび50Hzの5つである。図19の例では、原波形(a)の半分の周波数の150Hzが、類似波形長Wとして選ばれた場合を示している。つまり、区間Aと区間Bには、2周期分の波形がそれぞれ含まれている。
このように、原波形(a)のピッチが類似波形長Wの探索範囲より高い周波数になっていても、原波形(a)のピッチの整数分の1の周波数と近い周波数が類似波形長Wとして選択されれば、生成された接続信号は、良好な音質を実現することが可能である。
しかしながら、本願発明者は、類似波形長Wの探索範囲よりも低い周波数に対しては、状況が異なることに想到した。図20は、類似波形長Wの探索範囲よりも低い周波数を有する信号の一例として、30Hzの周波数を有する正弦波を示したものである。また、図21は、類似波形長Wの探索範囲を50Hz〜250Hzとした場合に、図20の正弦波を120Hzの信号として類似波形長Wを定め、話速変換率RE=0.5で伸張処理した場合の波形例である。なお、上記波形の伸張処理では、上述の接続信号は用いていない。
図20の正弦波の周波数30Hzは、探索範囲の下限周波数50Hzを下回っているため、類似波形長Wとして30Hzが選ばれることはない。実際には、一緒に含まれている他の信号の影響を受けながら、式1の関数D(j)を最小にする類似波形長Wが検出される。図21は、検出された類似波形長Wが120Hzであったと仮定した場合の伸張波形である。
この場合の伸張処理では、図20の区間2001が図21の区間2101となり、図20の区間2001と区間2002のクロスフェードが,図21の区間2102となる。同様に、図20の区間2002が図21の区間2103となり、図20の区間2002と区間2003のクロスフェードが図21の区間2104となる。区間2105〜区間2107も同様である。
図21において注目すべき点は、2つの連続する区間の接続部分において、信号波形が滑らかに接続されておらず先鋭化している点(以下、先鋭点と称する。)2108が存在することである。このような先鋭点が伸張圧縮処理した信号に存在すると、耳障りな異音として知覚されてしまう。
図22は、1Hz〜4kHzまで徐々に周波数を上げていった信号(sweep信号)のスペクトログラム例である。スペクトログラム2203は、見易さのためにスペクトログラム2201の範囲2202を拡大したものである。また、図23は、類似波形長Wの探索範囲を50Hz〜250Hzとして、図22のsweep信号を話速変換率RE=0.5で伸張処理した信号のスペクトログラムである。スペクトログラム2303は、見易さのために、スペクトログラム2301の範囲2302を拡大したものである。
図22と図23を比較すると、原信号のスペクトルの線幅が拡大していること、および、図23の低周波数部分2304において、図22の原信号のスペクトルに存在しないスペクトルが発生してしまっていることがわかる。低周波数部分2304において発生している不要なスペクトルは、伸張圧縮処理した信号に図21の先鋭点2108と同様な先鋭点等が発生していることに起因しており、耳障りな異音として知覚されてしまう。
図21や図23のような異音の発生は、類似波形長Wの探索範囲を限定していることに起因しているが、このような異音の発生を抑えるために類似波形長Wの探索範囲を無制限に広げることは、望ましくない。なぜならば、音声信号に殆ど含まれない低い周波数まで探索を行なうと、不必要に類似波形長Wが長くなってしまうことがあり、音声信号を処理した場合の音質が著しく劣化するためである。音響信号の場合においても、ヴォーカルが入っている場合は同様であり、また、ヴォーカルがない場合でも、音の早い変化に対応できなくなり、音質面で非常に不利になる。
上記のような先鋭点が発生する原因を解明するために、本願発明者は、クロスフェード信号を生成する際に利用する関数について、検討を行った。
図1、図4等で示した方法におけるクロスフェード信号は、図24に示すような関数を処理対象の信号に掛けて生成されるものである。関数2401は、図24から明らかなように、類似波形長Wの区間2403で1から0に変化する関数であり、類似波形長Wの区間を、1本の一次関数(すなわち、直線)によって減衰させるものである。また、関数2402は、類似波形長Wの区間2403で0から1に変化する関数であり、類似波形長Wの区間を、1本の一次関数(すなわち、直線)によって増加させるものである。例えば、関数2401を対象信号に掛けると、対象信号は、フェードアウトする信号となり、例えば、関数2402を対象信号に掛けると、対象信号は、フェードインする信号となる。
なお、図24において、類似波形長Wの区間2403の両側に、値が0である区間2404及び値が1である区間2405があるが、これらは見易さのために描いてあるものであって、対象信号に実際に掛けるのは、類似波形長Wの区間2403のみである。
本願発明者は、上記の関数についての検討から、クロスフェード信号の生成に利用する関数が、類似波形長Wの区間2403の両端において対象信号と接続する際に、これらの関数が接続点において角張っているために、処理波形において先鋭点が発生することに想到した。
そこで、本願発明者は、上述のクロスフェード信号に対して補正信号を加算した信号である接続信号を用いる場合にも、上記と同様の現象が発生するかどうかについて、検討を行った。検討は、図20に示した30Hzの周波数を有する正弦波を、120Hzの信号として類似波形長Wを定めて伸張処理することで行った。
図25は、後述する図26の区間2602、区間2604、区間2606においてそれぞれ加算される補正信号を示したものである。図26の区間2602には図25の補正信号2501、図26の区間2604には図25の補正信号2502、図26の区間2606には図25の補正信号2503が加算される。類似波形長の探索範囲よりも低い周波数の信号の場合、補正信号を求める際の区間長は1波長に満たないものになり、その結果、図25に示したように、求まる補正信号は、不自然なものとなってしまう。
図25を参照すると、補正信号2501,2502,2503は、いずれも類似波形長Wの両端と、類似波形長Wの略中央部分で、角張っていることがわかる。従って、上記知見によれば、伸張処理を行った波形の類似波形長Wの両端と、類似波形長Wの略中央部分に相当する箇所において、先鋭点が発生することが予想される。なお、図25において、類似波形長Wの略中央部分で補正信号の波形が角張っているのは、補正信号の生成に用いた窓関数(三角窓)の頂点に位置する箇所であるためである。
図20に示した正弦波の周波数30Hzは、探索範囲の下限周波数50Hzを下回っているため、類似波形長Wとして30Hzが選ばれることはなく、実際には、一緒に含まれている他の信号の影響を受けながら式1の関数D(j)を最小にする類似波形長Wが検出される。そこで、図26は、求まった類似波形長Wが120Hzになったと仮定した場合の伸張波形を表している。図26に示した伸張波形では、図20の区間2001が図26の区間2601となり、図20の区間2001と区間2002のクロスフェードが図26の区間2602となり、図20の区間2002が図26の区間2603となる。区間2604〜区間2607も同様である。
図26を参照すると、予想通り、補正信号の類似波形長Wの両端と、類似波形長Wの略中央部分に相当する箇所において、先鋭点2608が発生していることがわかる。また、図21に示した伸張波形と、図26に示した伸張波形とを比較すると、クロスフェード信号を補正した接続信号を用いた場合(図26)の方が、クロスフェード信号を補正しなかった場合(図21)よりも、先鋭点の個数が多くなっている。このように、うねり状の異音を除去するためにクロスフェード信号を補正した接続信号を用いると、うねり状の異音は除去される代わりに先鋭点が増加してしまい、耳障りな異音としてより強く知覚されてしまうこととなる。
図27は、類似波形長Wの探索範囲を50Hz〜250Hzとし、クロスフェード信号を補正した接続信号を用いて図22のsweep信号を伸張処理した場合のスペクトログラムである。また、スペクトログラム2703は、見易さのためにスペクトログラム2701の範囲2702を拡大したものである。
図22と図27を比較すると、原信号のスペクトルの線幅が拡大していること、および、図27の低周波数部分2704において、図22の原信号のスペクトルに存在しないスペクトルが発生してしまっていることがわかる。この、原信号に存在しない不要なスペクトルは、図27に示したように、約1400Hz程度にまで及んでいる。低周波数部分2704において発生している不要なスペクトルの増加は、上述のように、伸張圧縮処理した信号に発生している先鋭点等が増加していることに起因している。
以上説明したように、伸張/圧縮処理した信号にうねりのような異音が発生することがあるという問題は、クロスフェード信号を補正信号により補正することで改善することが可能である。しかしながら、この方法では、類似波形長の探索範囲よりも低い周波数の信号を多く含む信号を想定していない。そのため、類似波形長の探索範囲よりも低い周波数の信号を多く含む信号を処理した場合、従来の方法で処理した場合に比べて、伸張/圧縮処理した際に発生する異音が増加する可能性があるという問題がある。
そこで、本発明者は、鋭意研究を行った結果、以下に説明するような信号処理方法に想到した。以下に説明する信号処理方法は、上記のような状況に鑑みてなされたものであり、うねり状の異音を抑えつつ、類似波形長の探索範囲より低い周波数の信号が強く含まれていても異音(ノイズ)を抑えた処理音を得ることが可能である。
<本実施形態に係る情報処理装置について>
まず、図28を参照しながら、本実施形態に係る情報処理装置2800のハードウェア構成について、詳細に説明する。図28は、本実施形態に係る情報処理装置のハードウェア構成を説明するためのブロック図である。
情報処理装置2800は、例えば、CPU(Central Processing Unit)2801と、ROM(Read Only Memory)2802と、RAM(Random Access Memory)2803と、入力装置2805と、出力装置2806と、ストレージ装置2807と、ドライブ2808と、通信装置2809と、を備える。
CPU2801は、演算処理装置および制御装置として機能し、各種プログラムに従って情報処理装置2800内の動作全般を制御する。ROM2802は、CPU2801が使用するプログラムや演算パラメータ等を記憶する。RAM2803は、CPU2801の実行において使用するプログラムや、このプログラムの実行において適宜変化するパラメータ等を、一次記憶する。
入力装置2805は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバー等のユーザが操作する操作手段と、マイクロフォンやヘッドセット等の音声入力手段とを備える。また、入力装置2805は、例えば、赤外線やその他の電波を利用したリモートコントロール手段(いわゆる、リモコン)であってもよいし、情報処理装置2800の操作に対応した携帯電話やPDA等の外部接続機器であってもよい。さらに、入力装置2805は、例えば、上記の操作手段や音声入力手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU2801に出力する入力制御回路などから構成されている。情報処理装置2800のユーザは、この入力装置2805を操作することにより、情報処理装置2800に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置2806は、例えば、CRT(Cathode Ray Tube)ディスプレイ装置、液晶ディスプレイ(Liquid Crystal Display:LCD)装置、プラズマディスプレイ(Plasma Display Panel:PDP)装置、EL(Electro−Luminescence)ディスプレイ装置およびランプなどの表示装置や、スピーカおよびヘッドホンなどの音声出力装置や、プリンタ装置、携帯電話、ファクシミリなど、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置2806は、例えば、情報処理装置2800が行った各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置2800が行った各種処理により得られた結果を、テキストまたはイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
ストレージ装置2807は、本実施形態に係る情報処理装置2800の記憶部の一例として構成されたデータ格納用の装置であり、例えば、HDD(Hard Disk Drive)等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置2807は、CPU2801が実行するプログラムや各種データ、および外部から取得した各種データなどを格納する。
ドライブ2808は、記憶媒体用リーダライタであり、情報処理装置2800に内蔵、あるいは外付けされる。ドライブ2808は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体2810に記録されている情報を読み出して、RAM2803に出力する。また、ドライブ2808は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体2810に記録を書き込むことも可能である。リムーバブル記録媒体2810は、例えば、DVDメディア、HD−DVDメディア、Blu−rayメディア、コンパクトフラッシュ(登録商標)(CompactFlash:CF)、メモリースティック、または、SDメモリカード(Secure Digital memory card)等である。また、リムーバブル記録媒体2810は、例えば、非接触型ICチップを搭載したICカード(Integrated Circuit card)または電子機器等であってもよい。
通信装置2809は、例えば、通信網2811に接続するための通信デバイス等で構成された通信インターフェースである。通信装置2809は、例えば、有線または無線LAN(Local Area Network)、Bluetooth、またはWUSB(Wireless USB)用の通信カード、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデム等である。この通信装置2809は、例えば、インターネットや他の通信機器との間で各種の情報を送受信することができる。また、通信装置2809に接続される通信網2811は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内LAN、赤外線通信、または衛星通信等であってもよい。
また、情報処理装置2800には、各種の情報処理装置やオーディオ機器等の外部接続機器を接続可能な接続ポート(図示せず。)が設けられていても良い。接続ポートとしては、例えば、USB(Universal Serial Bus)ポート、i.Link等のIEEE1394ポート、SCSI(Small Computer System Interface)ポート、RS−232Cポート、光オーディオ端子、HDMI(High−Definition Multimedia Interface)ポート等を挙げることができる。この接続ポートに外部接続機器を接続することで、情報処理装置2800は外部接続機器から直接コンテンツデータを取得したり、外部接続機器にコンテンツデータを提供したりする。
上記のCPU2801、ROM2802、RAM2803、入力装置2805、出力装置2806、ストレージ装置2807、ドライブ2808、通信装置2809および未図示の接続ポートは、CPUバスや、PCI(Peripheral Component Interconnect/Interface)バスなどの入出力インターフェース等から構成されるバス2804により、相互に接続されている。
以上、本実施形態に係る情報処理装置2800の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。また、上記のハードウェア構成は、あくまでも一例であり、これに限定されるものでないことは言うまでもない。
続いて、図29および図30を参照しながら、本実施形態に係る情報処理装置2800の構成について、詳細に説明する。図29および図30は、本実施形態に係る情報処理装置の構成を説明するためのブロック図である。
本実施形態に係る情報処理装置2800は、図29に示したように、例えば、入力バッファ2901と、類似波形長検出部2902と、接続信号生成部2903と、出力バッファ2904と、を備える。
入力バッファ2901は、情報処理装置2800に入力されたオーディオ信号をバッファリングするとともに、後述する類似波形長検出部2902、接続信号生成部2903および出力バッファ2904に、入力されたオーディオ信号を伝送する。なお、入力バッファ2901に入力されるオーディオ信号は、情報処理装置2800に直接入力されたデジタル信号であってもよく、情報処理装置2800が入力されたアナログ信号をAD(Analog to Digital)変換してデジタル信号としたものであってもよい。
入力バッファ2901に入力されたオーディオ信号は、後述する類似波形長検出部2902、接続信号生成部2903および出力バッファ2904へと伝送される。
類似波形長検出部2902は、入力バッファ2901に入力されたオーディオ信号に関して、例えば以下の式101に示す関数D(j)を最小にするパラメータjを検出し、検出したパラメータjを類似波形長Wとする(W=j)。検出された類似波形長Wは、入力バッファ2901へと伝送される。なお、検出された類似波形長Wは、後述する接続信号生成部2903に直接出力されてもよい。また、検出された類似波形長Wは、RAM、ストレージ装置等で構成される未図示の記憶部に記憶されてもよい。
なお、式101を用いて類似波形長Wを検出する方法は、例えば、図8および図9において示した流れ図に沿って同様に行われるものであり、詳細な説明は省略する。
接続信号生成部2903は、入力バッファ2901から伝送されたオーディオ信号および類似波形長Wを用いて、オーディオ信号の伸張/圧縮処理に用いられる接続信号を生成する。生成された接続信号は、後述する出力バッファ2904へと伝送される。また、生成された接続信号は、RAM、ストレージ装置等で構成される未図示の記憶部に記憶されてもよい。なお、この接続信号生成部2903については、以下で詳細に説明する。
出力バッファ2904は、入力バッファ2901から伝送されたオーディオ信号と、接続信号生成部2903から伝送された接続信号とを接続して、伸張/圧縮処理が施されたオーディオ信号とする。この伸張/圧縮処理が施されたオーディオ信号は、出力オーディオ信号として伝送され、DA(Digital to Analog)変換された後にスピーカ等の出力装置を介して出力される。
続いて、図30を参照しながら、本実施形態に係る接続信号生成部2903について詳細に説明する。図30は、本実施形態に係る接続信号生成部2903の詳細な構成を説明するためのブロック図である。
図30に示したように、本実施形態に係る接続信号生成部2903は、例えば、クロスフェード信号生成部3001と、補正信号生成部3003と、接続信号出力部3002と、を備える。
クロスフェード信号生成部3001は、入力バッファ2901から伝送された入力オーディオ信号に対して所定の関数を掛け合わせ、クロスフェード信号を生成する。クロスフェード信号の生成に用いられる関数については、以下で詳述する。生成されたクロスフェード信号は、接続信号出力部3002に伝送される。また、生成されたクロスフェード信号は、RAM、ストレージ装置等で構成される未図示の記憶部に記憶されてもよい。
接続信号出力部3002は、クロスフェード信号生成部3001から伝送されたクロスフェード信号と、後述する補正信号生成部3003にて生成された補正信号とを足し合わせ、入力オーディオ信号を伸張/圧縮処理するために用いられる接続信号を生成する。接続信号出力部3002は、生成した接続信号を、前述の出力バッファ2904に出力する。また、出力された接続信号は、RAM、ストレージ装置等で構成される未図示の記憶部に記憶されてもよい。
補正信号生成部3003は、入力バッファ2901から伝送されたオーディオ信号および類似波形長Wを用いて、接続信号の生成に用いられる補正信号を生成する。この補正信号生成部3003は、例えば、フィルタ処理部3004と、時間軸反転差信号生成部3005と、窓処理部3006と、から構成される。
フィルタ処理部3004は、入力バッファ2901から伝送されたオーディオ信号および類似波形長Wを用いてオーディオ信号に対してフィルタ処理を行い、低周波数(例えば、50Hz以下の周波数)の信号を減衰させる。このフィルタ処理には、例えば、ハイパスフィルタやバンドパスフィルタ等のディジタルフィルタを利用することが可能である。入力されたオーディオ信号に対してフィルタ処理が施されると、フィルタ処理が施されたオーディオ信号は、後述する時間軸反転差信号生成部3005へと伝送される。また、フィルタ処理が施されたオーディオ信号は、RAM、ストレージ装置等で構成される未図示の記憶部に記憶されてもよい。
図31に、フィルタ処理部3004がFIR(finite impulse response)フィルタ、すなわち、ハイパスフィルタを用いる場合の処理例を説明するための流れ図を示す。
ここで、フィルタ処理部3004は、接続信号を求める際に使用する2つの区間のそれぞれのオーディオ信号をg(i)とおいて、以下のフローを実行する。
まず、フィルタ処理部3004は、インデックスiをゼロにセットし、更に、変数uもゼロにセットする(ステップS3101)。次に、インデックスiが類似波形長Wより小さいか否かを判定し(ステップS3102)、インデックスiがWより小さくない場合、すなわち、インデックスiがW以上となった場合には、処理を終了する。また、インデックスiがWより小さい場合は、フィルタリングを行ない、その結果を変数vに一時的に格納する(ステップS3103)。続いて、信号g(i)を変数uに退避させ(ステップS3104)、ステップS3103で求めた変数vの値を、信号g(i)に格納する(ステップS3105)。次に、インデックスiを1増加させ(ステップS3106)、ステップS3102に戻り処理を繰り返す。処理が終了した時点で、信号g(i)にはフィルタリングされた結果が格納されている。
かかる流れで処理を行うことで、フィルタ処理部3004は、入力されたオーディオ信号に対して、フィルタ処理を施すことが可能である。なお、フィルタリングの係数やタップ長は、上述の例に限るものではなく、また、FIRフィルタに限るものでもなく、類似波形長Wの探索範囲より低い周波数を減衰させることができるものであればよい。
なお、入力バッファ2901から接続信号生成部2903に伝送されるオーディオ信号は、例えば、類似波形長Wの2倍の2Wサンプルとしてもよい。しかしながら、フィルタ処理部3004で高精度なフィルタリングを行なうためには、より多くのサンプルを必要とする場合がある。そこで、入力バッファ2901からクロスフェード信号生成部3001には2Wサンプルを伝送し、入力バッファ2901から補正信号生成部3003には2Wサンプルよりも多くのサンプルを渡す構成としても良い。
時間軸反転差信号生成部3005は、時間軸変換差信号生成部の一例であって、フィルタ処理されたオーディオ信号から差信号を生成し、その差信号の時間軸を反転する。ここで、時間軸の反転とは、本来、時間軸が0,1,2,・・・,t−1と増加する方向で記載されている差信号の各データについて、時間軸がt−1,t−2,・・・,1,0と減少する方向で記載されるようにデータの配置を置き換えることをいう。このように、差信号の時間軸を反転させることで、オーディオ信号と、生成した差信号との相関を無くすことができる。時間軸反転差信号生成部3005で生成された時間軸が反転した差信号は、窓処理部3006へと伝送される。また、時間軸が反転した差信号は、RAM、ストレージ装置等で構成される未図示の記憶部に記憶されてもよい。
窓処理部3006は、時間軸反転差信号生成部3005で生成された時間軸反転差信号に対して、所定の窓関数を掛けて補正信号とする。窓処理部3006が用いる窓関数としては、例えば、図16に示した三角窓や、正弦関数を利用した窓関数等を挙げることができる。窓処理が施された時間軸反転差信号は、補正信号として前述の接続信号出力部3002へと伝送される。また、窓処理が施された時間軸反転差信号は、RAM、ストレージ装置等で構成される未図示の記憶部に記憶されてもよい。
以上、本実施形態に係る情報処理装置2800の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
<クロスフェード信号の生成について>
まず、本実施形態に係るクロスフェード信号の生成について説明する前に、従来のように類似波形長Wの区間を1本の一次関数(直線)にて減衰、または、増加させるクロスフェード信号の生成方法を用いてクロスフェード信号を生成し、このクロスフェード信号に対して、本実施形態に係る補正信号生成部3003により生成された補正信号を加算した場合について、説明する。
図32は、補正信号生成部3003により生成された補正信号を用い、図26と同様に図20の正弦波を120Hzの信号として類似波形長Wを定めて伸張処理した場合の波形例である。但し、クロスフェード信号を生成するための関数は、図24に示した従来の関数2401〜2402を用いている。図20の区間2001が図32の区間3201となり、図20の区間2001と区間2002のクロスフェードが図32の区間3202となり、図20の区間2002が図32の区間3203となる。区間3204〜区間3207も同様である。
図32において注目すべき点は、図26において発生していた先鋭点2608が減少し、図21に示した従来の方法と殆ど同じ程度になっている点である。この図から明らかなように、本実施形態に係る補正信号生成部3003により生成された補正信号は、先鋭点に起因する耳障りな異音の発生という問題を、改善していることがわかる。
また、図33は、類似波形長Wの探索範囲を50Hz〜250Hzとして、図22のsweep信号を伸張処理した処理波形のスペクトログラムである。但し、クロスフェード信号を生成するための関数は、図24に示した従来の関数2401〜2402を用いている。スペクトログラム3303は、見易さのためにスペクトログラム3301の範囲3302を拡大したものである。
図27と図33のスペクトログラムを見比べて容易に確認できることは、図27の低周波数2704の部分において発生していた不要なスペクトルが、図33の低周波数3304の部分において低減されていることである。更に、図33の低周波数3304の部分における不要なスペクトルは、図23に示した従来の方法と殆ど同じ程度になっていることが確認できる。
しかしながら、図32に示したように、フィルタ処理を施すことで、先鋭点の個数と先鋭の程度は減らすことは可能であるが、先鋭点そのものを無くすまでには至っていない。そこで、本実施形態に係る情報処理装置2800では、クロスフェード信号を生成するために用いられる関数を改善することで、更なる先鋭点の減少を図るものである。
図34に、クロスフェード信号を生成するために用いられる関数の例を示す。図34に示す関数は、類似波形長Wの区間3403で1から0に、または、0から1に変化するものである。なお、類似波形長Wの区間3403の両側に値が0である区間3404及び値が1である区間3405があるが、これらは見易さのために描いてあるものであって、対象信号に実際に掛ける区間は、類似波形長Wの区間3403のみである。
図34に示したように、関数3401を対象信号に掛けるとフェードアウト信号になり、関数3402を対象信号に掛けるとフェードインになる。図34に示した関数は、類似波形長Wの区間3403が、正弦関数(sin関数)になっている。正弦関数と余弦関数(cos関数)は位相を無視すれば同じものであるため、本明細書においては両者を特に区別しない。正弦関数を利用することによって、関数3401は、1から0へ滑らかに減少する関数となり、関数3402は0から1へ滑らかに増加する関数となる。このような滑らかさを有する関数(換言すれば、類似波形長Wの区間の全てにおいて、微分可能性を有する関数)を用いることで、図21において発生していたような先鋭点を防ぐ効果がある。
図35は、図21と同様にして、図20の正弦波を120Hzの信号として類似波形長Wを定め、話速変換率RE=0.5で伸張処理した場合の波形例である。図35の算出に際しては、クロスフェード信号を生成する関数は図34に示した関数3401〜3402を用いており、クロスフェード信号を補正する補正関数は用いていない。図20の区間2001が図35の区間3501となり、図20の区間2001と区間2002のクロスフェードが図35の区間3502となり、図20の区間2002が図35の区間3503となる。区間3504〜区間3507も同様である。
図35において注目すべき点は、図21において発生していた先鋭点2108が存在していない点である。このため、本実施形態に係るクロスフェード信号を用いることで、先鋭点に起因する耳障りな異音は大幅に抑制される。
図36は、類似波形長Wの探索範囲を50Hz〜250Hzとして、図22のsweep信号を話速変換率RE=0.5で伸張処理した信号のスペクトログラムである。ただし、クロスフェード信号を生成する関数は図34に示した関数3401〜3402を用いており、クロスフェード信号を補正する補正関数は用いていない。また、スペクトログラム3603は、見易さのためにスペクトログラム3601の範囲3602を拡大したものである。
図23のスペクトログラムと図36のスペクトログラムとを見比べて明らかなように、図23の低周波数部分2304において発生していた不要なスペクトルが、図36の低周波数部分3604においては低減されている。特に、低周波数部分2304の中で発生した高周波数のスペクトルが、低周波数部分3604の中でより多く低減されていることは、特に重要である。以下に、その理由を詳細に説明する。
図37は、人間の一般的な最小可聴限を示す図である。最小可聴限とは、聴覚で知覚することができる最小の音の大きさの目安である。図37に示した図では、横軸が音の周波数を表し、縦軸が音の大きさを表している。この図から明らかなように、人間の聴覚は、0.02kHz(すなわち、20Hz)程度の周波数を有する音は、80dB程度の大きさを有することで初めて音として知覚されることを示しており、逆に、2kHz程度の周波数を有する音は、数dB程度の大きさしかなくとも、音として知覚される。
例えば、図38に示したように、30Hzで約50dBの強さのトーン3801は、最小可聴限より低いため、人間は、このような音が鳴っていても知覚できない。これに対して、図39における60Hzで約50dBの強さのトーン3901は、最小可聴限を超えているため、知覚できる。同様に、図39における200Hzで約50dBの強さのトーン3903も、最小可聴限を超えているため、知覚できる。更に、トーン3901の最小可聴限を超えている部分3902よりも、トーン3903の最小可聴限を超えている部分3904の方が、最小可聴限を超えている量が多いため、より大きな音に知覚される。
聴覚によって知覚される音の大きさは、最小可聴限をどれだけ超えているかということに深く影響されている。このように、同じ強さの音であっても、人間が知覚する音の大きさが周波数によって大きく異なるものとなるということは、一般に広く知られている。
図37〜図39で説明した周波数と最小可聴限の関係を踏まえた上で、もう一度図23と図36のスペクトログラムを比較する。図23の低周波数部分2304で発生したスペクトルの中で、より耳障りな異音として知覚されるのは高周波数のスペクトルである。図23の例では、約900Hz程度まで不要なスペクトルが伸びている様子が確認できる。対して、図36の低周波数部分3604では、高周波数の不要なスペクトルが低減されており、図36に示した例では、約500Hz程度までに収まっている。このように、人間の聴覚の感度が高い周波数の異音を低減することにより、耳障りな異音は聴感上大幅に抑制される。
図40は、本実施形態に係るクロスフェード信号生成部3001の処理例を示す流れ図である。クロスフェード信号生成部3001は、まず、インデックスiを0にセットする(ステップS4001)。続いて、インデックスiと類似波形長Wを比較し(ステップS4002)、インデックスiがWより小さくない場合、すなわち、インデックスiがW以上となった場合には、処理を終了する。また、インデックスiがWより小さい場合には、インデックスiに基づいて、0から1に増加する変数kを、以下の式102により算出する(ステップS4003)。
続いて、算出した変数kに基づいて、以下の式103により、フェードインとフェードアウトに用いるための係数hを算出する(ステップS4004)。ここで、以下の式103におけるπは、円周率である。また、係数hを求める際、以下の式103においては余弦関数(cos関数)を用いているが、正弦関数と余弦関数は位相を無視すれば同じものであるため、両者を特に区別しない。
次に、フェードインする信号x(i)に係数hを掛け、フェードアウトする信号y(i)に1−hを掛けて、これらの信号の和をz(i)に代入する(ステップS4005)。このz(i)が、クロスフェード信号となる。続いて、インデックスiを1増加させ(ステップS4006)、ステップS4002に戻る。
かかる処理を行うことによって、本実施形態に係るクロスフェード信号を生成することができる。かかるクロスフェード信号は、類似波形長Wの区間の全てにおいて滑らかに増加または減少する信号であるため、クロスフェード信号自体に先鋭点が存在しない。そのため、本実施形態に係るクロスフェード信号生成部3001によって、クロスフェード信号の生成に利用される関数が有する先鋭点に由来した異音の発生を、抑制することが可能である。
<本実施形態に係る信号処理方法について>
本実施形態に係る情報処理装置2800は、類似波形長の探索範囲より低い周波数を有する信号に由来する異音を、上記のようなクロスフェード信号を生成することで削減を図り、伸張/圧縮処理を施した信号に発生しうる、うねり状の異音を、上記のような補正信号を生成することで削減を図る。従って、上記のクロスフェード信号と補正信号とを加算して接続信号とし、かかる接続信号を用いてオーディオ信号の伸張/圧縮処理を行うことで、伸張/圧縮処理するオーディオ信号が類似波形長の探索範囲より低い周波数を多く含むものであっても、異音を抑えた良好な話速変換の実現を可能とすることができる。
図41は、本実施形態に係る信号処理方法によって、図20の正弦波を120Hzの信号として類似波形長Wを定めて伸張処理した場合の波形例である。伸張処理に際して、クロスフェード信号の生成に用いる関数として図34に示した関数3401〜3402を用い、生成したクロスフェード信号を、上述の補正信号により補正している。図20の区間2001が図41の区間4101となり、図20の区間2001と区間2002のクロスフェードが図41の区間4102となり、図20の区間2002が図41の区間4103となる。区間4104〜区間4107も同様である。
図41から明らかなように、本実施形態に係る信号処理方法を用いることで、図32において発生していた先鋭点3208が消失している。このため、先鋭点に起因する耳障りな異音は大幅に抑制される。
図42は、類似波形長Wの探索範囲を50Hz〜250Hzとして図22のsweep信号を伸張処理した処理波形のスペクトログラムである。伸張処理に際して、クロスフェード信号の生成に用いる関数として図34に示した関数3401〜3402を用い、生成したクロスフェード信号を、上述の補正信号により補正している。また、スペクトログラム4203は、見易さのためにスペクトログラム4201の範囲4202を拡大したものである。
図33のスペクトログラムと図42のスペクトログラムとの比較から明らかなように、図33の低周波数3304の部分において発生していた不要なスペクトルが、図42の低周波数4204の部分において低減されている。更に、図42の低周波数4204の部分における不要なスペクトルは、図36に示したクロスフェード信号のみを用いた場合と殆ど同じ程度になっていることが確認できる。
(クロスフェード信号の生成に用いる関数の他の例について)
続いて、図43〜図49を参照しながら、本実施形態に係るクロスフェード信号生成部3001が用いる関数の他の例について、詳細に説明する。
(二次関数を用いる例について)
図43は、本実施形態におけるクロスフェード信号の生成に用いる別の関数の例を示している。関数4301を対象信号に掛けるとフェードアウト信号になり、関数4302を対象信号に掛けるとフェードイン信号になることは、図34と同様である。図34の関数と異なる点は、図43に示した関数は、類似波形長Wの区間4303が2つの二次関数を接続したものになっている点である。すなわち、類似波形長Wの区間4303において、本関数は、上に凸の形状の二次関数と、下に凸の二次関数とを接続したものとなっている。
2つの二次関数を接続したものを利用することによって、関数4301は1から0へ滑らかに減少し、関数4302は0から1へ滑らかに増加する関数となる。この滑らかさが、図32において発生していたような先鋭点を防ぐ効果を奏する。
また、本関数は二次関数を利用しているため、正弦関数を利用する場合に比べて計算機での演算量が大幅に少なくなるという効果がある。例えば、携帯型オーディオプレーヤーや携帯型ビデオプレーヤーのような携帯型機器で音声付きの早送り等を実現する場合、多大な演算量を処理するためには、高価な中央演算装置や大容量のバッテリーを必要とすることになり、コストアップに繋がるという問題がある。このため、話速変換処理を少ない演算量で実現することには実用上大きな利点がある。
図44は、上記関数を用いたクロスフェード信号生成部3001の処理例を説明するための流れ図である。クロスフェード信号生成部3001は、まず、インデックスiを0にセットし、変数aと変数bを、それぞれ以下の式104、式105で定まる値とする(ステップS4401)。
上記式105において、変数bは、原点(0,0)と(a,0.5)とを通る二次曲線の係数となる。ここで、上記式104におけるWは、類似波形長である。
次に、クロスフェード信号生成部3001は、インデックスiとW/2を比較し(ステップS4402)、インデックスiがW/2より小さい場合は、後述するステップS4403に進み、インデックスiがW/2より小さくない場合(すなわち、インデックスiがW/2以上の場合)は、後述するステップS4405に進む。
ステップS4403においては、以下の式106、式107を用いて、係数配列hを算出する。
インデックスiを増加させながらこの計算を行なうと、係数配列hには、前半に原点(0,0)と(a,0.5)を通る下に凸の二次曲線が格納され、後半に(W−1,1)と(a,0.5)と通る上に凸の二次曲線が格納される。また、係数配列hの前半および後半は、(a,0.5)を中心として点対称の関係にあり、前半と後半の接続点は滑らかに繋がる。
ステップS4404では、インデックスiを1増加させ、その後、ステップS4402の処理に戻る。また、ステップS4405では、インデックスiを0にセットし直す。
インデックスiが0にリセットされた後に、クロスフェード信号生成部3001は、インデックスiとWとを比較し(ステップS4406)、インデックスiがWよりも小さくない場合(すなわち、インデックスiがW以上である場合)には、処理を終了する。また、インデックスiがWより小さい場合は、フェードインする信号x(i)に係数h(i)を掛け、フェードアウトする信号y(i)に1−h(i)を掛け、それらの和をz(i)に代入する(ステップS4407)。このようにして生成されたz(i)が、クロスフェード信号となる。続いて、クロスフェード信号生成部3001はインデックスiを1増加させ(ステップS4408)、ステップS4406の処理に戻る。
かかる流れで処理を行うことにより、2つの二次関数を用いたクロスフェード信号を生成することが可能となる。
(三次関数を用いる例について)
図45は、本実施形態におけるクロスフェード信号の生成に用いる別の関数の例を示している。関数4501を対象信号に掛けるとフェードアウト信号になり、関数4502を対象信号に掛けるとフェードイン信号になることは、図34と同様である。図34の関数と異なる点は、類似波形長Wの区間4503が、三次関数になっている点である。
三次関数を利用することによって、関数4501は1から0へ滑らかに減少し、関数4502は0から1へ滑らかに増加する関数となる。この滑らかさが、図32において発生していたような先鋭点を防ぐ効果を奏する。また、三次関数を利用しているため、正弦関数を利用する場合に比べて計算機での演算量が少なくなるという効果がある。
図46は、上記関数を用いたクロスフェード信号生成部3001の処理例を説明するための流れ図である。クロスフェード信号生成部3001は、まず、インデックスiを0にセットする(ステップS4601)。次に、インデックスiと類似波形長Wを比較し(ステップS4602)、インデックスiがWよりも小さくない場合(すなわち、インデックスiがW以上である場合)には、処理を終了する。また、比較の結果、インデックスiがWより小さい場合は、例えば以下の式108、式109に基づいて、三次関数の係数aと係数bをそれぞれ算出する。
続いて、クロスフェード信号生成部3001は、算出したこれらの係数a,bを用いて、以下の式110により三次関数を計算し、フェードイン信号の生成およびフェードアウト信号の生成に用いるための係数hを算出する。
次に、クロスフェード信号生成部3001は、フェードインする信号x(i)に係数hを掛け、フェードアウトする信号y(i)に1−hを掛けて、これらの和をz(i)に代入する(ステップS4605)。このようにして生成されたz(i)が、クロスフェード信号となる。続いて、クロスフェード信号生成部3001はインデックスiを1増加させ(ステップS4606)、ステップS4602に戻る。
かかる流れで処理を行うことにより、三次関数を用いたクロスフェード信号を生成することが可能となる。
(双曲線正接関数を用いる例について)
図47は、本実施形態におけるクロスフェード信号の生成に用いる別の関数の例を示している。関数4701を対象信号に掛けるとフェードアウト信号になり、関数4702を対象信号に掛けるとフェードイン信号になることは、図34と同様である。図34の関数と異なる点は、類似波形長Wの区間4703が、双曲線正接関数(tanh関数)になっている点である。
クロスフェード信号を生成するための関数として双曲線正接関数を利用することによって、関数4701は1から0へ滑らかに減少し、関数4702は0から1へ滑らかに増加する関数となる。この滑らかさが、図32において発生していたような先鋭点を防ぐ効果を奏する。
なお、このような双曲線正接関数を用いたクロスフェード信号を生成する処理は、図46に示した流れ図と同様に行うことが可能であるため、詳細な説明は省略する。
(複数の異なる関数を組み合わせて用いる例について)
図48は、本実施形態におけるクロスフェード信号の生成に用いる別の関数の例を示している。関数4801を対象信号に掛けるとフェードアウト信号になり、関数4802を対象信号に掛けるとフェードイン信号になることは、図34と同様である。図34の関数と異なる点は、類似波形長Wの区間4803が、二次関数等の曲線と一次関数(直線)とを接続したものになっている点である。
二次関数等の曲線と一次関数(直線)とを接続したものを利用することによって、関数4801は1から0へ滑らかに減少し、関数4802は0から1へ滑らかに増加する関数となる。この滑らかさが、図32において発生していたような先鋭点を防ぐ効果を奏する。
なお、上記のような曲線と一次関数(直線)とを接続した関数を用いたクロスフェード信号を生成する処理は、図46に示した流れ図と同様に行うことが可能であるため、詳細な説明は省略する。
図49は、本実施形態におけるクロスフェード信号の生成に用いる別の関数の例を示している。関数4901を対象信号に掛けるとフェードアウト信号になり、関数4902を対象信号に掛けるとフェードイン信号になることは、図34と同様である。図34の関数と異なる点は、類似波形長Wの区間4903が、複数の直線を接続したものになっている点である。
複数の直線を接続したものを利用することによって、関数4901は、従来の1種類の直線を用いる方法と比べて、1から0へ滑らかに減少し、関数4902は、従来の1種類の直線を用いる方法と比べて、0から1へ滑らかに増加する関数となる。この滑らかさは、上述のような曲線を利用したものよりも荒くなるものの、図32において発生していたような先鋭点の程度を和らげる効果がある。また、直線だけを利用しているため、少ない演算量で実現できるという利点がある。
図49に示した例では、フェードアウトとフェードインを3本の直線で実現しているが、用いる直線の本数は上記のものに限定されるわけではなく、これより多い本数の直線を用いてもよい。直線の本数を増やせば増やす程、異音を低減させる効果や演算量は、曲線を利用した場合に近づいていくことなる。
(第1の実施形態に係る情報処理装置の第1変形例)
続いて、図50を参照しながら、本発明の第1の実施形態に係る情報処理装置の第1変形例について、詳細に説明する。図50は、同変形例における接続信号生成部2903の機能を説明するためのブロック図である。
図50から明らかなように、同変形例における接続信号生成部2903は、例えば、クロスフェード信号生成部5001と、接続信号出力部5002と、補正信号生成部5003と、を備える。
クロスフェード信号生成部5001は、入力バッファ2901から伝送された入力オーディオ信号に対して所定の関数を掛け合わせ、クロスフェード信号を生成する。クロスフェード信号の生成に用いられる関数は、上述のように、正弦関数、二次関数、三次関数または双曲線正接関数等を利用することが可能である。生成されたクロスフェード信号は、後述する接続信号出力部5002に伝送される。また、生成されたクロスフェード信号は、RAM、ストレージ装置等で構成される未図示の記憶部に記憶されてもよい。
接続信号出力部5002は、クロスフェード信号生成部5001から伝送されたクロスフェード信号と、後述する補正信号生成部5003にて生成された補正信号とを足し合わせ、入力オーディオ信号を伸張/圧縮処理するために用いられる接続信号を生成する。接続信号出力部5002は、生成した接続信号を、前述の出力バッファ2904に出力する。また、出力された接続信号は、RAM、ストレージ装置等で構成される未図示の記憶部に記憶されてもよい。
補正信号生成部5003は、入力バッファ2901から伝送されたオーディオ信号および類似波形長Wを用いて、接続信号の生成に用いられる補正信号を生成する。この補正信号生成部5003は、例えば、時間軸反転差信号生成部5004と、フィルタ処理部5005と、窓処理部5006とから構成される。
時間軸反転差信号生成部5004は、時間軸変換差信号生成部の一例であって、入力バッファ2901から伝送されたオーディオ信号から差信号を生成し、その差信号の時間軸を反転する。ここで、時間軸の反転とは、本来、時間軸が0,1,2,・・・,t−1と増加する方向で記載されている差信号の各データについて、時間軸がt−1,t−2,・・・,1,0と減少する方向で記載されるようにデータの配置を置き換えることをいう。このように、差信号の時間軸を反転させることで、オーディオ信号と、生成した差信号との相関を無くすことができる。時間軸反転差信号生成部5004で生成された時間軸が反転した差信号は、フィルタ処理部5005へと伝送される。また、時間軸が反転した差信号は、RAM、ストレージ装置等で構成される未図示の記憶部に記憶されてもよい。
フィルタ処理部5005は、入力バッファ2901から伝送された類似波形長Wを用いて、時間軸反転差信号生成部5004から伝送された時間軸が反転した差信号に対してフィルタ処理を行い、低周波数(例えば、50Hz以下の周波数)の信号を減衰させる。このフィルタ処理には、例えば、ハイパスフィルタやバンドパスフィルタ等のディジタルフィルタを利用することが可能である。伝送された差信号に対してフィルタ処理が施されると、フィルタ処理が施された時間軸反転差信号は、後述する窓処理部5006へと伝送される。また、フィルタ処理が施されたオーディオ信号は、RAM、ストレージ装置等で構成される未図示の記憶部に記憶されてもよい。
なお、本変形例におけるフィルタ処理は、図31に示したフィルタ処理部の流れ図において、時間軸反転差信号生成部5004で生成された信号をg(i)とおいて処理を行うことで実行可能である。
窓処理部5006は、フィルタ処理部5005で生成されたフィルタ処理後の時間軸反転差信号に対して、所定の窓関数を掛けて補正信号とする。窓処理部5006が用いる窓関数としては、例えば、図16に示した三角窓や、正弦関数を利用した窓関数等を挙げることができる。窓処理が施された時間軸反転差信号は、補正信号として前述の接続信号出力部5002へと伝送される。また、窓処理が施された時間軸反転差信号は、RAM、ストレージ装置等で構成される未図示の記憶部に記憶されてもよい。
図50に示した本変形例に係る接続信号生成部においては、時間軸反転差信号のみにフィルタ処理を施すため、図30に示した本発明の第1の実施形態に係る接続信号生成部に比べて、演算量が少なくなるという利点がある。
以上、本変形例に係る情報処理装置2800の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
なお、上述した実施形態においては、入力されたオーディオ信号を伸張処理する場合を例にとって説明したが、入力されたオーディオ信号を圧縮処理する場合であっても同様であることは言うまでもない。また、上述した実施形態においては、時間軸変換差信号生成の例として時間軸を反転させる場合について説明したが、時間軸をシフトさせて差信号を生成してもよい。
以上説明したように、本発明によれば、従来の方法で問題となっていた、うねり状の異音の発生と低周波数の信号に起因する異音の発生という2つの問題を、同時に解消することが可能である。すなわち、うねり状の異音の発生は、オーディオ信号の伸張/圧縮処理に用いられるクロスフェード信号を、所定の補正信号で補正することで解消可能であるが、この補正信号のみでは、低周波数の信号に起因する異音の発生は抑制することができない。また、低周波数に起因する異音の発生は、クロスフェード信号を生成するために用いられる関数の形状を変化させることで解消可能であるが、この関数の形状変化のみでは、うねり状の異音の発生を抑制することはできない。
そこで、本発明では、クロスフェード信号の生成に用いられる関数の形状を変更するとともに、入力されたオーディオ信号から低周波数成分の信号をフィルタ処理により除去した後に、クロスフェード信号を補正する補正信号を生成する。かかるクロスフェード信号と補正信号とを加算することにより、うねり状の異音の発生と低周波数の信号に起因する異音の発生という2つの問題を、同時に解消することが可能な接続信号を得ることができる。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば、上述した実施形態においては、PICOLAの接続信号生成方法に替えて良好な伸張/圧縮信号を得ることが可能な信号処理方法について示したが、本発明に係る信号処理方法は、他のOLA(OverLap and Add)系のアルゴリズム等、接続信号生成処理を伴う時間軸上の話速変換アルゴリズムに適用可能である。
また、PICOLAが、サンプリング周波数を一定とする場合は話速変換となり、サンプル数の増減に合わせてサンプリング周波数を変える場合はピッチシフトとなることから、本発明も、話速変換に限らず、ピッチシフトにも適用可能である。
更に、本発明に係る信号処理方法は、話速変換を応用した波形補間や補外にも適用可能である。