(57)【要約】【課題】ステレオ信号やマルチチャンネル信号においても音の定位を崩さず、かつ、高音質に再生速度を変化させることができるオーディオ信号伸張圧縮装置及びオーディオ信号伸張圧縮方法を提供する。【解決手段】複数チャンネルからなるオーディオ信号内の連続する２つの区間の信号の類似度をチャンネル毎に算出し、各チャンネルの類似度に基づいて２つの区間の類似波形長Wを検出する類似波形長検出手段１２を備える。【選択図】図１
2008107413.tif 000002
【特許請求の範囲】
【請求項１】
複数チャンネルからなるオーディオ信号を類似波形を用いて時間領域で伸張圧縮するオーディオ信号伸張圧縮装置において、
上記オーディオ信号内の連続する２つの区間の信号の類似度をチャンネル毎に算出し、各チャンネルの類似度に基づいて上記２つの区間の類似波形長を検出する類似波形長検出手段を備えるオーディオ信号伸張圧縮装置。
【請求項２】
上記オーディオ信号の各チャンネルの振幅を調整する振幅調整手段をさらに備え、
上記類似波形長検出手段は、上記振幅調整手段で調整されたオーディオ信号内の連続する２つの区間の信号の類似度をチャンネル毎に算出することを特徴とする請求項１記載のオーディオ信号伸張圧縮装置。
【請求項３】
上記類似波形長検出手段は、各チャンネルの類似度を調整し、調整された各チャンネルの類似度に基づいて上記２つの区間の類似波形長を検出することを特徴とする請求項１記載のオーディオ信号伸張圧縮装置。
【請求項４】
上記類似波形長検出手段は、上記オーディオ信号内の連続する２つの区間の信号の類似度を、当該２つの区間の信号の自乗誤差により算出し、各チャンネルの自乗誤差の総和が最小となるように類似波形長を検出することを特徴とする請求項１記載のオーディオ信号伸張圧縮装置。
【請求項５】
上記類似波形長検出手段は、上記オーディオ信号内の連続する２つの区間の信号の類似度を、当該２つの区間の信号の差の絶対値の総和により算出し、各チャンネルの差の絶対値の総和の総和が最小となるように類似波形長を検出することを特徴とする請求項１記載のオーディオ信号伸張圧縮装置。
【請求項６】
上記類似波形長検出手段は、上記オーディオ信号内の連続する２つの区間の信号の類似度を、当該２つの区間の信号の相関係数により算出し、各チャンネルの相関係数の総和が最大となるように類似波形長を検出することを特徴とする請求項１記載のオーディオ信号伸張圧縮装置。
【請求項７】
上記類似波形長検出手段は、上記オーディオ信号内の連続する２つの区間の信号を、全チャンネルのうち少なくとも１チャンネルの相関係数が閾値以上であるものの中から選択することを特徴とする請求項１記載のオーディオ信号伸張圧縮装置。
【請求項８】
上記類似波形長検出手段は、エネルギーが最も大きいチャンネルの信号の相関係数が閾値より小さい場合、上記オーディオ信号内の連続する２つの区間の信号から除外することを特徴とする請求項１記載のオーディオ信号伸張圧縮装置。
【請求項９】
複数チャンネルからなるオーディオ信号を類似波形を用いて時間領域で伸張圧縮するオーディオ信号伸張圧縮方法において、
上記オーディオ信号内の連続する２つの区間の信号の類似度をチャンネル毎に算出し、各チャンネルの類似度に基づいて上記２つの区間の類似波形長を検出する類似波形長検出工程を有するオーディオ信号伸張圧縮方法。
【請求項１０】
上記オーディオ信号の各チャンネルの振幅を調整する振幅調整工程をさらに有し、
上記類似波形長検出工程では、上記振幅調整工程で調整されたオーディオ信号内の連続する２つの区間の信号の類似度をチャンネル毎に算出することを特徴とする請求項９記載のオーディオ信号伸張圧縮方法。
【請求項１１】
上記類似波形長検出工程では、各チャンネルの類似度を調整し、調整された各チャンネルの類似度に基づいて上記２つの区間の類似波形長を検出することを特徴とする請求項９記載のオーディオ信号伸張圧縮方法。
【請求項１２】
上記類似波形長検出工程では、上記オーディオ信号内の連続する２つの区間の信号の類似度を、当該２つの区間の信号の自乗誤差により算出し、各チャンネルの自乗誤差の総和が最小となるように類似波形長を検出することを特徴とする請求項９記載のオーディオ信号伸張圧縮方法。
【請求項１３】
上記類似波形長検出工程では、上記オーディオ信号内の連続する２つの区間の信号の類似度を、当該２つの区間の信号の差の絶対値の総和により算出し、各チャンネルの差の絶対値の総和の総和が最小となるように類似波形長を検出することを特徴とする請求項９記載のオーディオ信号伸張圧縮方法。
【請求項１４】
上記類似波形長検出工程では、上記オーディオ信号内の連続する２つの区間の信号の類似度を、当該２つの区間の信号の相関係数により算出し、各チャンネルの相関係数の総和が最大となるように類似波形長を検出することを特徴とする請求項９記載のオーディオ信号伸張圧縮方法。
【請求項１５】
上記類似波形長検出工程では、上記オーディオ信号内の連続する２つの区間の信号を、全チャンネルのうち少なくとも１チャンネルの相関係数が閾値以上であるものの中から選択することを特徴とする請求項９記載のオーディオ信号伸張圧縮方法。
【請求項１６】
上記類似波形長検出工程では、エネルギーが最も大きいチャンネルの信号の相関係数が閾値より小さい場合、上記オーディオ信号内の連続する２つの区間の信号から除外することを特徴とする請求項９記載のオーディオ信号伸張圧縮方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音楽等の再生速度を変化させるためのオーディオ信号伸張圧縮装置及び方法に関するものである。
【背景技術】
【０００２】
デジタル音声信号に対する時間領域での伸張圧縮アルゴリズムとしてＰＩＣＯＬＡ（Pointer Interval Control OverLap and Add）が知られている（非特許文献１参照。）。このアルゴリズムは、処理が単純かつ軽量でありながら、音声信号に対して良好な音質が得られるという利点がある。以下、図を用いて、このＰＩＣＯＬＡについて簡単に説明する。以下では、音楽等音声以外の信号を音響信号、音声信号と音響信号を合わせてオーディオ信号と呼ぶことにする。
【０００３】
図２２は、ＰＩＣＯＬＡを用いて原波形を伸張する例を示す模式図である。まず、原波形（ａ）から、波形がよく似ている区間Ａと区間Ｂを見つける。区間Ａと区間Ｂのサンプル数は同じである。続いて、区間Ｂでフェードアウトする波形（ｂ）を作る。同様に、区間Ａからフェードインする波形（ｃ）を作り、波形（ｂ）と波形（ｃ）を足し合わせると、伸張波形（ｄ）が得られる。このように、フェードアウトする波形とフェードインする波形を足し合わせることをクロスフェードと呼ぶ。区間Ａと区間Ｂのクロスフェード区間を区間ＡｘＢと表すこととすると、以上の操作を行なうことにより、原波形（ａ）の区間Ａと区間Ｂは、伸張波形（ｄ）の区間Ａと区間ＡｘＢと区間Ｂに変更される。
【０００４】
図２３は、類似波形である区間Ａと区間Ｂの区間長Ｗを検出する方法を示す模式図である。まず処理開始位置Ｐ０を起点として、ｊサンプルの区間Ａと区間Ｂを図２３（ａ）のように定める。図２３（ａ）→（ｂ）→（ｃ）のように少しずつｊを伸ばしながら区間Ａと区間Ｂが最も類似するｊを求める。類似度を測る尺度として、例えば、次の関数Ｄ（ｊ）を使うことができる。
【０００５】
【数１】
2008107413.tif 000003
ＷＭＩＮ≦ｊ≦ＷＭＡＸの範囲で計算し、Ｄ（ｊ）が最も小さな値となるｊを求める。このときのｊが、区間Ａと区間Ｂの区間長Ｗである。ここで、ｘ（ｉ）は区間Ａの各サンプル値を示し、ｙ（ｉ）は区間Ｂの各サンプル値を示す。又、ＷＭＡＸ及びＷＭＩＮは、例えば５０Ｈｚ〜２５０Ｈｚ程度の値であり、サンプリング周波数が８ｋＨｚであれば、ＷＭＡＸ＝１６０、ＷＭＩＮ＝３２程度である。図２３の例では、（ｂ）におけるｊが関数Ｄ（ｊ）を最も小さくするｊとして選ばれる。
【０００６】
類似波形の区間長Ｗを求める際に、上記関数Ｄ（ｊ）を利用することは重要である。この関数は最も似ている区間を探すだけであり、クロスフェード区間を決定するための前処理に特化したものと言える。つまり、ホワイトノイズのようにピッチを持たない波形であっても適用可能である。
【０００７】
図２４は、任意の長さに波形を伸張する方法を示す模式図である。まず、図２３で示したように処理開始位置Ｐ０を起点として関数Ｄ（ｊ）が最小となるｊを求め、Ｗ＝ｊとおく。続いて、区間２４０１を区間２４０３にコピーし、区間２４０１と区間２４０２のクロスフェード波形を区間２４０４に作成する。そして、原波形（ａ）の位置Ｐ０から位置Ｐ０’までの区間から区間２４０１を除いた残りの区間を伸張波形（ｂ）にコピーする。以上の操作により、原波形（ａ）の位置Ｐ０から位置Ｐ０’までのＬサンプルが伸張波形（ｂ）ではＷ＋Ｌサンプルとなり、サンプル数はｒ倍となる。
【０００８】
【数２】
2008107413.tif 000004
この（２）式をＬについて書き換えると、（３）式となる。原波形（ａ）のサンプル数をｒ倍したい場合は、（４）式のように位置Ｐ０’を定めれば良い。
【０００９】
【数３】
2008107413.tif 000005
更に、１／ｒを（５）式のように置くと、（６）式となる。
【００１０】
【数４】
2008107413.tif 000006
このようにＲを使うことにより、原波形（ａ）を「Ｒ倍速再生する」といった表現をすることができる。以下ではこのＲを話速変換率と呼ぶこととする。原波形（ａ）の位置Ｐ０から位置Ｐ０’の処理が終了したら、位置Ｐ０’を位置Ｐ１とし、改めて処理の起点と見なして同様の処理を繰り返す。なお、図２４の例は、サンプル数Ｌがおおよそ２．５Ｗであるので、約０．７倍速再生の遅聴に相当する。
【００１１】
続いて、原波形の圧縮について説明する。図２５は、ＰＩＣＯＬＡを用いて原波形を圧縮する例を示す模式図である。まず、原波形（ａ）から、波形がよく似ている区間Ａと区間Ｂを見つける。区間Ａと区間Ｂのサンプル数は同じである。続いて、区間Ａでフェードアウトする波形（ｂ）を作る。同様に、区間Ｂからフェードインする波形（ｃ）を作り、波形（ｂ）と波形（ｃ）を足し合わせると、圧縮波形（ｄ）が得られる。以上の操作を行なうことにより、原波形（ａ）の区間Ａと区間Ｂは、圧縮波形（ｄ）の区間ＡｘＢに変更される。
【００１２】
図２６は、任意の長さに波形を圧縮する方法を示す模式図である。まず、図２３で示したように処理開始位置Ｐ０を起点として関数Ｄ（ｊ）が最小となるｊを求め、Ｗ＝ｊとおく。続いて、区間２６０１と区間２６０２のクロスフェード波形を区間２６０３に作成する。そして、原波形（ａ）の位置Ｐ０から位置Ｐ０’までの区間から区間２６０１と区間２６０２を除いた残りの区間を圧縮波形（ｂ）にコピーする。以上の操作により、原波形（ａ）の位置Ｐ０から位置Ｐ０’までのＷ＋Ｌサンプルが圧縮波形（ｂ）ではＬサンプルとなり、サンプル数はｒ倍となる。
【００１３】
【数５】
2008107413.tif 000007
この（７）式をＬについて書き換えると、（８）式となる。原波形（ａ）のサンプル数をｒ倍する場合は、（９）式のように位置Ｐ０’を定めれば良い。
【００１４】
【数６】
2008107413.tif 000008
更に、１／ｒを（１０）式のように置くと、（１１）式となる。
【００１５】
【数７】
2008107413.tif 000009
このようにＲを使うことにより、原波形（ａ）を「Ｒ倍速再生する」といった表現をすることができる。原波形（ａ）の位置Ｐ０から位置Ｐ０’の処理が終了したら、位置Ｐ０’を位置Ｐ１とし、改めて処理の起点と見なして同様の処理を繰り返す。なお、図２６の例は、サンプル数Ｌがおおよそ１．５Ｗであるので、約１．７倍速再生の速聴に相当する。
【００１６】
図２７は、ＰＩＣＯＬＡの波形伸張の処理の流れを示すフローチャートである。ステップＳ１００１では、入力バッファに処理すべきオーディオ信号があるか否か調べ、オーディオ信号がない場合は処理を終了する。処理すべきオーディオ信号がある場合は、ステップＳ１００２に進み、処理開始位置Ｐを起点として関数Ｄ（ｊ）が最小になるｊを求め、Ｗ＝ｊとおく。ステップＳ１００３では、ユーザが指定した話速変換率ＲからＬを求め、ステップＳ１００４では、処理開始位置ＰからＷサンプル分の区間Ａを出力バッファに出力する。ステップＳ１００５では、処理開始位置ＰからＷサンプル分の区間Ａと次のＷサンプル分の区間Ｂのクロスフェードを求め、区間Ｃとし、ステップＳ１００６において、この区間Ｃを出力バッファに出力する。ステップＳ１００７では、入力バッファの位置Ｐ＋ＷからＬ−Ｗサンプル分を出力バッファに出力（コピー）する。Ｓ１００８では、処理開始位置ＰをＰ＋Ｌに移動してから、ステップＳ１００１に戻り処理を繰り返す。
【００１７】
図２８は、ＰＩＣＯＬＡの波形圧縮の処理の流れを示すフローチャートである。ステップＳ１１０１では、入力バッファに処理すべきオーディオ信号があるか否か調べ、オーディオ信号がない場合は処理を終了する。処理すべきオーディオ信号がある場合は、ステップＳ１１０２に進み、処理開始位置Ｐを起点として関数Ｄ（ｊ）が最小になるｊを求め、Ｗ＝ｊとおく。ステップＳ１１０３では、ユーザが指定した話速変換率ＲからＬを求める。ステップＳ１１０４では、処理開始位置ＰからＷサンプル分の区間Ａと次のＷサンプル分の区間Ｂのクロスフェードを求め、区間Ｃとし、ステップＳ１１０５において、この区間Ｃを出力バッファに出力する。ステップＳ１１０６では、入力バッファの位置Ｐ＋２ＷからＬ−Ｗサンプル分を出力バッファに出力（コピー）する。ステップＳ１１０７では、処理開始位置ＰをＰ＋（Ｗ＋Ｌ）に移動してから、ステップＳ１１０１に戻り処理を繰り返す。
【００１８】
図２９は、ＰＩＣＯＬＡによる話速変換装置１００の構成の一例である。処理すべき入力オーディオ信号は、まず入力バッファ１０１にバッファリングされる。この入力バッファ１０１のオーディオ信号に対して、類似波形長検出部１０２が、関数Ｄ（ｊ）を最小にするｊを求めて、Ｗ＝ｊとおく。類似波形長検出部１０２で求まった類似波形長Ｗは、入力バッファ１０１に渡され、バッファ操作に利用される。入力バッファ１０１は、オーディオ信号の２Ｗサンプルを接続波形生成部１０３に渡す。接続波形生成部１０３は受け取った２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルにする。話速変換率Ｒに合わせて入力バッファ１０１及び接続波形生成部１０３は、出力バッファ１０４にオーディオ信号を送る。出力バッファ１０４で生成されたオーディオ信号は、出力オーディオ信号として、話速変換装置１００から出力される。
【００１９】
図３０は、図２９の構成例における類似波形長検出部１０２の処理の流れを示すフローチャートである。ステップＳ１２０１では、インデックスｊに初期値ＷＭＩＮをセットする。ステップＳ１２０２では、図３１に示すサブルーチンを実行する。サブルーチンは、例えば、次に示す関数Ｄ（ｊ）を計算する。
【００２０】
【数８】
2008107413.tif 000010
ここで、ｆは、入力オーディオ信号であり、例えば、図２３の例であれば、位置Ｐ０を起点としたサンプルを指す。（１）式及び（１２）式は同じことを表現している。以下では（１２）式の形式を用いる。ステップＳ１２０３では、サブルーチンで求まった関数Ｄ（ｊ）の値を変数ｍｉｎに代入し、インデックスｊをＷに代入する。ステップＳ１２０４では、インデックスｊを１増加させる。ステップＳ１２０５では、インデックスｊがＷＭＡＸ以下か否か調べ、ＷＭＡＸ以下の場合はステップＳ１２０６に進み、ＷＭＡＸより大きい場合は処理を終了する。処理を終了したときに変数Ｗに格納されていた値が、関数Ｄ（ｊ）を最小にするインデックスｊ、つまり、類似波形長であり、そのときの変数ｍｉｎの値は関数Ｄ（ｊ）の最小値である。ステップＳ１２０６では、図３１に示すサブルーチンにて、新たなインデックスｊに対して関数Ｄ（ｊ）を求める。ステップＳ１２０７では、ステップＳ１２０６で求まった関数Ｄ（ｊ）の値がｍｉｎ以下か否か調べ、ｍｉｎ以下の場合は、ステップＳ１２０８に進み、ｍｉｎより大きい場合は、ステップＳ１２０４に戻る。ステップＳ１２０８では、関数Ｄ（ｊ）の値を変数ｍｉｎに代入し、インデックスｊをＷに代入する。
【００２１】
図３１に示すサブルーチンの処理の流れは、次の通りである。ステップＳ１３０１では、インデックスｉと変数ｓを０にリセットする。ステップＳ１３０２では、インデックスｉがインデックスｊより小さいか否か調べ、インデックスｉがインデックスｊより小さい場合は、ステップＳ１３０３に進み、インデックスｉがインデックスｊ以上の場合は、ステップＳ１３０５に進む。ステップＳ１３０３では、入力オーディオ信号の差の自乗を求めて変数ｓに加算する。ステップＳ１３０４では、インデックスｉを１増加させ、ステップＳ１３０２に戻る。ステップＳ１３０５では、変数ｓをインデックスｊで割った値を関数Ｄ（ｊ）の値とし、サブルーチンを終了する。
【００２２】
以上がＰＩＣＯＬＡを用いてモノラル信号を話速変換する場合の説明である。続いて、ＰＩＣＯＬＡを用いてステレオ信号を話速変換する場合の説明を行なう。
【００２３】
図３２は、ステレオ信号に対してＰＩＣＯＬＡを適用する場合の構成例である。以下では、左チャンネルをＬチャンネル又は単にＬ、右チャンネルをＲチャンネル又は単にＲと示す。図３２の構成例では、図２９に示した構成例を、単に、ＬチャンネルとＲチャンネルの両方に独立に行なっている。この構成例は分かり易い構成ではあるが、一般に用いられることはあまりない。その理由は、左右のチャンネルを独立に話速変換することにより、左右のチャンネルの同期が微妙にずれ、音の定位が定まらなくなるためである。音の定位が定まらない場合、非常に強い不快感をユーザに与えてしまう。
【００２４】
例えば、ステレオ信号を再生するために２本のスピーカーが左右に置かれている場合、通常は左右のスピーカーの中央付近から音が聞こえてくるように感じる。演奏家の意図により左右のスピーカーの間を音が動いているように感じることもあるが、大抵の場合、中央付近から音が聞こえてくるように作られている。しかしながら、僅かなずれであっても、話速変換によって左右のチャンネルの信号に時間的なずれが生じた場合、左右のスピーカーの中央付近に定まっているはずの音が、左右のスピーカーの間を不規則に移動するかのように聞こえてしまう。結果として、落ち着いて聞いていられない程度の不快感をユーザに与えてしまう。このため、ステレオ信号を話速変換する場合、左右のチャンネルの同期にずれを生じさせないことは極めて重要である。
【００２５】
図３３は、ステレオ信号を話速変換しても、左右のチャンネルの同期がずれないように工夫された構成例である（例えば、特許文献１参照。）。処理すべき入力オーディオ信号は、まず、Ｌチャンネルが入力バッファ３０１に、Ｒチャンネルが入力バッファ３０５にバッファリングされる。これら入力バッファ３０１と入力バッファ３０５のオーディオ信号に対して、類似波形長検出部３０２が類似波形長Ｗを求める。具体的には、加算部３０９でＬチャンネルの入力バッファ３０１のオーディオ信号とＲチャンネルの入力バッファ３０５のオーディオ信号との各サンプル値の平均を取ることにより、ステレオ信号をモノラル信号に変換し、このモノラル信号に対して類似波形長Ｗを求める。つまり、関数Ｄ（ｊ）を最小にするｊを求めて、Ｗ＝ｊとおく。求まった類似波形長Ｗは、モノラル信号に対する検出結果であるが、この類似波形長Ｗをステレオ信号の左右のチャンネル共通の類似波形長とみなす。類似波形長検出部３０２で求まった類似波形長Ｗは、Ｌチャンネルの入力バッファ３０１とＲチャンネルの入力バッファ３０５に渡され、バッファ操作に利用される。
【００２６】
Ｌチャンネルの入力バッファ３０１は、Ｌチャンネルのオーディオ信号２Ｗサンプルを接続波形生成部３０３に渡し、Ｒチャンネルの入力バッファ３０５は、Ｒチャンネルのオーディオ信号の２Ｗサンプルを接続波形生成部３０７に渡す。
【００２７】
接続波形生成部３０３は、受け取ったＬチャンネルの２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルにする。接続波形生成部３０７は、受け取ったＲチャンネルの２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルにする。
【００２８】
Ｌチャンネルの入力バッファ３０１と接続波形生成部３０３は話速変換率Ｒに合わせて出力バッファ３０４にオーディオ信号を送る。また、Ｒチャンネルの入力バッファ３０５及び接続波形生成部３０７は、出力バッファ３０８に話速変換率Ｒに合わせてオーディオ信号を送る。出力バッファ３０４及び出力バッファ３０８で生成された左右各チャンネルのオーディオ信号は、出力オーディオ信号として、話速変換装置３００から出力される。
【００２９】
図３４は、類似波形長検出部３０２及び加算部３０９の処理の流れを示すフローチャートである。この図３４は、図３１に示す２つの波形の類似度を計る関数Ｄ（ｊ）を計算する処理の流れに変更を加えたものである。ここで、ｆＬはＬチャンネルのサンプル値、ｆＲはＲチャンネルのサンプル値である。
【００３０】
図３４に示すサブルーチンの処理の流れは、次の通りである。ステップＳ１４０１では、インデックスｉと変数ｓを０にリセットする。ステップＳ１４０２では、インデックスｉがインデックスｊより小さいか否か調べ、インデックスｉがインデックスｊより小さい場合は、ステップＳ１４０３に進み、インデックスｉがインデックスｊ以上の場合は、ステップＳ１４０５に進む。ステップＳ１４０３では、まず、ステレオ信号をモノラル信号に変換し、そのモノラル信号の差の自乗を求めて変数ｓに加算する。つまり、Ｌチャンネルのｉ番目のサンプル値とＲチャンネルのｉ番目のサンプル値の平均値ａを求め、同様に、Ｌチャンネルのｉ＋ｊ番目のサンプル値とＲチャンネルのｉ＋ｊ番目のサンプル値の平均値ｂを求める。これらの平均値ａ及び平均値ｂは、ステレオ信号のｉ番目とｉ＋ｊ番目をモノラル信号に変換したものである。続いて、モノラル信号に変換された平均値ａと平均値ｂとの差を取り、その自乗を変数ｓに加算する。ステップＳ１４０４では、インデックスｉを１増加させ、ステップＳ１４０２に戻る。ステップＳ１４０５では、変数ｓをインデックスｊで割った値を関数Ｄ（ｊ）の値としてサブルーチンを終了する。
【００３１】
また、特許文献２には、図３５に示すような別の構成例が示されている。図３５に示す構成例は、左右のチャンネルの同期がずれないように工夫している点は、図３３に示す構成と同じであるが、類似波形長を検出する際に利用する入力信号が異なる。図３３に示す構成例が、左右のチャンネルの平均を取ることでステレオ信号をモノラル信号に変換しているのに対して、図３５に示す構成例は、フレーム単位のエネルギーを左右のチャンネルごとに求め、エネルギーの大きい方のチャンネルを選ぶことでステレオ信号をモノラル信号に変換している。
【００３２】
図３５に示す構成例に対し、処理すべき入力オーディオ信号は、まず、Ｌチャンネルが入力バッファ４０１に、Ｒチャンネルが入力バッファ４０５にバッファリングされる。これら入力バッファ４０１及び入力バッファ４０５のオーディオ信号に対して、チャンネル選択部４０９によりチャンネルを選択し、類似波形長検出部４０２により類似波形長Ｗを求める。具体的には、チャンネル選択部４０９は、Ｌチャンネルの入力バッファ４０１のオーディオ信号及びＲチャンネルの入力バッファ４０５のオーディオ信号のフレーム単位のエネルギーを求め、そのエネルギーが大きい方のチャンネルを選択することにより、ステレオ信号をモノラル信号に変換する。このモノラル信号に対して類似波形長検出部４０２は、類似波形長Ｗを求める。つまり、関数Ｄ（ｊ）を最小にするｊを求めて、Ｗ＝ｊとおく。求まった類似波形長Ｗは、エネルギーの大きい方のチャンネルだけに対する検出結果であるが、この類似波形長Ｗをステレオ信号の左右のチャンネル共通の類似波形長と見なす。類似波形長検出部４０２で求まった類似波形長Ｗは、Ｌチャンネルの入力バッファ４０１及びＲチャンネルの入力バッファ４０５に渡され、バッファ操作に利用される。Ｌチャンネルの入力バッファ４０１は、Ｌチャンネルのオーディオ信号２Ｗサンプルを接続波形生成部４０３に渡し、Ｒチャンネルの入力バッファ４０５は、Ｒチャンネルのオーディオ信号２Ｗサンプルを接続波形生成部４０７に渡す。接続波形生成部４０３は、受け取ったＬチャンネルの２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルにする。
【００３３】
接続波形生成部４０７は、受け取ったＲチャンネルの２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルにする。
【００３４】
Ｌチャンネルの入力バッファ４０１及び接続波形生成部４０３は、話速変換率Ｒに合わせて出力バッファ４０４にオーディオ信号を送る。また、Ｒチャンネルの入力バッファ４０５及び接続波形生成部４０７は、出力バッファ４０８に話速変換率Ｒに合わせてオーディオ信号を送る。出力バッファ４０４及び出力バッファ４０８に生成された左右各チャンネルのオーディオ信号は、出力オーディオ信号として、話速変換装置４００から出力される。
【００３５】
図３５の構成例における類似波形長検出部４０２の処理の流れを示すフローチャートは、図３０及び図３１に示すものと同様である。但し、類似波形長検出部に入力される信号は、チャンネル選択部４０９で左右のチャンネルのうちエネルギーが大きい方として選択された信号である。
【００３６】
図２２〜３５を用いて説明したように、話速変換アルゴリズムＰＩＣＯＬＡを用いることによって、任意の話速変換率Ｒ（０．５≦Ｒ＜１．０，１．０＜Ｒ≦２．０）でオーディオ信号を伸張圧縮することが可能であり、ステレオ信号に対しても左右の音の定位を崩さないように処理することが可能である。
【００３７】
【非特許文献１】森田，板倉，「ポインター移動量制御による重複加算法（ＰＩＣＯＬＡ）を用いた音声の時間軸での伸張圧縮とその評価」，日本音響学会論文集，昭和６１年１０月，ｐｐ．１４９−１５０
【特許文献１】特開２００１−２５５８９４号公報
【特許文献２】特開２００２−２９７２００号公報
【発明の開示】
【発明が解決しようとする課題】
【００３８】
しかしながら、図３３及び図３５に示した構成例では、左右のチャンネルの同期がずれないように工夫しているものの、別の問題を生じる結果となる。まず、図３３に示した構成例における方法では、各チャンネルに含まれる同一周波数の信号に大きな位相差があった場合に、モノラル信号に変換された際、その信号の強度が減衰するという問題があった。次に、図３５に示した構成例における方法では、エネルギーの大きな方のチャンネルのみによって類似波形長の検出が行なわれるため、エネルギーの小さな方のチャンネルの情報が類似波形長検出に反映されないという問題があった。
【００３９】
ここで、図３３の構成例における問題点について、図３６〜３８を用いて説明する。図３６は、左右のチャンネルの信号が同一周波数であるステレオ信号をモノラル信号に変換する際、左右のチャンネルの信号の位相差の違いによってどのような変化が起こるかを示したものである。
【００４０】
波形３６０１と波形３６０２は、それぞれステレオ信号のＬチャンネルとＲチャンネルであり、２つの信号の位相差は０度である。これらＬチャンネルとＲチャンネルの各サンプル値の平均を求めることでモノラル信号に変換した波形が波形３６０３である。同様に、波形３６０４と波形３６０５は、それぞれステレオ信号のＬチャンネルとＲチャンネルであり、２つの信号の位相差は９０度である。これらＬチャンネルとＲチャンネルの各サンプル値の平均を求めることでモノラル信号に変換した波形が波形３６０６である。この波形３６０６の振幅は、モノラル化前の波形３６０４と波形３６０５に振幅よりも小さくなってしまっている。更に、波形３６０７と波形３６０８は、それぞれステレオ信号のＬチャンネルとＲチャンネルであり、２つの信号の位相差は１８０度である。これらＬチャンネルとＲチャンネルの各サンプル値の平均を求めることでモノラル信号に変換した波形が波形３６０９である。この波形３６０９の振幅は、モノラル化前の波形３６０７と波形３６０８が完全に打ち消し合った結果０になってしまっている。このように、左右のチャンネルに位相差がある場合、モノラル信号に変換された信号の振幅は減衰したものになってしまう。
【００４１】
図３７は、左右のチャンネルに同一周波数で１８０度の位相差がある信号を含むステレオ信号をモノラル信号に変換する際に起こる問題の例を示したものである。
【００４２】
Ｌチャンネルには、小振幅の波形３７０１と大振幅の波形３７０２が含まれている。Ｒチャンネルには、Ｌチャンネルに含まれる波形３７０２と同一周波数かつ同一振幅で位相差が１８０度ある波形３７０３が含まれている。このとき、ＬチャンネルとＲチャンネルをモノラル信号に変換すると、Ｌチャンネルの波形３７０２とＲチャンネルの波形３７０３が打ち消し合い、モノラル信号には、Ｌチャンネルに含まれていた波形３７０１だけが残る結果となってしまう。
【００４３】
例えば、このモノラル信号３７０４を利用して類似波形長検出を行ない、検出された類似波形長Ｗに基づいて図３７に示す信号Ｌ（３７０１＋３７０２）とＲ（３７０３）を２倍の長さに波形伸張を行なった場合、図３８に示すような伸張波形Ｌ’（３８０１＋３８０２）とＲ’（３８０３）になってしまう。つまり、区間Ａ１と区間Ｂ１から区間Ａ１ｘＢ１が生成され、区間Ａ２と区間Ｂ２から区間Ａ２ｘＢ２が生成され、区間Ａ３と区間Ｂ３から区間Ａ３ｘＢ３が生成される。モノラル信号３７０４から検出される類似波形長に従って波形伸張が行なわれた結果、もともと大きな振幅で含まれていたはずの波形３７０２や波形３７０３は、類似波形長検出に利用されない。そのため、波形３７０１は、波形３８０１のように伸張されるので問題ないものの、波形３７０２と波形３７０３は、波形３８０２と波形３８０３のように伸張されてしまい、図より明らかなように、伸張前と伸張後で著しく異なる波形になってしまっている。結果として、伸張音には、異音が発生してしまう。
【００４４】
特に、ステレオ信号によって録音された音楽等を再生した際に、音の広がりを感じることができるのは、左右のチャンネルの信号の振幅や位相の差に寄るところが大きい。このため、左右のチャンネルの入力信号に位相差が存在することは、極普通のことであり、上述の従来の方法では、伸張音や圧縮音に異音が発生することがあった。
【００４５】
本発明は、このような状況に鑑みてなされたものであり、ステレオ信号やマルチチャンネル信号においても音の定位を崩さず、かつ、高音質に再生速度を変化させることができるオーディオ信号伸張圧縮装置及びオーディオ信号伸張圧縮方法を提供することを目的とする。
【課題を解決するための手段】
【００４６】
上述した課題を解決するために、本発明は、複数チャンネルからなるオーディオ信号を類似波形を用いて時間領域で伸張圧縮するオーディオ信号伸張圧縮装置において、上記オーディオ信号内の連続する２つの区間の信号の類似度をチャンネル毎に算出し、各チャンネルの類似度に基づいて上記２つの区間の類似波形長を検出する類似波形長検出手段を備えることを特徴としている。
【００４７】
また、本発明は、複数チャンネルからなるオーディオ信号を類似波形を用いて時間領域で伸張圧縮するオーディオ信号伸張圧縮方法において、上記オーディオ信号内の連続する２つの区間の信号の類似度をチャンネル毎に算出し、各チャンネルの類似度に基づいて上記２つの区間の類似波形長を検出する類似波形長検出工程を有することを特徴としている。
【発明の効果】
【００４８】
本発明によれば、複数チャンネルからなるオーディオ信号内の連続する２つの区間の波形の類似度をチャンネル毎に算出し、各チャンネルの類似度に基づいて２つの区間の類似波形長を検出するため、ステレオ信号やマルチチャンネル信号においても音の定位を崩さず、かつ、高音質に再生速度を変化させることができる。
【発明を実施するための最良の形態】
【００４９】
以下、図を参照しながら本発明の具体的内容を説明する。本発明の具体例として示すオーディオ信号の伸張圧縮は、複数チャンネルからなるオーディオ信号内の連続する２つの区間の波形の類似度をチャンネル毎に算出し、各チャンネルの類似度に基づいて２つの区間の類似波形長を検出し、時間領域でオーディオ信号を伸張圧縮するものである。これにより、ステレオ信号を話速変換しても、左右のチャンネルの同期がずれず、かつ、左右のチャンネルに同一周波数で位相差がある信号が含まれていても、影響されることがない。
【００５０】
図１は、本発明の一実施形態におけるオーディオ信号の伸張圧縮装置の構成を示すブロック図である。オーディオ信号伸張圧縮装置１０は、Ｌチャンネルの入力オーディオ信号をバッファリングする入力バッファＬ１１と、Ｒチャンネルの入力オーディオ信号をバッファリングする入力バッファＲ１５と、入力バッファＬ１１と入力バッファＲ１５のオーディオ信号に対し、類似する波形長Ｗを検出する類似波形長検出部１２と、２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルの接続波形を生成するＬチャンネルの接続波形生成部Ｌ１３と、２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルの接続波形を生成するＲチャンネルの接続波形生成部Ｒ１７と、話速変換率Ｒに応じて入力された入力オーディオ信号と接続波形とを用いてＬチャンネルの出力オーディオ信号を出力する出力バッファＬ１４と、話速変換率Ｒに応じて入力された入力オーディオ信号と接続波形とを用いてＲチャンネルの出力オーディオ信号を出力する出力バッファＲ１８とを備えて構成されている。
【００５１】
処理すべき入力オーディオ信号は、まず、Ｌチャンネルが入力バッファＬ１１に、Ｒチャンネルが入力バッファＲ１５にバッファリングされる。入力バッファＬ１１及び入力バッファＲ１５にバッファリングされたオーディオ信号に対して、類似波形長検出部１２は、類似波形長Ｗを求める。具体的には、Ｌチャンネルの入力バッファＬ１１のオーディオ信号とＲチャンネルの入力バッファＲ１５のオーディオ信号に対して別々に差の自乗の総和（自乗誤差）を求める。この自乗誤差は、オーディオ信号内の２つの類似波形を検出するための類似度を測る尺度として用いられる。
【００５２】
【数９】
2008107413.tif 000011
ここで、ｆＬはＬチャンネルのサンプル値、ｆＲはＲチャンネルのサンプル値である。ＤＬ（ｊ）はＬチャンネルにおける２つの波形（区間）のサンプル値の差の自乗の総和（自乗誤差）であり、ＤＲ（ｊ）はＲチャンネルにおける２つの波形（区間）のサンプル値の差の自乗の総和（自乗誤差）である。続いて、ＤＬ（ｊ）とＤＲ（ｊ）を加算したものを関数Ｄ（ｊ）の値とする。
【００５３】
【数１０】
2008107413.tif 000012
この関数Ｄ（ｊ）を最小にするｊを求めて、Ｗ＝ｊとおく。この類似波形長Ｗをステレオ信号の左右のチャンネル共通の類似波形長と見なす。
【００５４】
このようにして類似波形長検出部１２で求まった類似波形長Ｗは、Ｌチャンネルの入力バッファＬ１１とＲチャンネルの入力バッファＲ１５に渡され、バッファ操作に利用される。Ｌチャンネルの入力バッファＬ１１は、Ｌチャンネルのオーディオ信号の２Ｗサンプルを接続波形生成部Ｌ１３に渡し、Ｒチャンネルの入力バッファＲ１５は、Ｒチャンネルのオーディオ信号２Ｗサンプルを接続波形生成部Ｒ１７に渡す。接続波形生成部Ｌ１３は、受け取ったＬチャンネルの２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルにする。接続波形生成部Ｒ１７も同様に、受け取ったＲチャンネルの２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルにする。Ｌチャンネルの入力バッファＬ１１と接続波形生成部Ｌ１３は、話速変換率Ｒに合わせて出力バッファＬ１４にオーディオ信号を送る。Ｒチャンネルの入力バッファＲ１５と接続波形生成部Ｒ１７も同様に、出力バッファＲ１８に話速変換率Ｒに合わせてオーディオ信号を送る。出力バッファＬ１４と出力バッファＲ１８に生成された左右各チャンネルのオーディオ信号は、出力オーディオ信号として、オーディオ信号伸張圧縮装置１０から出力される。
【００５５】
このように入力オーディオ信号の２つの区間の類似度の計算を行なう際、チャンネル毎に類似度を計算する段階と、各チャンネルの計算結果に基づいて最適値を決定する段階とに分けることにより、各チャンネルに位相差がある波形が含まれていても、その位相差による影響を受けることなく、より正確に類似波形長を検出することができる。
【００５６】
図２は、類似波形長検出部１２の処理の流れを示すフローチャートである。このフローチャートは、図３０に示すものと同様であるが、サブルーチンが異なる。つまり、２つの波形の類似度を計る関数Ｄ（ｊ）を計算する処理の流れが図３１に示したものから、図３に示すものに変更される。
【００５７】
ステップＳ１１では、インデックスｊに初期値ＷＭＩＮをセットする。ステップＳ１２では、図３に示すサブルーチンを実行する。サブルーチンは、（１５）式に示す関数Ｄ（ｊ）を計算する。ステップＳ１３では、サブルーチンで求まった関数Ｄ（ｊ）の値を変数ｍｉｎに代入し、インデックスｊをＷに代入する。ステップＳ１４では、インデックスｊを１増加させる。ステップＳ１５では、インデックスｊがＷＭＡＸ以下か否か調べ、ＷＭＡＸ以下の場合はステップＳ１６に進み、ＷＭＡＸより大きい場合は処理を終了する。処理を終了したときに変数Ｗに格納されていた値が、関数Ｄ（ｊ）を最小にするインデックスｊ、つまり、類似波形長であり、そのときの変数ｍｉｎの値は関数Ｄ（ｊ）の最小値である。
【００５８】
ステップＳ１６では、図３に示すサブルーチンにて、新たなインデックスｊに対して関数Ｄ（ｊ）を求める。ステップＳ１７では、ステップＳ１６で求まった関数Ｄ（ｊ）の値がｍｉｎ以下か否か調べ、ｍｉｎ以下の場合は、ステップＳ１８に進み、ｍｉｎより大きい場合は、ステップＳ１４に戻る。ステップＳ１８では、関数Ｄ（ｊ）の値を変数ｍｉｎに代入し、インデックスｊをＷに代入する。
【００５９】
図３に示すサブルーチンの処理の流れは、次の通りである。ステップＳ２１では、インデックスｉを０にリセットし、変数ｓＬと変数ｓＲを０にリセットする。ステップＳ２２では、インデックスｉがインデックスｊより小さいか否か調べ、インデックスｉがインデックスｊより小さい場合は、ステップＳ２３に進み、インデックスｉがインデックスｊ以上の場合は、ステップＳ２５に進む。ステップＳ２３では、Ｌチャンネルの信号の差の自乗を求めて変数ｓＬに加算し、Ｒチャンネルの信号の差の自乗を求めて変数ｓＲに加算する。つまり、Ｌチャンネルのｉ番目のサンプル値とｉ＋ｊ番目のサンプル値の差を取り、その自乗を変数ｓＬに加算する。同様に、Ｒチャンネルのｉ番目のサンプル値とｉ＋ｊ番目のサンプル値の差を取り、その自乗を変数ｓＲに加算する。ステップＳ２４では、インデックスｉを１増加させ、ステップＳ２２に戻る。ステップＳ２５では、変数ｓＬと変数ｓＲの値をそれぞれインデックスｊで割った値を加算し、その加算値を関数Ｄ（ｊ）の値としてサブルーチンを終了する。このように類似波形長を検出することにより、話速変換しても、各チャンネルの同期がずれず、かつ、各チャンネルに同一周波数で位相差がある信号が含まれていても影響されることがない。
【００６０】
図４は、図３７に示したステレオ信号例である波形３７０１〜波形３７０３に対して、本発明を適用した場合の波形伸張例を示したものである。図３７に示すＬチャンネルには、小振幅の波形３７０１と大振幅の波形３７０２が含まれている。波形３７０１は、波形３７０２の２倍の周波数である。Ｒチャンネルには、Ｌチャンネルに含まれる波形３７０２と同一周波数で位相差が１８０度ある波形３７０３が含まれている。
【００６１】
本発明を適用すると、波形３７０１と波形３７０２から成るＬチャンネルから関数ＤＬ（ｊ）を求めると同時に、波形３７０３から成るＲチャンネルから関数ＤＲ（ｊ）を求め、その和である関数Ｄ（ｊ）＝ＤＬ（ｊ）＋ＤＲ（ｊ）を最小にするｊを求め、Ｗ＝ｊとおく。この類似波形長Ｗによって、図３７に示す波形３７０１〜波形３７０３を伸張すると、図４に示すようになる。つまり、波形３７０１が波形４０１に、波形３７０２が波形４０２に、波形３７０３が波形４０３に伸張される。図４に示す例から容易に分かるように、本発明を適用した結果、伸張された波形は正確に元の波形を伸張したものとなる。
【００６２】
図５は、サンプリング周波数が４４．１ｋＨｚで約６２４ミリ秒のステレオ信号の実波形例である。また、図６は、図５に示す波形例に対して、図３３に示す従来の構成例によって類似波形長を求めた結果を示したものである。
【００６３】
まず、位置６０１を起点として類似波形長Ｗ１を求める。次に、位置６０１に類似波形長Ｗ１を加算した位置６０２を起点として類似波形長Ｗ２を求める。続いて、位置６０２に類似波形長Ｗ２を加算した位置６０３を起点として類似波形長Ｗ３を求める。同様に、位置６０４を求め、以下、波形の最後まで同様の処理を繰り返すことにより、図６に示す類似波形長が求められる。図６に示す区間１では、類似波形長がほぼ一定になっているのに対して、区間２では類似波形長が長くなったり短くなったりと安定していない。つまり、図３３に示す従来の構成例によって生成された波形を再生して聴いてみると、聴覚的に異音が感じられてしまう。
【００６４】
図７は、図５に示す波形例に対して、本発明を適用して類似波形長を求めた結果を示すものである。図６に示す区間２の類似波形長が長くなったり短くなったりと安定していなかったのに対して、本発明を適用した図７に示す区間２の類似波形長はより正確な類似波形長が求められているため安定している。つまり、図１に示す本発明の構成例によって生成された波形を再生して聴いてみると、聴覚的な違和感が軽減されていることを容易に確認することができる。
【００６５】
また、本発明を適用したオーディオの信号伸張圧縮では、類似波形長を求めるために（１５）式の関数Ｄ（ｊ）を用いたが、仮に、（１３）式の関数ＤＬ（ｊ）や（１４）式の関数ＤＲ（ｊ）を直接利用した場合の結果を図８に示す。図８（Ａ）は、ステレオ入力信号に対して、Ｌチャンネルの関数ＤＬ（ｊ）を求めたグラフ例であり、同様に、図８（Ｂ）は、Ｒチャンネルの関数ＤＲ（ｊ）を求めたグラフ例である。
【００６６】
例えば、Ｌチャンネルから求めた関数ＤＬ（ｊ）によって、左右両方のチャンネルの類似波形長を決定する場合を考える。関数ＤＬ（ｊ）が最も小さくなるのは点８０１である。この点８０１におけるｊを類似波形長ＷＬとおくことによって、左右両方のチャンネルを話速変換する場合、Ｌチャンネルについては最も小さな誤差で変換できるものの、Ｒチャンネルについては最も小さな誤差では変換できず、誤差ＤＲ（ＷＬ）（８０２）を生じる。逆に、Ｒチャンネルから求めた関数ＤＲ（ｊ）によって、左右両方のチャンネルの類似波形長を決定する場合を考える。関数ＤＲ（ｊ）が最も小さくなるのは点８０３である。この点８０３におけるｊを類似波形長ＷＲとおくことによって、左右両方のチャンネルを話速変換する場合、Ｒチャンネルについては最も小さな誤差で変換できるものの、Ｌチャンネルについては最も小さな誤差では変換できず、誤差ＤＬ（ＷＲ）（８０４）を生じる。ここで注目すべき点は、誤差ＤＬ（ＷＲ）（８０４）が非常に大きいことである。このように誤差が大きい場合、例えば、図３７に示す波形３７０３が図３８に示す波形３８０３に変換されたときと同じように、変換前の波形と変換後の波形で著しく異なる波形となってしまう。
【００６７】
これに対して、本発明の一実施形態のように（１３）式の関数ＤＬ（ｊ）と（１４）式の関数ＤＲ（ｊ）とを加算した（１５）式の関数Ｄ（ｊ）を用いて類似波形長を決定する場合を考える。図８（Ｃ）は、ステレオ入力信号に対して、Ｌチャンネルの関数ＤＬ（ｊ）とＲチャンネルの関数ＤＲ（ｊ）を別々に求め、この関数ＤＬ（ｊ）と関数ＤＲ（ｊ）とを加算した関数Ｄ（ｊ）を求めたグラフ例である。関数Ｄ（ｊ）が最も小さくなるのは点８０５である。この点８０５におけるｊを類似波形長Ｗとおくことによって、左右両方のチャンネルを話速変換する場合、ＬチャンネルとＲチャンネルとの間で最も小さな誤差となっていることが確認できる。つまり、Ｌチャンネルの誤差ＤＬ（Ｗ）（８０６）やＲチャンネルの誤差ＤＲ（Ｗ）（８０７）は、共に、とても小さな誤差に収まっている。
【００６８】
このように、左右両方のチャンネルの類似波形長を決定するために、関数ＤＬ（ｊ）や関数ＤＲ（ｊ）を単独で用いると誤差８０４のような大きな誤差を生じさせてしまう恐れがあるのに対して、（１５）式の関数Ｄ（ｊ）のように別々に求めた関数ＤＬ（ｊ）と関数ＤＲ（ｊ）を加算した関数Ｄ（ｊ）を用いることにより、左右両方のチャンネルの誤差を小さく抑えることが可能となり、より高音質な話速変換を実現することができる。つまり、図１〜図３を用いて説明した信号伸張圧縮方法のように、左右のチャンネルで最小の誤差となる同一の類似波形長を用いることにより、ＬチャンネルとＲチャンネルの同期のずれを生じることなく、高音質に再生速度を変化させることができる。
【００６９】
図９は、類似波形長検出部１２の他の処理（その１）の流れを示すフローチャートである。この図９に示すフローチャートでは、類似波形長を求める際の第１の区間の信号と第２の区間の信号の相関関係によって、その区間長ｊを採用するか否かを判断する処理を追加している。類似度を計る関数Ｄ（ｊ）を小さい値にする区間長ｊであっても、第１の区間の信号と第２の区間の信号の相関係数がＬチャンネルとＲチャンネル共に負になるような場合、接続波形を生成する際に打ち消し合いが大きくなることによって、異音が発生してしまうことがある。この問題に対して、図９に示すフローチャートを利用することにより、この異音の発生を防ぐことができる。
【００７０】
ステップＳ３１では、インデックスｊに初期値ＷＭＩＮをセットする。ステップＳ３２では、図３に示すサブルーチンを実行する。サブルーチンは、（１５）式に示す関数Ｄ（ｊ）を計算する。ステップＳ３３では、サブルーチンで求まった関数Ｄ（ｊ）の値を変数ｍｉｎに代入し、インデックスｊをＷに代入する。ステップＳ３４では、インデックスｊを１増加させる。ステップＳ３５では、インデックスｊがＷＭＡＸ以下か否か調べ、ＷＭＡＸ以下の場合はステップＳ３６に進み、ＷＭＡＸより大きい場合は処理を終了する。処理を終了したときに変数Ｗに格納されていた値は、第１の区間の信号と第２の区間の信号の相関関係を満たしながら関数Ｄ（ｊ）を最小にするインデックスｊ、つまり、類似波形長である。また、そのときの変数ｍｉｎの値は、関数Ｄ（ｊ）の最小値である。
【００７１】
ステップＳ３６では、図３に示すサブルーチンにて、新たなインデックスｊに対して関数Ｄ（ｊ）を求める。ステップＳ３７では、ステップＳ３６で求まった関数Ｄ（ｊ）の値がｍｉｎ以下か否か調べ、ｍｉｎ以下の場合は、ステップＳ３８に進み、ｍｉｎより大きい場合は、ステップＳ３４に戻る。ステップＳ３８では、後述する図１０に示すサブルーチンＣをＬチャンネルとＲチャンネルそれぞれについて実行する。サブルーチンＣは、第１の区間の信号と第２の区間の信号の相関係数を求める。Ｌチャンネルにおける相関係数をＣＬ（ｊ）、Ｒチャンネルにおける相関係数をＣＲ（ｊ）とする。
【００７２】
ステップＳ３９では、ステップＳ３８で求めた相関係数ＣＬ（ｊ）とＣＲ（ｊ）が共に負であるか否か調べる。共に負である場合はステップＳ３４に戻り、少なくとも１つは負でない場合はステップＳ４０に進む。ステップＳ４０では、関数Ｄ（ｊ）の値を変数ｍｉｎに代入し、インデックスｊをＷに代入する。
【００７３】
図１０に示すサブルーチンＣの処理の流れは、次の通りである。ステップＳ４１では、第１の区間の信号の平均値ａＸと第２の区間の信号の平均値ａＹを求める。平均値の計算は、図１１に示す通りである。ステップＳ４２では、インデックスｉ、変数ｓＸ、変数ｓＹ、変数ｓＸＹを０にリセットする。ステップＳ４３では、インデックスｉがインデックスｊより小さいか否か調べ、インデックスｉがインデックスｊより小さい場合は、ステップＳ４４に進み、インデックスｉがインデックスｊ以上の場合は、ステップＳ４６に進む。ステップＳ４４では、下記式を計算する。
【００７４】
【数１１】
2008107413.tif 000013
ここで、ｆはｆＬやｆＲなど入力されるチャンネルのサンプル値を表す。ステップＳ４５では、インデックスｉを１増加させ、ステップＳ４３に戻る。ステップＳ４６では、下記式を計算することで相関係数Ｃの値を求め、サブルーチンＣを終了する。
【００７５】
【数１２】
2008107413.tif 000014
ここでｓｑｒｔは平方根を計算している。以上の処理は、ＬチャンネルとＲチャンネルでそれぞれ行なう。
【００７６】
図１１は、平均値を求める処理を示すフローチャートである。ステップＳ５１では、インデックスｉ、変数ａＸ、変数ａＹを０にリセットする。ステップＳ５２では、インデックスｉがインデックスｊより小さいか否か調べ、インデックスｉがインデックスｊより小さい場合は、ステップＳ５３に進み、インデックスｉがインデックスｊ以上の場合は、ステップＳ５５に進む。ステップＳ５３では、下記式を計算する。
【００７７】
【数１３】
2008107413.tif 000015
ステップＳ５４では、インデックスｉを１増加させ、ステップＳ５２に戻る。ステップＳ５５では、下記式を計算し、変数ａＸを第１の区間の信号の平均値、変数ａＹを第２の区間の信号の平均値として処理を終了する。
【００７８】
【数１４】
2008107413.tif 000016
このような方法により、第１の区間の信号と第２の区間の信号の相関係数がＬチャンネルとＲチャンネル共に負になるような区間長ｊは、類似波形長Ｗの候補から除外されることとなる。したがって、類似度を計る関数Ｄ（ｊ）を小さい値にするような区間長ｊであっても、第１の区間の信号と第２の区間の信号の相関係数がＬチャンネルとＲチャンネル共に負になる場合、そのような区間長ｊは選択されない。つまり、図９〜図１１に示す伸張圧縮処理を適用することにより、接続波形を生成する際の打ち消し合いによる異音の発生を防ぐことができ、より高音質な話速変換を実現することができる。
【００７９】
図１２〜図１６は、第１の区間の信号と第２の区間の信号の相関係数が負であるにも拘わらず、類似度を計る関数Ｄ（ｊ）が小さな値になってしまう具体例を説明するものである。なお、具体例で示す信号はモノラル信号である。
【００８０】
図１２は、入力波形例を示すものであり、そのサンプル数はＷＭＡＸの２倍である。図１３（ａ）は、図１２に示す入力波形の先頭を起点として関数Ｄ（ｊ）を求めたグラフである。また、図１３（ｂ）は、図１３（ａ）に示す関数Ｄ（ｊ）を求める際に利用した各区間長ｊに対して第１の区間と第２の区間の相関係数を求めたものである。図３０に示した類似波形長を求める処理に従えば、ｊはＷＭＩＮからＷＭＡＸに向かって変化する。まず、図１３（ａ）に示す点１３０１で関数Ｄ（ｊ）の値が最小となり、このときの関数値Ｄ（ｊ）が変数ｍｉｎに代入され、ｊが変数Ｗに代入される。続いて、点１３０２で関数Ｄ（ｊ）の値が最小となり、このときの関数値Ｄ（ｊ）が変数ｍｉｎに代入され、ｊが変数Ｗに代入される。同様にして、点１３０３、点１３０４、点１３０５、点１３０６、点１３０７、点１３０８、点１３０９が選択され、そのときの関数値Ｄ（ｊ）が変数ｍｉｎに代入され、ｊが変数Ｗに代入される。ｊが点１３０９を通過した後は、点１３０９における関数値Ｄ（ｊ）よりも小さな関数値Ｄ（ｊ）は見つからないため、最終的に、点１３０９において関数Ｄ（ｊ）が最小になったことが分かる。
【００８１】
図１４は、点１３０１〜点１３０９において、第１の区間Ａと第２の区間Ｂがどのように変化したのかを示したものである。つまり、点１３０１のとき、第１の区間と第２の区間は、区間１４０１のように設定されており、点１３０２のとき、第１の区間と第２の区間は、区間１４０２のように設定されている。点１３０３〜点１３０９に対応するのは、区間１４０３から区間１４０９である。例えば、図２９に示す従来のモノラル信号伸張圧縮装置の接続波形生成部１０３では、区間１４０９の第１の区間Ａと第２の区間Ｂを用いて、接続波形を生成することになる。
【００８２】
ところで、点１３０９において、第１の区間と第２の区間の相関係数は負であることが図１３（ｂ）に示すグラフより分かる。第１の区間と第２の区間の相関係数が負である場合、接続波形生成部におけるクロスフェード処理により、音質的に不利益が生じることがある。このことについて、図１５及び図１６を用いて説明する。一般に音響信号では、様々な楽器の音が同時に鳴っている。図１５（ａ）及び図１６（ａ）は、点線で示した大振幅の波形に、実線で示した小振幅の波形が重なっている様子を示している。
【００８３】
図１５は、区間Ａと区間Ｂの波形（ａ）を伸張して伸張波形（ｂ）を得る場合の波形の様子を示したものであり、（ａ）の区間Ａと区間Ｂの実線波形は同相である。原波形（ａ）を１．５倍に伸張する場合、原波形（ａ）の区間Ａ（１５０１）を伸張波形（ｂ）の区間Ａ（１５０３）にコピーし、原波形（ａ）の区間Ａ（１５０１）と区間Ｂ（１５０２）のクロスフェード波形を伸張波形（ｂ）の区間ＡｘＢ（１５０４）に生成し、最後に、原波形（ａ）の区間Ｂ（１５０２）を伸張波形（ｂ）の区間Ｂ（１５０５）にコピーする。伸張波形（ｂ）の実線波形の包絡線を模式的に同図（ｃ）のように表現することとする。
【００８４】
同様に、図１６は、区間Ａと区間Ｂの波形（ａ）を伸張して伸張波形（ｂ）を得る場合の波形の様子を示したものであり、（ａ）の区間Ａと区間Ｂの実線波形は逆相である。原波形（ａ）を１．５倍に伸張する場合、原波形（ａ）の区間Ａ（１６０１）を伸張波形（ｂ）の区間Ａ（１６０３）にコピーし、原波形（ａ）の区間Ａ（１６０１）と区間Ｂ（１６０２）のクロスフェード波形を伸張波形（ｂ）の区間ＡｘＢ（１６０４）に生成し、最後に、原波形（ａ）の区間Ｂ（１６０２）を伸張波形（ｂ）の区間Ｂ（１６０５）にコピーする。同図（ｃ）は伸張波形（ｂ）の実線波形の包絡線を模式的に表現したものである。
【００８５】
一般の音響信号において、図１６（ａ）の実線波形のような波形が含まれることは考え難いが、選択された区間Ａと区間Ｂに逆相に近い波形が含まれることは実際に頻発する。図１５に示す伸張波形と図１６に示す伸張波形とを比較すると容易に分かるように、クロスフェード後の波形は、クロスフェード前の２つの波形の相関関係によって、振幅を大きく変える。特に、負の相関を持った場合（図１６の場合）、クロスフェード部分の振幅が大きく減衰してしまい、これが頻繁に発生すると、聴覚的にうねりのような異音を発生させてしまう。
【００８６】
図１３の点１３０９が関数Ｄ（ｊ）の最小値ではあるものの、このときの相関係数が負になっている場合、図１６に示したように、接続波形生成処理におけるクロスフェードにおいてうねりのような異音を発生させてしまう恐れがある。対して、例えば、図１３における点１３０７のように、相関係数が非負であるという条件のもとで、関数Ｄ（ｊ）の値を最小にするような点を選択することによって、図１６で示したような問題を防ぎつつ、最適な類似波形長を検出することが可能となる。
【００８７】
つまり、図９及び図１０で示した方法では、ステレオ信号に対して第１の区間と第２に区間の相関係数を調べており、ステップＳ３９では、左右両方のチャンネルの相関係数が同時に負になった場合に、そのときのｊを類似波形長の候補から除外している。
【００８８】
このように左右両方のチャンネルの相関係数が同時に負になった場合、そのときのｊを類似波形長の候補から除外することによって、接続波形生成処理でのクロスフェードにおいて、クロスフェード後の波形の振幅が減衰してしまうことを防ぐことができる。つまり、うねりのような異音の発生を防ぐことができる。つまり、入力オーディオ信号の２つの区間の類似度の計算を行なう際、１つ以上のチャンネルで２つの区間の相関係数が閾値以上になるものを候補とし、かつ、チャンネル毎に類似度を計算する段階と、各チャンネルの計算結果に基づいて最適値を決定する段階に分けることにより、各チャンネルに位相差がある波形が含まれていても、その位相差による影響を受けることなく、より正確に類似波形長を検出することができる。
【００８９】
図１７は、類似波形長検出部１２の他の処理（その２）の流れを示すフローチャートである。この図１７に示すフローチャートでは、類似波形長を求める際の第１の区間の信号と第２の区間の信号の相関関係と、左右のチャンネルのエネルギーの関係によって、その区間長ｊを採用するか否かを判断する処理を追加している。類似度を計る関数Ｄ（ｊ）を小さい値にする区間長ｊであっても、エネルギーの大きい方のチャンネルの第１の区間の信号と第２の区間の信号の相関係数が負になるような場合、接続波形を生成する際にエネルギーが大きいが故に打ち消し合いがより大きくなることによって、異音が発生してしまうことがある。この問題に対して、図１７に示すフローチャートを利用することにより、この異音の発生を防ぐことができる。
【００９０】
ステップＳ６１では、インデックスｊに初期値ＷＭＩＮをセットする。ステップＳ６２では、図３に示すサブルーチンを実行する。サブルーチンは、関数Ｄ（ｊ）を計算する。ステップＳ６３では、サブルーチンで求まった関数Ｄ（ｊ）の値を変数ｍｉｎに代入し、インデックスｊをＷに代入する。ステップＳ６４では、インデックスｊを１増加させる。ステップＳ６５では、インデックスｊがＷＭＡＸ以下か否か調べ、ＷＭＡＸ以下の場合はステップＳ６６に進み、ＷＭＡＸより大きい場合は処理を終了する。処理を終了したときに変数Ｗに格納されていた値が、第１の区間の信号と第２の区間の信号の相関関係と左右のチャンネルのエネルギーの関係を満たしながら、関数Ｄ（ｊ）を最小にするインデックスｊ、つまり、類似波形長であり、そのときの変数ｍｉｎの値は関数Ｄ（ｊ）の最小値である。ステップＳ６６では、図３に示すサブルーチンにて、新たなインデックスｊに対して関数Ｄ（ｊ）を求める。ステップＳ６７では、ステップＳ６６で求まった関数Ｄ（ｊ）の値がｍｉｎ以下か否か調べ、ｍｉｎ以下の場合は、ステップＳ６８に進み、ｍｉｎより大きい場合は、ステップＳ６４に戻る。ステップＳ６８では、図１０に示すサブルーチンＣ及び図１８に示すサブルーチンＥをＬチャンネルとＲチャンネルそれぞれについて実行する。サブルーチンＣは、第１の区間の信号と第２の区間の信号の相関係数を求める。Ｌチャンネルにおける相関係数をＣＬ（ｊ）、Ｒチャンネルにおける相関係数をＣＲ（ｊ）とする。サブルーチンＥは、信号のエネルギーを求める。ＬチャンネルにおけるエネルギーをＥＬ（ｊ）、ＲチャンネルにおけるエネルギーをＥＲ（ｊ）とする。ステップＳ６９では、ステップＳ６８で求めた相関係数ＣＬ（ｊ）とＣＲ（ｊ）との関係、及びエネルギーＥＬ（ｊ）とＥＲ（ｊ）との関係を次の式によって調べる。
【００９１】
【数１５】
2008107413.tif 000017
上記式が満たされる場合、つまり、エネルギーの大きい方のチャンネルの相関係数が負である場合はステップＳ６４に戻り、そうでない場合はステップＳ７０に進む。ステップＳ７０では、関数Ｄ（ｊ）の値を変数ｍｉｎに代入し、インデックスｊをＷに代入する。
【００９２】
図１８に示すサブルーチンＥの処理の流れは、次の通りである。ステップＳ７１では、インデックスｉと変数ｅＸ、変数ｅＹを０にリセットする。ステップＳ７２では、インデックスｉがインデックスｊより小さいか否か調べ、インデックスｉがインデックスｊより小さい場合は、ステップＳ７３に進み、インデックスｉがインデックスｊ以上の場合は、ステップＳ７５に進む。ステップＳ７３では、次の式を計算し、第１の区間の信号のエネルギーｅＸと第２の区間の信号のエネルギーｅＹを求める。
【００９３】
【数１６】
2008107413.tif 000018
ステップＳ７４では、インデックスｉを１増加させ、ステップＳ７２に戻る。ステップＳ７５では、第１の区間の信号のエネルギーｅＸと第２の区間の信号のエネルギーｅＹの和を計算することで、第１の区間と第２の区間のエネルギーを求め、サブルーチンＥを終了する。
【００９４】
【数１７】
2008107413.tif 000019
以上の処理は、ＬチャンネルとＲチャンネルでそれぞれ行なう。
【００９５】
図１７及び図１８に示す方法により、エネルギーの大きい方のチャンネルの第１の区間の信号と第２の区間の信号の相関係数が負になるような区間長ｊは、類似波形長Ｗの候補から除外されることとなる。これにより、接続波形を生成する際にエネルギーが大きいが故に打ち消し合いがより大きくなることによって、うねりのような異音を発生させてしまうことを防ぐことができる。つまり、類似度を計る関数Ｄ（ｊ）を小さい値にするような区間長ｊであっても、エネルギーの大きい方のチャンネルの第１の区間の信号と第２の区間の信号の相関係数が負になるような区間長ｊは選択されないため、図１７及び図１８に示す方法を適用することで、より高音質な話速変換を実現することができる。つまり、入力オーディオ信号の２つの区間の類似度の計算を行なう際、２つの区間のエネルギーが最も大きいチャンネルにおける２つの区間の相関係数が閾値以上になるものを候補とし、かつ、チャンネル毎に類似度を計算する段階と、各チャンネルの計算結果に基づいて最適値を決定する段階とに分けることにより、各チャンネルに位相差がある波形が含まれていても、その位相差による影響を受けることなく、より正確に類似波形長を検出することができる。
【００９６】
図１９は、マルチチャンネル信号を伸張圧縮するオーディオ信号伸張圧縮装置の構成例を示すブロック図である。ここにおいて、マルチチャンネル信号は、Ｌｆチャンネル（フロントの左チャンネル）と、Ｃチャンネル（センターチャンネル）と、Ｒｆチャンネル（フロントの右チャンネル）と、Ｌｓチャンネル（サラウンドの左チャンネル）と、Ｒｓチャンネル（サラウンドの右チャンネル）と、ＬＦＥチャンネル（Low Frequency Effectチャンネル）とからなっている。
【００９７】
このオーディオ信号伸張圧縮装置２０は、Ｌｆチャンネルの信号を伸張圧縮する話速変換ユニット（Ｕ１）２１と、Ｃチャンネルの信号を伸張圧縮する話速変換ユニット（Ｕ２）２２と、Ｒｆチャンネルの信号を伸張圧縮する話速変換ユニット（Ｕ３）２３と、Ｌｓチャンネルの信号を伸張圧縮する話速変換ユニット（Ｕ４）２４と、Ｒｓチャンネルの信号を伸張圧縮する話速変換ユニット（Ｕ５）２５と、ＬＦＥチャンネルの信号を伸張圧縮する話速変換ユニット（Ｕ６）２６と、各話速変換ユニット２１〜２６から出力されたオーディオ信号をそれぞれ重み付けする増幅部（Ａ１〜Ａ６）２７〜３２と、増幅部（Ａ１〜Ａ６）２７〜３２で重み付けられたオーディオ信号から各チャンネル共通の類似波形長を検出する類似波形長検出部３３とを備えている。
【００９８】
処理すべき入力オーディオ信号である、Ｌｆチャンネルは話速変換ユニット（Ｕ１）２１に、Ｃチャンネルは話速変換ユニット（Ｕ２）２２に、Ｒｆチャンネルが話速変換ユニット（Ｕ３）２３に、Ｌｓチャンネルは話速変換ユニット（Ｕ４）２４に、Ｒｓチャンネルは話速変換ユニット（Ｕ５）２５に、ＬＦＥチャンネルは話速変換ユニット（Ｕ６）２６にバッファリングされる。
【００９９】
各話速変換ユニット２１〜２６は、図２０に示す通りであり、入力オーディオ信号をバッファリングする入力バッファ４１と、類似波形長検出部３３で検出された類似波形長Ｗに基づいて入力バッファ４１から送られる２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルの接続波形を生成する接続波形生成部４３と、話速変換率Ｒに応じて入力された入力オーディオ信号と接続波形とを用いて出力オーディオ信号を出力する出力バッファ４４とを備えている。
【０１００】
各増幅部（Ａ１〜Ａ６）２７〜３２は、各チャンネルの振幅を調整し、例えば、全チャンネルを均等に類似波形長検出に使用する場合は、（２９）式の比率の設定とし、ＬＦＥを使わない場合は、（３０）式の比率の設定とする。
【０１０１】
【数１８】
2008107413.tif 000020
ＬＦＥチャンネルは、重低音用のチャンネルであり、話速変換処理のための類似波形長検出には適さない場合があるが、（３０）式の比率のようにＬＦＥチャンネルの重み付けを０にすることにより、その影響を防ぐことができる。
【０１０２】
また、ＬＦＥを使わず、更に、効果音用として用いられることが多いサラウンドチャンネルの重みを低くする場合は、（３１）式の比率に設定してもよい。
【０１０３】
【数１９】
2008107413.tif 000021
類似波形長検出部３３は、増幅部（Ａ１〜Ａ６）２７〜３２で重み付けされた各オーディオ信号に対して別々に差の自乗の総和（自乗誤差）を求める。
【０１０４】
【数２０】
2008107413.tif 000022
ここで、ｆＬｆはＬｆチャンネルのサンプル値、ｆＣはＣチャンネルのサンプル値、ｆＲｆはＲｆチャンネルのサンプル値、ｆＬｓはＬｓチャンネルのサンプル値、ｆＲｓはＲｓチャンネルのサンプル値、及びｆＬＦＥはＬＦＥチャンネルのサンプル値である。また、ＤＬｆ（ｊ）はＬｆチャンネルにおける２つの波形（区間）のサンプル値の差の自乗の総和（自乗誤差）であり、他のチャンネルについても同様である。
【０１０５】
続いて、ＤＬｆ（ｊ）、ＤＣ（ｊ）、ＤＲｆ（ｊ）、ＤＬｓ（ｊ）、ＤＲｓ（ｊ）及びＤＬＦＥ（ｊ）を加算したものを関数Ｄ（ｊ）とする。
【０１０６】
【数２１】
2008107413.tif 000023
この関数Ｄ（ｊ）を最小にするｊを求めて、Ｗ＝ｊとおく。この類似波形長Ｗをマルチチャンネル信号の各チャンネル共通の類似波形長と見なす。類似波形長検出部３３で求まった類似波形長Ｗは、各チャンネルの話速変換ユニット２１〜２６に渡され、バッファ操作や接続波形生成に利用される。各話速変換ユニット２１〜２６で生成された話速変換処理後のオーディオ信号は出力オーディオ信号として、話速変換装置２０から出力される。
【０１０７】
このように入力オーディオ信号の２つの区間の類似度の計算を行なう前に、各チャンネルの振幅の調整を行うことにより、類似波形長検出に利用されるチャンネルの影響度を重み付けでき、各チャンネルに位相差がある波形が含まれていても、その位相差による影響を受けることなく、より正確に類似波形長を検出することができる。
【０１０８】
図２０は、図１９に示す各話速変換ユニット２１〜２６の構成例を示すブロック図である。すなわち、図１に示すＬチャンネルの入力オーディオ信号を処理する入力バッファＬ１１と接続波形生成部Ｌ１３と出力バッファＬ１４とをまとめたものである。処理すべき入力オーディオ信号はまず、入力バッファ４１にバッファリングされる。入力バッファ４１のオーディオ信号に対して、類似波形長Ｗを検出するため、入力バッファ４１は、図１９に示す類似波形長検出部３３にオーディオ信号を出力し、検出された類似波形長Ｗを類似波形長検出部３３から取得する。そして、入力バッファ４１は、入力オーディオ信号の中からオーディオ信号２Ｗサンプルを接続波形生成部４３に渡す。接続波形生成部４３は、受け取った２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルにする。入力バッファ４１及び接続波形生成部４３は、話速変換率Ｒに合わせて出力バッファ４４にオーディオ信号を送る。出力バッファ４４に生成されたオーディオ信号は、出力オーディオ信号として話速変換ユニット２１〜２６から出力される。
【０１０９】
図１９に示す構成例における類似波形長検出部３３の処理は、図２に示す処理と同様であり、そのサブルーチンは、図２１に示す通りである。つまり、図３に示す複数の波形の類似度を計る関数Ｄ（ｊ）を計算するサブルーチンが図２１に示すものに変更される。
【０１１０】
図２１に示すサブルーチンの処理の流れは、次の通りである。ステップＳ８１では、インデックスｉを０にリセットし、変数ｓＬｆ、変数ｓＣ、変数ｓＲｆ、変数ｓＬｓ、変数ｓＲｓ、変数ｓＬＦＥを０にリセットする。ステップＳ８２では、インデックスｉがインデックスｊより小さいか否か調べ、インデックスｉがインデックスｊより小さい場合は、ステップＳ８３に進み、インデックスｉがインデックスｊ以上の場合は、ステップＳ８５に進む。ステップＳ８３では、上記（３２）〜（３７）式のように、Ｌｆチャンネルの信号の差の自乗を求めて変数ｓＬｆに加算し、Ｃチャンネルの信号の差の自乗を求めて変数ｓＣに加算し、Ｒｆチャンネルの信号の差の自乗を求めて変数ｓＲｆに加算し、Ｌｓチャンネルの信号の差の自乗を求めて変数ｓＬｓに加算し、Ｒｓチャンネルの信号の差の自乗を求めて変数ｓＲｓに加算し、ＬＦＥチャンネルの信号の差の自乗を求めて変数ｓＬＦＥに加算する。ステップＳ８４では、インデックスｉを１増加させ、ステップＳ８２に戻る。ステップＳ８５では、変数ｓＬｆ、変数ｓＣ、変数ｓＲｆ、変数ｓＬｓ、変数ｓＲｓ、変数ｓＬＦＥの値をそれぞれインデックスｊで割った値を加算し、その加算値を関数Ｄ（ｊ）の値としてサブルーチンを終了する。
【０１１１】
なお、図１９〜図２１を用いて説明したオーディオ信号の伸張圧縮方法では、マルチチャンネル信号の各チャンネルの重み付けを調整するために、図１９に示す増幅部（Ａ１〜Ａ６）２７〜３２を用いたが、これに限られるものではなく、重み係数を１にし、代わりに、図２１のステップＳ８５において各変数（変数ｓＬｆ、変数ｓＣ、変数ｓＲｆ、変数ｓＬｓ、変数ｓＲｓ、変数ｓＬＦＥ）に適切な係数を掛けることにより同様な効果が得るようにしてもよい。つまり、Ｃ１〜Ｃ６を係数とするとき、ステップＳ８５における加算を次のように変更する。
【０１１２】
【数２２】
2008107413.tif 000024
また、このことは、上記（３８）式を次のように変更することになる。
【０１１３】
【数２３】
2008107413.tif 000025
このように、２つの区間の類似波形長を検出する際に各チャンネルの類似度を調整するようにしても構わない。
【０１１４】
また、上述の説明では、各チャンネルの関数Ｄ（ｊ）の定義例として、差の自乗の総和（自乗誤差）を用いたが、差の絶対値の総和であっても構わない。また、各チャンネルの関数Ｄ（ｊ）を相関係数の総和で定義し、全チャンネルの相関係数の総和を最大にするｊをＷとする構成でも構わない。つまり、２つの波形の類似度を計れればよく、上記関数に限定されるものではない。
【０１１５】
例えば、差の絶対値の総和を各チャンネルの関数Ｄ（ｊ）の定義として用いる場合、上記（１３）式及び（１４）式の代わりに、次の式を用いてもよい。
【０１１６】
【数２４】
2008107413.tif 000026
また、各チャンネルの関数Ｄ（ｊ）を相関係数の総和で定義する場合、（１３）式の代わりに次の式を用いてもよい。
【０１１７】
【数２５】
2008107413.tif 000027
また、上記（１４）式についても同様な計算を行うことにより、各チャンネルの関数Ｄ（ｊ）を相関係数の総和で定義することができる。
【０１１８】
さらに、各チャンネルの関数Ｄ（ｊ）を相関係数の総和で定義する場合、相関係数は−１〜１の範囲の値であり、１に近いほど類似度が高いので、図２、図９及び図１７に示す変数ｍｉｎを変数ｍａｘと改め、図２に示すステップＳ１７、図９に示すステップＳ３７及び図１７に示すステップＳ６７を下記（４９）式のように変更する。
【０１１９】
【数２６】
2008107413.tif 000028
また、上述の説明において、マルチチャンネルの例では、５．１チャンネルの例を示したが、これに限るものではなく、７．１チャンネルや９．１チャンネルなど、２チャンネル以上のチャンネル数であってもよい。
【０１２０】
また、上述の説明では、従来のＰＩＣＯＬＡに本発明に係る類似波形長検出方法を適用させたが、本発明の方法は、これに限るものではなく、他のＯＬＡ（OverLap and Add）系のアルゴリズム等、類似波形長検出処理を伴う時間軸上の話速変換アルゴリズムにも適用可能である。また、ＰＩＣＯＬＡは、サンプリング周波数を一定とする場合には話速変換となり、サンプル数の増減に合わせてサンプリング周波数を変える場合はピッチシフトとなることから、本発明も、話速変換に限らず、ピッチシフトにも適用可能である。また、勿論、話速変換を応用した波形補間や補外にも適用可能である。
【図面の簡単な説明】
【０１２１】
【図１】本発明の第１の実施形態におけるオーディオ信号伸張圧縮装置の構成を示すブロック図である。
【図２】類似波形長検出部の処理の流れを示すフローチャートである。
【図３】関数Ｄ（ｊ）を計算するサブルーチンの処理の流れを示すフローチャートである。
【図４】本発明を適用した場合の波形伸張例を示す模式図である。
【図５】サンプリング周波数が４４．１ｋＨｚで約６２４ミリ秒のステレオ信号の実波形例を示す図である。
【図６】従来の構成例によって類似波形長を求めた結果を示す図である。
【図７】本発明を適用して類似波形長を求めた結果を示す図である。
【図８】類似波形長を求めるために関数ＤＬ（ｊ）、関数ＤＲ（ｊ）及び関数ＤＬ（ｊ）＋ＤＲ（ｊ）を利用した場合の結果を示す図である。
【図９】類似波形長検出部の他の処理（その１）の流れを示すフローチャートである。
【図１０】第１の区間の信号と第２の区間の信号の相関係数を求めるサブルーチンCの処理の流れを示すフローチャートである。
【図１１】平均値を求める処理を示すフローチャートである。
【図１２】入力波形例を示す図である。
【図１３】区間長ｊに対する関数Ｄ（ｊ）及び相関係数を示すグラフである。
【図１４】第１の区間Ａと第２の区間Ｂの変化の様子を示す模式図である。
【図１５】同相波形同士による波形伸張の様子を示す図である。
【図１６】逆相波形同士による波形伸張の様子を示す図である。
【図１７】類似波形長検出部の他の処理（その２）の流れを示すフローチャートである。
【図１８】信号のエネルギーを求めるサブルーチンEの処理の流れを示すフローチャートである。
【図１９】マルチチャンネル信号を伸張圧縮するオーディオ信号伸張圧縮装置の構成例を示すブロック図である。
【図２０】各話速変換ユニットの構成例を示すブロック図である。
【図２１】関数Ｄ（ｊ）を計算するサブルーチンの処理の流れを示すフローチャートである。
【図２２】ＰＩＣＯＬＡを用いて原波形を伸張する例を示す模式図である。
【図２３】類似波形である区間Ａと区間Ｂの区間長Ｗを検出する方法を示す模式図である。
【図２４】任意の長さに波形を伸張する方法を示す模式図である。
【図２５】ＰＩＣＯＬＡを用いて原波形を圧縮する例を示す模式図である。
【図２６】任意の長さに波形を圧縮する方法を示す模式図である。
【図２７】ＰＩＣＯＬＡの波形伸張の処理の流れを示すフローチャートである。
【図２８】ＰＩＣＯＬＡの波形圧縮の処理の流れを示すフローチャートである。
【図２９】ＰＩＣＯＬＡによる話速変換装置の構成の一例を示すブロック図である。
【図３０】モノラル信号に対する類似波形長検出部の処理の流れを示すフローチャートである。
【図３１】モノラル信号に対する関数Ｄ（ｊ）を計算するサブルーチンの処理の流れを示すフローチャートである。
【図３２】ステレオ信号に対してＰＩＣＯＬＡを適用する場合の従来の構成例を示すブロック図である。
【図３３】ステレオ信号に対してＰＩＣＯＬＡを適用する場合の従来の他の構成例を示すブロック図である。
【図３４】従来の構成例における処理の流れを示すフローチャートである。
【図３５】ステレオ信号に対してＰＩＣＯＬＡを適用する場合の従来の他の構成例を示すブロック図である
【図３６】左右のチャンネルの信号の位相差の違いによる変化を説明するための模式図である。
【図３７】左右のチャンネルに同一周波数で１８０度の位相差がある場合の問題を説明するための模式図である。
【図３８】左右のチャンネルに同一周波数で１８０度の位相差がある信号を波形伸張を行なった場合の結果を示す模式図である。
【符号の説明】
【０１２２】
１０  オーディオ信号伸張圧縮装置、１１  入力バッファL、１２  類似波形長検出部、１３  接続波形生成部L、１４  出力バッファL、１５  入力バッファR、１７  接続波形生成部R、１８  出力バッファR、２１〜２６  話速変換ユニット、２７〜３２  増幅部、３３  類似波形長検出部
【図１】
2008107413.tif 000029
【図２】
2008107413.tif 000030
【図３】
2008107413.tif 000031
【図４】
2008107413.tif 000032
【図５】
2008107413.tif 000033
【図６】
2008107413.tif 000034
【図７】
2008107413.tif 000035
【図８】
2008107413.tif 000036
【図９】
2008107413.tif 000037
【図１０】
2008107413.tif 000038
【図１１】
2008107413.tif 000039
【図１２】
2008107413.tif 000040
【図１３】
2008107413.tif 000041
【図１４】
2008107413.tif 000042
【図１５】
2008107413.tif 000043
【図１６】
2008107413.tif 000044
【図１７】
2008107413.tif 000045
【図１８】
2008107413.tif 000046
【図１９】
2008107413.tif 000047
【図２０】
2008107413.tif 000048
【図２１】
2008107413.tif 000049
【図２２】
2008107413.tif 000050
【図２３】
2008107413.tif 000051
【図２４】
2008107413.tif 000052
【図２５】
2008107413.tif 000053
【図２６】
2008107413.tif 000054
【図２７】
2008107413.tif 000055
【図２８】
2008107413.tif 000056
【図２９】
2008107413.tif 000057
【図３０】
2008107413.tif 000058
【図３１】
2008107413.tif 000059
【図３２】
2008107413.tif 000060
【図３３】
2008107413.tif 000061
【図３４】
2008107413.tif 000062
【図３５】
2008107413.tif 000063
【図３６】
2008107413.tif 000064
【図３７】
2008107413.tif 000065
【図３８】
2008107413.tif 000066