(57)【特許請求の範囲】
【請求項１】
入力音声信号の音声データを蓄積する入力バッファ手段と、
上記入力バッファ手段に蓄積されている音声データに基づく音声信号波形について、探索周期分の音声信号波形から、基本周期を抽出し、抽出した基本周期の音声信号波形を利用して、入力バッファ手段に蓄積される音声データについて話速変換処理を行う話速変換手段と、
上記話速変換手段が話速変換処理した後の音声データを蓄積する出力バッファ手段と、
出力間隔ごとに、上記出力バッファ手段に蓄積している音声データのうち出力間隔分の音声データを含む出力音声データフレームを出力する音声データ出力手段と、
上記入力バッファ手段に、上記探索周期と上記出力間隔とを加算し、さらに、出力バッファ手段の音声データの１サンプリング周期を減じた最低蓄積期間以上の音声データが蓄積されてから、上記話速変換手段による話速変換処理を開始させる変換処理制御手段と
を有することを特徴とする音声信号処理装置。
【請求項２】
当該音声信号処理装置で、話速変換処理に伴う遅延量が所定以上となっている状態で、上記入力バッファ手段に入力される音声データが、非音声区間の音声データであった場合、当該音声データを破棄して遅延回復を図る遅延回復手段をさらに備えることを特徴とする請求項１に記載の音声信号処理装置。
【請求項３】
上記遅延回復手段は、上記入力バッファ手段及び上記出力バッファ手段に蓄積されている音声データ量が所定以上となった場合に、遅延量が所定以上となったと判断することを特徴とする請求項２に記載の音声信号処理装置。
【請求項４】
コンピュータを、
入力音声信号の音声データを蓄積する入力バッファ手段と、
上記入力バッファ手段に蓄積されている音声データに基づく音声信号波形について、探索周期分の音声信号波形から、基本周期を抽出し、抽出した基本周期の音声信号波形を利用して、入力バッファ手段に蓄積される音声データについて話速変換処理を行う話速変換手段と、
上記話速変換手段が話速変換処理した後の音声データを蓄積する出力バッファ手段と、
出力間隔ごとに、上記出力バッファ手段に蓄積している音声データのうち出力間隔分の音声データを含む出力音声データフレームを出力する音声データ出力手段と、
上記入力バッファ手段に、上記探索周期と上記出力間隔とを加算し、さらに、出力バッファ手段の音声データの１サンプリング周期を減じた最低蓄積期間最低蓄積期間以上の音声データが蓄積されてから、上記話速変換手段による話速変換処理を開始させる変換処理制御手段と
して機能させることを特徴とする音声信号処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、音声信号処理装置及びプログラムに関し、例えば、話者の声質を保ちながら話す速度を変化させる話速変換装置に適用し得る。
【背景技術】
【０００２】
従来、話者の声質を保ちながら話す速度を変化させる音声信号処理（話速変換処理）において、従来、音声に含まれる周期性を利用し、時間軸上で伸長・圧縮するＰＩＣＯＬＡ（Ｐｏｉｎｔｅｒ  Ｉｎｔｅｒｖａｌ  Ｃｏｎｔｒｏｌ  Ｏｖｅｒｌａｐ  ａｎｄ  Ａｄｄ）という手法がある（非特許文献１参照）。ＰＩＣＯＬＡとは、音声データより抽出したピッチ（基本周期の音声信号の波形）から、ピッチとその後に続く波形とを滑らかに繋ぐことのできる音声波形を生成し、さらに生成した音声波形を挿入した後に、所定のデータ長を出力することにより、もとの音声を圧縮または伸長する技術である。以下では、従来のＰＩＣＯＬＡのアルゴリズムについて、話速を遅くする（音声を伸張する）場合の説明を行う。
【０００３】
ＰＩＣＯＬＡでは、任意の長さに音声を伸張するために、音声中に繰り返し現れる周期性のある波形であるピッチを利用する。ピッチは音声データの所定のピッチを探索ための期間の音声データ（以後「ピッチ探索範囲ＴＰ」と呼ぶ）から自己相関関数などを用い抽出される。抽出されたピッチを用い、図１２に示すように、まずピッチＷの波形Ａをフェードイン、続く波形Ａと同じ長さの波形Ｂをフェードアウトした波形Ａ’、Ｂ’を生成する。この波形Ａ’とＢ’を足し合わせる（合成する）ことにより、波形Ａ，Ｂと滑らかに繋がる伸長用の波形Ｃが生成される。この波形Ｃを波形Ａと波形Ｂの間に挿入することにより音声波形の伸長が可能となる。挿入された波形Ｃの長さはピッチＷの長さ（以下、「Ｔｗ」とも呼ぶ）と同じであるから、もとの音声信号の長さをＬとすると伸長後の長さはＬ＋Ｔｗとなる。所望の伸長率をＲｓとしたとき、もとの長さに対して伸長後の長さがＲ倍になれば良いからＲｓ＝（Ｌ＋Ｔｗ）／Ｌとなる。これより伸長率Ｒｓを満たすために必要な原信号の長さはＬ＝Ｔｗ／（Ｒｓ−１）となる。例として伸長率Ｒｓが１．２５倍のとき、ピッチの長さＷが１００サンプルだったとすると、Ｌ＝４００サンプルとなる。原信号４００サンプルに生成した１００サンプルを加えて出力すれば、（出力サンプル数５００）／（原信号サンプル数４００）で伸長率１．２５倍を実現出来る。
【０００４】
ＰＩＣＯＬＡによる伸長処理のサイクルを図１３に示す。まずピッチ探索範囲Ｔｐ分のデータを取得してからピッチＷ１を抽出し、ピッチから音声波形を生成し、所望の伸長率に必要な分の音声データを出力する。音声データを出力した最後のポイントＰ１が次の処理の開始地点となる。Ｐ１から数えてピッチ探索範囲Ｔｐ以上の音声データを取得したら再びピッチを抽出し、伸長処理を実行する。以上の処理を繰り返すことにより、話速を任意の早さに変換することができる。
【０００５】
通常、予め設定したサンプル数ｎを１フレームとし、フレーム単位で処理及び出力を行う場合、話速変換をリアルタイムで実行するためには、１フレーム分の時間の経過ごとに１フレーム分のデータの処理が完了していなければならない。以下では、話側変換装置が、リアルタイムに音声データを変換処理し、出力するフレームを「出力フレーム」と呼ぶものとする。そして、フレーム単位でリアルタイムに処理を行う話側変換装置では、１出力フレーム分の時間経過ごとに、１出力フレーム分の処理済みの音声データをバッファ（以下、「出力バッファ」と呼ぶ）に保持していなければならない。しかし、話速変換装置では、出力フレームを出力すべきタイミングになっても、出力バッファに１出力フレーム分の処理済みの音声データが保持されていない場合には、出力フレームを出力することができず、出力フレームの被供給側での音声信号の途切れや、その後の処理に異常を引き起こす原因となる。
【０００６】
話速変換（話速を遅く変換する場合）のアルゴリズムとしてＰＩＣＯＬＡを用いる話側変換装置では、出力フレームを出力すべきタイミングとなっても、出力バッファに１出力フレーム分の処理済みの音声データが保持できない状況としては、大きく分けて、以下の２つの種類の条件が挙げられる。
【０００７】
第１の条件としては、従来の話速変換装置において、処理前の音声データからピッチ抽出後に伸長処理を行う場合がある。具体的には、従来の話速変換装置において、処理前の音声データが、ピッチ探索範囲Ｔｐ分バッファされておらず、さらに、出力バッファの音声データ（伸長処理後の音声データ）が、１出力フレーム分以下しか残っていない状態で、次の出力フレームを出力すべきタイミングが訪れた場合である。
【０００８】
第２の条件としては、従来の話速変換装置において、処理前の音声データからピッチ候補を抽出したが、当該ピッチ判定基準に基づいて伸長処理が行われない場合がある。入力音声信号には、常に音声のピッチが含まれているとは限らず、自然に話速変換するためには、無声子音や非音声区間を避けて母音や有声子音を伸長しなくてはならない。そのため、従来の話速変換装置において、ピッチ探索の結果、得られたピッチ候補が、伸長処理に用いるピッチとして適当なものであるか否かを判定する必要がある。従来の話速変換装置では、例えば、先頭から所定範囲の音声データが、ピッチ候補として抽出され、さらに、当該ピッチ候補が伸長処理に用いるピッチとして適当でないと判定された場合、当該ピッチ候補の音声データは伸長処理されずにそのまま出力（出力バッファで保持）される。フレーム単位で、音声データを出力する話速変換装置では、ピッチ候補となる音声データのデータ長は、出力フレームのデータ長よりも短くなる可能性がある。その場合、従来の話速変換装置において、出力バッファに伸長処理に利用されなかったピッチ候補の音声データのみが保持された状態で、次のフレームを出力すべきタイミングが訪れると、出力フレームを正常に出力できないことになる。
【０００９】
特許文献１では、上述のような、従来の話速変換装置の課題に対する解決案が記載されている。特許文献１に記載された装置では、ＰＩＣＯＬＡによる伸長処理終了後、バッファにピッチ探索範囲Ｔｐ分のデータがなくても、前回の処理のピッチ情報を再利用し、同一フレーム内でもう一度伸長処理を実行する。特許文献１では、これにより、出力データのないフレームの発生を回避できる旨が記載されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００６−３５１７号公報
【非特許文献】
【００１１】
【非特許文献１】森田直孝，板倉文忠、「ポインター移動制御による重複加算法（PICOLA）を用いた音声の時間軸での伸長圧縮とその評価」、日本音響学会講演論文集、ｐ．１４９−１５０、昭和６１年１０月
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、特許文献１の記載技術では、話速変換をあらゆる環境下で安定して動作させることができないという問題がある。
【００１３】
具体的には、特許文献１の記載技術の欠点は、大きく分けて以下の３つ挙げられる。
【００１４】
まず第１に、特許文献１の記載技術では、少なくとも一回の伸長処理を必要としているため、ピッチ候補抽出後に伸長処理をしない場合には全く対応することが出来ないという問題がある。
【００１５】
第２に、特許文献１の記載技術では、同一フレーム内で再び伸長処理を行う際に、出力バッファに伸長処理に十分なデータが残っているとは限らないという問題がある。つまり、特許文献１の記載技術では、少なくとも１回目の伸長処理で出力したデータ以上のデータが出力バッファに残っていなければ、特許文献１の記載技術は適用できないことになる。
【００１６】
第３に、特許文献１の記載技術では、同一フレーム内での２度目の伸長の際、そのデータとは直接関係ない部分のピッチ情報を使うため、ピッチでない部分を伸張し、音質が劣化してしまうという問題がある。
【００１７】
上述のような問題点に鑑みて、リアルタイムに音声信号の音声データについて話速変換処理を行う際に、安定的に話速変換処理後の音声データを出力することができる音声信号処理装置及びプログラムが望まれている。
【課題を解決するための手段】
【００１８】
第１のホン発明の音声信号処理装置は、（１）入力音声信号の音声データを蓄積する入力バッファ手段と、（２）上記入力バッファ手段に蓄積されている音声データに基づく音声信号波形について、探索周期分の音声信号波形から、基本周期を抽出し、抽出した基本周期の音声信号波形を利用して、入力バッファ手段に蓄積される音声データについて話速変換処理を行う話速変換手段と、（３）上記話速変換手段が話速変換処理した後の音声データを蓄積する出力バッファ手段と、（４）出力間隔ごとに、上記出力バッファ手段に蓄積している音声データのうち出力間隔分の音声データを含む出力音声データフレームを出力する音声データ出力手段と、（５）上記入力バッファ手段に、上記探索周期と上記出力間隔とを加算し、さらに、出力バッファ手段の音声データの１サンプリング周期を減じた最低蓄積期間最低蓄積期間以上の音声データが蓄積されてから、上記話速変換手段による話速変換処理を開始させる変換処理制御手段とを有することを特徴とする。
【００１９】
第２の本発明の音声信号処理プログラムは、コンピュータを、（１）入力音声信号の音声データを蓄積する入力バッファ手段と、（２）上記入力バッファ手段に蓄積されている音声データに基づく音声信号波形について、探索周期分の音声信号波形から、基本周期を抽出し、抽出した基本周期の音声信号波形を利用して、入力バッファ手段に蓄積される音声データについて話速変換処理を行う話速変換手段と、（３）上記話速変換手段が話速変換処理した後の音声データを蓄積する出力バッファ手段と、（４）出力間隔ごとに、上記出力バッファ手段に蓄積している音声データのうち出力間隔分の音声データを含む出力音声データフレームを出力する音声データ出力手段と、（５）上記入力バッファ手段に、上記探索周期と上記出力間隔とを加算し、さらに、出力バッファ手段の音声データの１サンプリング周期を減じた最低蓄積期間最低蓄積期間以上の音声データが蓄積されてから、上記話速変換手段による話速変換処理を開始させる変換処理制御手段として機能させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、リアルタイムに音声信号の音声データについて話速変換処理を行う際に、安定的に話速変換処理後の音声データを出力することができる音声信号処理装置を提供することができる。
【図面の簡単な説明】
【００２１】
【図１】第１の実施形態に係る話速変換装置の機能的構成を示すブロック図である。
【図２】第１の実施形態に係る話速変換装置で、ピッチ抽出処理の処理例について説明した説明図である。
【図３】第１の実施形態に係る話速変換装置で、出力フレームを出力する処理について示したフローチャートである。
【図４】第１の実施形態に係る話速変換装置で、入力フレームの取得から出力バッファに音声データを供給するまでの動作について示したフローチャート（その１）である。
【図５】第１の実施形態に係る話速変換装置で、入力フレームの取得から出力バッファに音声データを供給するまでの動作について示したフローチャート（その２）である。
【図６】第１の実施形態に係る話速変換装置で、最低遅延量をピッチ探索範囲と等しくした場合の動作の第１の例について示したタイミングチャートである。
【図７】第１の実施形態に係る話速変換装置で、最低遅延量をピッチ探索範囲と等しくした場合の動作の第２の例について示したタイミングチャートである。
【図８】第１の実施形態に係る話速変換装置で、最低遅延量をピッチ探索範囲よりも長く設定した場合の動作の第１の例について示したタイミングチャートである。
【図９】第１の実施形態に係る話速変換装置で、最低遅延量をピッチ探索範囲よりも長く設定した場合の動作の第２の例について示したタイミングチャートである。
【図１０】第２の実施形態に係る話速変換装置の機能的構成を示すブロック図である。
【図１１】第２の実施形態に係る話速変換装置で、入力フレームの取得から出力バッファに音声データを供給するまでの動作について示したフローチャートである。
【図１２】従来の話速変換装置で行われるＰＩＣＯＬＡによる波形伸長について示した説明図である。
【図１３】従来の話速変換装置で行われるＰＩＣＯＬＡによる伸長処理のサイクルを説明するための図である。
【発明を実施するための形態】
【００２２】
（Ａ）第１の実施形態
以下、本発明による音声信号処理装置及びプログラムの第１の実施形態を、図面を参照しながら詳述する。なお、第１の実施形態の音声信号処理装置は、話速変換装置である。
【００２３】
（Ａ−１）第１の実施形態の構成
図１は、この実施形態の話速変換装置１００の機能的構成を示すブロック図である。
【００２４】
話速変換装置１００は、データ入力部１０１、話速変換処理バッファ１０２、遅延制御部１０３、話速制御部１０４、ピッチ抽出部１０５、ＰＩＣＯＬＡ処理部１０６、出力バッファ１０７、及びデータ出力部１０８を有している。
【００２５】
話速変換装置１００は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭ、ハードディスクなどのプログラムの実行構成を有する情報処理装置（１台に限定されず、複数台を分散処理し得るようにしたものであっても良い。）に、実施形態の音声信号処理プログラム等をインストールすることにより構築してもよく、その場合でも機能的には上述の図１のように示すことができる。  
データ入力部１０１は、入力された入力音声信号（音響信号）から、所定のサンプル間隔Ｔｓごとにサンプリングされた音声データ（例えば、ＰＣＭ（Ｐｕｌｓｅ Ｃｏｄｅ Ｍｏｄｕｌａｔｉｏｎ）形式で生成された音声データ）を生成し、サンプル数ｎを１フレームとするフレーム単位で、分割して話速変換処理バッファ１０２に供給する。以下では、データ入力部１０１により生成されるフレームを「入力フレーム」と呼ぶものとする。
【００２６】
この実施形態では、データ入力部１０１は、上述の通り、入力音声信号を符号化して入力フレームを生成して話速変換処理バッファ１０２に供給するものとして説明するが、データ入力部１０１が、話速変換処理バッファ１０２に供給する音声データを保持する方法や供給方法は限定されないものである。例えば、データ入力部１０１は、入力フレーム単位ではなく、１サンプル単位で話速変換処理バッファ１０２に音声データを供給するようにしても良い。また、データ入力部１０１は、例えば、既に符号化された音声データを外部装置から保持する（１度に保持するデータ量は限定されないものである）ようにしても良い。
【００２７】
話速変換処理バッファ１０２は、データ入力部１０１から供給される入力フレームを保持し、遅延制御部１０３、話速制御部１０４、ピッチ抽出部１０５等の制御に従って、保持した入力フレームの音声データを、後段の処理構成（ＰＩＣＯＬＡ処理部１０６）に供給する等の処理を行うものである。
【００２８】
遅延制御部１０３は、話速変換処理バッファ１０２で保持されている音声データのデータ量に応じて、その他の処理構成（話速変換処理バッファ１０２、ピッチ抽出部１０５等）の動作を制御するものである。遅延制御部１０３は、話速変換装置１００の処理開始直後等に、話速変換処理バッファ１０２で、最低遅延量Ｔｄ（最低蓄積期間）分以上の音声データが保持されているかどうかを確認する。そして、遅延制御部１０３は、話速変換処理バッファ１０２で、最低遅延量Ｔｄ以上の期間分の音声データが保持されていると確認した場合に、ＰＩＣＯＬＡ処理部１０６等による伸張処理を開始させるように、他の処理構成を制御する。
【００２９】
最低遅延量Ｔｄとしては、少なくともピッチ探索範囲Ｔｐ以上の期間とする必要があるが、この実施形態では、以下の（１）式のように算出されるものであるものとする。一方、詳細については口述するが、話速制御部１０４では、開始時に設定した伸長率Ｒｓから伸長率を達成するために必要なデータ長（音声データに対応する期間）が算出される。
【００３０】
最低遅延量Ｔｄ＝ピッチ探索範囲Ｔｐ
＋１出力フレーム分の期間−１サンプル分の期間  …（１）
ピッチ抽出部１０５は、話速変換処理バッファ１０２に保持されている音声データに対して、ピッチの探索を行う。ピッチ抽出部１０５は、ピッチ探索範囲Ｔｐ分の音声データが話速変換処理バッファ１０２にある場合に、話速変換処理バッファ１０２に保持されている音声データに対して、ピッチ候補の探索(抽出)を行う。
【００３１】
ピッチ抽出部１０５は、例えば、話速変換処理バッファ１０２で保持されている音声データのピッチ探索範囲Ｔｐの中から最も周期性の強いものをピッチ候補とし、当該ピッチ候補が、ＰＩＣＯＬＡ処理部１０６で話速変換処理に用いるものとして適当であるか否かも判定する。ここでは、説明を簡易にするため、ピッチ抽出部１０５が抽出するピッチ候補は、話速変換処理バッファ１０２で保持されている音声データの先頭（時系列上の先頭）から始まる音声データであるものとする。
【００３２】
そして、ピッチ抽出部１０５は、抽出したピッチ候補の音声データ（話速変換処理バッファ１０２時系列上の先頭から所定範囲の音声データ）について、話速変換処理に用いるものとして適当であるか否かを判定し、適当と判定した場合には、話速変換処理バッファ１０２を制御して、抽出したピッチの音声データと、当該ピッチの音声データに続く話側変換処理（伸長処理）に必要な長さ（以下、「伸長処理用データ期間Ｔｇ」と呼ぶ）の音声データを、ＰＩＣＯＬＡ処理部１０６に供給させる。
【００３３】
なお、伸長処理用データ期間Ｔｇの長さは、話速制御部１０４により、伸長率Ｒｓに応じて決定されるものである。
【００３４】
一方、抽出したピッチ候補の音声データについて、話速変換処理に用いるものとして適当でないと判定された場合には、ピッチ抽出部１０５は、話速変換処理バッファ１０２を制御して、当該ピッチ候補の音声データについて、出力バッファ１０７に供給させる。
【００３５】
ピッチ抽出部１０５によるピッチ候補の抽出処理は、例えば、相違度や自己相関係数などを利用するようにしてもよい。以下に、ピッチ抽出部１０５が、上述の相違度を用いてピッチ候補を抽出する処理の例について説明する。
【００３６】
ピッチ抽出部１０５は、例えば、図２のように話速変換処理バッファ１０２の時系列上の先頭となる音声データ（図２の「ピッチ候補区間」）について、１サンプルずつずらしながら隣り合うデータ区間（図２の「比較対象区間」）との相違度を算出し、相違度が最も小さいものをピッチ候補とするものとする。  ピッチ抽出部１０５では、例えば、以下の（２）式を用いて、仮のピッチ候補区間と比較対象区間との相違度を算出するようにしてもよい。以下の（２）式で、ｆは、図２に示す仮のピッチ候補区間を示しており、ｆｉは、ｆ（ピッチ候補区間）の先頭からｉ番目のサンプル値を表している。また、以下の（２）式で、ｇは、図２に示す比較対象区間を示しており、ｇｉは、ｇ（比較対象区間）の先頭からｉ番目のサンプル値を表している。
【数１】
0005874341.tif 000002
【００３７】
ピッチ抽出部１０５が、ピッチ探索を行う回数（相違度を算出する回数）は限定されないものであるが、例えば、所定の最大回数を限度として相違度を計算し、最も相違度が少ないものをピッチ候補区間として抽出するようにしてもよい。そして、ピッチ抽出部１０５は、相違度が所定の閾値未満である場合に、当該ピッチ候補を伸長処理に用いるものとして適当であると判定するようにしてもよい。
【００３８】
ピッチ探索範囲Ｔｐとしては、例えば、人間のピッチを探索するのに十分な範囲を設定することが望ましく、例えば、サンプリング周波数８ｋＨｚのとき２０サンプルから１２０サンプルとするようにしてもよい。
【００３９】
ＰＩＣＯＬＡ処理部１０６は、ピッチ抽出部１０５で抽出したピッチＷの音声データ（音声波形）に基づいて、話速変換処理バッファ１０２に保持された音声データの伸長に用いる音声データを生成する。ＰＩＣＯＬＡ処理部１０６は、例えば、従来技術と同様に、クロスフェードを用いて、伸長処理に用いる音声データを生成するようにしても良い。
【００４０】
そして、ＰＩＣＯＬＡ処理部１０６は、ピッチＷの波形の長さ（時間軸上の波形の長さであり、生成した音声データの波形の長さと同様）に応じた伸長処理用データ期間Ｔｇを、話速制御部１０４に問い合わせて取得する。
【００４１】
そして、ＰＩＣＯＬＡ処理部１０６は、伸長処理用データ期間Ｔｇを取得すると、話速変換処理バッファ１０２で保持された音声データのうち、ピッチＷに続く伸長処理用データ期間Ｔｇ分の音声データを取得する。そして、ＰＩＣＯＬＡ処理部１０６は、取得したピッチＷの音声データと、伸長処理用データ期間Ｔｇの音声データとの間に、生成した音声データを挿入した音声データを、出力バッファ１０７に供給する。
【００４２】
なお、ＰＩＣＯＬＡ処理部１０６は、話速変換処理バッファ１０２に、伸長処理用データ期間Ｔｇ分の音声データが残っていない場合には、足りない分の長さ（以下、「未処理データ期間Ｔｕ」と呼ぶ）を、話速制御部１０４に報告する。
【００４３】
話速制御部１０４は、基準となる伸長率Ｒｓのパラメータを保持し、保持した伸長率Ｒｓにもとづいて、ＰＩＣＯＬＡ処理部１０６からの問い合わせに応じて、伸長率Ｒｓを満たすための伸長処理用データ期間Ｔｇの長さを算出して、返答する。話速制御部１０４が、伸長率Ｒｓを保持する方法は限定されないものであるが、例えば、予め設定しておくようにしても良いし、ユーザの操作に応じて変更可能な構成としても良い。
【００４４】
話速制御部１０４は、ＰＩＣＯＬＡ処理部１０６から、ピッチＷの長さＴｗが通知されると、伸長率Ｒｓを満たすための、当該ピッチＷの長さＴｗに対応する伸長処理用データ期間Ｔｇを算出する。そして、話速制御部１０４は、算出した伸長処理用データ期間Ｔｇを、ＰＩＣＯＬＡ処理部１０６に返答する。
【００４５】
話速制御部１０４では、例えば、以下の（３）式を用いて、伸長処理用データ期間Ｔｇを算出するようにしてもよい。
【００４６】
Ｔｇ＝（Ｔｗ／（Ｒｓ−１））−Ｔｗ  …（３）
なお、話速制御部１０４は、ＰＩＣＯＬＡ処理部１０６から未処理データ期間Ｔｕが報告された場合には、話速変換処理バッファ１０２を制御して、未処理データ期間Ｔｕ分の音声データについてデータ出力部１０８に供給させる処理を優先させる。すなわち、未処理データ期間Ｔｕが発生した場合、話速制御部１０４は、次に話速変換処理バッファ１０２に未処理データ期間Ｔｕ分の音声データが溜まると、話速変換処理バッファ１０２を制御して、次の伸長処理よりも優先して、その音声データを出力バッファ１０７に供給させる。
【００４７】
出力バッファ１０７は、出力フレームを送出すべきタイミングが到来するごとに、出力フレーム１つ分の音声データを、データ出力部１０８に供給する。出力フレームがｎサンプル分の音声データで構成されている場合には、出力フレームを送出すべきタイミングは、サンプル間隔Ｔｓ×ｎの期間ごとに到来することになる。
【００４８】
話速変換装置１００の動作開始直後等、出力バッファ１０７に保持されている音声データが、１出力フレーム分に満たない場合には、出力バッファ１０７は、例えば、無音データや、予め用意しておいたノイズ等のダミー用の音声データを含む出力フレームを、データ出力部１０８に供給するようにしてもよい。
【００４９】
データ出力部１０８は、出力バッファ１０７から供給された出力フレームの音声データを所定の方法により出力するものである。データ出力部１０８が音声データを出力する方法については限定されないものであるが、例えば、スピーカ等の音声出力装置を備えて表音出力したり、所定のデータ記憶媒体（例えば、ハードディスクドライブ等）に記憶させたり、出力フレームの音声データをそのまま、又は符号化して、所定の形式のパケットに挿入し、送信先の通信装置に送出するようにしてもよい。
【００５０】
（Ａ−２）第１の実施形態の動作
次に、以上のような構成を有する第１の実施形態の話速変換装置１００の動作を説明する。
【００５１】
まず、話速変換装置１００において、データ出力部１０８による、出力データフレームの出力処理について図３のフローチャートを用いて説明する。
【００５２】
話速変換装置１００で話速変換処理（話速を遅くする処理）が開始されると、まず、出力バッファ１０７は、次の出力フレーム送出タイミングが到来するまで待機し（Ｓ１０１）、出力フレーム送出タイミングが到来すると、１つの出力フレーム分の音声データをデータ出力部１０８に供給する（Ｓ１０２）。上述の通り、出力バッファ１０７で、出力フレームを出力すべきタイミングは、サンプル間隔Ｔｓ×ｎの期間ごとに到来する。
【００５３】
出力バッファ１０７では、話速変換装置１００で話速変換処理が開始された直後は、出力フレームに用いる音声データを保持していないが、音声データが所定以上（例えば、１出力フレーム分以上）溜まるまでの間、例えば、出力フレームの出力を保留したり、ダミー用の音声データ（例えば、無音データや、予め用意しておいたノイズ等の音声データ）を含む出力フレームを、データ出力部１０８に供給するようにしてもよい。また、出力バッファ１０７は、音声データの供給が開始された後でも、出力すべき音声データが１出力フレーム分未満となった場合にも、ダミー用の音声データを含む出力フレーム（出力バッファ１０７に残っている音声データで足りない分をダミー用の音声データで保管した出力フレームとしてもよい）を、データ出力部１０８に供給するようにしてもよい。
【００５４】
そして、話速変換装置１００で、話速変換処理が継続している場合には、出力バッファ１０７は上述のステップＳ１０１に戻って、次の出力フレーム送出タイミングまで待機する。一方、話速変換装置１００で、話速変換処理が継続している場合には、出力バッファ１０７は、処理を終了する。
【００５５】
次に、話速変換装置１００において、入力された音声信号（音声データ）を伸長処理（話速を遅くする処理）し、出力バッファ１０７に供給するまでの処理について、図４、図５を用いて説明する。
【００５６】
話速変換装置１００で話速変換処理（話速を遅くする処理）が開始されると、データ入力部１０１では、入力される音声信号から音声データ（例えば、ＰＣＭ形式のデータ）が生成され、生成された音声データについて入力フレームごとに分割して取得される（Ｓ２０１）。
【００５７】
そして、データ入力部１０１では、入力フレームが取得されると、その入力フレームが話速変換処理バッファ１０２に供給される（Ｓ２０２）。
【００５８】
この実施形態では、説明を簡易にするため、入力フレーム及び出力フレームのサンプリング間隔及びサンプル数は同じであるものとして説明する。以下では、入力フレーム及び出力フレームのサンプリング間隔はＴｓであり、サンプル数はｎであるものとして説明する。
【００５９】
そして、遅延制御部１０３では、今回の話速変換処理が開始されてから、過去に一度でも話速変換処理バッファ１０２に最低遅延量Ｔｄ以上のデータを保持したことがあるかどうかが確認される（Ｓ２０３）。遅延制御部１０３で、話速変換処理バッファ１０２に最低遅延量Ｔｄ以上のデータを保持したことがないと確認された場合には、話速変換装置１００は、上述のステップＳ２０１に戻って動作する。一方、遅延制御部１０３で、話速変換処理バッファ１０２に最低遅延量Ｔｄ以上のデータを保持したことがあると確認された場合には、後述するステップＳ２０４の処理に進む。
【００６０】
そして、話速制御部１０４は、ユーザの操作等により、現在話速変換処理に適用している話速に関する設定変更が行われたか否かを確認し、設定変更が行われたと確認された場合には、話速変換処理に適用する伸長率Ｒｓを、変更後に対応する値に変更する処理を行う（Ｓ２０４、Ｓ２０５）。
【００６１】
そして、話速制御部１０４では、そして、話速制御部１０４で、過去にＰＩＣＯＬＡ処理部１０６から未処理データ期間Ｔｕが報告されており、伸長率Ｒｓを満たすための未処理データ期間Ｔｕ分の音声データの出力バッファ１０７への供給が完了しているか否か（すなわち、伸長率Ｒｓが満たされている状態であるか否か）について確認が行われる（Ｓ２０６）。
【００６２】
そして、話速制御部１０４で、伸長率Ｒｓが満たされている状態でないと確認された場合には、話速制御部１０４は、話速変換処理バッファ１０２を制御して、未処理データ期間Ｔｕ分の音声データを出力バッファ１０７に供給（未処理データ期間Ｔｕ分に満たない場合は現時点で供給可能な音声データを出力バッファ１０７に供給）させる（Ｓ２０７）。そして、話速変換装置１００は後述するステップＳ２１４から動作する。
【００６３】
一方、話速制御部１０４で、伸長率Ｒｓが満たされている状態であると確認された場合には、ピッチ抽出部１０５により、ピッチ探索範囲Ｔｐ分の音声データ（ピッチ探索に必要な量の音声データ）が、話速変換処理バッファ１０２に保持されているか否かが確認される（Ｓ２０８）。
【００６４】
そして、ピッチ抽出部１０５により、ピッチ探索範囲Ｔｐ分の音声データが、話速変換処理バッファ１０２に保持されていないと判断された場合には、話速変換装置１００は、上述のステップＳ２０１の処理に戻り、次の入力フレームを取得する処理から動作する。
【００６５】
一方、ピッチ抽出部１０５により、ピッチ探索範囲Ｔｐ分の音声データが、話速変換処理バッファ１０２に保持されていると判断された場合には、ピッチ抽出部１０５によりピッチ候補が抽出され（Ｓ２０９）、当該ピッチ候補が伸長処理に用いるものとして適当であるか否かが判定される（Ｓ２１０）。
【００６６】
ステップＳ２１０で、当該ピッチ候補が伸長処理に用いるものとして適当ででないと判定された場合には、ピッチ抽出部１０５は、話速変換処理バッファ１０２を制御して、当該ピッチ候補の音声データを、直接出力バッファ１０７に供給させる（Ｓ２１１）。そして、話速変換装置１００は、後述するステップＳ２１４の処理から動作する。
【００６７】
一方、ステップＳ２１０で、当該ピッチ候補が伸長処理に用いるものとして適当であると判定された場合には、ピッチ抽出部１０５は、話速変換処理バッファ１０２を制御して、当該ピッチ候補の音声データを、ピッチＷの音声データとして、ＰＩＣＯＬＡ処理部１０６に供給させる。そして、話速変換装置１００は、後述するステップＳ２１２の処理から動作する。
【００６８】
ピッチＷの音声データが供給されるとＰＩＣＯＬＡ処理部１０６は、そのピッチＷの音声データ（音声波形）に基づいて、話速変換処理バッファ１０２に保持された音声データの伸長に用いる音声データ（ピッチＷと同じ長さの音声データ）を生成する（Ｓ２１２）。
【００６９】
そして、ＰＩＣＯＬＡ処理部１０６は、ピッチＷの波形の長さＴｗに応じた伸長処理用データ期間Ｔｇを、話速制御部１０４に問い合わせて取得する。そして、ＰＩＣＯＬＡ処理部１０６は、伸長処理用データ期間Ｔｇを取得すると、話速変換処理バッファ１０２で保持された音声データのうち、ピッチＷに続く伸長処理用データ期間Ｔｇ分の音声データを取得する。そして、ＰＩＣＯＬＡ処理部１０６は、取得したピッチＷの音声データと、伸長処理用データ期間Ｔｇの音声データとの間に、生成した音声データを挿入した音声データを、出力バッファ１０７に供給する（Ｓ２１３）。なお、話速変換処理バッファ１０２に、伸長処理用データ期間Ｔｇ分の音声データが残っていない場合には、ＰＩＣＯＬＡ処理部１０６は、足りない分の長さ（未処理データ期間Ｔｕ）を、話速制御部１０４に報告する。
【００７０】
そして、上述のステップＳ２１１、又はＳ２１４の処理が終了すると、ピッチ抽出部１０５では、話速変換処理バッファ１０２にピッチ探索範囲Ｔｐ分の音声データが保持されているか否かが確認される（Ｓ２１４）。
【００７１】
ステップＳ２１４で、ピッチ抽出部１０５により、話速変換処理バッファ１０２にピッチ探索範囲Ｔｐ分の音声データが保持されていると確認された場合には、話速変換装置１００は、上述のステップＳ２０９の処理から動作して再度ピッチ候補の抽出処理を行う。
【００７２】
一方、話速変換処理バッファ１０２にピッチ探索範囲Ｔｐ未満の分しか、話速変換処理バッファ１０２に音声データが保持されていないと確認された場合には、話速変換装置１００では、話速変換処理が継続している限り、上述のステップＳ２０１に戻って動作する。
【００７３】
次に、話速変換装置１００が、上述の図３〜図５のフローチャートに従って動作した場合の、話速変換処理バッファ１０２及び出力バッファ１０７に保持される音声データの遷移について、図６〜図９のタイミングチャートを用いて説明する。
【００７４】
ここでは、出力フレーム及び入力フレームを構成するサンプル数ｎ＝８０、伸長率Ｒｓ＝１．２５、ピッチ探索範囲Ｔｐ＝２４０サンプル分の期間（Ｔｓ×１２０の期間）であるものとして説明する。
【００７５】
図６〜図９のタイミングチャートでは、タイミングＴ０の時点から話速変換装置１００が話速変換処理を開始している。そして、図６〜図９のタイミングチャートでは、タイミングＴ１、Ｔ２、Ｔ３、Ｔ４、Ｔ５…、のそれぞれのタイミングが、出力フレームを出力バッファ１０７から出力すべきタイミングを示している。例えば、タイミングＴ１の時点は、タイミングＴ０から８０サンプル分の時間（Ｔｓ×８０の時間）が経過した時点を示しており、タイミングＴ２の時点は、タイミングＴ０から１６０サンプル分の時間（Ｔｓ×１６０の時間）が経過した時点を示していることになる。
【００７６】
ここでは、説明を容易にするために、まず、最低遅延量Ｔｄ＝ピッチ探索範囲Ｔｐとした場合の話速変換処理バッファ１０２及び出力バッファ１０７に保持される音声データの遷移について、図６、図７を用いて説明する。
【００７７】
図６では、最低遅延量Ｔｄ＝ピッチ探索範囲Ｔｐとし、ＰＩＣＯＬＡ処理部１０６による伸長処理が行われる場合の話速変換処理バッファ１０２及び出力バッファ１０７に保持される音声データの遷移について示している。
【００７８】
図６では、タイミングＴ３の時点で、最低遅延量Ｔｄ分の音声データ（２４０サンプル）が溜まることになるため、ピッチ抽出部１０５によりＴｗ１の長さのピッチＷ１が抽出されたものとする。そして、ピッチＷ１は、ピッチ抽出部１０５により伸長処理に適用するものとして適当と判定され、さらに、ＰＩＣＯＬＡ処理部１０６によりピッチＷ１を用いた音声波形の音声データが生成されたものとする。なお、ここでは、Ｔｗ１＝４５サンプル分の期間であるものとする。そうすると、話速制御部１０４では、伸長処理用データ期間Ｔｇ１＝（Ｔｗ１／（Ｒｓ−１））−Ｔｗ１＝（４５／（１．２５−１））−４５＝１３５サンプル分の期間となる。
【００７９】
したがって、図６に示すように、ＰＩＣＯＬＡ処理部１０６は、タイミングＴ３の時点で、ピッチＷ１（Ｔｗ１）の音声データ、ピッチＷ１に基づいて生成した音声データ、伸長処理用データ期間Ｔｇの音声データ（１８０サンプル）を保持して、データ出力部１０８に供給することになる。すなわち、この時点で、データ出力部１０８には、４５＋４５＋１３５＝２２５サンプル分の音声データが保持されることになる。そして、タイミングＴ３の時点で、話速変換処理バッファ１０２には２４０−２２５＝１５サンプル分の音声データしか保持されていない状態になるため、少なくともタイミングＴ６の時点までは、話速変換処理バッファ１０２にピッチ探索範囲Ｔｐ分の音声データ（２４０サンプル）が溜まらないため、伸長処理は行われない。したがって、タイミングＴ３〜Ｔ６の期間、データ出力部１０８には、新たな音声データが供給されない状態となる。
【００８０】
そうすると、出力バッファ１０７では、タイミングＴ３の時点で、出力フレームＦ１（８０サンプル分の音声データ）を出力し、さらに、タイミングＴ４の時点で、出力フレームＦ２（８０サンプル分の音声データ）を出力することになる。すなわち、タイミングＴ４の時点で、データ出力部１０８には、２２５−８０−８０＝６５フレーム分の音声データしか残っていないため、タイミングＴ５の時点になっても正常な出力フレームを生成して出力することができないことになる。
【００８１】
以上のように、最低遅延量Ｔｄ＝ピッチ探索範囲Ｔｐとした場合には、１回目の伸長処理の後、２回目のピッチ探索に必要な最低遅延量Ｔｄ分のデータが溜まる前に出力バッファ１０７に１出力フレーム分のデータがなくなる状況が発生してしまう場合がある。
【００８２】
図７では、最低遅延量Ｔｄ＝ピッチ探索範囲Ｔｐとし、ＰＩＣＯＬＡ処理部１０６による伸長処理が行われなかった場合（抽出したピッチ候補が伸長処理に用いることに不適当だった場合）の話速変換処理バッファ１０２及び出力バッファ１０７に保持される音声データの遷移について示している。
【００８３】
図７では、タイミングＴ３の時点で、最低遅延量Ｔｄ分の音声データ（２４０サンプル）が溜まることになるため、ピッチ抽出部１０５によりＴｗ１の長さのピッチＷ１（ピッチ候補）が抽出されたものとする。そして、ピッチＷ１は、ピッチ抽出部１０５により伸長処理に適用するものとして不適当と判定され、話速変換処理バッファ１０２から出力バッファ１０７に出力されることになる。なお、ここでは、Ｔｗ１＝４５サンプル分の期間であるものとする。したがって、図７では、タイミングＴ３の時点で、出力バッファ１０７には４５サンプル分の音声データが保持されることになるが、１出力フレーム分の音声データ（８０サンプル）には満たないため、正常な音声データを挿入した出力フレームを出力することができない状態が継続することになる。
【００８４】
次に、上述の実施形態と同様に、ピッチ探索範囲Ｔｐ＝２４０、最低遅延量Ｔｄ＝２４０＋８０−１＝３１９サンプル（上記の（１）式を用いて算出した長さ）とした場合の話速変換処理バッファ１０２及び出力バッファ１０７に保持される音声データの遷移について、図８、図９を用いて説明する。
【００８５】
図８では、ピッチ探索範囲Ｔｐ＝２４０サンプル、最低遅延量Ｔｄ＝３１９サンプルとし、ＰＩＣＯＬＡ処理部１０６による伸長処理が行われる場合の話速変換処理バッファ１０２及び出力バッファ１０７に保持される音声データの遷移について示している。すなわち、図８のタイミングチャートは、最低遅延量Ｔｄ以外については、上述の図６と同様の条件となった場合について示している。
【００８６】
図８では、タイミングＴ４の時点で、最低遅延量Ｔｄ分以上の音声データ（３２０サンプル）が溜まることになるため、ピッチ抽出部１０５によりＴｗ１の長さのピッチＷ１が抽出されたものとする。そして、ピッチＷ１は、ピッチ抽出部１０５により伸長処理に適用するものとして適当と判定され、さらに、ＰＩＣＯＬＡ処理部１０６によりピッチＷ１を用いた音声波形の音声データが生成されたものとする。なお、ここでは、Ｔｗ１＝４５サンプル分の期間であるものとする。そうすると、話速制御部１０４では、図６の場合と同様に、伸長処理用データ期間Ｔｇ１＝１３５サンプル分の期間が算出される。
【００８７】
また、図８に示すように、ＰＩＣＯＬＡ処理部１０６は、タイミングＴ４の時点で、ピッチＷ１（Ｔｗ１）の音声データ、ピッチＷ１に基づいて生成した音声データ、伸長処理用データ期間Ｔｇの音声データ（１３５サンプル）を保持して、データ出力部１０８に供給することになる。すなわち、この時点で、データ出力部１０８には、２２５サンプル分の音声データが保持されることになる。そして、タイミングＴ４の時点で、話速変換処理バッファ１０２には３２０−２２５＝９５サンプル分の音声データが保持されることになる。そして、話速変換処理バッファ１０２では、タイミングＴ６の時点で、話速変換処理バッファ１０２にピッチ探索範囲Ｔｐ分以上の音声データが溜まり、データ出力部１０８に新たな音声データが供給されることになる。
【００８８】
一方、出力バッファ１０７では、タイミングＴ４の時点で、出力フレームＦ１（８０サンプル分の音声データ）を出力し、さらに、タイミングＴ５の時点で、出力フレームＦ２（８０サンプル分の音声データ）を出力することになる。そして、図８の例では、タイミングＴ６の時点では、出力バッファ１０７に新たな音声データが供給されることになる。
【００８９】
したがって、図８の例では、最低遅延量Ｔｄについて上記の（１）のように設定することにより、図６の場合の例と異なり、出力バッファ１０７で出力フレームを出力すべきタイミングが到来しても、出力バッファ１０７に１出力フレーム分以上のデータを保持することが出来る。
【００９０】
図９では、ピッチ探索範囲Ｔｐ＝２４０サンプル、最低遅延量Ｔｄ＝３１９サンプルとし、ＰＩＣＯＬＡ処理部１０６による伸長処理が行われない場合の話速変換処理バッファ１０２及び出力バッファ１０７に保持される音声データの遷移について示している。すなわち、図９のタイミングチャートは、最低遅延量Ｔｄ以外については、上述の図７と同様の条件となった場合について示している。
【００９１】
図９では、タイミングＴ４の時点で、話速変換処理バッファ１０２に、最低遅延量Ｔｄ分以上の音声データ（３２０サンプル）が溜まることになるため、ピッチ抽出部１０５によりＴｗ１の長さのピッチＷ１（ピッチ候補）が抽出されたものとする。そして、ピッチＷ１は、ピッチ抽出部１０５により伸長処理に適用するものとして不適当と判定され、話速変換処理バッファ１０２から出力バッファ１０７に出力されることになる。なお、ここでは、Ｔｗ１＝４５サンプル分の期間であるものとする。
【００９２】
そして、この時点では、話速変換処理バッファ１０２には、３２０−４５＝２７５サンプルの音声データが残っており、ピッチ探索範囲Ｔｐ（２４０サンプル分）より多いため、ピッチ抽出部１０５は、タイミングＴ４の時点で、連続してピッチ候補の探索を行うことができる。そして、ピッチ抽出部１０５では、２回目のピッチ候補探索で、Ｔｗ２の長さのピッチＷ２（ピッチ候補）が抽出されたものとする。そして、ピッチＷ２は、ピッチ抽出部１０５により伸長処理に適用するものとして不適当と判定され、話速変換処理バッファ１０２から出力バッファ１０７に出力されたものとする。なお、ここでは、Ｔｗ２＝４５サンプル分の期間であるものとする。
【００９３】
そうすると、データ出力部１０８では、タイミングＴ４の時点で、４５＋４５＝９０サンプル分の音声データを保持することができ、図７の例と異なり、出力フレームを出力することができる。
【００９４】
したがって、図９の例では、図７の場合の例と異なり、ピッチ候補がそのまま出力バッファ１０７に供給されても、話速変換処理バッファ１０２にピッチ探索範囲Ｔｐ以上の音声データが残っているため、ピッチ抽出部１０５では、同一フレーム内（同一タイミング）で複数回ピッチ探索を行うことができる。すなわち、図９の例では、最低遅延量Ｔｄについて上記の（１）式のように設定することにより、図７の場合の例と異なり、出力バッファ１０７で出力フレームを出力すべきタイミングが到来しても、出力バッファ１０７に１出力フレーム分以上のデータを保持できる可能性が高くなることになる。
【００９５】
（Ａ−３）第１の実施形態の効果
第１の実施形態によれば、以下のような効果を奏することができる。
【００９６】
（Ａ−３−１）話速変換装置１００では、ＰＩＣＯＬＡ処理部１０６による伸長処理を開始する前に、ピッチ探索範囲Ｔｐ以上の音声データを、初期に話速変換処理バッファ１０２で保持することで、出力バッファ１０７に、１出力フレーム分以上の音声データが保持されやすい状態とすることができる。
【００９７】
（Ａ−３−２）初期に話速変換処理バッファ１０２で保持するデータ量が多い方が、出力バッファ１０７で保持するデータ量を枯渇しにくくさせることはできるが、話速変換処理による遅延量（データ入力部１０１に音声データが入力されてから、データ出力部１０８で出力されるまでの時間）が大きくなってしまうと、処理品質（リアルタイム性）が劣化してしまう。そこで、この実施形態の話速変換装置１００では、出力バッファ１０７に１出力フレーム分以上の音声データを保持するために必要な最低限の最低遅延量Ｔｄとして、「ピッチ探索範囲Ｔｐ＋１フレーム−１サンプル」を設定している。
【００９８】
次に、最低遅延量Ｔｄとして、「ピッチ探索範囲Ｔｐ＋１フレーム−１サンプル」が望ましい理由について説明する。
【００９９】
出力バッファ１０７に１出力フレーム分のデータがなくなるという問題が発生する例として、上述の図６の条件（以下、「第１の条件」と呼ぶ）と、上述の図７の条件（以下、「第２の条件」と呼ぶ）について説明した。このうち、第２の条件は、第１の例の伸長率が１．０倍のときと同じであると見なせる。つまり第２の条件で発生する問題を回避できることが示せれば、同時に第１の条件で発生する問題も回避できる。何故なら第１の条件は伸長率Ｒｓ＞１．０で必ず伸長処理を行うので、第２の条件よりも出力バッファ１０７のデータは増えるからである。
【０１００】
第２の条件でも、ピッチ候補Ｗ分の期間（以下、「ＴＷ」と呼ぶ）が、１出力フレーム分の期間（以下、「ＴＦ」と呼ぶ）と同じかＴＦの倍数である場合は、上述の問題は発生しない。出力バッファ１０７供給される期間は常にＴＦ分の期間の倍数なので、入力されたデータをそのまま供給することができるからである。上述の問題が発生するのは、ピッチ候補Ｗの期間ＴＷが、それ以外の値の場合である。なお、ここでは、各「期間（データ長）」について、音声データを構成するサンプル数（サンプリング間隔は全て同一であるものとする）を単位として表わすものとする。
【０１０１】
以下に、上述の第２の例（図７に示す例）において、上述の問題を回避できる最低遅延量Ｔｄとして望ましい値がどのように求められるのかを示す。なお、以下の例では、ＴＷの最大値はＴｐ／２とするが、これに限定せずＴｄ分まで抽出するようにしても良い。また、以下の例ではＴｐ＞＝ＴＦとする。また、以下の例では、ＴＦ＝８０（サンプル）、Ｔｐ＝２４０（サンプル）であるものとする。
【０１０２】
まず、ＴＷが１＊ＴＦ未満の場合（１＜＝ＴＷ＜＝７９の場合）について説明する。
【０１０３】
この場合、図７に示す１回目のピッチ探索（ピッチ抽出）では、出力バッファ１０７にＴＦ分のデータがたまらないため、同一フレーム処理内でもう一度ピッチ抽出を行う必要がある。話速変換処理バッファ１０２で保持されている音声データの期間をＰ、初期値をＸとすると、一回目のピッチ抽出後の期間は（Ｘ−１）＜＝Ｐ＜＝（Ｘ−７９）である。このときＰは、Ｔｐ分以上のデータであればよいから、必要なＸの最大値はＸ−７９＜＝２４、Ｘ＝３１９となる。
【０１０４】
次に、ＴＷが１＊ＴＦより大きく、２＊ＴＦ未満のとき（８１＜＝ＴＷ＜＝１５９の場合）について説明する。
【０１０５】
この場合、１回目のピッチ抽出の結果、話速変換処理バッファ１０２で保持される期間は（Ｘ−８１）＜＝Ｐ＜＝（Ｘ−１５９）となっている。また出力バッファ１０７には１＊ＴＦ以上２＊ＴＦ分未満存在することになるので、出力バッファ１０７からの出力フレームの出力は可能となる。しかし、出力バッファ１０７では、次に出力フレームを出力すべきタイミングとなったときに、ＴＦ分のデータは残らないことになるため、次の出力フレームの出力タイミングでは、必ずピッチ抽出を行う必要がある。したがって、この場合、次の出力フレームを出力すべきタイミングで、ＤＦ分のデータ入力後に話速変換処理バッファ１０２にＴｐ分以上のデータが存在すればよいので、必要なＸの最大値はＸ−１５９＋８０＝２４０、Ｘ＝３１９となる。このＸの値が最低遅延量Ｔｄとなり、これは２＊Ｆ＜Ｗ＜３＊Ｆ、３＊Ｆ＜Ｗ＜４＊Ｆの場合も同じである。
【０１０６】
以上から、上述の問題が発生しにくくなる最小のＴｄは、以下の（４）式により導きだすことができる。なお、以下の（４）式では、ＴＷ≠ｎ＊ＴＦ（ｎ＝０、１、２、…）、Ｔｐ＞ＴＦであるものとする。なお、以下の（４）式では、「ｉｎｔ（ＴＷ／ＴＦ）は「ＴＷ／ＴＦ」の整数部分を示している。また、以下の（４）式では、「ｍａｘ｛ＴＷ−ｉｎｔ（Ｗ／ＴＦ）＊ＴＦ｝」は、ｎを「ｎ＝０、１、２、…」と変化させた場合の「ＴＷ−ｉｎｔ（Ｗ／ＴＦ）＊ＴＦ」の最大値を示しており、計算すると以下の（５）式に示す結果となる。したがって、以下の（６）式に示すように、Ｔｄとしては、上述の「ピッチ探索範囲Ｔｐ＋１フレーム−１サンプル」が望ましいという結果が得られる。
【０１０７】
Ｔｄ＝Ｔｐ＋ｍａｘ｛ＴＷ−ｉｎｔ（ＴＷ／ＴＦ）＊ＴＦ｝  …（４）
ｍａｘ｛ＴＷ−ｉｎｔ（ＴＷ／ＴＦ）＊ＴＦ｝＝ＴＦ−１  …（５）
Ｔｄ＝Ｔｐ＋ＴＦ−１  …（６）
以上のように、話速変換装置１００では、出力バッファ１０７に１出力フレーム分以上の音声データを保持することにより、安定した精度で話速変換処理をリアルタイムに実行することが可能となる。
【０１０８】
その結果、話速変換装置１００を利用することにより、テレビやラジオ、電話などリアルタイムに音声を処理する機器に話速変換を行うことが可能となる。また、話速変換装置１００を利用することにより、ユーザはこれらの機器の使用中いつでも話速変換を実行することができ、また話速変換の実行中であっても任意の話速に変更することができる。
【０１０９】
（Ｂ）第２の実施形態
以下、本発明による音声信号処理装置及びプログラムの第２の実施形態を、図面を参照しながら詳述する。なお、第１の実施形態の音声信号処理装置は、話速変換装置である。
【０１１０】
（Ｂ−１）第２の実施形態の構成
図１０は、第２の実施形態の話速変換装置１００Ａの機能的構成を示すブロック図である。なお、図１０では、上述の図１と同一又は対応する部分には、同一又は対応する符号を付している。以下、第２の実施形態について、第１の実施形態との差異を説明する。
【０１１１】
話速変換装置１００Ａでは、音声区間検出部１０９及び遅延回復部１１０が追加されている点で、第１の実施形態と異なっている。
【０１１２】
第１の実施形態の話速変換装置１００では、話速変換処理を継続すると、音声信号（音声データ）は次々と伸長処理されるため、遅延が際限なく増加し、それにともない出力バッファ１０７で保持される音声データも増大してしまう。その結果、例えば、当該話速変換装置１００を電話装置等の電話通信に適用し、リアルタイムに話速変換処理を行う場合には、話者間のコミュニケーションに不具合が生じてしまうことになる。
【０１１３】
そこで、第２の実施形態の話速変換装置１００Ａでは、音声区間検出部１０９及び遅延回復部１１０を追加して、遅延回復機能に対応させ、上述のような問題点に対応している。
【０１１４】
なお、ここでいう遅延とは、例えば、話速変換装置において、伸長処理により、話速変換処理バッファ１０２で最新に入力された音声データに対応する時刻（サンプルの時系列上の時刻）と、出力バッファ１０７で出力する音声データに対応する時刻との差分である。
【０１１５】
そして、遅延回復機能とは、例えば、話速変換装置において、伸長処理により一定時間以上の遅延が発生していた場合、最新に入力される音声信号に含まれる非音声区間（無音区間）を話速変換処理バッファ１０２から削除することで、遅延時間を短縮する機能である。
【０１１６】
音声区間検出部１０９は、データ入力部２０１が取得した１フレーム分の音声データ（音声信号）に対し、当該入力フレームの音声データが示す音声信号が音声区間（有音区間）であるのか、非音声区間（無音区間）であるのかを判定する。音声区間検出部１０９において有音区間を検出する処理については、既存の処理構成（例えば、音響特徴量として、入力信号のパワー、零交差、相関関数等を用いる方法）を適用することができる。なお、音声区間検出部１０９については、データ入力部１０１の中に組み込み、データ入力部１０１で入力フレームを生成する際に音声区間の検出処理を行うようにしてもよい。
【０１１７】
そして、音声区間検出部１０９は、取得した入力フレームが非音声区間のものであった場合には、当該入力フレームを、遅延回復部１１０に引き渡す。
【０１１８】
遅延回復部１１０は、音声区間検出部１０９から非音声区間の入力フレームが供給されると、話速変換処理バッファ２０３を制御して、溜まっている音声データを全て出力バッファ２０８へ出力させる。そして、遅延回復部１１０は、出力バッファ１０７に溜まっている音声データの量が所定以上の場合（ここでは、例として最低遅延量Ｔｄ以上とする）、最新に取得した入力フレームを削除（破棄）して、遅延回復を図る。一方、出力バッファ１０７に溜まっている音声データの量が所定未満の場合（ここでは、例として最低遅延量Ｔｄ未満とする）、遅延回復部１１０は、最新に取得した入力フレームを、出力バッファ１０７に供給する。
【０１１９】
（Ｂ−２）第２の実施形態の動作
次に、以上のような構成を有する第２の実施形態の話速変換装置１００Ａの動作を説明する。
【０１２０】
第２の実施形態の話速変換装置１００Ａは、上述の遅延回復機能に係る音声区間検出部１０９及び遅延回復部１１０の動作が追加されるだけで、その他は第１の実施形態と同様である。具体的には、第２の実施形態では、第１の実施形態の動作のステップＳ２０１とステップＳ２０２との間で、上述の遅延回復機能に係る音声区間検出部１０９及び遅延回復部１１０の動作が挿入される。
【０１２１】
図１１では、第２の実施形態の話速変換装置１００Ａで、上述のステップＳ２０１とステップＳ２０２との間に挿入される、遅延回復機能に係る音声区間検出部１０９及び遅延回復部１１０の動作について示している。図１１では図示を省略しているが、その他の動作については、第１の実施形態と同様である。
【０１２２】
第２の実施形態の話速変換装置１００Ａでは、上述のステップＳ２０１において、データ入力部１０１で入力フレームが取得されると、音声区間検出部１０９により、当該入力フレームについて音声区間であるか否かが判定される（Ｓ３０１）。
【０１２３】
そして、ステップＳ３０１において入力フレームについて音声区間と判定された場合には、話速変換装置１００Ａでは、上述のステップＳ２０２により当該入力フレームが話速変換処理バッファ１０２に入力され、以後の処理は第１の実施形態と同様の処理となる。
【０１２４】
一方、ステップＳ３０１において入力フレームについて音声区間と判定された場合には、音声区間検出部１０９により、当該入力フレームは、遅延回復部１１０に供給される。そして、遅延回復部１１０は、話速変換処理バッファ２０３を制御して、溜まっている音声データを全て出力バッファ２０８へ出力させる（Ｓ３０２）。
【０１２５】
そして、遅延回復部１１０は、出力バッファ１０７に溜まっている音声データの量が最低遅延量Ｔｄ以上であるか否かを判定する（Ｓ３０３）。
【０１２６】
上述のステップＳ３０３で、出力バッファ１０７に溜まっている音声データの量が最低遅延量Ｔｄ以上であると判定された場合には、遅延回復部１１０は、最新に取得した入力フレームを削除（破棄）して、遅延回復を図る（Ｓ３０４）。そして、話速変換装置１００Ａは上述のステップＳ２０１に戻って動作する。すなわち、遅延回復部１１０は、話速変換処理バッファ１０２及び出力バッファ１０７に溜まっている音声データの合計量が、最低遅延量Ｔｄ以上となっている状態の場合には、遅延量が所定以上になっているものと判断し、遅延回復処理（非音声区間の入力フレームを破棄）を行う。
【０１２７】
一方、上述のステップＳ３０３で、出力バッファ１０７に溜まっている音声データの量が最低遅延量Ｔｄ未満であると判定された場合には、遅延回復部１１０は、最新に取得した入力フレームを、出力バッファ１０７に供給する（Ｓ３０５）。そして、話速変換装置１００Ａは上述のステップＳ２０１に戻って動作する。
【０１２８】
（Ｂ−３）第２の実施形態の効果
第２の実施形態によれば、第１の実施形態に加えて以下のような効果を奏することができる。
【０１２９】
話速変換装置１００Ａでは、出力バッファ１０７に最低遅延量Ｔｄのデータを保持しつつ、非音声区間の音声データを削除（破棄）している。これにより、話速変換装置１００Ａでは、１出力フレーム分の音声データが、出力バッファ１０７にない状況を発生させずに、遅延を短縮（遅延回復）させることができる。これにより、話速変換装置１００Ａでは、出力バッファ１０７に必要とされるメモリ量を抑制するとともに、遅延量を抑制して、安定した話速変換処理を行うことができる。
【０１３０】
（Ｃ）他の実施形態
本発明は、上記の各実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【０１３１】
（Ｃ−１）上記の各実施形態の話速変換装置では、話速を遅くする処理を行う場合についてのみ説明したが、上記の各実施形態の話速変換装置で、話速を早くする処理（例えば、既存の話速変換処理を適用するようにしても良い）についても処理可能な構成としても良い。
【０１３２】
（Ｃ−２）上記の各実施形態の話速変換装置では、遅延制御部は、話速変換装置が処理を開始した直後にのみ、話速変換処理バッファに最低遅延量Ｔｄの音声データが溜まるまで、ＰＩＣＯＬＡ処理部による話速変換処理を保留する処理をおこなっているが、その他のタイミングでも同様の処理を行うようにしても良い。
【０１３３】
例えば、話速変換装置で、遅延量が一定以上となった場合に、話速変換処理バッファ１０２及び出力バッファ１０７で保持している音声データをリフレッシュ（全てのデータを消去）した後、話速変換処理バッファに最低遅延量Ｔｄの音声データが溜まるまで、ＰＩＣＯＬＡ処理部による話速変換処理を保留するようにしても良い。
【０１３４】
（Ｃ−３）上記の各実施形態で、遅延制御部は、伸長処理により遅延が際限なく増えることを防ぐため、話速変換装置で遅延量が一定量を超えた場合、伸長処理を中止するように他の処理構成を制御する機能（遅延制限機能）に対応させるようにしてもよい。
【符号の説明】
【０１３５】
１００…話速変換装置、１０１…データ入力部、１０２…話速変換処理バッファ、１０３…遅延制御部、１０４…話速制御部、１０５…ピッチ抽出部、１０６…ＰＩＣＯＬＡ処理部、１０７…出力バッファ、１０８…データ出力部。
【図１】
0005874341.tif 000003
【図２】
0005874341.tif 000004
【図３】
0005874341.tif 000005
【図４】
0005874341.tif 000006
【図５】
0005874341.tif 000007
【図６】
0005874341.tif 000008
【図７】
0005874341.tif 000009
【図８】
0005874341.tif 000010
【図９】
0005874341.tif 000011
【図１０】
0005874341.tif 000012
【図１１】
0005874341.tif 000013
【図１２】
0005874341.tif 000014
【図１３】
0005874341.tif 000015