(57)【要約】【課題】良好な音質を得ることができるオーディオ信号伸張圧縮方法及び装置を提供する。【解決手段】オーディオ信号からクロスフェード信号を生成するクロスフェード信号生成部１３１と、オーディオ信号から差信号を生成し、その差信号の時間軸を反転した時間軸反転差信号を生成する時間軸反転差信号生成部１３２と、時間軸反転差信号をクロスフェード信号に加算する加算部１３３とを備える。【選択図】図３
2007292957.tif 000002
【特許請求の範囲】
【請求項１】
オーディオ信号を時間軸領域で伸張圧縮するオーディオ信号伸張圧縮方法において、
上記オーディオ信号内の類似する第１の区間と第２の区間を用いて、上記第１の区間の信号と上記第２の区間の信号のクロスフェード信号を生成するクロスフェード信号生成工程と、
上記第１の区間の信号と上記第２の区間の信号との差信号を時間軸反転し、窓関数を乗じて補正信号を生成する補正信号生成工程と、
上記クロスフェード信号と上記補正信号とを加算し、上記時間軸領域で伸張圧縮するための接続波形を生成する接続波形生成工程と
を有することを特徴とするオーディオ信号伸張圧縮方法。
【請求項２】
上記接続波形は、上記時間軸領域で伸張する際、上記第１の区間と上記第２の区間との間に挿入され、上記時間軸領域で圧縮する際、上記第１の区間と上記第２の区間とをオーバーラップさせた区間に置換されることを特徴とする請求項１記載のオーディオ信号伸張圧縮方法。
【請求項３】
上記窓関数は、三角窓であることを特徴とする請求項１記載のオーディオ信号伸張圧縮方法。
【請求項４】
上記窓関数は、サイン窓であることを特徴とする請求項１記載のオーディオ信号伸張圧縮方法。
【請求項５】
上記補正信号生成工程では、上記補正信号と上記クロスフェード信号が負の相関を持つ場合、上記補正信号の符号を反転させることを特徴とする請求項１記載のオーディオ信号伸張圧縮方法。
【請求項６】
上記補正信号生成工程では、上記接続波形のエネルギーが上記第１の区間の信号のエネルギーと上記第２の区間の信号のエネルギーの中間となるように上記補正信号の振幅を調節することを特徴とする請求項５記載のオーディオ信号伸張圧縮方法。
【請求項７】
オーディオ信号を時間軸領域で伸張圧縮するオーディオ信号伸張圧縮装置において、
上記オーディオ信号内の類似する第１の区間と第２の区間を用いて、上記第１の区間の信号と上記第２の区間の信号のクロスフェード信号を生成するクロスフェード信号生成手段と、
上記第１の区間の信号と上記第２の区間の信号との差信号を時間軸反転し、窓関数を乗じて補正信号を生成する補正信号生成手段と、
上記クロスフェード信号と上記補正信号とを加算し、上記時間軸領域で伸張圧縮するための接続波形を生成する接続波形生成手段と
を有することを特徴とするオーディオ信号伸張圧縮装置。
【請求項８】
上記接続波形は、上記時間軸領域で伸張する際、上記第１の区間と上記第２の区間との間に挿入され、上記時間軸領域で圧縮する際、上記第１の区間と上記第２の区間とをオーバーラップさせた区間に置換されることを特徴とする請求項７記載のオーディオ信号伸張圧縮装置。
【請求項９】
上記窓関数は、三角窓であることを特徴とする請求項７記載のオーディオ信号伸張圧縮装置。
【請求項１０】
上記窓関数は、サイン窓であることを特徴とする請求項７記載のオーディオ信号伸張圧縮装置。
【請求項１１】
上記補正信号生成手段では、上記補正信号と上記クロスフェード信号が負の相関を持つ場合、上記補正信号の符号を反転させることを特徴とする請求項７記載のオーディオ信号伸張圧縮装置。
【請求項１２】
上記補正信号生成手段では、上記接続波形のエネルギーが上記第１の区間の信号のエネルギーと上記第２の区間の信号のエネルギーの中間となるように上記補正信号の振幅を調節することを特徴とする請求項１１記載のオーディオ信号伸張圧縮装置。
【請求項１３】
オーディオ信号を時間軸領域で伸張圧縮するオーディオ信号伸張圧縮方法において、
上記オーディオ信号内の類似する第１の区間と第２の区間を用いて、上記第１の区間の信号と第２の区間の信号の和信号を生成する和信号生成工程と、
上記第１の区間の信号と上記第２の区間の信号との差信号を時間軸反転し補正信号を生成する補正信号生成工程と、
上記和信号と上記補正信号とを加算する加算工程と、
上記加算工程で加算された信号に上記第１の区間の信号と上記第２の区間の信号とをクロスフェードし、接続波形を生成する接続波形生成工程と
を有することを特徴とするオーディオ信号伸張圧縮方法。
【請求項１４】
上記接続波形は、上記時間軸領域で伸張する際、上記第１の区間と上記第２の区間との間に挿入され、上記時間軸領域で圧縮する際、上記第１の区間と上記第２の区間とをオーバーラップさせた区間に置換されることを特徴とする請求項１３記載のオーディオ信号伸張圧縮方法。
【請求項１５】
オーディオ信号を時間軸領域で伸張圧縮するオーディオ信号伸張圧縮装置において、
上記オーディオ信号内の類似する第１の区間と第２の区間を用いて、上記第１の区間の信号と第２の区間の信号の和信号を生成する和信号生成手段と、
上記第１の区間の信号と上記第２の区間の信号との差信号を時間軸反転し補正信号を生成する補正信号生成手段と、
上記和信号と上記補正信号とを加算する加算手段と、
上記加算手段で加算された信号に上記第１の区間の信号と上記第２の区間の信号とをクロスフェードし、上記時間軸領域で伸張圧縮するための接続波形を生成する接続波形生成手段と
を有することを特徴とするオーディオ信号伸張圧縮装置。
【請求項１６】
上記接続波形は、上記時間軸領域で伸張する際、上記第１の区間と上記第２の区間との間に挿入され、上記時間軸領域で圧縮する際、上記第１の区間と上記第２の区間とをオーバーラップさせた区間に置換されることを特徴とする請求項１５記載のオーディオ信号伸張圧縮装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音楽等の再生速度を変化させるためのオーディオ信号伸張圧縮方法及び装置に関するものである。
【背景技術】
【０００２】
デジタル音声信号に対する時間領域での伸張圧縮アルゴリズムとしてＰＩＣＯＬＡ（Pointer Interval Control OverLap and Add）が知られている。このアルゴリズムは、処理が単純かつ軽量でありながら、音声信号に対して良好な音質が得られるという利点がある。以下、図を参照して、このＰＩＣＯＬＡについて簡単に説明する。以下、本明細書では、音楽等に含まれる音声以外の信号を音響信号と呼び、音声信号と音響信号を合わせてオーディオ信号と呼ぶこととする。
【０００３】
図２２は、ＰＩＣＯＬＡを用いて原波形を伸張する例を示している。まず、原波形（ａ）から波形がよく似ている区間Ａと区間Ｂを見つける。区間Ａと区間Ｂのサンプル数は同じである。続いて、区間Ｂでフェードアウトする波形（ｂ）を作る。同様に、区間Ａからフェードインする波形（ｃ）を作り、波形（ｂ）と波形（ｃ）を足し合わせることにより、伸張波形（ｄ）を得る。このように、フェードアウトする波形とフェードインする波形を足し合わせることをクロスフェードと呼ぶ。区間Ａと区間Ｂのクロスフェード区間を区間ＡｘＢと表すこととすると、以上の操作を行なうことにより、区間Ａと区間Ｂは、区間Ａと区間ＡｘＢと区間Ｂとに変更され、伸張されたことになる。
【０００４】
図２３は、類似波形である区間Ａと区間Ｂの区間長Ｗを検出する方法を示す模式図である。まず、処理開始位置Ｐ０を起点として、ｊサンプルの区間Ａと区間Ｂを図２３（ａ）のように定める。図２３（ａ）→図２３（ｂ）→図２３（ｃ）のように少しずつｊを伸ばしながら区間Ａと区間Ｂが最も類似するｊを求める。類似度を測る尺度として、例えば、次の関数Ｄ（ｊ）を使うことができる。
【０００５】
【数１】
2007292957.tif 000003
【０００６】
ＷＭＩＮ≦ｊ≦ＷＭＡＸの範囲でＤ（ｊ）を計算し、Ｄ（ｊ）が最も小さな値となるｊを求める。このときのｊが、区間Ａと区間Ｂの区間長Ｗである。ここで、ｘ（ｉ）は、区間Ａの各サンプル値を示し、ｙ（ｉ）は、区間Ｂの各サンプル値を示す。また、ＷＭＡＸとＷＭＩＮは、例えば５０Ｈｚ〜２５０Ｈｚ程度の値であり、サンプリング周波数が８ｋＨｚであれば、ＷＭＡＸ＝１６０、ＷＭＩＮ＝３２程度である。図２３の例では、（ｂ）におけるｊが関数Ｄ（ｊ）を最も小さくするｊとして選ばれる。
【０００７】
図２４は、任意の長さに波形を伸張する方法を示す模式図である。まず、図２３で示したように処理開始位置Ｐ０を起点として関数Ｄ（ｊ）が最小となるｊを求め、Ｗ＝ｊとおく。続いて、図２４に示すように区間２４０１を区間２４０３にコピーし、区間２４０１と区間２４０２のクロスフェード波形を区間２４０４に作成する。そして、原波形（ａ）の位置Ｐ０から位置Ｐ０’までの区間から区間２４０１を除いた残りの区間を伸張波形（ｂ）にコピーする。以上の操作により、原波形（ａ）の位置Ｐ０から位置Ｐ０’までのＬサンプルが伸張波形（ｂ）ではＷ＋Ｌサンプルとなり、サンプル数はｒ倍となる。
【０００８】
【数２】
2007292957.tif 000004
【０００９】
この式をＬについて書き換えると、（３）式となり、原波形（ａ）のサンプル数をｒ倍したい場合は、（４）式のように位置Ｐ０’を定めれば良いことが分かる。
【００１０】
【数３】
2007292957.tif 000005
【００１１】
更に、１／ｒを（５）式のように置くと、（６）式となる。
【００１２】
【数４】
2007292957.tif 000006
【００１３】
このようにＲを使うことにより、原波形（ａ）を「Ｒ倍速再生する」といった表現をすることができる。以下ではこのＲを話速変換率と呼ぶこととする。なお、図２４の例では、サンプル数Ｌがおおよそ２．５Ｗであるので、約０．７倍速再生の遅聴に相当する。
【００１４】
原波形（ａ）の位置Ｐ０から位置Ｐ０’の処理が終了したら、位置Ｐ０’を位置Ｐ１とし、改めて処理の起点と見なして同様の処理を繰り返す。
【００１５】
続いて、原波形の圧縮について説明する。図２５は、ＰＩＣＯＬＡを用いて原波形を圧縮する例を示している。まず、原波形（ａ）から、波形がよく似ている区間Ａと区間Ｂを見つける。区間Ａと区間Ｂのサンプル数は同じである。続いて、区間Ａでフェードアウトする波形（ｂ）を作る。同様に、区間Ｂからフェードインする波形（ｃ）を作り、波形（ｂ）と波形（ｃ）を足し合わせると、圧縮波形（ｄ）が得られる。以上の操作を行なうことにより、区間Ａと区間Ｂは、区間ＡｘＢに変更される。
【００１６】
図２６は、任意の長さに波形を圧縮する方法を示している。まず、図２３で示したように処理開始位置Ｐ０を起点として関数Ｄ（ｊ）が最小となるｊを求め、Ｗ＝ｊとおく。続いて、図２６に示すように区間２６０１と区間２６０２のクロスフェード波形を区間２６０３に作成する。そして、原波形（ａ）の位置Ｐ０から位置Ｐ０’までの区間から区間２６０１と区間２６０２を除いた残りの区間を圧縮波形（ｂ）にコピーする。以上の操作により、原波形（ａ）の位置Ｐ０から位置Ｐ０’までのＷ＋Ｌサンプルが圧縮波形（ｂ）ではＬサンプルとなり、サンプル数はｒ倍となる。
【００１７】
【数５】
2007292957.tif 000007
【００１８】
この（７）式をＬについて書き換えると、（８）式となり、原波形（ａ）のサンプル数をｒ倍する場合は、（９）式のように位置Ｐ０’を定めればよい。
【００１９】
【数６】
2007292957.tif 000008
【００２０】
更に、１／ｒを（１０）式のように置くと、（１１）式となる。
【００２１】
【数７】
2007292957.tif 000009
【００２２】
このようにＲを使うことにより、原波形（ａ）を「Ｒ倍速再生する」といった表現をすることができる。原波形（ａ）の位置Ｐ０から位置Ｐ０’の処理が終了したら、位置Ｐ０’を位置Ｐ１とし、改めて処理の起点と見なして同様の処理を繰り返す。
【００２３】
図２６の例は、サンプル数Ｌがおおよそ１．５Ｗであるので、約１．７倍速再生の速聴に相当する。
【００２４】
図２７は、ＰＩＣＯＬＡの波形伸張の処理の流れを示すフローチャートである。ステップＳ１００１では、入力バッファに処理すべきオーディオ信号があるか否かを調べ、オーディオ信号がない場合は処理を終了する。処理すべきオーディオ信号がある場合は、ステップＳ１００２に進み、処理開始位置Ｐを起点として関数Ｄ（ｊ）が最小になるｊを求め、Ｗ＝ｊとおく。ステップＳ１００３では、ユーザが指定した話速変換率ＲからＬを求め、ステップＳ１００４では、処理開始位置ＰからＷサンプル分の区間Ａを出力バッファに出力する。ステップＳ１００５では、処理開始位置ＰからＷサンプル分の区間Ａと次のＷサンプル分の区間Ｂのクロスフェードを求め、区間Ｃとし、ステップＳ１００６において、この区間Ｃを出力バッファに出力する。ステップＳ１００７では、入力バッファの位置Ｐ＋ＷからＬ−Ｗサンプル分を出力バッファに出力（コピー）する。ステップＳ１００８では、処理開始位置ＰをＰ＋Ｌに移動させ、ステップＳ１００１に戻り処理を繰り返す。
【００２５】
図２８は、ＰＩＣＯＬＡの波形圧縮の処理の流れを示すフローチャートである。ステップＳ１１０１では、入力バッファに処理すべきオーディオ信号があるか否かを調べ、オーディオ信号がない場合は処理を終了する。処理すべきオーディオ信号がある場合は、ステップＳ１１０２に進み、処理開始位置Ｐを起点として関数Ｄ（ｊ）が最小になるｊを求め、Ｗ＝ｊとおく。ステップＳ１１０３では、ユーザが指定した話速変換率ＲからＬを求める。ステップＳ１１０４では、処理開始位置ＰからＷサンプル分の区間Ａと次のＷサンプル分の区間Ｂのクロスフェードを求め、区間Ｃとし、ステップＳ１１０５において、この区間Ｃを出力バッファに出力する。ステップＳ１１０６では、入力バッファの位置Ｐ＋２ＷからＬ−Ｗサンプル分を出力バッファに出力（コピー）する。ステップＳ１１０７では、処理開始位置ＰをＰ＋（Ｗ＋Ｌ）に移動してから、ステップＳ１１０１に戻り処理を繰り返す。
【００２６】
図２９は、ＰＩＣＯＬＡによる話速変換装置１００の構成の一例である。処理すべき入力オーディオ信号はまず入力バッファ１０１にバッファリングされる。この入力バッファ１０１のオーディオ信号に対して、類似波形長抽出部１０２が、関数Ｄ（ｊ）を最小にするｊを求めて、Ｗ＝ｊとおく。類似波形長抽出部１０２で求まったＷは、入力バッファ１０１に渡され、バッファ操作に利用される。類似波形長抽出部１０２は、オーディオ信号２Ｗサンプルを接続波形生成部１０３に渡す。接続波形生成部１０３は、受け取った２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルにする。話速変換率Ｒに合わせて入力バッファ１０１と接続波形生成部１０３から出力バッファ１０４にオーディオ信号を送る。出力バッファ１０４に生成されたオーディオ信号は、出力オーディオ信号として、話速変換装置から出力される。
【００２７】
図３０は、図２９の構成例における接続波形生成部１０３における処理の流れを示すフローチャートである。伸張の場合、区間Ａの各サンプル値をｘ（ｉ）（ｉ＝０，１，・・・，Ｗ−１）、区間Ｂの各サンプル値をｙ（ｉ）（ｉ＝０，１，・・・，Ｗ−１）とし、圧縮の場合、区間Ｂの各サンプル値をｘ（ｉ）（ｉ＝０，１，・・・，Ｗ−１）、区間Ａの各サンプル値をｙ（ｉ）（ｉ＝０，１，・・・，Ｗ−１）とする。クロスフェード後の各サンプル値をｚ（ｉ）（ｉ＝０，１，・・・，Ｗ−１）とする。
【００２８】
ステップＳ１２０１では、インデックスｉを０にリセットする。ステップＳ１２０２では、インデックスｉがＷより小さいか否か調べ、小さい場合はステップＳ１２０３に進み、小さくない場合は処理を終了する。ステップＳ１２０３では、重みｈ＝ｉ／Ｗを求め、ステップＳ１２０４では、クロスフェード信号ｚ（ｉ）を計算する。
【００２９】
【数８】
2007292957.tif 000010
【００３０】
ステップＳ１２０５では、インデックスｉを１増加させた後、ステップＳ１２０２に戻り、処理を繰り返す。以上の処理によりｚ（ｉ）にはｘ（ｉ）とｙ（ｉ）のクロスフェード値が格納される。
【００３１】
以上、図２２〜図３０を用いて説明したように、話速変換アルゴリズムＰＩＣＯＬＡによって、任意の話速変換率Ｒ（０．５≦Ｒ＜１．０，１．０＜Ｒ≦２．０）でオーディオ信号を伸張圧縮させることができる。
【００３２】
【非特許文献１】森田，板倉，「ポインター移動量制御による重複加算法（ＰＩＣＯＬＡ）を用いた音声の時間軸での伸張圧縮とその評価」，日本音響学会論文集，昭和６１年１０月，ｐｐ．１４９−１５０
【発明の開示】
【発明が解決しようとする課題】
【００３３】
しかしながら、従来のＰＩＣＯＬＡでは、音声信号に対しては良好な音質が得られるものの、音楽等の音響信号に対しては良好な音質が得られ難いという問題が生じることがある。これは、一般に音楽に様々な楽器の音が含まれるため、音響信号にも様々な周波数の波形が重なるからである。
【００３４】
図３１は、区間Ａと区間Ｂの波形（ａ）を伸張して伸張波形（ｂ）を得る場合の波形の様子を示したものであり、（ａ）の区間Ａと区間Ｂの実線波形は同相である。また、図３１において、点線で示した波形に、実線で示した小振幅の波形が重なっている様子を示している。原波形（ａ）を１．５倍に伸張する場合、原波形（ａ）の区間Ａ（３１０１）を伸張波形（ｂ）の区間Ａ（３１０３）にコピーし、原波形（ａ）の区間Ａ（３１０１）と区間Ｂ（３１０２）のクロスフェード波形を伸張波形（ｂ）の区間ＡｘＢ（３１０４）に生成し、最後に、原波形（ａ）の区間Ｂ（３１０２）を伸張波形（ｂ）の区間Ｂ（３１０５）にコピーする。この場合、伸張波形（ｂ）の実線波形の包絡線は、模式的に同図（ｃ）のように表現される。
【００３５】
同様に、図３２は、区間Ａと区間Ｂの波形（ａ）を伸張して伸張波形（ｂ）を得る場合の波形の様子を示したものであり、（ａ）の区間Ａと区間Ｂの実線波形は逆相である。原波形（ａ）を１．５倍に伸張する場合、原波形（ａ）の区間Ａ（３２０１）を伸張波形（ｂ）の区間Ａ（３２０３）にコピーし、原波形（ａ）の区間Ａ（３２０１）と区間Ｂ（３２０２）のクロスフェード波形を伸張波形（ｂ）の区間ＡｘＢ（３２０４）に生成し、最後に、原波形（ａ）の区間Ｂ（３２０２）を伸張波形（ｂ）の区間Ｂ（３２０５）にコピーする。この場合、伸張波形（ｂ）の実線波形の包絡線は、模式的に同図（ｃ）のように表現される。
【００３６】
これら図３１及び図３２を比較すると容易に分かるように、クロスフェード後の波形は、クロスフェード前の２つの波形の相関関係によって、振幅が大きく変わってしまう。つまり、異音が発生してしまう。なお、一般の音響信号において、図３２（ａ）の実線波形のような波形が含まれることは考え難いが、選択された区間Ａと区間Ｂに逆相に近い波形が含まれることは実際に頻発する。
【００３７】
また、図３３は、図３１及び図３２で説明した内容を、もう少し長い波形に対して適用した例である。図３３（ａ）の原波形を５つの区間Ａ１，Ａ２，Ａ３，Ａ４，Ａ５に分けた場合、それぞれの区間が同相の関係を持っていれば、図３３（ｂ）に示すような波形となり、逆相の関係を持っていれば図３３（ｃ）のような波形となり、更に、それぞれの区間が無相の関係を持っていれば、図３３（ｄ）のようになり、逆相や無相の関係を持っている場合、うねり状の異音が顕著となる。
【００３８】
図３４は、無相の場合の具体例であり、白色ノイズである図３４（ａ）の原波形を５つの区間Ａ１，Ａ２，Ａ３，Ａ４，Ａ５に分けた場合、その伸張波形は、図３４（ｂ）のようになる。つまり、おおよそ図３３（ｄ）の模式図のようになり、原波形に存在しない、うねり状の異音が波形に発生してしまう。実際の音響信号では、ここまで極端ではないものの、瞬間に含まれる音の成分がこのような影響を受ける結果、聴覚的にうねり状の異音を確認するに至ってしまう。
【００３９】
このように、従来のＰＩＣＯＬＡでは、原波形に存在しない、うねり状の異音が発生する傾向があり、耳障りになっていた。また、伸張圧縮処理した波形の振幅が平均的に小さくなる傾向があった。
【００４０】
本発明は、これらの問題点を鑑みてなされたものであり、良好な音質を得ることができるオーディオ信号伸張圧縮方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【００４１】
上述した課題を解決するために、本発明は、オーディオ信号を時間軸領域で伸張圧縮するオーディオ信号伸張圧縮方法において、上記オーディオ信号内の類似する第１の区間と第２の区間を用いて、上記第１の区間の信号と上記第２の区間の信号のクロスフェード信号を生成するクロスフェード信号生成工程と、上記第１の区間の信号と上記第２の区間の信号との差信号を時間軸反転し、窓関数を乗じて補正信号を生成する補正信号生成工程と、上記クロスフェード信号と上記補正信号とを加算し、上記時間軸領域で伸張圧縮するための接続波形を生成する接続波形生成工程とを有することを特徴としている。
【００４２】
また、本発明は、オーディオ信号を時間軸領域で伸張圧縮するオーディオ信号伸張圧縮装置において、上記オーディオ信号内の類似する第１の区間と第２の区間を用いて、上記第１の区間の信号と上記第２の区間の信号のクロスフェード信号を生成するクロスフェード信号生成手段と、上記第１の区間の信号と上記第２の区間の信号との差信号を時間軸反転し、窓関数を乗じて補正信号を生成する補正信号生成手段と、上記クロスフェード信号と上記補正信号とを加算し、上記時間軸領域で伸張圧縮するための接続波形を生成する接続波形生成手段とを有することを特徴としている。
【００４３】
また、本発明は、オーディオ信号を時間軸領域で伸張圧縮するオーディオ信号伸張圧縮方法において、上記オーディオ信号内の類似する第１の区間と第２の区間を用いて、上記第１の区間の信号と第２の区間の信号の和信号を生成する和信号生成工程と、上記第１の区間の信号と上記第２の区間の信号との差信号を時間軸反転し補正信号を生成する補正信号生成工程と、上記和信号と上記補正信号とを加算する加算工程と、上記加算工程で加算された信号に上記第１の区間の信号と上記第２の区間の信号とをクロスフェードし、接続波形を生成する接続波形生成工程とを有することを特徴としている。
【００４４】
また、本発明は、オーディオ信号を時間軸領域で伸張圧縮するオーディオ信号伸張圧縮装置において、上記オーディオ信号内の類似する第１の区間と第２の区間を用いて、上記第１の区間の信号と第２の区間の信号の和信号を生成する和信号生成手段と、上記第１の区間の信号と上記第２の区間の信号との差信号を時間軸反転し補正信号を生成する補正信号生成手段と、上記和信号と上記補正信号とを加算する加算手段と、上記加算手段で加算された信号に上記第１の区間の信号と上記第２の区間の信号とをクロスフェードし、上記時間軸領域で伸張圧縮するための接続波形を生成する接続波形生成手段とを有することを特徴としている。
【発明の効果】
【００４５】
本発明によれば、オーディオ信号内の連続して類似する第１の区間と第２の区間を用いて、第１の区間の信号と第２の区間の信号との差信号を時間軸反転させた補正信号によりクロスフェード信号を生成することにより、うねり状の異音を軽減させることができる。
【発明を実施するための最良の形態】
【００４６】
以下、本発明の具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００４７】
図１は、本発明の第１の実施形態におけるオーディオ信号伸張圧縮装置の構成を示すブロック図である。
【００４８】
オーディオ信号伸張圧縮装置１０は、入力オーディオ信号をバッファリングする入力バッファ１１と、入力バッファ１１のオーディオ信号に対し、連続して類似する波形長（２Ｗサンプル分）を抽出する類似波形長抽出部１２と、２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルの接続波形を生成する接続波形生成部１３と、話速変換率Ｒに応じて入力された入力オーディオ信号と接続波形とからなる出力オーディオ信号を出力する出力バッファ１４とを備えて構成されている。
【００４９】
処理すべき入力オーディオ信号は、入力バッファ１１にバッファリングされる。
【００５０】
類似波形長抽出部１２は、図２に示すように入力バッファ１１にバッファリングされたオーディオ信号に対して、処理開始位置Ｐ０を起点として、ｊサンプルの区間Ａと区間Ｂを図２（ａ）のように定める。図２（ａ）→図２（ｂ）→図２（ｃ）のように少しずつｊを伸ばしながら区間Ａと区間Ｂが最も類似するｊを求める。類似度を測る尺度として、例えば、次の関数Ｄ（ｊ）を使うことができる。
【００５１】
【数９】
2007292957.tif 000011
【００５２】
ＷＭＩＮ≦ｊ≦ＷＭＡＸの範囲でＤ（ｊ）を計算し、Ｄ（ｊ）が最も小さな値となるｊを求める。このときのｊが、区間Ａと区間Ｂの区間長Ｗである。ここで、ｘ（ｉ）は、区間Ａの各サンプル値を示し、ｙ（ｉ）は、区間Ｂの各サンプル値を示す。又、ＷＭＡＸとＷＭＩＮは、例えば５０Ｈｚ〜２５０Ｈｚ程度の値であり、サンプリング周波数が８ｋＨｚであれば、ＷＭＡＸ＝１６０、ＷＭＩＮ＝３２程度である。図２の例では、（ｂ）におけるｊが関数Ｄ（ｊ）を最も小さくするｊとして選ばれる。
【００５３】
類似波形長抽出部１２で求められたＷは、入力バッファ１１に渡され、バッファ操作に利用される。類似波形長抽出部１２は、オーディオ信号の２Ｗサンプルを接続波形生成部１３に出力する。接続波形生成部１３は、入力した２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルにする。入力バッファ１１と接続波形生成部１３は、話速変換率Ｒに合わせて出力バッファ１４にオーディオ信号を出力する。出力バッファ１４にバッファリングされたオーディオ信号は、オーディオ信号伸張圧縮装置１０から出力オーディオ信号として出力される。
【００５４】
図３は、第１の実施形態における接続波形生成部１３の構成を示すブロック図である。この接続波形生成部１３は、オーディオ信号からクロスフェード信号を生成するクロスフェード信号生成部１３１と、オーディオ信号から差信号を生成し、その差信号の時間軸を反転した時間軸反転差信号を生成する時間軸反転差信号生成部１３２と、時間軸反転差信号をクロスフェード信号に加算する加算部１３３とを備えている。
【００５５】
接続波形を生成するためのオーディオ信号が入力されると、クロスフェード信号生成部１３１は、オーディオ信号からクロスフェード信号を生成する。同時に、時間軸反転差信号生成部１３２は、オーディオ信号から差信号を生成し、その差信号の時間軸を反転し、窓関数を掛けて時間軸反転差信号を生成する。加算部１３３は、時間軸反転差信号生成部１３２で生成された時間軸反転差信号を、クロスフェード信号生成部１３１で生成されたクロスフェード信号に加算し、その結果であるオーディオ信号を接続波形生成部１３の出力とする。
【００５６】
続いて、接続波形生成部１３の信号処理について説明する。図４は、接続波形生成部１３における信号処理を模式的に示したものである。クロスフェード信号生成部１３１で生成されたクロスフェード波形ＡｘＢは、時間軸反転差信号生成部１３２で生成された補正信号である時間軸反転差信号により補正される。
【００５７】
図４（ａ）は、同相波形同士のクロスフェード波形の場合であり、補正は必要とされない。図４（ｂ）は、逆相波形同士のクロスフェード波形の場合であり、図４に示すような補正信号Ｓを適用すれば、クロスフェード前の波形の振幅が保たれる。図４（ｃ）は、無相波形同士のクロスフェード波形の場合であり、補正信号Ｓを適用すれば、クロスフェード前の波形の振幅が保たれる。本発明の具体例では、この補正を行うことにより、問題の解決を図る。
【００５８】
時間軸反転差信号生成部１３は、クロスフェード前の２つの区間の信号ｘ（ｉ）（ｉ＝０，１，２，・・・，Ｗ−１）と、信号ｙ（ｉ）（ｉ＝０，１，２，・・・，Ｗ−１）とを入力し、補正信号Ｓを生成する。補正信号Ｓを、ｓ（ｉ）（ｉ＝０，１，２，・・・，Ｗ−１）とすると、補正信号Ｓは、（１４）式のように定められる。
【００５９】
【数１０】
2007292957.tif 000012
【００６０】
ここで、△は、後述するような窓関数である。この（１４）式では、クロスフェード前の２つの区間の波形の差分を求め、２で割ってから、時間軸を反転し、窓関数を掛けている。クロスフェード前の２つの区間の波形が同相であれば、クロスフェード前の信号の差信号の振幅は小さく、逆相であればその差信号の振幅は大きく、無相であればその差信号の振幅は中間程度になり、図４で示したように、クロスフェード区間の波形の振幅の減衰を適当に補うことができる。
【００６１】
図５は、補正信号Ｓを生成する際に用いる窓関数の一例である。この窓関数を用いた信号処理方法について、図６に示すフローチャートを参照して説明する。なお、Ｗ、ｘ（ｉ）、ｙ（ｉ）、ｚ（ｉ）等の記号の意味は、これまでの図と同様である。
【００６２】
ステップＳ１０１では、インデックスｉを０にリセットする。ステップＳ１０２において、接続波形生成部１３は、インデックスｉがＷより小さいか否か調べ、小さい場合はステップＳ１０３に進み、小さくない場合は処理を終了する。
【００６３】
ステップＳ１０３では、重みｈを求め、ステップＳ１０４では、図５に示した窓関数ｋを求める。
【００６４】
【数１１】
2007292957.tif 000013
【００６５】
ステップＳ１０５において、クロスフェード信号生成部１３１は、各サンプル値ｘ（ｉ）とｙ（ｉ）からクロスフェード信号ｔ（ｉ）を生成し、同時に、時間軸反転差信号生成部１３２は、補正信号ｓ（ｉ）を上記（１４）式より生成する。そして、加算部１３３は、これらｔ（ｉ）とｓ（ｉ）から、接続波形であるクロスフェード信号ｚ（ｉ）を生成する。ステップＳ１０６では、インデックスｉを１増加させた後、ステップＳ１０２に戻り、以上の処理を繰り返す。
【００６６】
このようにクロスフェード信号ｔ（ｉ）を補正信号ｓ（ｉ）を用いて補正し、接続波形を生成することにより、音声信号のみならず音響信号であっても、原音に近い良好な話速変換を実現することができる。
【００６７】
また、図７は、補正信号Ｓを生成する際に用いる窓関数の他の例である。図５に示す窓関数では、補正信号Ｓの強度を自由に決められないため、音声信号なら強度を弱く音響信号なら強度を強くするなど、ユーザの好みや音源の種類に応じたカスタマイズなどの自由度がない。そこで、図７に示す窓関数を用いて補正信号Ｓの強度を自由に設定できるようにした。図８は、図７に示す窓関数を用いた信号処理を説明するためのフローチャートである。
【００６８】
ステップＳ２０１では、インデックスｉを０にリセットする。ステップＳ２０２において、接続波形生成部１３は、インデックスｉがＷより小さいか否か調べ、小さい場合はステップＳ２０３に進み、小さくない場合は処理を終了する。
【００６９】
ステップＳ２０３では、重みｈを求め、ステップＳ２０４では、図７に示した窓関数ｋを求める。
【００７０】
【数１２】
2007292957.tif 000014
【００７１】
ここで、係数ａは、ユーザが定める補正信号の強度を表す。例えば、ａが０に近い値の場合、補正信号の強度は弱くなる。
【００７２】
ステップＳ２０５において、クロスフェード信号生成部１３１は、各サンプル値ｘ（ｉ）とｙ（ｉ）からクロスフェード信号ｔ（ｉ）を生成し、同時に、時間軸反転差信号生成部１３２は、補正信号ｓ（ｉ）を上記（１４）式より生成する。そして、加算部１３３は、これらｔ（ｉ）とｓ（ｉ）から、接続波形であるクロスフェード信号ｚ（ｉ）を生成する。ステップＳ２０６では、インデックスｉを１増加させた後、ステップＳ２０２に戻り、以上の処理を繰り返す。このような処理により、ユーザの好みや音源の種類に応じたカスタマイズなどの自由度が得られる。
【００７３】
また、図９は、補正信号Ｓを生成する際に用いる窓関数の他の一例である。図１０は、図９に示す窓関数を用いた信号処理を説明するためのフローチャートである。
【００７４】
ステップＳ３０１では、インデックスｉを０にリセットする。ステップＳ３０２では、インデックスｉがＷより小さいか否か調べ、小さい場合はステップＳ３０３に進み、小さくない場合は処理を終了する。
【００７５】
ステップＳ３０３では、重みｈを求め、ステップＳ３０４では、図９に示した窓関数ｋを求める。
【００７６】
【数１３】
2007292957.tif 000015
【００７７】
ここで、係数ａは、ユーザが定める補正信号の強度を表す。例えば、ａが０に近い値の場合、補正信号の強度は弱くなる。
【００７８】
ステップＳ３０５において、クロスフェード信号生成部１３１は、各サンプル値ｘ（ｉ）とｙ（ｉ）からクロスフェード信号ｔ（ｉ）を生成し、同時に、時間軸反転差信号生成部１３２は、補正信号ｓ（ｉ）を上記（１４）式より生成する。そして、加算部１３３は、これらｔ（ｉ）とｓ（ｉ）から、接続波形であるクロスフェード信号ｚ（ｉ）を生成する。ステップＳ３０６では、インデックスｉを１増加させた後、ステップＳ３０２に戻り、以上の処理を繰り返す。以上の処理により、処理する信号が音声信号のみならず音響信号であっても、原音に近い良好な話速変換の実現が可能となる。
【００７９】
このように窓関数を掛けることにより、クロスフェード区間の包絡に差信号を合わせることできる。また、差信号の時間軸を反転することにより、クロスフェード区間ＡｘＢと補正信号Ｓとの位相がずれ、補正信号として確実に働くようになる。
【００８０】
例えば、白色ノイズである図１１（ａ）に示す原波形を５つの区間Ａ１，Ａ２，Ａ３，Ａ４，Ａ５に分け、従来の方法で伸張させた場合、図１１（ｂ）に示すような原波形に存在しない、うねり状の異音が波形に発生してしまっていたが、上述した窓関数を用いて伸張させた場合、図１１（ｃ）のように、視覚的にも原波形（ａ）に近いものにすることができる。また、聴覚的にも、原波形（ａ）に近い音が出力されていることを確認することできる。
【００８１】
また、時間軸を反転しない場合、図１２に示すように、実質的に短い区間でのクロスフェードと等価になり、振幅が小さくなる区間の長さが短くなるだけで、うねり状の異音を減衰させる効果を発揮しない。また、クロスフェード区間長を短くすることは別の異音を発生させる要因となる。
【００８２】
図１２（ａ）は、区間Ａと区間Ｂから成る原音を、クロスフェードを使って伸張した波形の模式図であり、クロスフェード区間１２０１は、区間Ａと区間Ｂのそれぞれの成分の比率を示している。また、図１２（ｂ）は、区間Ａの信号から区間Ｂの信号を引き、図５の三角窓を掛けたものであり、時間軸反転はしていない。この例は、区間Ａと区間Ｂの波形が逆相の場合を示しており、図１２（ａ）の信号に図１２（ｂ）の信号を加えると、図１２（ｃ）のように、結果的に、図１２（ａ）におけるクロスフェード区間長の半分程度の長さのクロスフェードをしていることになってしまう。ここで、図１２（ｃ）のクロスフェード区間１２０３の位置が区間１２０２の区間Ａ側になっているのは、区間Ａから区間Ｂを引いて図１２（ｂ）の差信号を生成しているためである。逆に、区間Ｂから区間Ａを引いて差信号を生成すれば、図１２（ｃ）のクロスフェード区間１２０３の位置は区間１２０２の区間Ｂ側になる。
【００８３】
なお、区間Ａと区間Ｂの波形が同相の場合は、差信号はゼロに近くなるので、図１２（ｃ）の区間１２０２は、図１２（ａ）の区間１２０１と同じ、単なるクロスフェードとなる。また、無相の場合は、図１２（ｃ）の区間１２０２と図１２（ａ）の区間１２０１の中間となってしまう。
【００８４】
このように、差信号の時間軸反転を行なわない場合、結果的に、クロスフェード区間長を従来のクロスフェード区間長以下にしたものと等価になってしまい、良好な音質を得ることができない。
【００８５】
ところで、図５〜図１０で示したような方法で補正信号Ｓを生成した場合、補正信号Ｓとクロスフェード信号とが正の相関を持つとは限らない。負の相関を持つよりも、正の相関を持った方が、補正信号とクロスフェード信号との加算において打ち消しあう成分が少なくなる。そこで、接続波形生成部１３は、補正成分Ｓをクロスフェード信号に加算する前に、両者の相関を求め、相関が負の場合は、補正成分の符号を反転することによって、必ず両者の相関を非負とする。
【００８６】
図１３及び図１４は、補正信号とクロスフェード信号が非負の相関を有するように処理を施すフローチャートである。
【００８７】
ステップＳ４０１では、インデックスｉと係数ｕを０にリセットする。ステップＳ４０２では、インデックスｉがＷより小さいか否か調べ、小さい場合はステップＳ４０３に進み、小さくない場合はステップＳ４０８に進む。ステップＳ４０３では、重みｈを求め、ステップＳ４０４では、窓関数ｋを求める。なお、ここでは、図５に示した窓関数を用いているが、これに限るものではない。
【００８８】
ステップＳ４０５において、クロスフェード信号生成部１３１は、各サンプル値ｘ（ｉ）とｙ（ｉ）からクロスフェード信号ｔ（ｉ）を生成し、同時に、時間軸反転差信号生成部１３２は、補正信号ｓ（ｉ）を上記（１４）式より生成する。ステップＳ４０６では、クロスフェード信号ｔ（ｉ）と補正信号ｓ（ｉ）の相関を求めるため、これらの積の和を求める。ステップＳ４０７では、インデックスｉを１増加させた後、ステップＳ４０２に戻り、以上の処理を繰り返す。
【００８９】
ステップＳ４０８では、クロスフェード信号ｔ（ｉ）と補正信号ｓ（ｉ）の相関が負か否か調べ、負の場合は係数ｕを−１、非負の場合は係数ｕを１にセットし、図１４に示す後続処理１へ進む。
【００９０】
図１４に示す後続処理１では、ステップＳ４０５において求めた補正信号ｓ（ｉ）に係数ｕを掛けてから、クロスフェード信号ｔ（ｉ）に加算することで、うねり状の異音が発生し難いクロスフェード信号ｚ（ｉ）を求める。つまり。ステップＳ５０１でインデックスｉを０にリセットし、ステップＳ５０２でインデックスｉがＷより小さいか否か調べる。小さい場合はステップＳ５０３に進み、小さくない場合は処理を終了する。
【００９１】
ステップＳ５０３では、補正信号ｓ（ｉ）に係数ｕを掛けてから、クロスフェード信号ｔ（ｉ）を加算し、接続波形であるクロスフェード信号ｚ（ｉ）を求める。
【００９２】
【数１４】
2007292957.tif 000016
【００９３】
ステップＳ５０４では、インデックスｉを１増加させた後、ステップＳ５０２に戻り、処理を繰り返す。以上の処理により更に音質の改善を図ることができる。
【００９４】
また、クロスフェード信号と補正信号の相関が無相に近い場合、補正の程度が弱い場合がある。これは、補正信号の中に含まれる逆相成分がクロスフェード信号を減衰させる作用を持つためである。そこで、以下では、クロスフェード前の２つの区間のエネルギーを求め、それをもとに補正信号Ｓの強度を調節する方法を図１５及び図１６に示すフローチャートを用いて説明する。
【００９５】
ステップＳ６０１では、インデックスｉ、係数ｕ、信号ｘ（ｉ）のエネルギーｅＸ、信号ｙ（ｉ）のエネルギーｅＹを０にリセットする。ステップＳ６０２では、インデックスｉがＷより小さいか否か調べ、小さい場合は、ステップＳ６０３に進み、小さくない場合は、ステップＳ６０８に進む。ステップＳ６０３では、重みｈと窓関数ｋを求める。なお、ここでは、図５に示した窓関数を用いているが、これに限るものではない。
【００９６】
ステップＳ６０４において、クロスフェード信号生成部１３１は、クロスフェード信号ｔ（ｉ）生成し、時間軸反転差信号生成部１３２は、補正信号ｓ（ｉ）を生成する。ステップＳ６０５では、クロスフェード信号ｔ（ｉ）と補正信号ｓ（ｉ）の相関を求めるために、これらの積の和を求める。
【００９７】
【数１５】
2007292957.tif 000017
【００９８】
ステップＳ６０６では、信号ｘ（ｉ）と信号ｙ（ｉ）のエネルギーを求めるため、各サンプル値の自乗の和を求める。
【００９９】
【数１６】
2007292957.tif 000018
【０１００】
ステップＳ６０７では、インデックスｉを１増加させた後、ステップＳ６０２に戻って処理を繰り返す。
【０１０１】
ステップＳ６０８では、クロスフェード信号ｔ（ｉ）と補正信号ｓ（ｉ）の相関が負か否か調べ、負の場合は係数ｕを−１、非負の場合は係数ｕを１にセットし、図１６に示す後続処理２へ進む。
【０１０２】
図１６に示す後続処理２では、ステップＳ６０４において求めた補正信号ｓ（ｉ）に係数ｕを掛けた信号の強度を調節し、クロスフェード信号ｔ（ｉ）に加算することで、うねり状の異音が発生し難いクロスフェード信号ｚ（ｉ）を求める。
【０１０３】
ステップＳ７０１では、係数ｖをステップ量ｄ（０＜ｄ≦１）にセットする。ステップ量ｄは、例えば０．１などと任意に定めることができる。ステップＳ７０２では、インデックスｉとクロスフェード区間のエネルギーｅＺを０にリセットする。ステップＳ７０３では、インデックスｉがＷより小さいか否か調べ、小さい場合はステップＳ７０４に進み、小さくない場合はステップＳ７０７に進む。
【０１０４】
ステップＳ７０４では、補正信号ｓ（ｉ）に係数ｕと係数ｖを掛けてから、クロスフェード信号ｔ（ｉ）と加算し、うねり状の異音が発生し難いクロスフェード信号ｚ（ｉ）を求める。
【０１０５】
【数１７】
2007292957.tif 000019
【０１０６】
ステップＳ７０５では、信号ｚ（ｉ）のエネルギーを求めるため、各サンプル値の自乗の和を求める。
【０１０７】
【数１８】
2007292957.tif 000020
【０１０８】
ステップＳ７０６では、インデックスｉを１増加させた後、ステップＳ７０３に戻り、処理を繰り返す。ステップＳ７０７では、クロスフェード前の２つの区間の信号のエネルギーとクロスフェード後の信号のエネルギーの比較を行なっている。クロスフェード前の２つの区間の信号のエネルギーよりもクロスフェード後の信号のエネルギーの方が小さい場合は、ステップＳ７０８に進み、係数ｖにステップ量ｄを加算してからステップＳ７０２に戻り、処理を繰り返す。小さくない場合は、処理を終了する。
【０１０９】
以上の処理を行うことにより、クロスフェード信号ｚ（ｉ）の平均振幅は、クロスフェード前の２つの区間の信号の平均振幅の平均程度になり、より音質の改善を図ることができる。
【０１１０】
次に、本発明を適用した第２の実施形態について説明する。第１の実施形態では、オーディオ信号内の連続して類似する第１の区間と第２の区間を用いてクロスフェード信号を生成し、第１の区間の信号と第２の区間の信号との差信号を時間軸反転し、窓関数を乗じて補正信号である時間軸反転差信号を生成し、クロスフェード信号と補正信号とを加算して接続波形を生成したが、第２の実施形態では、第１の区間と第２の区間の和信号に第１の区間と第２の区間の差信号を時間軸反転させたものを加算し、クロスフェード信号を生成する。
【０１１１】
第２の実施形態におけるオーディオ信号伸張圧縮装置２０は、図１に示すオーディオ信号伸張圧縮装置１０と同様であり、入力オーディオ信号をバッファリングする入力バッファ１１と、入力バッファ１１のオーディオ信号に対し、連続して類似する波形長（２Ｗサンプル分）を抽出する類似波形長抽出部１２と、２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルの接続波形を生成する接続波形生成部２１と、話速変換率Ｒに応じて入力された入力オーディオ信号と接続波形とからなる出力オーディオ信号を出力する出力バッファ１４とを備えて構成されている。すなわち、第１の実施形態におけるオーディオ信号伸張圧縮装置１０とは、接続波形生成処理が異なる。なお、第１の実施形態と同様な構成には、同一の符号を付し、説明を省略する。
【０１１２】
図１７は、接続波形生成部２１の構成を示すブロック図である。接続波形生成部２１は、入力オーディオ信号から和信号を生成する和信号生成部２１１と、入力オーディオ信号から差信号を生成し、その差信号の時間軸を反転し、時間軸反転差信号を生成する時間軸反転差信号生成部２１２と、時間軸反転差信号を和信号に加算する加算部２１３と、加算部２１３で加算された信号からクロスフェード信号を生成するクロスフェード信号生成部２１４とを備えている。
【０１１３】
接続波形を生成するためのオーディオ信号が入力されると、和信号生成部２１１は、入力オーディオ信号から和信号を生成する。同時に、時間軸反転差信号生成部２１２は、入力オーディオ信号から差信号を生成し、その差信号の時間軸を反転し、時間軸反転差信号を生成する。加算部２１３は、時間軸反転差信号生成部２１２で生成された時間軸反転差信号を和信号生成部２１１で生成された和信号に加算する。クロスフェード信号生成部２１４は、加算部２１３で加算された信号が前後の波形と滑らかに繋がるように、入力オーディオ信号とクロスフェードを行ない、その結果であるオーディオ信号を接続波形生成部２１の出力とする。
【０１１４】
図１８は、接続波形生成部２１によって原波形を伸張する処理を示す模式図である。この伸張例では、区間Ａと区間Ｂの間に挿入する新たな区間Ｃは、（２４）式により求められる。
【０１１５】
【数１９】
2007292957.tif 000021
【０１１６】
ここで、区間Ａの各サンプル値は、ｘ（ｉ）（ｉ＝０，１，・・・，Ｗ−１）、区間Ｂの各サンプル値は、ｙ（ｉ）（ｉ＝０，１，・・・，Ｗ−１）であり、新たな区間Ｃの各サンプル値は、ｚ（ｉ）（ｉ＝０，１，・・・，Ｗ−１）である。また、ｚ（ｉ）は、区間Ａと区間Ｂの和信号に、差信号の時間軸反転を加えたものである。すなわち、ｚ（ｉ）は、和信号生成部２１１で生成された区間Ａと区間Ｂの和信号に、時間軸反転差信号生成部２１２で生成された区間Ａと区間Ｂの時間軸反転差信号を加算したものである。
【０１１７】
さらに、クロスフェード信号生成部２１４において波形接続時に波形の不連続を防ぐ目的で次のようなクロスフェードを行なう。つまり、波形連続性を保つために、連続する区間の波形をフェードイン、フェードアウトさせる。
【０１１８】
【数２０】
2007292957.tif 000022
【０１１９】
ここで、ｍは、接続波形を接続する前後の波形と接続波形を繋ぐ際に行なうクロスフェードのサンプル数を表すものであり、クロスフェードを行なわない場合がｍ＝０となり、クロスフェードの最大サンプル数はｍ＝Ｗ／２となる。
【０１２０】
また、図１９は、接続波形生成部２１によって原波形を圧縮する処理を示す模式図である。この圧縮例では、区間Ａの各サンプル値をｙ（ｉ）（ｉ＝０，１，・・・，Ｗ−１）、区間Ｂの各サンプル値をｘ（ｉ）（ｉ＝０，１，・・・，Ｗ−１）とすると、上述した伸張と同じ計算にて新たな区間Ｃの各サンプル値ｚ（ｉ）を求めることができる。
【０１２１】
以上のように、２つの区間の和信号に差信号を時間軸反転させた信号を加算し、これをクロスフェードで挿入することにより、うねり状の異音を抑えた良好な音質を、音声信号のみならず音響信号においても得ることができる。
【０１２２】
図２０及び図２１は、第２の実施形態の接続波形生成部２１によって、話速変換を行なう場合の、フローチャートの一例である。
【０１２３】
ステップＳ８０１では、インデックスｉを０にリセットする。ステップＳ８０２では、インデックスｉがＷより小さいか否か調べ、小さい場合はステップＳ８０３に進み、小さくない場合は後続処理３へ進む。
【０１２４】
ステップＳ８０３において、上記（２４）式に示すように、和信号生成部２１１で生成された２つの区間の和信号ｔ（ｉ）と、時間軸反転差信号生成部２１２で生成された差信号を時間軸反転させた時間軸反転差信号ｓ（ｉ）を求め、これらを加算部２１３で加算することで、ｚ（ｉ）を求める。ステップＳ８０４では、インデックスｉを１増加させた後、ステップＳ８０２に戻り、処理を繰り返す。
【０１２５】
図２１に示す後続処理３では、ステップＳ９０１でインデックスｉを０にリセットし、ステップＳ９０２でインデックスｉがｍより小さいか否か調べ、小さい場合は、ステップＳ９０３に進み、小さくない場合は、ステップＳ９０６に進む。
【０１２６】
ステップＳ９０３及びステップＳ９０４において、クロスフェード信号生成部２１４は、重みｈを求め、接続波形とその手前の波形がスムーズに繋がるようにクロスフェードを行なう。
【０１２７】
ステップＳ９０５では、インデックスｉを１増加させた後、ステップＳ９０２に戻り、処理を繰り返す。ステップＳ９０６では、インデックスｉを０にリセットし、ステップＳ９０７では、インデックスｉがｍより小さければステップＳ９０８に進み、小さくなければ処理を終了する。
【０１２８】
ステップＳ９０８及びステップＳ９０９において、クロスフェード信号生成部２１４は、重みｈを求め、接続波形とその後の波形がスムーズに繋がるようにクロスフェードを行なう。
【０１２９】
ステップＳ９１０では、インデックスｉを１増加させた後、ステップＳ９０７に戻り、処理を繰り返す。
【０１３０】
以上のように、接続波形を生成する際に、もとの２つの波形の差信号の時間軸反転を加算することにより、話速変換時に発生する傾向があるうねり状の異音を抑える効果を得られる。また、これまでの説明で明らかなように話速変換時に発生する傾向がある平均振幅の減衰を抑える効果を得ることができる。
【０１３１】
なお、上述の説明では、従来のＰＩＣＯＬＡのクロスフェード処理の置き換えを示してきたが、本発明の方法は、これに限るものではなく、他のＯＬＡ(OverLap and Add）系のアルゴリズム等、クロスフェード処理を伴う時間軸上の話速変換アルゴリズムに適用可能である。またＰＩＣＯＬＡが、サンプリング周波数を一定とする場合は話速変換となり、サンプル数の増減に合わせてサンプリング周波数を変える場合はピッチシフトとなることから、本発明も、話速変換に限らず、ピッチシフトにも適用可能である。
【図面の簡単な説明】
【０１３２】
【図１】本発明の第１の実施形態におけるオーディオ信号伸張圧縮装置の構成を示すブロック図である。
【図２】類似波形長抽出処理を模式的に示す図である。
【図３】第１の実施形態における接続波形生成部１３の構成を示すブロック図である。
【図４】接続波形生成部における信号処理を模式的に示す図である。
【図５】補正信号Ｓを生成する際に用いる窓関数の一例を示す図である。
【図６】図５に示す窓関数を用いた際の接続波形生成処理を示すフローチャートである。
【図７】補正信号Ｓを生成する際に用いる窓関数の一例を示す図である。
【図８】図７に示す窓関数を用いた際の接続波形生成処理を示すフローチャートである。
【図９】補正信号Ｓを生成する際に用いる窓関数の一例を示す図である。
【図１０】図９に示す窓関数を用いた際の接続波形生成処理を示すフローチャートである。
【図１１】本発明を適用させた白色ノイズの伸張波形の具体例を示す図である。
【図１２】時間軸を反転しない場合の信号処理示す模式図である。
【図１３】補正信号とクロスフェード信号が非負の相関を有するように処理を施すフローチャート（その１）である。
【図１４】補正信号とクロスフェード信号が非負の相関を有するように処理を施すフローチャート（その２）である。
【図１５】補正信号Ｓの強度を調節する処理を示すフローチャート（その１）である。
【図１６】補正信号Ｓの強度を調節する処理を示すフローチャート（その２）である。
【図１７】第２の実施形態における接続波形生成部の構成を示すブロック図である。
【図１８】原波形を伸張する処理を示す模式図である。
【図１９】原波形を圧縮する処理を示す模式図である。
【図２０】接続波形生成処理を示すフローチャート（その１）である。
【図２１】接続波形生成処理を示すフローチャート（その２）である。
【図２２】ＰＩＣＯＬＡを用いて原波形を伸張する例を示す模式図である。
【図２３】類似波形である区間Ａと区間Ｂの区間長Ｗを検出する方法を示す模式図である。
【図２４】任意の長さに波形を伸張する方法を示す模式図である。
【図２５】ＰＩＣＯＬＡを用いて原波形を圧縮する例を示す模式図である。
【図２６】任意の長さに波形を圧縮する方法を示す模式図である。
【図２７】ＰＩＣＯＬＡの波形伸張の処理の流れを示すフローチャートである。
【図２８】ＰＩＣＯＬＡの波形圧縮の処理の流れを示すフローチャートである。
【図２９】ＰＩＣＯＬＡによる話速変換装置の構成の一例を示すブロック図である。
【図３０】接続波形生成部における処理の流れを示すフローチャートである。
【図３１】区間Ａと区間Ｂの波形（ａ）を伸張して伸張波形（ｂ）を得る場合の波形の様子を示した模式図である。
【図３２】区間Ａと区間Ｂの波形（ａ）を伸張して伸張波形（ｂ）を得る場合の波形の様子を示した模式図である。
【図３３】原波形の５つの区間Ａ１，Ａ２，Ａ３，Ａ４，Ａ５を伸張して伸張波形を得る場合の波形の様子を示した模式図である。
【図３４】白色ノイズの伸張波形の具体例を示す図である。
【符号の説明】
【０１３３】
１０  オーディオ信号伸張圧縮装置、１１  入力バッファ、１２  類似波形長抽出部、１３  接続波形生成部、１４  出力バッファ、２１  接続波形生成部、１３１  クロスフェード信号生成部、１３２  時間軸反転差信号生成部、１３３  加算部、２１１  和信号生成部、２１２  時間軸反転差信号生成部、２１３  加算部、２１４  クロスフェード信号生成部
【図１】
2007292957.tif 000023
【図２】
2007292957.tif 000024
【図３】
2007292957.tif 000025
【図４】
2007292957.tif 000026
【図５】
2007292957.tif 000027
【図６】
2007292957.tif 000028
【図７】
2007292957.tif 000029
【図８】
2007292957.tif 000030
【図９】
2007292957.tif 000031
【図１０】
2007292957.tif 000032
【図１１】
2007292957.tif 000033
【図１２】
2007292957.tif 000034
【図１３】
2007292957.tif 000035
【図１４】
2007292957.tif 000036
【図１５】
2007292957.tif 000037
【図１６】
2007292957.tif 000038
【図１７】
2007292957.tif 000039
【図１８】
2007292957.tif 000040
【図１９】
2007292957.tif 000041
【図２０】
2007292957.tif 000042
【図２１】
2007292957.tif 000043
【図２２】
2007292957.tif 000044
【図２３】
2007292957.tif 000045
【図２４】
2007292957.tif 000046
【図２５】
2007292957.tif 000047
【図２６】
2007292957.tif 000048
【図２７】
2007292957.tif 000049
【図２８】
2007292957.tif 000050
【図２９】
2007292957.tif 000051
【図３０】
2007292957.tif 000052
【図３１】
2007292957.tif 000053
【図３２】
2007292957.tif 000054
【図３３】
2007292957.tif 000055
【図３４】
2007292957.tif 000056