(57)【要約】【課題】良好な音質を得ることができるオーディオ信号伸張圧縮方法及び装置を提供する。【解決手段】オーディオ信号内の類似する２つの類似波形を検出するための第１の比較区間と第２の比較区間の信号比較長の初期値を検出最短波長以上に設定し、第１の比較区間と第２の比較区間とのずらし量を信号比較長以下となるように変化させ、類似波形の区間長を求め、類似波形の区間長に基づいてオーディオ信号を時間領域で伸張圧縮する。【選択図】図２
2007304515.tif 000002
【特許請求の範囲】
【請求項１】
オーディオ信号を時間軸領域で伸張圧縮するオーディオ信号伸張圧縮方法において、
上記オーディオ信号内の類似する２つの類似波形を検出するための第１の比較区間と第２の比較区間の信号比較長の初期値を検出最短波長以上に設定し、
上記第１の比較区間と上記第２の比較区間とのずらし量を上記信号比較長以下となるように変化させ、上記類似波形の区間長を求め、
上記類似波形の区間長に基づいて上記オーディオ信号を時間領域で伸張圧縮することを特徴とするオーディオ信号伸張圧縮方法。
【請求項２】
上記信号比較長の初期値は、上記オーディオ信号の音源に応じて設定されることを特徴とする請求項１記載のオーディオ信号伸張圧縮方法。
【請求項３】
上記信号比較長は、上記ずらし量と検出最長波長の平均であることを特徴とする請求項１記載のオーディオ信号伸張圧縮方法。
【請求項４】
上記オーディオ信号の音響信号らしさを示す音響度を求め、
上記音響度に基づいて上記信号比較長の初期値を設定することを特徴とする請求項１記載のオーディオ信号伸張圧縮方法。
【請求項５】
オーディオ信号を時間軸領域で伸張圧縮するオーディオ信号伸張圧縮装置において、
上記オーディオ信号内の類似する２つの類似波形を検出するための第１の比較区間と第２の比較区間の信号比較長の初期値を検出最短波長以上に設定し、
上記第１の比較区間と上記第２の比較区間とのずらし量を上記信号比較長以下となるように変化させ、上記類似波形の区間長を求め、
上記類似波形の区間長に基づいて上記オーディオ信号を時間領域で伸張圧縮することを特徴とするオーディオ信号伸張圧縮装置。
【請求項６】
上記信号比較長の初期値は、上記オーディオ信号の音源に応じて設定されることを特徴とする請求項５記載のオーディオ信号伸張圧縮装置。
【請求項７】
上記信号比較長は、上記ずらし量と検出最長波長の平均であることを特徴とする請求項５記載のオーディオ信号伸張圧縮装置。
【請求項８】
上記オーディオ信号の音響信号らしさを示す音響度を求め、
上記音響度に基づいて上記信号比較長の初期値を設定することを特徴とする請求項５記載のオーディオ信号伸張圧縮装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音楽等の再生速度を変化させるためのオーディオ信号伸張圧縮方法及び装置に関するものである。
【背景技術】
【０００２】
デジタル音声信号に対する時間領域での伸張圧縮アルゴリズムとしてＰＩＣＯＬＡ（Pointer Interval Control OverLap and Add）が知られている。このアルゴリズムは、処理が単純かつ軽量でありながら、音声信号に対して良好な音質が得られるという利点がある。以下、図を参照して、このＰＩＣＯＬＡについて簡単に説明する。以下、本明細書では、音楽等に含まれる音声以外の信号を音響信号と呼び、音声信号と音響信号を合わせてオーディオ信号と呼ぶこととする。
【０００３】
図１３は、ＰＩＣＯＬＡを用いて原波形を伸張する例を示している。まず、原波形（ａ）から波形がよく似ている区間Ａと区間Ｂを見つける。区間Ａと区間Ｂのサンプル数は同じである。続いて、区間Ｂでフェードアウトする波形（ｂ）を作る。同様に、区間Ａからフェードインする波形（ｃ）を作り、波形（ｂ）と波形（ｃ）を足し合わせることにより、伸張波形（ｄ）を得る。このように、フェードアウトする波形とフェードインする波形を足し合わせることをクロスフェードと呼ぶ。区間Ａと区間Ｂのクロスフェード区間を区間ＡｘＢと表すこととすると、以上の操作を行なうことにより、区間Ａと区間Ｂは、区間Ａと区間ＡｘＢと区間Ｂとに変更され、伸張されたことになる。
【０００４】
図１４は、類似波形である区間Ａと区間Ｂの区間長Ｗを検出する方法を示す模式図である。まず。処理開始位置Ｐ０を起点として、ｊサンプルの区間Ａと区間Ｂを図１４（ａ）のように定める。図１４（ａ）→図１４（ｂ）→図１４（ｃ）のように少しずつｊを伸ばしながら区間Ａと区間Ｂが最も類似するｊを求める。類似度を測る尺度として、例えば、次の関数Ｄ（ｊ）を使うことができる。
【０００５】
【数１】
2007304515.tif 000003
【０００６】
ＷＭＩＮ≦ｊ≦ＷＭＡＸの範囲でＤ（ｊ）を計算し、Ｄ（ｊ）が最も小さな値となるｊを求める。このときのｊが、区間Ａと区間Ｂの区間長Ｗである。ここで、ｘ（ｉ）は、区間Ａの各サンプル値を示し、ｙ（ｉ）は、区間Ｂの各サンプル値を示す。また、ＷＭＡＸとＷＭＩＮは、例えば５０Ｈｚ〜２５０Ｈｚ程度の値であり、サンプリング周波数が８ｋＨｚであれば、ＷＭＡＸ＝１６０、ＷＭＩＮ＝３２程度である。図１４の例では、（ｂ）におけるｊが関数Ｄ（ｊ）を最も小さくするｊとして選ばれる。
【０００７】
この類似波形の区間長Ｗを求める際に、上記関数Ｄ（ｊ）を利用することは重要である。この関数は、最も似ている区間を探すものであり、クロスフェード区間を決定するための前処理に特化したものである。また、この処理は、ホワイトノイズのようにピッチを持たない波形であっても適用可能である。
【０００８】
図１５は、任意の長さに波形を伸張する方法を示す模式図である。まず、図１４で示したように処理開始位置Ｐ０を起点として関数Ｄ（ｊ）が最小となるｊを求め、Ｗ＝ｊとおく。続いて、図１５に示すように区間１４０１を区間１４０３にコピーし、区間１４０１と区間１４０２のクロスフェード波形を区間１４０４に作成する。そして、原波形（ａ）の位置Ｐ０から位置Ｐ０’までの区間から区間１４０１を除いた残りの区間を伸張波形（ｂ）にコピーする。以上の操作により、原波形（ａ）の位置Ｐ０から位置Ｐ０’までのＬサンプルが伸張波形（ｂ）ではＷ＋Ｌサンプルとなり、サンプル数はｒ倍となる。
【０００９】
【数２】
2007304515.tif 000004
【００１０】
この式をＬについて書き換えると、（３）式となり、原波形（ａ）のサンプル数をｒ倍したい場合は、（４）式のように位置Ｐ０’を定めれば良いことが分かる。
【００１１】
【数３】
2007304515.tif 000005
【００１２】
更に、１／ｒを（５）式のように置くと、（６）式となる。
【００１３】
【数４】
2007304515.tif 000006
【００１４】
このようにＲを使うことにより、原波形（ａ）を「Ｒ倍速再生する」といった表現をすることができる。以下ではこのＲを話速変換率と呼ぶこととする。なお、図１５の例では、サンプル数Ｌがおおよそ２．５Ｗであるので、約０．７倍速再生の遅聴に相当する。
【００１５】
原波形（ａ）の位置Ｐ０から位置Ｐ０’の処理が終了したら、位置Ｐ０’を位置Ｐ１とし、改めて処理の起点と見なして同様の処理を繰り返す。
【００１６】
続いて、原波形の圧縮について説明する。図１６は、ＰＩＣＯＬＡを用いて原波形を圧縮する例を示している。まず、原波形（ａ）から、波形がよく似ている区間Ａと区間Ｂを見つける。区間Ａと区間Ｂのサンプル数は同じである。続いて、区間Ａでフェードアウトする波形（ｂ）を作る。同様に、区間Ｂからフェードインする波形（ｃ）を作り、波形（ｂ）と波形（ｃ）を足し合わせると、圧縮波形（ｄ）が得られる。以上の操作を行なうことにより、区間Ａと区間Ｂは、区間ＡｘＢに変更される。
【００１７】
図１７は、任意の長さに波形を圧縮する方法を示している。まず、図１４で示したように処理開始位置Ｐ０を起点として関数Ｄ（ｊ）が最小となるｊを求め、Ｗ＝ｊとおく。続いて、図１７に示すように区間１６０１と区間１６０２のクロスフェード波形を区間１６０３に作成する。そして、原波形（ａ）の位置Ｐ０から位置Ｐ０’までの区間から区間１６０１と区間１６０２を除いた残りの区間を圧縮波形（ｂ）にコピーする。以上の操作により、原波形（ａ）の位置Ｐ０から位置Ｐ０’までのＷ＋Ｌサンプルが圧縮波形（ｂ）ではＬサンプルとなり、サンプル数はｒ倍となる。
【００１８】
【数５】
2007304515.tif 000007
【００１９】
この（７）式をＬについて書き換えると、（８）式となり、原波形（ａ）のサンプル数をｒ倍する場合は、（９）式のように位置Ｐ０’を定めればよい。
【００２０】
【数６】
2007304515.tif 000008
【００２１】
更に、１／ｒを（１０）式のように置くと、（１１）式となる。
【００２２】
【数７】
2007304515.tif 000009
【００２３】
このようにＲを使うことにより、原波形（ａ）を「Ｒ倍速再生する」といった表現をすることができる。原波形（ａ）の位置Ｐ０から位置Ｐ０’の処理が終了したら、位置Ｐ０’を位置Ｐ１とし、改めて処理の起点と見なして同様の処理を繰り返す。
【００２４】
図１７の例は、サンプル数Ｌがおおよそ１．５Ｗであるので、約１．７倍速再生の速聴に相当する。
【００２５】
図１８は、ＰＩＣＯＬＡにおける波形伸張の処理の流れを示すフローチャートである。ステップＳ１００１では、入力バッファに処理すべきオーディオ信号があるか否かを調べ、オーディオ信号がない場合は処理を終了する。処理すべきオーディオ信号がある場合は、ステップＳ１００２に進み、処理開始位置Ｐを起点として関数Ｄ（ｊ）が最小になるｊを求め、Ｗ＝ｊとおく。ステップＳ１００３では、ユーザが指定した話速変換率ＲからＬを求め、ステップＳ１００４では、処理開始位置ＰからＷサンプル分の区間Ａを出力バッファに出力する。ステップＳ１００５では、処理開始位置ＰからＷサンプル分の区間Ａと次のＷサンプル分の区間Ｂのクロスフェードを求め、区間Ｃとし、ステップＳ１００６において、この区間Ｃを出力バッファに出力する。ステップＳ１００７では、入力バッファの位置Ｐ＋ＷからＬ−Ｗサンプル分を出力バッファに出力（コピー）する。ステップＳ１００８では、処理開始位置ＰをＰ＋Ｌに移動させ、ステップＳ１００１に戻り処理を繰り返す。
【００２６】
図１９は、ＰＩＣＯＬＡにおける波形圧縮の処理の流れを示すフローチャートである。ステップＳ１１０１では、入力バッファに処理すべきオーディオ信号があるか否かを調べ、オーディオ信号がない場合は処理を終了する。処理すべきオーディオ信号がある場合は、ステップＳ１１０２に進み、処理開始位置Ｐを起点として関数Ｄ（ｊ）が最小になるｊを求め、Ｗ＝ｊとおく。ステップＳ１１０３では、ユーザが指定した話速変換率ＲからＬを求める。ステップＳ１１０４では、処理開始位置ＰからＷサンプル分の区間Ａと次のＷサンプル分の区間Ｂのクロスフェードを求め、区間Ｃとし、ステップＳ１１０５において、この区間Ｃを出力バッファに出力する。ステップＳ１１０６では、入力バッファの位置Ｐ＋２ＷからＬ−Ｗサンプル分を出力バッファに出力（コピー）する。ステップＳ１１０７では、処理開始位置ＰをＰ＋（Ｗ＋Ｌ）に移動してから、ステップＳ１１０１に戻り処理を繰り返す。
【００２７】
図２０は、ＰＩＣＯＬＡによる話速変換装置１００の構成の一例である。処理すべき入力オーディオ信号はまず入力バッファ１０１にバッファリングされる。この入力バッファ１０１のオーディオ信号に対して、類似波形長抽出部１０２が、関数Ｄ（ｊ）を最小にするｊを求めて、Ｗ＝ｊとおく。類似波形長抽出部１０２で求まった区間長Ｗは、入力バッファ１０１に渡され、バッファ操作に利用される。類似波形長抽出部１０２は、オーディオ信号２Ｗサンプルを接続波形生成部１０３に渡す。接続波形生成部１０３は、受け取った２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルにする。話速変換率Ｒに合わせて入力バッファ１０１と接続波形生成部１０３から出力バッファ１０４にオーディオ信号を送る。出力バッファ１０４に生成されたオーディオ信号は、出力オーディオ信号として、話速変換装置から出力される。
【００２８】
ここで、話速変換アルゴリズムＰＩＣＯＬＡによる類似波形長抽出処理について、図２１及び図２２に示すフローチャートを参照して説明する。ステップＳ１２０１では、インデックスｊに初期値ＷＭＩＮをセットする。ステップＳ１２０２では、サブルーチンを実行する。サブルーチンでは、類似度を測る尺度として（１２）式に示す関数Ｄ（ｊ）を計算する。
【００２９】
【数８】
2007304515.tif 000010
【００３０】
ここで、ｆ（ｊ）は、入力オーディオ信号であり、例えば、図１４に示す例であれば、位置Ｐ０を起点としたサンプルを指す。なお、（１）式と（１２）式は同じことを表現している。以下では（１２）式の形式を用いる。
【００３１】
ステップＳ１２０３では、サブルーチンで求まった関数Ｄ（ｊ）の値を変数ｍｉｎに代入し、インデックスｊをＷに代入する。ステップＳ１２０４では、インデックスｊを１増加させる。ステップＳ１２０５では、インデックスｊがＷＭＡＸ以下か否か調べ、ＷＭＡＸ以下の場合はステップＳ１２０６に進み、ＷＭＡＸより大きい場合は、処理を終了する。
【００３２】
処理を終了したときに変数Ｗに格納されていた値が、関数Ｄ（ｊ）を最小にするインデックスｊ、つまり、類似波形長であり、そのときの変数ｍｉｎの値は関数Ｄ（ｊ）の最小値である。
【００３３】
ステップＳ１２０６では、サブルーチンにて、新たなインデックスｊに対して関数Ｄ（ｊ）を求める。ステップＳ１２０７では、ステップＳ１２０６で求まった関数Ｄ（ｊ）の値がｍｉｎ以下か否か調べ、ｍｉｎ以下の場合は、ステップＳ１２０８に進み、ｍｉｎより大きい場合は、ステップＳ１２０４に戻る。ステップＳ１２０８では、関数Ｄ（ｊ）の値を変数ｍｉｎに代入し、インデックスｊをＷに代入する。
【００３４】
サブルーチンの処理の流れは、図２２に示す通りである。ステップＳ１２０９では、インデックスｉと変数ｓを０にリセットする。ステップＳ１２１０では、インデックスｉがインデックスｊより小さいか否か調べ、小さい場合は、ステップＳ１２１１に進み、インデックスｉがインデックスｊ以上の場合は、ステップＳ１２１３に進む。ステップＳ１２１１では、入力オーディオ信号の差分の自乗を求めて変数ｓに加算する。
【００３５】
【数９】
2007304515.tif 000011
【００３６】
ステップＳ１２１２では、インデックスｉを１増加させ、ステップＳ１２１０に戻る。ステップＳ１２１３では、変数ｓをインデックスｊで割った値を関数Ｄ（ｊ）の値としてサブルーチンを終了する。
【００３７】
【数１０】
2007304515.tif 000012
【００３８】
図２３は、図２１及び図２２で説明した類似波形長抽出処理の様子を説明するための図である。この例では、ＷＭＩＮ＝３とし、ＷＭＡＸ＝１０としている。インデックスｊを３から１０まで順に１ずつ増加させながら関数Ｄ（ｊ）を求める。関数Ｄ（ｊ）は、類似波形であるときに小さな値となる関数であるので、ｊ＝８のときに最小値をとり、Ｗ＝８となる。
【００３９】
以上のように、話速変換アルゴリズムＰＩＣＯＬＡでは、類似波形長を抽出することにより、任意の話速変換率Ｒ（０．５≦Ｒ＜１．０，１．０＜Ｒ≦２．０）でオーディオ信号を伸張圧縮させることができる。
【００４０】
【非特許文献１】森田，板倉，「ポインター移動量制御による重複加算法（ＰＩＣＯＬＡ）を用いた音声の時間軸での伸張圧縮とその評価」，日本音響学会論文集，昭和６１年１０月，ｐｐ．１４９−１５０
【発明の開示】
【発明が解決しようとする課題】
【００４１】
しかしながら、従来のＰＩＣＯＬＡでは、音声信号に対しては良好な音質が得られるものの、音楽等の音響信号に対しては良好な音質が得られ難いという問題が生じることがある。これは、一般に音楽に様々な楽器の音が含まれるため、音響信号にも様々な周波数の波形が重なるからである。
【００４２】
図２４は、サンプリング周波数４４．１ｋＨｚ、８４８ｍ秒の音響信号の波形例であり、図２５は、図２４に示す波形例に対して、上記（１２）式の関数Ｄ（ｊ）により類似区間を抽出した結果を示す。まず波形の先頭位置２４０１を起点として関数Ｄ（ｊ）が最小となるｊを求めてＷ＝ｊとおき、位置２４０１からＷサンプル目を位置２４０２とする。続いて、同様に位置２４０２を起点として関数Ｄ（ｊ）が最小となるｊを求めてＷ＝ｊとおき、位置２４０２からＷサンプル目を位置２４０３とする。位置２４０４も同様に求めた位置であり、以下同じ操作を波形の最後まで行なう。
【００４３】
図２５には、関数Ｄ（ｊ）の値の不具合が現れている。区間１の先頭は間隔が狭く、先頭以外はそれより広い間隔であり、かつ、ほぼ均一である。区間２も先頭は区間１同様間隔が狭いが、先頭以外は大体広い間隔になっているものの、間隔が不均一である。ここで注目するべき点は、区間１では、先頭以外の部分の間隔がほぼ均一に揃っているのに対して、区間２の先頭以外の部分の間隔が不均一になっている点である。ＰＩＣＯＬＡでは、この間隔Ｗを基準にして波形の伸張圧縮を行なうため、間隔Ｗ（類似波形長）に区間２のようなブレがある場合、伸張圧縮後の波形に異音を発生させる可能性が生じてしまう。勿論、ここで問題になるのは、本来間隔Ｗがほぼ均一であるべき波形において、検出結果が不均一になってしまう場合である。
【００４４】
類似波形長Ｗの値にブレが発生する主な理由は、関数Ｄ（ｊ）の計算に用いるサンプル数がｊによって異なるところにあると考えられる。図２３の例で考えると、インデックスｊ＝３の場合、３サンプル＋３サンプルの合計６サンプルで関数Ｄ（ｊ）が計算される。対して、インデックスｊ＝１０の場合、１０サンプル＋１０サンプルの合計２０サンプルで関数Ｄ（ｊ）が計算される。このように、使用するサンプル数が異なると、ｊ＝１０のようにサンプル数が多い場合は、正確に検出できるものの、ｊ＝３のようにサンプル数が少ない場合は、関数Ｄ（ｊ）の値が偶然小さくなってしまう場合がある。
【００４５】
関数Ｄ（ｊ）の定義式は、（１２）式に示すように差分値の自乗の相加平均を求める。一般に、ｎ個の確率変数Ｘ１，Ｘ２，・・・，Ｘｎが同一の確率分布に従い、これらの期待値をμ、分散をσ＾２とするとき、相加平均Ｘ’の期待値Ｅ（Ｘ’）と分散Ｖ（Ｘ’）は、次式のようになる。
【００４６】
【数１１】
2007304515.tif 000013
【００４７】
このことから、ｎが増加すると、分散はｎに反比例して減少することが分かる。例えば、ｎ＝１６０（＝ＷＭＡＸ）の場合、ｎ＝３２（＝ＷＭＩＮ）の場合に比べて分散が１／５になる。言い換えると、ｎ＝３２の場合、ｎ＝１６０の場合に比べて分散が５倍になり、ノイズ等の影響をそれだけ受け易い状態になっているといえる。つまり、従来の方法では、ｎによってノイズ等の影響の受け易さが大きく異なってしまっていた。
【００４８】
また、一般のオーディオ信号は複雑な波形をしているため、小さなｊで関数Ｄ（ｊ）の値が偶然小さくなることがよく起こる。小さなｊで関数Ｄ（ｊ）の値が偶然小さくなってしまった場合、聴覚的に異音を感じる結果となる。これは、音声信号の波形の変化は激しいが、音響信号の波形はある程度定常的になることが多いためである。
【００４９】
本発明は、これらの問題点を鑑みてなされたものであり、良好な音質を得ることができるオーディオ信号伸張圧縮方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【００５０】
上述した課題を解決するために、本発明は、オーディオ信号を時間軸領域で伸張圧縮するオーディオ信号伸張圧縮方法において、上記オーディオ信号内の類似する２つの類似波形を検出するための第１の比較区間と第２の比較区間の信号比較長の初期値を検出最短波長以上に設定し、上記第１の比較区間と上記第２の比較区間とのずらし量を上記信号比較長以下となるように変化させ、上記類似波形の区間長を求め、上記類似波形の区間長に基づいて上記オーディオ信号を時間領域で伸張圧縮することを特徴としている。
【００５１】
また、本発明は、オーディオ信号を時間軸領域で伸張圧縮するオーディオ信号伸張圧縮装置において、上記オーディオ信号内の類似する２つの類似波形を検出するための第１の比較区間と第２の比較区間の信号比較長の初期値を検出最短波長以上に設定し、上記第１の比較区間と上記第２の比較区間とのずらし量を上記信号比較長以下となるように変化させ、上記類似波形の区間長を求め、上記類似波形の区間長に基づいて上記オーディオ信号を時間領域で伸張圧縮することを特徴としている。
【発明の効果】
【００５２】
本発明によれば、オーディオ信号内の類似する２つの類似波形を検出するための第１の比較区間と第２の比較区間の信号比較長の初期値を検出最短波長以上に設定し、第１の比較区間と第２の比較区間とのずらし量を信号比較長以下となるように変化させ、類似波形の区間長を求めることにより、良好な音質を得ることができる。
【発明を実施するための最良の形態】
【００５３】
以下、本発明の具体的な実施の形態について、図面を参照しながら詳細に説明する。本具体例として示すオーディオ信号伸張圧縮方法は、オーディオ信号内の２つの類似波形を検出するための類似度を測る尺度として用いる関数Ｄ（ｊ）の値が、小さな区間ｊで偶然小さくなってしまうことを軽減するものである。
【００５４】
図１は、本発明の第１の実施形態におけるオーディオ信号伸張圧縮装置の構成を示すブロック図である。オーディオ信号伸張圧縮装置１０は、入力オーディオ信号をバッファリングする入力バッファ１１と、入力バッファ１１のオーディオ信号に対し、類似する波形長（２Ｗサンプル分）を抽出する類似波形長抽出部１２と、２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルの接続波形を生成する接続波形生成部１３と、話速変換率Ｒに応じて入力された入力オーディオ信号と接続波形とからなる出力オーディオ信号を出力する出力バッファ１４とを備えて構成されている。
【００５５】
処理すべき入力オーディオ信号は、入力バッファ１１にバッファリングされる。類似波形長抽出部１２は、後述するように、入力バッファ１１にバッファリングされたオーディオ信号に対して、類似する２つの波形の区間長を抽出する。類似波形長抽出部１２で抽出された類似波形の区間長Ｗは、入力バッファ１１に渡され、バッファ操作に利用される。類似波形長抽出部１２は、オーディオ信号の２Ｗサンプルを接続波形生成部１３に出力する。接続波形生成部１３は、入力した２Ｗサンプルのオーディオ信号をクロスフェードしてＷサンプルにする。入力バッファ１１と接続波形生成部１３は、話速変換率Ｒに合わせて出力バッファ１４にオーディオ信号を出力する。出力バッファ１４にバッファリングされたオーディオ信号は、オーディオ信号伸張圧縮装置１０から出力オーディオ信号として出力される。
【００５６】
ここで、類似波形長抽出部１２における波形長抽出処理について説明する。類似波形長抽出部１２は、図２に示すように入力バッファ１１にバッファリングされたオーディオ信号に対して、処理開始位置Ｐ０を起点として、第１の比較区間と第２の比較区間とを重複させる。また、第１の比較区間と第２の比較区間の信号比較長ＬＥＮを定める。
【００５７】
【数１２】
2007304515.tif 000014
【００５８】
そして、図２に示すように第１の比較区間と第２の比較区間とを少しずつずらしながら、第１の比較区間と第２の比較区間とが最も類似するずらし量であるインデックスｊを求める。類似度を測る尺度として、例えば、次の関数Ｄ（ｊ）を使うことができる。
【００５９】
【数１３】
2007304515.tif 000015
【００６０】
ＷＭＩＮ≦ｊ≦ＷＭＡＸの範囲でＤ（ｊ）を計算し、Ｄ（ｊ）が最も小さな値となるｊを求める。このときのｊが、比較区間で検出された類似波形の区間長Ｗである。ここで、ｆ（ｉ）は、第１の比較区間の各サンプル値を示し、ｆ（ｊ＋ｉ）は、第２の比較区間の各サンプル値を示す。また、ＷＭＡＸとＷＭＩＮは、例えば５０Ｈｚ〜２５０Ｈｚ程度の値であり、サンプリング周波数が８ｋＨｚであれば、ＷＭＡＸ＝１６０、ＷＭＩＮ＝３２程度である。
【００６１】
図２の例では、ＷＭＩＮ＝３とし、ＷＭＡＸ＝１０としている。インデックスｊを３から１０まで順に１ずつ増加させながら関数Ｄ（ｊ）を求める。関数Ｄ（ｊ）は、類似波形であるときに小さな値となるので、ｉ＝８のときに最小値をとる。よって、Ｗ＝８となる。
【００６２】
続いて、類似波形長抽出部１２における処理の流れを図３に示すフローチャートを用いて説明する。ステップＳ１０１では、インデックスｊに初期値ＷＭＩＮをセットする。ステップＳ１０２では、後述するサブルーチンを実行する。サブルーチンでは、類似度を測る尺度として、関数Ｄ（ｊ）を計算する。
【００６３】
ステップＳ１０３では、サブルーチンで求めた関数Ｄ（ｊ）の値を変数ｍｉｎに代入し、インデックスｊをＷに代入する。ステップＳ１０４では、インデックスｊを１増加させる。ステップＳ１０５では、インデックスｊがＷＭＡＸ以下か否か調べ、ＷＭＡＸ以下の場合はステップＳ１０６に進み、ＷＭＡＸより大きい場合は処理を終了する。
【００６４】
処理を終了したときに変数Ｗに格納されていた値が、関数Ｄ（ｊ）を最小にするインデックスｊ、つまり、類似波形長であり、そのときの変数ｍｉｎの値は関数Ｄ（ｊ）の最小値である。
【００６５】
ステップＳ１０６では、サブルーチンにて、新たなインデックスｊに対して関数Ｄ（ｊ）を求める。ステップＳ１０７では、ステップＳ１０６で求まった関数Ｄ（ｊ）の値がｍｉｎ以下か否か調べ、ｍｉｎ以下の場合は、ステップＳ１０８に進み、ｍｉｎより大きい場合は、ステップＳ１０４に戻る。ステップＳ１０８では、関数Ｄ（ｊ）の値を変数ｍｉｎに代入し、インデックスｊをＷに代入する。
【００６６】
また、サブルーチンの処理の流れは、図４に示すフローチャートの通りである。ステップＳ１０９では、インデックスｉと変数ｓを０にリセットする。ステップＳ１１０では、インデックスｉが（ｊ＋ＷＭＡＸ）／２より小さいか否か調べ、小さい場合は、ステップＳ１１１に進み、インデックスｉが（ｊ＋ＷＭＡＸ）／２以上の場合は、ステップＳ１１３に進む。ステップＳ１１１では、入力オーディオ信号の差分の自乗を求めて変数ｓに加算する。ステップＳ１１２では、インデックスｉを１増加させ、ステップＳ１１０に戻る。ステップＳ１１３では、変数ｓを（ｊ＋ＷＭＡＸ）／２で割った値を関数Ｄ（ｊ）の値としてサブルーチンを終了する。
【００６７】
このように、従来、少ないサンプル数で計算されてきた比較区間のサンプル数を増やすことによって、小さなｊでＤ（ｊ）の値が偶然小さくなってしまうという問題を防ぐことができる。例えば、図２に示すように類似波形を検出する場合と図２３に示す従来のように類似波形を検出する場合を比較すると、インデックスｊが小さな値のときに、本発明を適用させた方が長い区間を用いて関数Ｄ（ｊ）の計算を行なっていることが分かる。図２の例では、インデックスｊ＝３のときが最も従来と長さが異なり、インデックスｉ＝１０のときは長さに変わりはない。
【００６８】
図５は、図２４の波形に対して図２に示すような処理を施した結果を示す図ある。図２５に示す従来の処理による結果と比較すると容易に確認できるように、区間２の先頭以外の部分の間隔のブレが大幅に軽減されている。この波形を再生すると、聴覚的にも異音が抑えられることを確認することができる。
【００６９】
次に、第２の実施形態における類似波形長抽出処理について説明する。なお、第１の実施形態におけるオーディオ信号伸張圧縮装置と同様な構成には同一符号を付し、ここでは説明を省略する。
【００７０】
第２の実施形態では、次のようにより長い信号比較長ＬＥＮを設定する。
【００７１】
【数１４】
2007304515.tif 000016
【００７２】
図６は、第２の実施形態における類似波形長抽出処理の様子を説明するための模式図である。この例では、ＷＭＩＮ＝３とし、ＷＭＡＸ＝１０としている。インデックスｊを３から１０まで順に１ずつ増加させながら関数Ｄ（ｊ）を求める。関数Ｄ（ｊ）は、類似波形であるときに小さな値となるので、ｉ＝８のときに最小値をとる。よって、Ｗ＝８となる。
【００７３】
第２の実施形態における類似波形長抽出処理は、図３に示す第１の実施形態における類似波形長抽出処理のフローチャートと同様であり、関数Ｄ（ｊ）を計算するサブルーチンが異なる。
【００７４】
関数Ｄ（ｊ）は、上記（１９）式と同様、次式を用いることができる。
【００７５】
【数１５】
2007304515.tif 000017
【００７６】
そして、ＷＭＩＮ≦ｊ≦ＷＭＡＸの範囲でＤ（ｊ）を計算し、次に説明するサブルーチンにより、Ｄ（ｊ）が最も小さな値となるｊを求める。
【００７７】
図７は、第２の実施形態における類似波形長抽出処理のサブルーチンを示すフローチャートである。ステップＳ２０９では、インデックスｉと変数ｓを０にリセットする。ステップＳ２１０では、インデックスｉがＷＭＡＸより小さいか否か調べ、小さい場合は、ステップＳ２１１に進み、インデックスｉがＷＭＡＸ以上の場合は、ステップＳ２１３に進む。ステップＳ２１１では、入力オーディオ信号の差分の自乗を求めて変数ｓに加算する。ステップＳ２１２では、インデックスｉを１増加させ、ステップＳ２１０に戻る。ステップＳ２１３では、変数ｓをＷＭＡＸで割った値を関数Ｄ（ｊ）の値としてサブルーチンを終了する。
【００７８】
このように、従来、少ないサンプル数で計算されてきた比較区間のサンプル数を増やすことによって、小さなｊでＤ（ｊ）の値が偶然小さくなってしまうという問題を防ぐことができる。例えば、図６に示すように類似波形を検出する場合と図２３に示す従来のように類似波形を検出する場合を比較すると、インデックスｊが小さな値のときに、本発明を適用させた方が長い区間を用いて関数Ｄ（ｊ）の計算を行なっていることが分かる。図６の例では、インデックスｊ＝３のときが最も従来と長さが異なり、インデックスｉ＝１０のときは長さに変わりはない。
【００７９】
次に、第３の実施形態における類似波形長抽出処理について説明する。なお、第１の実施形態におけるオーディオ信号伸張圧縮装置と同様な構成には同一符号を付し、ここでは説明を省略する。
【００８０】
第３の実施形態では、次のようにより長い信号比較長ＬＥＮを設定する。
【００８１】
【数１６】
2007304515.tif 000018
【００８２】
図８は、第３の実施形態における類似波形長抽出処理の様子を説明するための模式図である。この例では、ＷＭＩＮ＝３とし、ＷＭＡＸ＝１０としている。インデックスｊを３から１０まで順に１ずつ増加させながら関数Ｄ（ｊ）を求める。関数Ｄ（ｊ）は、類似波形であるときに小さな値となるので、ｊ＝８のときに最小値をとる。よって、Ｗ＝８となる。
【００８３】
第３の実施形態における類似波形長抽出処理は、図３に示す第１の実施形態における類似波形長抽出処理のフローチャートと同様であり、関数Ｄ（ｊ）を計算するサブルーチンが異なる。
【００８４】
関数Ｄ（ｊ）は、上記（１９）式と同様、次式を用いることができる。
【００８５】
【数１７】
2007304515.tif 000019
【００８６】
そして、ＷＭＩＮ≦ｊ≦ＷＭＡＸの範囲でＤ（ｊ）を計算し、次に説明するサブルーチンにより、Ｄ（ｊ）が最も小さな値となるｊを求める。
【００８７】
図９は、第３の実施形態における類似波形長抽出処理のサブルーチンを示すフローチャートである。ステップＳ３０９では、インデックスｉと変数ｓを０にリセットする。ステップＳ３１０では、インデックスｉが２ＷＭＡＸ−ｊより小さいか否か調べ、小さい場合は、ステップＳ３１１に進み、インデックスｉが２ＷＭＡＸ−ｊ以上の場合は、ステップＳ３１３に進む。ステップＳ３１１では、入力オーディオ信号の差分の自乗を求めて変数ｓに加算する。ステップＳ３１２では、インデックスｉを１増加させ、ステップＳ３１０に戻る。ステップＳ３１３では、変数ｓを２ＷＭＡＸ−ｊで割った値を関数Ｄ（ｊ）の値としてサブルーチンを終了する。
【００８８】
このように、従来、少ないサンプル数で計算されてきた比較区間のサンプル数を増やすことによって、小さなｊでＤ（ｊ）の値が偶然小さくなってしまうという問題を防ぐことができる。例えば、図８に示すように類似波形を検出する場合と図２３に示す従来のように類似波形を検出する場合を比較すると、インデックスｊが小さな値のときに、本発明を適用させた方が長い区間を用いて関数Ｄ（ｊ）の計算を行なっていることが分かる。図８の例では、インデックスｊ＝３のときが最も従来と長さが異なり、インデックスｉ＝１０のときは長さに変わりはない。
【００８９】
ところで、関数Ｄ（ｊ）の計算に用いる区間長が長ければ長いほどよい結果が得られるわけではなく、その長さは適切に設定される必要がある。入力信号の多くに音声信号が期待される場合は、信号比較長ＬＥＮの初期値ＬＥＮＭＩＮの長さを短めに、つまり、ＬＥＮＭＩＮをＷＭＩＮと（ＷＭＩＮ＋ＷＭＡＸ）／２の間でかつ、ＷＭＩＮに近い設定とし、入力信号の多くに音響信号が期待される場合は、ＬＥＮＭＩＮの長さを長めに、つまり、ＬＥＮＭＩＮをＷＭＡＸと（ＷＭＩＮ＋ＷＭＡＸ）／２の間でかつ、ＷＭＡＸに近い設定をすることでより良い音質が得られる。特に入力信号が音声信号も音響信号も同様に期待される場合は、（ＷＭＩＮ＋ＷＭＡＸ）／２に近い設定をすることでより良い音質が得られる。まとめると、信号比較長ＬＥＮと信号比較長初期値ＬＥＮＭＩＮは、次に示す範囲の長さである。
【００９０】
【数１８】
2007304515.tif 000020
【００９１】
ここで、信号比較長ＬＥＮは、初期値がＷＭＩＮ＋１〜ＷＭＡＸ−１の範囲であり、ＷＭＡＸまで増加する変数である。
【００９２】
なお、音源からの入力信号が音響信号か音声信号かは、例えば、音源がＩＣレコーダ等の録音装置かオーディオ装置かによって判断することができる。例えば、ＩＥＥＥ１３９４ケーブルを介してこれらの機器に接続した場合、その機器から識別情報を読み出し、識別情報に応じて初期値ＬＥＮＭＩＮを設定してもよい。また、ユーザによって初期値ＬＥＮＭＩＮを設定してもよい。
【００９３】
また、類似波形長抽出処理において、関数Ｄ（ｊ）は、上記（１９）式と同様、次式を用いることができる。なお、似波形長抽出処理動作は、図３に示すフローチャートと同様である。
【００９４】
【数１９】
2007304515.tif 000021
【００９５】
そして、ＷＭＩＮ≦ｊ≦ＷＭＡＸの範囲でＤ（ｊ）を計算し、次に説明するサブルーチンにより、Ｄ（ｊ）が最も小さな値となるｊを求める。
【００９６】
図１０は、（２４）式と（２５）式で示した信号比較長ＬＥＮに対応する類似波形長抽出処理のサブルーチンを示すフローチャートである。ステップＳ４０９では、インデックスｉと変数ｓを０にリセットする。ステップＳ４１０では、インデックスｉがＬＥＮより小さいか否か調べ、小さい場合は、ステップＳ４１１に進み、インデックスｉがＬＥＮ以上の場合は、ステップＳ４１３に進む。ステップＳ４１１では、入力オーディオ信号の差分の自乗を求めて変数ｓに加算する。ステップＳ４１２では、インデックスｉを１増加させ、ステップＳ４１０に戻る。ステップＳ４１３では、変数ｓをＬＥＮで割った値を関数Ｄ（ｊ）の値としてサブルーチンを終了する。
【００９７】
これにより音声信号のように変化の大きい信号の場合でも、本来小さなＷが検出されるべきところで、誤って大きなＷが検出されてしまい、その結果として異音が発生するという問題を防ぐことができる。また、音声信号のみならず音響信号において変化の大きい信号の場合でも、本来小さなＷが検出されるべきところで、誤って大きなＷが検出されてしまい、その結果として異音が発生するという問題を防ぐことができる。
【００９８】
更に適応的にＬＥＮを設定する方法の一例として、入力オーディオ信号の音響度Ｍを用いることができる。ここで、音響度とは、入力信号がどれだけ音響信号らしいかを数値化したものであり、例えば、明らかに音声信号の場合、Ｍ＝０とし、明らかに音響信号の場合、Ｍ＝１とし、どちらともいえない場合、Ｍ＝０．５とする。ここで、入力信号が音声信号なのか音響信号なのかを判断する方法としては、例えば、ゼロ交差数の分散やスペクトル変動などを用いることができる。ゼロ交差数とは、フレーム内で波形がゼロを通過した回数のことであり、このゼロ交差数の分散が小さい場合は音響信号である傾向があり、大きい場合は音声信号である傾向がある。また、スペクトル変動とは、隣接するフレーム間におけるスペクトルの変動のことであり、このスペクトル変動が小さい場合は音響信号である傾向があり、大きい場合は音声信号である傾向がある。音響信号では定常的な信号が多いのに対して、音声信号では有声音と無声音が繰り返されることからこのような傾向が生じる。
【００９９】
図１１は、音響度Ｍを用いた類似波形長抽出処理を示すフローチャートである。ステップＳ５０１では、上述したように、例えば、ゼロ交差数の分散やスペクトル変動などを用いることにより、音響度を求める。ステップＳ５０２では、音響度Ｍを用いて信号比較長初期値ＬＥＮＭＩＮを調整する。例えば、音響度Ｍ＝０なら信号比較長初期値ＬＥＮＭＩＮ＝ＷＭＩＮ、音響度Ｍ＝１なら信号比較長初期値ＬＥＮＭＩＮ＝ＷＭＡＸ、音響度Ｍ＝０．５なら信号比較長初期値ＬＥＮＭＩＮ＝（ＷＭＩＮ＋ＷＭＡＸ）／２などと設定する。信号比較長ＬＥＮと信号比較長初期値ＬＥＮＭＩＮは次に示す範囲の長さである。
【０１００】
【数２０】
2007304515.tif 000022
【０１０１】
ここで、信号比較長ＬＥＮは、初期値がＷＭＩＮ〜ＷＭＡＸの範囲であり、ＷＭＡＸまで増加する変数である。
【０１０２】
ステップＳ５０３では、ＬＥＮを適宜調整しながら関数Ｄ（ｊ）の最小値を求める。関数Ｄ（ｊ）は、上記（１９）式と同様、次式を用いることができる。なお、似波形長抽出処理動作は、図３に示すフローチャートと同様である。
【０１０３】
【数２１】
2007304515.tif 000023
【０１０４】
そして、ＷＭＩＮ≦ｊ≦ＷＭＡＸの範囲でＤ（ｊ）を計算し、次に説明するサブルーチンにより、Ｄ（ｊ）が最も小さな値となるｊを求める。
【０１０５】
図１２は、（２７）式と（２８）式で示した信号比較長ＬＥＮに対応する類似波形長抽出処理のサブルーチンを示すフローチャートである。ステップＳ６０９では、インデックスｉと変数ｓを０にリセットする。ステップＳ６１０では、インデックスｉがＬＥＮより小さいか否か調べ、小さい場合は、ステップＳ６１１に進み、インデックスｉがＬＥＮ以上の場合は、ステップＳ６１３に進む。ステップＳ６１１では、入力オーディオ信号の差分の自乗を求めて変数ｓに加算する。ステップＳ６１２では、インデックスｉを１増加させ、ステップＳ６１０に戻る。ステップＳ６１３では、変数ｓをＬＥＮで割った値を関数Ｄ（ｊ）の値としてサブルーチンを終了する。
【０１０６】
このように入力オーディオ信号が音声信号であっても、音響信号であっても、自動的に適切な信号比較波長区間を設定し、伸張圧縮後の信号に発生する異音を更に抑制することができる。
【０１０７】
なお、信号比較波長区間の延長は、未来の方向（図右方向）として説明してきたが、未来の方向だけでなく、未来過去の両方や、過去の方向に延長してもよい。また、類似波形長抽出の基準位置を、例えば、図２に示す位置Ｐ０のようにしたが、基準位置の取り方はこれに限るものではなく、基準位置を区間の中央に変更しても良い。この場合でも、未来の方向、未来過去両方、過去の方向に信号比較長の延長が可能である。また、関数Ｄ（ｊ）の定義例として、差の自乗の総和を用いたが、差の絶対値の総和であっても良く、要は、２つの波形の類似度が計れれば良い。
【０１０８】
さらに、上述の説明では、従来のＰＩＣＯＬＡの類似波形長抽出方法を置き換えることとしたが、本発明の方法は、これに限るものではなく、他のＯＬＡ（OverLap and Add）系のアルゴリズム等、類似波形長抽出処理を伴う時間軸上の話速変換アルゴリズムに適用可能である。また、ＰＩＣＯＬＡが、サンプリング周波数を一定とする場合は話速変換となり、サンプル数の増減に合わせてサンプリング周波数を変える場合はピッチシフトとなることから、本発明も、話速変換に限らず、ピッチシフトにも適用可能である。
【図面の簡単な説明】
【０１０９】
【図１】第１の実施形態におけるオーディオ信号伸張圧縮装置の構成を示すブロック図である。
【図２】第１の実施形態における類似波形長抽出処理の様子を説明するための模式図である。
【図３】類似波形長抽出部における処理の流れを示すフローチャートである。
【図４】第１の実施形態における類似波形長抽出処理のサブルーチンを示すフローチャートである。
【図５】第１の実施形態の類似波形長抽出処理により波形例に対して類似区間を抽出した結果を示す図である。
【図６】第２の実施形態における類似波形長抽出処理の様子を説明するための模式図である。
【図７】第２の実施形態における類似波形長抽出処理のサブルーチンを示すフローチャートである。
【図８】第３の実施形態における類似波形長抽出処理の様子を説明するための模式図である。
【図９】第３の実施形態における類似波形長抽出処理のサブルーチンを示すフローチャートである。
【図１０】信号比較長を（２４）式と（２５）式で定めた場合の類似波形長抽出処理のサブルーチンを示すフローチャートである。
【図１１】音響度Ｍを用いた類似波形長抽出処理を示すフローチャートである。
【図１２】信号比較長を（２７）式と（２８）式で定めた場合の類似波形長抽出処理のサブルーチンを示すフローチャートである。
【図１３】ＰＩＣＯＬＡを用いて原波形を伸張する例を示す模式図である。
【図１４】類似波形である区間Ａと区間Ｂの区間長Ｗを検出する方法を示す模式図である。
【図１５】任意の長さに波形を伸張する方法を示す模式図である。
【図１６】ＰＩＣＯＬＡを用いて原波形を圧縮する例を示す模式図である。
【図１７】任意の長さに波形を圧縮する方法を示す模式図である。
【図１８】ＰＩＣＯＬＡの波形伸張の処理の流れを示すフローチャートである。
【図１９】ＰＩＣＯＬＡの波形圧縮の処理の流れを示すフローチャートである。
【図２０】ＰＩＣＯＬＡによる話速変換装置の構成の一例を示すブロック図である。
【図２１】従来の類似波形長抽出部における処理の流れを示すフローチャートである。
【図２２】従来の類似波形長抽出処理のサブルーチンを示すフローチャートである。
【図２３】従来の類似波形長抽出処理の様子を説明するための模式図である。
【図２４】音響信号の波形例の様子を示した模式図である。
【図２５】従来の類似波形長抽出処理により波形例に対して類似区間を抽出した結果を示す図である。
【符号の説明】
【０１１０】
１０  オーディオ信号伸張圧縮装置、１１  入力バッファ、１２  類似波形長抽出部、１３  接続波形生成部、１４  出力バッファ
【図１】
2007304515.tif 000024
【図２】
2007304515.tif 000025
【図３】
2007304515.tif 000026
【図４】
2007304515.tif 000027
【図５】
2007304515.tif 000028
【図６】
2007304515.tif 000029
【図７】
2007304515.tif 000030
【図８】
2007304515.tif 000031
【図９】
2007304515.tif 000032
【図１０】
2007304515.tif 000033
【図１１】
2007304515.tif 000034
【図１２】
2007304515.tif 000035
【図１３】
2007304515.tif 000036
【図１４】
2007304515.tif 000037
【図１５】
2007304515.tif 000038
【図１６】
2007304515.tif 000039
【図１７】
2007304515.tif 000040
【図１８】
2007304515.tif 000041
【図１９】
2007304515.tif 000042
【図２０】
2007304515.tif 000043
【図２１】
2007304515.tif 000044
【図２２】
2007304515.tif 000045
【図２３】
2007304515.tif 000046
【図２４】
2007304515.tif 000047
【図２５】
2007304515.tif 000048