(57)【要約】【課題】ストリーミング処理において、ＰＩＣＯＬＡによる話速変換を行うときに、音声波形データが出力されないフレームを作らないようにする。【解決手段】１フレーム分の入力音声波形データを入力バッファ５に保持するステップＳ２と、音声波形の基本周期を求めるのに必要なデータ長の入力音声波形データを入力バッファ５より取得し、基本周期探索用データとして保持するステップＳ６と、基本周期探索用データより音声波形の基本周期を求め、この基本周期および話速変換倍率に基づき音声波形が伸長または圧縮された音声波形データを新たに生成するステップＳ１１と、第４のステップＳ１１で生成された音声波形データのうち、１フレームのサンプル数を話速変換倍率で割ったサンプル数のみ出力するとともに、残余の音声波形データを出力バッファ８に保持する第５のステップＳ１４とを備える。【選択図】  図２
2006003517.tif 000002
【特許請求の範囲】
【請求項１】
初期状態において話速変換倍率を設定する第１のステップと、
１フレーム分の入力音声波形データを入力バッファに保持する第２のステップと、
音声波形の基本周期を求めるのに必要なデータ長の入力音声波形データを前記入力バッファより取得し、基本周期探索用データとして保持する第３のステップと、
前記基本周期探索用データより前記音声波形の基本周期を求め、この基本周期および話速変換倍率に基づき音声波形が伸長または圧縮された音声波形データを新たに生成する第４のステップと、
前記入力バッファに保持されている１フレーム分の前記入力音声波形データを基に前記第４のステップで生成された音声波形データのうち、１フレームのサンプル数を前記話速変換倍率で割ったサンプル数のみ出力するとともに、残余の音声波形データを出力バッファに保持する第５のステップと
を備えることを特徴とする話速変換方法。
【請求項２】
請求項１に記載の話速変換方法において、
前記入力バッファに前記音声波形の基本周期を求めるのに必要なデータ長の前記入力音声波形データが存在せず、前記第４のステップの処理を行えないときに、前記出力バッファに保持されている前記音声波形データのうち１フレームのサンプル数を前記話速変換倍率で割ったサンプル数のみ出力する第６のステップを更に備えることを特徴とする話速変換方法。
【請求項３】
請求項１に記載の話速変換方法において、
前記第４のステップは、前記話速変換倍率が変更されたときに、変更後の話速変換倍率に基づき前記音声波形データを生成するステップを備えることを特徴とする話速変換方法。
【請求項４】
請求項１に記載の話速変換方法において、
前記第３のステップは、初期状態において前記基本周期探索用データとして無音データを保持するステップを備えることを特徴とする話速変換方法。
【請求項５】
１フレーム分の入力音声波形データを保持する入力バッファと、
音声波形の基本周期を求めるのに必要なデータ長の入力音声波形データを前記入力バッファから取得し、基本周期探索用データとして保持する基本周期探索用データバッファと、
前記基本周期探索用データより前記音声波形の基本周期を求め、この基本周期および話速変換倍率に基づき音声波形が伸長または圧縮された音声波形データを新たに生成する音声波形データ生成手段と、
前記入力バッファに保持されている１フレーム分の前記入力音声波形データを基に前記音声波形データ生成手段により生成された音声波形データのうち、１フレームのサンプル数を前記話速変換倍率で割ったサンプル数のみ出力するとともに、残余の音声波形データを保持する出力バッファと
を備えることを特徴とする話速変換装置。
【請求項６】
請求項５に記載の話速変換装置において、
前記出力バッファは、前記入力バッファに前記音声波形の基本周期を求めるのに必要なデータ長の前記入力音声波形データが存在せず、前記音声波形データ生成手段による処理を行えないときに、前記出力バッファに保持されている前記音声波形データのうち１フレームのサンプル数を前記話速変換倍率で割ったサンプル数のみ出力することを特徴とする話速変換装置。
【請求項７】
請求項５に記載の話速変換装置において、
話速変換倍率の入力にしたがって前記音声波形データ生成手段に前記話速変換倍率を設定する話速変換倍率設定手段を更に備えることを特徴とする話速変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、話速変換方法および装置に関し、より詳しくは、音声の高さや個人性を変化させることなくその速さのみを変更可能な話速変換方法および装置に関する。
【背景技術】
【０００２】
音声の高さや個人性を変化させることなくその速さのみを変更する話速変換処理において、ＰＩＣＯＬＡ（Pointer Interval Controlled OverLap and Add）と呼ばれる方式がある。ＰＩＣＯＬＡのアルゴリズムでは、音声に特徴的な概周期性を利用している。概周期性とは、同じような波形が繰り返し現れることをいう。同じような波形を削除／挿入し、音声波形を圧縮／伸張することにより、話速を速く／遅くする。以下、図３を参照し、ＰＩＣＯＬＡの話速変換アルゴリズムについて、より詳しく説明する。
【０００３】
話速を速くする場合（話速変換倍率ｒ＞１）には、図３（ａ）に示すように、まず、入力された音声波形データの所定範囲Ｔにおいて、同じような波形が繰り返す周期である基本周期ｐを探索する（Ｔを基本周期探索範囲と呼ぶ）。そして、基本周期ｐの区間を破棄した上で、続くｐ／（ｒ−１）の区間を出力する。このようにして基本周期ｐの波形が削除された結果、ｐ＋ｐ／（ｒ−１）の長さの波形がｐ／（ｒ−１）の長さに変換され、波形は１／ｒに圧縮される。次に、ｐ＋ｐ／（ｒ−１）のポイントＡ1から基本周期探索範囲Ｔを取得し、基本周期ｐの探索から繰り返す。
【０００４】
話速を遅くする場合（話速変換倍率ｒ＜１）には、図３（ｂ）に示すように、まず、入力された音声波形データの基本周期探索範囲Ｔにおいて、基本周期ｐを探索する。そして、基本周期ｐの区間を出力した上で、基本周期ｐの区間を含むｐｒ／（１−ｒ）の区間を出力する。このようにして基本周期ｐの波形が挿入された結果、ｐｒ／（１−ｒ）の長さの波形がｐ＋ｐｒ／（１−ｒ）の長さに変換され、波形は１／ｒに伸張される。次に、ｐｒ／（１−ｒ）のポイントＡ2から基本周期探索範囲Ｔを取得し、基本周期ｐの探索から繰り返す（例えば、非特許文献１を参照）。
【０００５】
このように、ＰＩＣＯＬＡによる話速変換処理では、基本周期ｐを基に音声波形の伸縮を行う。基本周期ｐの探索には、基本周期探索範囲Ｔに相当する所定の長さの音声波形データが必要である。このため、前回のデータ出力の終了ポイントＡ，Ｂ，Ｃ（図３（ａ）では例えばｐ＋ｐ／（ｒ−１）のポイントＡ1等、図３（ｂ）では例えばｐｒ／（１−ｒ）のポイントＡ2等）から上記所定の長さの音声波形データが入力されるのを待って、次の基本周期探索範囲Ｔに対する処理を行う。この処理により得られたデータは、基本周期探索範囲Ｔの終了点が属する入力フレーム（０，１，２，…）に対応する出力フレーム（０，１，２，…）のデータとして出力される。
【０００６】
なお、出願人は、本明細書に記載した先行技術文献情報で特定される先行技術文献以外には、本発明に関連する先行技術文献を出願時までに発見するには至らなかった。
【非特許文献１】森田、板倉、“自己相関法による音声の時間軸での伸縮方式とその評価”、１９８６年
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、基本周期探索範囲Ｔの開始点にあたる前回のデータ出力の終了ポイントＡ〜Ｃは、前回の基本周期探索範囲Ｔにおける基本周期ｐに依存し前後に変動する。これに応じて、基本周期探索範囲Ｔの終了点もまた前後に変動する。このため、必ずしもすべての入力フレームに基本周期探索範囲Ｔの終了点が存在するとは限らず、音声波形データが出力されない出力フレームもあった。図３に示す例では、入力フレーム０，２に基本周期探索範囲Ｔの終了点が存在しないので、出力フレーム０，２では音声波形データが出力されない。
【０００８】
音声波形データが出力されない出力フレームがあると、一般的にデータが所定のサンプル数で等分割されるストリーミング処理においては、音声波形データの連続性が保たれない。このため、テレビ・ラジオ放送などのリアルタイム再生を適切に行えないという問題があった。さらに、リアルタイム再生を行いながら、話速をユーザが希望するように変更することも難しいという問題があった。
【０００９】
本発明は、このような課題を解決するためになされたものであり、その目的は、ストリーミング処理において、ＰＩＣＯＬＡによる話速変換を行うときに、音声波形データが出力されないフレームを作らないようにすることにある。
【課題を解決するための手段】
【００１０】
このような目的を達成するために、本発明に係る話速変換方法は、初期状態において話速変換倍率を設定する第１のステップと、１フレーム分の入力音声波形データを入力バッファに保持する第２のステップと、音声波形の基本周期を求めるのに必要なデータ長の入力音声波形データを入力バッファより取得し、基本周期探索用データとして保持する第３のステップと、基本周期探索用データより音声波形の基本周期を求め、この基本周期および話速変換倍率に基づき音声波形が伸長または圧縮された音声波形データを新たに生成する第４のステップと、入力バッファに保持されている１フレーム分の入力音声波形データを基に第４のステップで生成された音声波形データのうち、１フレームのサンプル数を話速変換倍率で割ったサンプル数のみ出力するとともに、残余の音声波形データを出力バッファに保持する第５のステップとを備えることを特徴とする。
【００１１】
この話速変換方法は、入力バッファに音声波形の基本周期を求めるのに必要なデータ長の入力音声波形データが存在せず、第４のステップの処理を行えないときに、出力バッファに保持されている音声波形データのうち１フレームのサンプル数を話速変換倍率で割ったサンプル数のみ出力する第６のステップを更に備えるものであってもよい。
また、第４のステップは、話速変換倍率が変更されたときに、変更後の話速変換倍率に基づき音声波形データを生成するステップを備えるものであってもよい。
また、第３のステップは、初期状態において基本周期探索用データとして無音データを保持するステップを備えるものであってもよい。
【００１２】
また、本発明に係る話速変換装置は、１フレーム分の入力音声波形データを保持する入力バッファと、音声波形の基本周期を求めるのに必要なデータ長の入力音声波形データを入力バッファから取得し、基本周期探索用データとして保持する基本周期探索用データバッファと、基本周期探索用データより音声波形の基本周期を求め、この基本周期および話速変換倍率に基づき音声波形が伸長または圧縮された音声波形データを新たに生成する音声波形データ生成手段と、入力バッファに保持されている１フレーム分の入力音声波形データを基に音声波形データ生成手段により生成された音声波形データのうち、１フレームのサンプル数を話速変換倍率で割ったサンプル数のみ出力するとともに、残余の音声波形データを保持する出力バッファとを備えることを特徴とする。
【００１３】
ここで、出力バッファは、入力バッファに音声波形の基本周期を求めるのに必要なデータ長の入力音声波形データが存在せず、音声波形データ生成手段による処理を行えないときに、出力バッファに保持されている音声波形データのうち１フレームのサンプル数を話速変換倍率で割ったサンプル数のみ出力するものであってもよい。
また、上述した話速変換装置は、話速変換倍率の入力にしたがって音声波形データ生成手段に話速変換倍率を設定する話速変換倍率設定手段を更に備えるものであってもよい。
【発明の効果】
【００１４】
本発明では、入力バッファに保持されている１フレーム分の入力音声波形データを基に音声波形が伸長または圧縮された音声波形データを新たに生成し、その少なくとも一部を出力するとともに、残余の音声波形データを出力バッファに保持し次のフレームでの出力に備える。これにより、音声波形データが出力されないフレームがなくなり、ストリーミング処理において、音声波形データの連続性を保つことができる。その結果、テレビ・ラジオ放送などのリアルタイム再生を適切に行うことができ、リアルタイム再生を行いながら話速をユーザが希望するように変更することも可能となる。
また、初期状態において基本周期探索用データとして無音データを保持しておくことにより、初期のフレームでもデータが出力されるので、データの連続性を更に高めることができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照し、本発明の実施の形態について説明する。
図１は、本発明の一実施の形態に係る話速変換装置の構成を示すブロック図である。この図に示す話速変換装置１は、話速変換倍率設定部２と、基本周期範囲設定部３と、音声波形データ入力部４と、入力バッファ５と、基本周期探索窓データバッファ６と、ＰＩＣＯＬＡ話速変換部７と、出力バッファ８と、音声波形データ出力部９とから構成されている。
【００１６】
話速変換倍率設定部２は、話速をどのくらい速くまたは遅くするかを表す話速変換倍率ｒが入力されたときに、入力された話速変換倍率ｒをＰＩＣＯＬＡ話速変換部７および出力バッファ８に設定する。
基本周期範囲設定部３は、この話速変換装置１で話速変換の対象とする音声波形の基本周期ｐの最大値および最小値を基本周期探索窓データバッファ６およびＰＩＣＯＬＡ話速変換部７に設定する。
【００１７】
音声波形データ入力部４は、話速変換を行う入力音声波形データを１フレームあたりｎサンプル取得し、入力バッファ５へ出力する。
入力バッファ５は、音声波形データ入力部４から入力される１フレーム分の入力音声波形データを保持する。入力バッファ５はまた、保持されている入力音声波形データを、基本周期探索窓データバッファ６またはＰＩＣＯＬＡ話速変換部７へ出力する。
【００１８】
基本周期探索窓データバッファ６は、基本周期範囲設定部３により設定された基本周期ｐの最大値の２倍の長さのデータ容量を確保する。その上で、基本周期ｐを求めるのに必要なデータ長（以下、窓長という）Ｔの入力音声波形データを、基本周期探索窓データとして保持する。また、基本周期探索窓データの少なくとも一部をＰＩＣＯＬＡ話速変換部７へ出力し、これにより窓長Ｔに不足した長さ分の入力音声波形データを入力バッファ５から取得し補充する。
【００１９】
ＰＩＣＯＬＡ話速変換部７は、基本周期探索窓データバッファ６から基本周期探索窓データを取得し、この基本周期探索窓データを探索し音声波形の基本周期ｐを求める。この際、基本周期範囲設定部３により設定された最大値および最小値の範囲から基本周期ｐを探索する。このようにして得られた基本周期ｐと、話速変換倍率設定部２により設定された話速変換倍率ｒとに基づき、音声波形が伸長または圧縮された音声波形データを新たに生成する。以上の基本周期ｐの探索から音声波形データの生成までの処理は、従来のＰＩＣＯＬＡによる話速変換処理と同様である。
【００２０】
ＰＩＣＯＬＡ話速処理部７はまた、入力バッファ５に同一フレームで未処理の入力音声波形データが残っている限り、話速変換処理を繰り返し行う。この際、入力バッファ５から入力音声波形データを直接取得し、この入力音声波形データに対し先に基本周期探索窓データから求められた基本周期ｐを用いて、音声波形データを新たに生成する。
ＰＩＣＯＬＡ話速処理部７はさらに、入力バッファ５に保持されている１フレーム分の入力音声波形データに対する処理が終了した後に、新たに生成された音声波形データを出力バッファ８へ出力する。
【００２１】
出力バッファ８は、ＰＩＣＯＬＡ話速処理部７から入力された音声波形データのうち、１フレームあたりの入力サンプル数ｎを話速変換倍率ｒで割ったｎ／ｒサンプルのみ音声波形データ出力部９へ出力するとともに、残余の音声波形データを保持する。そして、次のフレームで入力バッファ５に窓長Ｔを超える入力音声波形データが存在せず、ＰＩＣＯＬＡ話速処理部７による話速変換処理を行えないときに、前のフレームから出力バッファ８に保持されている音声波形データをｎ／ｒサンプルのみ音声波形データ出力部９へ出力する。
音声波形データ出力部９は、出力バッファ８から音声波形データをｎ／ｒサンプル取得し、入力フレームに対応する出力フレームの出力音声波形データとして出力する。
【００２２】
次に、図１および図２を参照し、話速変換装置１の動作について説明する。図２は、話速変換装置１の動作の流れを示すフローチャートである。
まず、毎フレームの処理を行う前に、話速変換装置１を初期化する（ステップＳ１）。このとき、話速変換倍率設定部２により話速変換倍率ｒをＰＩＣＯＬＡ話速変換部７および出力バッファ８に設定し、基本周期範囲設定部３により基本周期ｐの最大値および最小値を基本周期探索窓データバッファ６およびＰＩＣＯＬＡ話速変換部７に設定する。
【００２３】
音声波形データ入力部４において、話速変換したい入力音声波形データを１フレームあたりｎサンプル取得し（ステップＳ２）、取得された１フレーム分の入力音声波形データを入力バッファ５に保持する（ステップＳ３）。
基本周期探索窓データバッファ６に保持されている入力音声波形データ（基本周期探索窓データ）が、音声波形の基本周期ｐを求めるのに必要な窓長Ｔを超えているかを判定し、窓長Ｔを超えている場合には（ステップＳ４，ＹＥＳ）、ＰＩＣＯＬＡ話速変換部７において、基本周期探索窓データから基本周期ｐを求める（ステップＳ８）。
【００２４】
これに対し、窓長Ｔを超えていない場合には（ステップＳ４，ＮＯ）、入力バッファ５に入力音声波形データが存在するかを判定する。入力音声波形データが存在する場合には（ステップＳ５，ＹＥＳ）、窓長Ｔに不足する長さ分の入力音声波形データを基本周期探索窓データバッファ６に補充する（ステップＳ６）。再び基本周期探索窓データバッファ６に保持されている入力音声波形データ（基本周期探索窓データ）が窓長Ｔを超えたかを判定し、窓長Ｔを超えた場合には（ステップＳ７，ＹＥＳ）、ＰＩＣＯＬＡ話速変換部７において、基本周期探索窓データから基本周期ｐを求める（ステップＳ８）。
【００２５】
ユーザにより話速変換倍率ｒが変更された場合には（ステップＳ９，ＹＥＳ）、基本周期ｐを求めた後に、話速変換倍率設定部２により変更後の話速変換倍率ｒをＰＩＣＯＬＡ話速変換部７および出力バッファ８に設定する（ステップＳ１０）。そして、ＰＩＣＯＬＡ話速変換部７において、基本周期ｐおよび話速変換倍率ｒに基づき、音声波形が伸長または圧縮された音声波形データを新たに生成する話速変換処理を行う（ステップＳ１１）。入力バッファ５に同一フレームで未処理の入力音声波形データが残っている限り、話速変換処理を繰り返し行う（ステップＳ１２，ＹＥＳ）。この際、入力バッファ５から入力音声波形データを直接取得し、この入力音声波形データに対しステップＳ８で求められた基本周期ｐを用いて、音声波形データを新たに生成する。
【００２６】
ここで、窓長Ｔがフレーム長よりも短いときには、同一フレームの入力音声波形データに対する話速変換処理が１回で終了せず、話速変換処理が繰り返し行われる。窓長Ｔがフレーム長よりも長いときには、所定の条件の下、話速変換処理が繰り返し行われる。すなわち、話速変換倍率ｒ＞１のときには、話速変換倍率ｒが十分に大きく基本周期ｐが十分に小さいため、ｐ＋ｐ／（ｒ−１）がフレーム長よりも短い場合には、話速変換処理が繰り返し行われる。また、話速変換倍率ｒ＜１のときには、話速変換倍率ｒおよび基本周期ｐが十分に小さいため、ｐ＋ｐｒ／（１−ｒ）がフレーム長よりも短い場合には、話速変換処理が繰り返し行われる。窓長Ｔがフレーム長よりも長いときでも、これらの条件が満たされない場合には、同一フレームの入力音声波形データに対する話速変換処理が１回で終了する（ステップＳ１２，ＮＯ）。
なお、話速変換倍率ｒ＝１、すなわち話速を遅くも速くもしない場合には、入力音声波形データをそのまま話速変換処理結果とする。
【００２７】
入力バッファ５に保持されている１フレーム分の入力音声波形データに対する話速変換処理が終了したところで、ＰＩＣＯＬＡ話速変換部７において新たに生成された音声波形データを出力バッファ８へ出力する（ステップＳ１３）。
ＰＩＣＯＬＡ話速処理部７から出力バッファ８に入力された音声波形データのうち、１フレームあたりの入力サンプル数ｎを話速変換倍率ｒで割ったｎ／ｒサンプルのみ音声波形データ出力部９へ出力し、そのフレームにおける出力音声波形データとして出力する。また、出力バッファ８において、音声波形データ出力部９へ出力されなかった残余の音声波形データを保持する（ステップＳ１４）。
【００２８】
一方、ステップＳ５において入力バッファ５に入力音声波形データが存在しない場合（ステップＳ５，ＮＯ）、またはステップＳ７において基本周期探索窓データバッファ６に保持されている入力音声波形データが窓長Ｔを超えなかった場合には（ステップＳ７，ＮＯ）、前のフレームのステップＳ１４から出力バッファ８に保持されている音声波形データのうちｎ／ｒサンプルのみ音声波形データ出力部９へ出力し、そのフレームにおける出力音声波形データとする（ステップＳ１５）。
【００２９】
ステップＳ１４，１５の後に音声入力が終了したかを判定し、終了していなければ（ステップＳ１６，ＮＯ）、ステップＳ２に戻って次のフレームに対する処理を続け、終了していれば（ステップＳ１６，ＹＥＳ）、全体の処理を終了する。
【００３０】
以上のように、本実施の形態では、入力バッファ５に保持されている１フレーム分の入力音声波形データを基に音声波形が伸長または圧縮された音声波形データを新たに生成し、その少なくとも一部を出力音声波形データとして出力するとともに、残余の音声波形データを出力バッファ８に保持し次のフレームでの出力に備える。これにより、出力音声波形データが出力されないフレームがなくなり、ストリーミング処理において、出力音声波形データの連続性を保つことができる。その結果、テレビ・ラジオ放送などのリアルタイム再生を適切に行うことができ、リアルタイム再生を行いながら話速をユーザが希望するように変更することも可能となる。また、すでに媒体に蓄積されている音声波形データに対して、話速を速めることによる短時間での音声の聞き取りや、遅くすることによる英会話音声のリスニング訓練への応用などが可能となる。
【００３１】
また、入力音声波形データの入力部分に入力バッファ５を設けることにより、基本周期探索窓データバッファ６への入力音声波形データの補充と、ＰＩＣＯＬＡ話速変換部７への入力音声波形データの供給とを連続的に振り分けることが可能となる。
また、基本周期探索窓データバッファ６の初期状態においては、基本周期探索窓データとして、無音データを保持させてもよい。これにより、初期のフレームでもデータが出力されるので、データの連続性を更に高めることができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施の形態に係る話速変換装置の構成を示すブロック図である。
【図２】本発明の一実施の形態に係る話速変換装置の動作の流れを示すフローチャートである。
【図３】ＰＩＣＯＬＡの話速変換アルゴリズムを説明するための図である。
【符号の説明】
【００３３】
１…話速変換装置、２…話速変換倍率設定部、３…基本周期範囲設定部、４…音声波形データ入力部、５…入力バッファ、６…基本周期探索窓データバッファ、７…ＰＩＣＯＬＡ話速変換部、８…出力バッファ、９…音声波形データ出力部。
【図１】
2006003517.tif 000003
【図２】
2006003517.tif 000004
【図３】
2006003517.tif 000005