(57)【要約】【課題】  自然な音色変化を伴うビブラートを付与することができる音声処理装置、音声処理方法及び音声処理プログラムを提供する。【解決手段】  テンプレート作成部９００は、ターゲット入力部９５０から供給されるビブラートがかかったターゲット音声に係るテンプレートセットＴＳを作成する。このテンプレート作成部９００によって作成されるテンプレートセットＴＳには、ターゲット音声のフレーム毎のピッチ、ゲイン、スペクトルの傾き（スロープ）が記録される。ビブラート付加部４００は、ビブラート付加制御部７００による制御のもと、素人歌唱者等によって歌唱された音声（入力音声）のピッチ、ゲイン、スロープを変更し、変更したピッチ、ゲイン、スロープから求まるスペクトルを逆ＦＦＴし、逆ＦＦＴによって得られた音声（すなわち、変更後のピッチ、ゲイン、スロープを有する音声）を音声出力部５００に供給する。【選択図】      図１
2005099509.tif 000002
【特許請求の範囲】
【請求項１】
ビブラートがかかったターゲット音声のピッチ及びスペクトルの傾きを記憶する記憶手段と、
音声を入力する入力手段と、
入力された前記音声のピッチを抽出するピッチ抽出手段と、
抽出された前記音声のピッチを前記ターゲット音声のピッチに応じて変更するピッチ変更手段と、
入力された前記音声をスペクトル分析することにより得られる該音声のスペクトルの傾きを、前記ターゲット音声のスペクトルの傾きに応じて変更するスペクトル・スロープ変更手段と、
変更後の前記音声のピッチと変更後の前記音声のスペクトルの傾きとを有する音声を出力する出力手段と
を具備することを特徴とする音声処理装置。
【請求項２】
前記記憶手段には、前記ターゲット音声のピッチ及びスペクトルの傾きに加えて該ターゲット音声のゲインが記憶され、
入力された前記音声のゲインを抽出するゲイン抽出手段と、抽出された前記音声のゲインを前記ターゲット音声のゲインに応じて変更するゲイン変更手段とをさらに具備し、
前記出力手段は、変更後の前記音声のピッチと変更後の前記音声のスペクトルの傾きと変更後の前記音声のゲインとを有する音声を出力することを特徴とする請求項１に記載の音声処理装置。
【請求項３】
前記記憶手段には、ビブラートがかかった前記ターゲット音声の複数種類のピッチと各ピッチに対応するスペクトルの傾きが記憶され、
前記ピッチ変更手段は、前記ターゲット音声の複数種類のピッチの中から、抽出された前記音声のピッチに最も近いピッチを選択し、選択したターゲット音声のピッチに応じて該抽出された前記音声のピッチを変更し、
前記スペクトル・スロープ変更手段は、前記ターゲット音声の複数種類のスペクトルの傾きの中から、前記ピッチ変更手段によって選択された前記ターゲット音声のピッチに対応するスペクトルの傾きを選択し、選択したターゲット音声のスペクトルの傾きに応じて前記音声のスペクトルの傾きを変更することを特徴とする請求項１に記載の音声処理装置。
【請求項４】
前記記憶手段には、ビブラートがかかった前記ターゲット音声を少なくともビブラートアタック領域、ビブラートボディ領域に分割したときの、各領域におけるピッチ及びスペクトルの傾きが記憶されることを特徴とする請求項１に記載の音声処理装置。
【請求項５】
ビブラートがかかったターゲット音声を入力するターゲット入力手段と、
入力された前記ターゲット音声のピッチを抽出して前記記憶手段に記憶するターゲットピッチ抽出手段と、
入力された前記ターゲット音声をスペクトル分析することにより、該ターゲット音声のスペクトルの傾きを算出して前記記憶手段に記憶するターゲットスペクトル・スロープ算出手段とをさらに具備することを特徴とする請求項１、３、４のいずれか１の請求項に記載の音声処理装置。
【請求項６】
ビブラートがかかったターゲット音声のピッチ及びスペクトルの傾きを記憶する記憶過程と、
音声を入力する入力過程と、
入力された前記音声のピッチを抽出するピッチ抽出過程と、
抽出された前記音声のピッチを前記ターゲット音声のピッチに応じて変更するピッチ変更過程と、
入力された前記音声をスペクトル分析することにより得られる該音声のスペクトルの傾きを、前記ターゲット音声のスペクトルの傾きに応じて変更するスペクトル・スロープ変更過程と、
変更後の前記音声のピッチと変更後の前記音声のスペクトルの傾きとを有する音声を出力する出力過程と
を具備することを特徴とする音声処理方法。
【請求項７】
コンピュータを、
ビブラートがかかったターゲット音声のピッチ及びスペクトルの傾きを記憶する記憶手段と、
音声を入力する入力手段と、
入力された前記音声のピッチを抽出するピッチ抽出手段と、
抽出された前記音声のピッチを前記ターゲット音声のピッチに応じて変更するピッチ変更手段と、
入力された前記音声をスペクトル分析することにより得られる該音声のスペクトルの傾きを、前記ターゲット音声のスペクトルの傾きに応じて変更するスペクトル・スロープ変更手段と、
変更後の前記音声のピッチと変更後の前記音声のスペクトルの傾きとを有する音声を出力する出力手段として機能させるための音声処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力される歌唱音声等に対してビブラートを付与することができる音声処理装置、音声処理方法及び音声処理プログラムに関する。
【背景技術】
【０００２】
歌唱技術の１つであるビブラートは、歌唱音声に対して周期的なピッチ、振幅のゆれを与える技術であり、長い伸ばし音にビブラートをかけることで豊かな表情（音の変化）を与えることができる。逆に、長い音を歌うときにビブラートをかけないと、音の変化は乏しくなり、歌唱が単調になりやすい。しかしながら、ビブラートは高度な歌唱技術であるために、歌うことになれていない素人歌唱者が綺麗なビブラートをかけて歌うことは難しいという問題があった。
かかる背景のもと、素人歌唱者の歌唱音声に対して自動的にビブラートを付加する装置が種々提案されている。例えば、下記特許文献１には、単に一定の大きさのビブラートを機械的に付加するのではなく、入力される歌唱音声信号のピッチ、音量、同じ音の持続時間などの状態に応じて変調信号を生成し、この変調信号により歌唱音声信号のピッチや振幅を変調してビブラートを付加する装置が開示されている。
【０００３】
【特許文献１】特開平９−０４４１５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に開示された装置においては、ＬＦＯ（Low Frequency Oscillator）にて発生された正弦波や三角波などの合成信号をベースに変調信号を生成しているため、模倣対象となる歌唱者（ターゲット歌唱者）によって歌われたビブラートの微妙なピッチや振幅のゆれは再現できず、また、音色の自然な変化を伴わせることもできない。上記正弦波などのかわりに、ターゲット歌唱者の現実のビブラート波形をサンプリングしたものを使用する従来例もあるが、１つのビブラート波形から歌唱音声の自然なピッチ、振幅、音色の変化を再現することはできない。
【０００５】
本発明は、以上説明した事情を鑑みてなされたものであり、自然な音色変化を伴うビブラートを付与することができる音声処理装置、音声処理方法及び音声処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した問題を解決するため、本発明に係る音声処理装置は、ビブラートがかかったターゲット音声のピッチ及びスペクトルの傾きを記憶する記憶手段と、音声を入力する入力手段と、入力された前記音声のピッチを抽出するピッチ抽出手段と、抽出された前記音声のピッチを前記ターゲット音声のピッチに応じて変更するピッチ変更手段と、入力された前記音声をスペクトル分析することにより得られる該音声のスペクトルの傾きを、前記ターゲット音声のスペクトルの傾きに応じて変更するスペクトル・スロープ変更手段と、変更後の前記音声のピッチと変更後の前記音声のスペクトルの傾きとを有する音声を出力する出力手段とを具備することを特徴とする。
【０００７】
かかる構成によれば、例えば素人歌唱者の音声等が入力された場合、予め記憶手段に記憶されているビブラートがかかったターゲット音声のピッチに応じて入力された音声のピッチが変更されるとともに、該ターゲット音声のスペクトルの傾きに応じて入力された音声のスペクトルの傾きが変更される。このスペクトルの傾きを変化させることで、全体の音量を変えることなく音色のみを変化させることができ（図１０と図５、図１１と図５をそれぞれ比較参照されたい）、あたかもターゲット歌唱者が歌唱しているかのうような自然な音色変化を示すビブラートを素人歌唱者の音声等に付加することが可能となる。
【０００８】
ここで、前記記憶手段には、前記ターゲット音声のピッチ及びスペクトルの傾きに加えて該ターゲット音声のゲインが記憶され、入力された前記音声のゲインを抽出するゲイン抽出手段と、抽出された前記音声のゲインを前記ターゲット音声のゲインに応じて変更するゲイン変更手段とをさらに具備し、前記出力手段は、変更後の前記音声のピッチと変更後の前記音声のスペクトルの傾きと変更後の前記音声のゲインとを有する音声を出力する構成としても良い。
【０００９】
また、前記記憶手段には、ビブラートがかかった前記ターゲット音声の複数種類のピッチと各ピッチに対応するスペクトルの傾きが記憶され、前記ピッチ変更手段は、前記ターゲット音声の複数種類のピッチの中から、抽出された前記音声のピッチに最も近いピッチを選択し、選択したターゲット音声のピッチに応じて該抽出された前記音声のピッチを変更し、前記スペクトル・スロープ変更手段は、前記ターゲット音声の複数種類のスペクトルの傾きの中から、前記ピッチ変更手段によって選択された前記ターゲット音声のピッチに対応するスペクトルの傾きを選択し、選択したターゲット音声のスペクトルの傾きに応じて前記音声のスペクトルの傾きを変更する構成としても良い。
【００１０】
さらにまた、前記記憶手段には、ビブラートがかかった前記ターゲット音声を少なくともビブラートアタック領域、ビブラートボディ領域に分割したときの、各領域におけるピッチ及びスペクトルの傾きが記憶される構成としても良い。
【発明の効果】
【００１１】
以上説明したように、本発明によれば、ターゲット歌唱者によって付加されるビブラートの微妙なピッチやゲインのゆれを再現するばかりでなく、音色の自然な変化をも忠実に再現することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明に係る実施の形態について図面を参照しながら説明する。
Ａ．本実施形態
Ａ−１．全体構成
図１は、本実施形態に係る音声処理装置１００の構成を示す図である。
音声入力部（入力手段）２００は、マイクロホン等によって構成され、素人歌唱者等の音声を音声処理装置１００の内部に入力する。なお、以下の説明では、便宜上、音声入力部２００を介して入力される素人歌唱者等の音声を単に入力音声と呼ぶ。
スペクトル・ピッチ分析部（ピッチ抽出手段、ゲイン抽出手段）３００は、音声入力部２００から供給される入力音声をフレーム単位（５〜１０ｍｓ程度）でＦＦＴ（Fast Fourier Transform）をベースとするスペクトル分析等を行い、フレーム毎のピッチ、スペクトル等を抽出する。なお、フレーム毎のピッチ抽出については、スペクトル分析に限らず周知の手法を用いるようにしてもよい。
パラメータ入力部６００は、入力音声に付加するビブラートを制御するためのパラメータ（例えば、所望のビブラートレート等）を音声処理装置１００の内部に入力する。このビブラートを制御するためのパラメータ（以下、Vibパラメータ）は、素人歌唱者等が操作ボタン等（図示略）を適宜操作することによって入力される。
【００１３】
ターゲット入力部（ターゲット入力手段）９５０は、ターゲット歌唱者がビブラートをかけて歌ったときの音声（以下、ターゲット音声）を入力し、これをテンプレート作成部９００に供給する。
テンプレート作成部（ターゲットピッチ抽出手段、ターゲットスペクトル・スロープ算出手段）９００は、ターゲット入力部９５０から供給されるビブラートがかかったターゲット音声に係るテンプレートセットＴＳを作成し、これをビブラートデータベース８００に記憶する。なお、テンプレートセットＴＳの作成等に関する詳細は後述する。
ビブラートデータベース（記憶手段）８００には、ターゲット歌唱者が種々のピッチでビブラートをかけて歌ったときの音声に係るテンプレートセットＴＳが複数記憶される。かかる構成を採用することにより、入力音声にビブラートを付加する際には、この入力音声のピッチに最も近いテンプレートセットＴＳを選択・使用することができ、これにより、リアルなビブラートを付加することが可能となる。
【００１４】
ビブラート付加制御部（ピッチ変更手段、スペクトル・スロープ変更手段、ゲイン変更手段）７００は、入力音声のピッチに最も近いテンプレートセットＴＳをビブラートデータベース８００から選択し、この選択したテンプレートセットＴＳと上記Vibパラメータとに基づいて、入力音声に付加するビブラートを制御する（詳細は後述）。
ビブラート付加部（ピッチ変更手段、スペクトル・スロープ変更手段、ゲイン変更手段）４００は、ビブラート付加制御部７００による制御のもと、入力音声のピッチ及び該入力音声のスペクトルを分析することにより得られるゲイン、スペクトルの傾き（以下、適宜、スロープという）を変更し、変更したピッチ、ゲイン、スロープから求まるスペクトルを逆ＦＦＴする（詳細は後述）。そしてビブラート付加部４００は、この逆ＦＦＴによって得られた音声（すなわち、変更後のピッチ、ゲイン、スロープを有する音声）を音声出力部５００に供給する。
音声出力部（音声出力手段）５００は、スピーカ等によって構成され、ビブラート付加部４００から供給される音声を外部に出力する。以上説明した音声処理装置１００を利用することで、ビブラートが付加されていない素人歌唱者の音声を、あたかもターゲット歌唱者が歌唱しているかのような自然な音色変化を示す音声に変換することが可能となる。
【００１５】
Ａ−２．テンプレートセットＴＳの作成
テンプレート作成部９００は、ターゲット入力部９５０からビブラートがかかったターゲット音声を受け取ると、このターゲット音声をフレーム単位でＦＦＴをベースとするスペクトル分析等を行い、フレーム毎のピッチ、ゲイン、スロープを求める。なお、フレーム毎のピッチを求める際には、上記入力音声と同様、スペクトル分析に限らず周知の手法を用いるようにしてもよい。
【００１６】
図２は、ビブラートがかかったターゲット音声のピッチを持つ波形であるピッチ波形を示す図である。テンプレート作成部９００は、ビブラートがかかった１つの音声波形を、図２に示すように、ビブラートアタック領域（ＶＡ領域）、ビブラートボディ領域（ＶＢ領域）、ビブラートリリース領域（ＶＲ領域）に分ける。具体的には、ビブラートのかけはじめの部分（ピッチがビブラート変化し始める箇所から周期的な変化に至る直前まで）をＶＡ領域とし、ビブラートアタックに続いてピッチが周期的に変動する部分をＶＢ領域とし、ビブラートボディに続いて消音するまでの部分をＶＲ領域とする。なお、各領域の境界については、ビブラート周期の変化の状況等を考慮し、ピッチの山の極大値の部分（時間点）を境界とする。
【００１７】
また、本来的にはＶＢ領域の各データ（すなわち、ピッチ、ゲイン、スロープ）を用いるだけでもビブラートを付加することはできるが、本実施形態では、よりリアルなビブラートの付加を図るため、ＶＡ領域、ＶＢ領域、ＶＲ領域の各データを用いている。テンプレート作成部９００は、このように１つのターゲット音声波形を各領域に分割すると、これら各領域の各々についてテンプレートを作成する。なお、以下の説明では、ＶＡ領域について作成されたテンプレートをＶＡテンプレートと呼び、ＶＢ領域について作成されたテンプレートをＶＢテンプレートと呼び、ＶＲ領域について作成されたテンプレートをＶＲテンプレートと呼び、さらに、これら各領域のテンプレートを１つにまとめたものをテンプレートセットＴＳと呼ぶ。
【００１８】
Ａ−２−１．ピッチの抽出
図３は、ＶＡ領域のピッチ波形を示す図である。テンプレート作成部９００は、まず、図３に示すＶＡ領域内の各フレームのピッチ波形を順次取り出し、各ピッチ波形を分析することによりターゲット音声の各フレームのピッチを順次抽出する。このとき、テンプレート作成部９００は、各フレームのピッチとともに、以下に示すような付加情報も生成し、これらをＶＡテンプレートに記録する。かかる付加情報としては、開始ビブラートデプス（ｍＢｅｇｉｎＤｅｐｔｈ［ｃｅｎｔ］）、終了ビブラートデプス（ｍＥｎｄＤｅｐｔｈ［ｃｅｎｔ］）、開始ビブラートレート（ｍＢｅｇｉｎＲａｔｅ［Ｈｚ］）、終了ビブラートレート（ｍＥｎｄＲａｔｅ［Ｈｚ］）、テンプレート区間長（ｍＤｕｒａｔｉｏｎ［ｓ］）、開始ピッチ（ｍＰｉｔｃｈ［ｃｅｎｔ］）等がある。
【００１９】
開始ビブラートデプス（ｍＢｅｇｉｎＤｅｐｔｈ［ｃｅｎｔ］）は、図３に示すように開始ビブラート周期のピッチの最大値と最小値の差分であり、終了ビブラートデプス（ｍＥｎｄＤｅｐｔｈ［ｃｅｎｔ］）は、終了ビブラート周期のピッチの最大値と最小値の差分である。なお、ビブラート周期とは、例えば、ピッチの極大値から次の極大値までの時間（ｓ）を指す。また、図３では、ＶＡ領域のピッチ波形が開始ビブラート周期と終了ビブラート周期とによって構成されているが（すなわち、ＶＡ領域が２周期分の長さを有している）、周波数によっては、例えばＶＡ領域が３周期分以上の長さを有するような場合もある。このように、ＶＡ領域は、その周波数に応じて何周期分の長さを有するかは変わるものの、ビブラートが周期的に変動するＶＢ領域に至るまでの領域を指す点において変わりはない。
【００２０】
開始ビブラートレート（ｍＢｅｇｉｎＲａｔｅ［Ｈｚ］）は、開始ビブラート周期の逆数（＝１／開始ビブラート周期）であり、終了ビブラートレート（ｍＥｎｄＲａｔｅ［Ｈｚ］）は、終了ビブラート周期の逆数（＝１／終了ビブラート周期）である。 また、テンプレート区間長（ｍＤｕｒａｔｉｏｎ［ｓ］）は、テンプレートの時間的長さであり、開始ピッチ（ｍＰｉｔｃｈ［ｃｅｎｔ］）は、ＶＡ領域の最初のフレーム（ビブラート周期）のピッチである。なお、これらの付加情報は、このテンプレートを変形して所望のビブラートレート等を得る際に利用される（後述）。
【００２１】
同様に、図４にＶＢ領域のピッチ波形を示す。前述したようにＶＢ領域は、ビブラートアタックに続いてピッチが周期的に変動する部分である。このＶＢ領域の各データをビブラートを付加する長さに応じてループして使用することにより、テンプレート区間長以上のビブラートを実現する。なお、テンプレート作成部９００がＶＢテンプレートに記録する情報については上記ＶＡテンプレートに記録する情報と同様であるため、説明を割愛する。また、ＶＲ領域についても上記ＶＡ領域やＶＢ領域と同様に説明することができるため、説明を割愛する。
【００２２】
Ａ−２−２．ゲイン、スロープの抽出
図５は、ＶＡ領域のあるフレームのスペクトルを例示した図であり、図６は、図５に示すスペクトルの傾き（スロープ）を表すカーブを説明するための図である。なお、各図では、周波数ｆ［Ｈｚ］を横軸にとり、振幅値Ｍａｇｎｉｔｕｄｅ［ｄＢ］を縦軸にとっている。また、図５では、スペクトルエンベロープを実線で示し、スロープを表すカーブ（以下、Ｅｃｕｒｖｅと称する）を破線で示している。ここでまず、Ｅｃｕｒｖｅの振幅値であるＥｃｕｒｖｅＭａｇは、下記式（１）で表すことができる。
ＥｃｕｒｖｅＭａｇ（ｆ）＝Ｇａｉｎ＋１００＊（ｅ−Ｓｌｏｐｅ＊ｆ−１）・・・（１）
Ｇａｉｎ；当該フレームのゲイン
Ｓｌｏｐｅ；当該フレームのスロープ
【００２３】
さらに、この式をもう少しかみくだいて図示すれば図６のようになる。つまり、ＥＣｕｒｖｅは、周波数ｆ＝０［Ｈｚ］でＧａｉｎ［ｄＢ］からスタートし、周波数ｆが高くなるにつれ（Ｇａｉｎ−１００）［ｄＢ］の漸近線に近づいてゆく。そして、このＥｃｕｒｖｅの傾き具合は、スロープによって変わる。この式（１）より、ゲインで純粋に信号の大きさを変化させることができ、スロープでその周波数特性（音色の変化）をコントロールできることがわかる（後述）。
【００２４】
テンプレート作成部９００は、以上のようにしてＶＡ領域の各フレームのスペクトルを分析することにより、各フレーム毎のゲイン、スロープを求める。このとき、テンプレート作成部９００は、各フレーム毎のゲイン、スロープとともに、開始ゲイン（ｍＧａｉｎ［ｄＢ］）、開始スロープ（ｍＳｌｏｐｅ）、開始トレモロデプス（ｍＢｅｇｉｎＴｒｅｍｏｌｏＤｅｐｔｈ［ｄＢ］）、終了トレモロデプス（ｍＥｎｄＴｒｅｍｏｌｏＤｅｐｔｈ［ｄＢ］）といった付加情報（いずれも図示略）を生成し、これらをＶＡテンプレートに記録する。ここで、開始ゲイン（ｍＧａｉｎ［ｄＢ］）は、ＶＡ領域の最初のフレームのゲインであり、開始スロープ（ｍＳｌｏｐｅ）は、ＶＡ領域の最初のフレームのスペクトルの傾きである。また、開始トレモロデプス（ｍＢｅｇｉｎＴｒｅｍｏｌｏＤｅｐｔｈ［ｄＢ］）は、上述した開始ビブラート周期のゲインの最大値と最小値の差分であり、終了トレモロデプス（ｍＥｎｄＴｒｅｍｏｌｏＤｅｐｔｈ［ｄＢ］）は、終了ビブラート周期のゲインの最大値と最小値の差分である。
【００２５】
なお、これらの付加情報は、上記ピッチ波形から求められた付加情報と同様、このテンプレートを変形して所望のトレモロデプス等を得る際に利用される（後述）。また、ＶＢ領域における各フレーム毎のゲイン、スロープ、及びこれらの付加情報は、上記ＶＡ領域における各フレーム毎のゲイン、スロープ及びこれらの付加情報と同様に生成され、ＶＢテンプレートに記録される。さらに、ＶＲ領域における各フレーム毎のゲイン、スロープ及びこれらの付加情報も同様に生成され、ＶＲテンプレートに記録される。
【００２６】
テンプレート作成部９００は、このようにして作成したＶＡテンプレート、ＶＢテンプレート、ＶＲテンプレートを組とするテンプレートセットＴＳをビブラートデータベース８００に記憶する。この結果、ビブラートデータベース８００には、ビブラートがかかったターゲット音声をＶＡ領域、ＶＢ領域、ＶＲ領域に分割したときの、各領域におけるピッチ、スペクトルの傾き、ゲインを示すデータが記憶される。
【００２７】
Ａ−３．ビブラートの付加方法
テンプレートセットＴＳを利用して入力音声にビブラートを付加する方法としては、ＶＡ領域の開始ピッチ（ｍＰｉｔｃｈ［ｃｅｎｔ］）、開始ゲイン（ｍＧａｉｎ［ｄＢ］）、開始スロープ（ｍＳｌｏｐｅ）を基準にした各デルタ値（すなわちΔＰｉｔｃｈ［ｃｅｎｔ］、ΔＧａｉｎ［ｄＢ］、ΔＳｌｏｐｅ）をもとに、入力音声のフレームのスペクトルを変形することを基本とする。
【００２８】
このように、上記各デルタ値については、ＶＡ領域の各データ値を基準にして求めるため、ビブラートアタック、ビブラートボディ、ビブラートリリースの各々の接続時に不連続は生じない。そして、ビブラート開始時にはＶＡ領域の各データを一度だけ使い、続いてＶＢ領域の各データを使う。ＶＢ領域の各データについては、上記の如くループして使用することにより、ＶＢ領域のテンプレート区間長以上のビブラートを実現する。なお、ビブラート終了時には、ＶＢ領域の各データを使用した後、ＶＲ領域の各データを１度だけ使用する。ただし、ＶＲ領域の各データは、必ず使用しなければならないものではなく、ＶＲ領域の各データを使用する代わりにビブラート終了時までＶＢ領域の各データを繰り返し使用しても良い。以下、テンプレートセットＴＳを利用して入力音声にビブラートを付加したときのピッチ変化、ゲイン変化、スロープ変化について説明する。なお、以下では、ＶＢ領域の各データを利用してビブラートを付加する場合を想定する。
【００２９】
Ａ−３−１．ピッチ変化について
まず、ビブラートの開始時を基準にしたときの現在時刻をＴｉｍｅ［ｓ］で表し、このＴｉｍｅ［ｓ］におけるＶＢ領域のピッチをＤＢＰｉｔｃｈ（Ｔｉｍｅ）［ｃｅｎｔ］と表すとすると、ピッチのデルタ値（ΔＰｉｔｃｈ［ｃｅｎｔ］）は下記式（２）によって表される。なお、下記式（２）において、ｍＰｉｔｃｈ［ｃｅｎｔ］がＶＡ領域の開始ピッチを表すことは、前述したとおりである。
ΔＰｉｔｃｈ＝ＤＢＰｉｔｃｈ（Ｔｉｍｅ）−ｍＰｉｔｃｈ  ・・・（２）
【００３０】
この式から明らかなように、ΔＰｉｔｃｈは、現時点におけるＶＢ領域のピッチ（ＤＢＰｉｔｃｈ（Ｔｉｍｅ）［ｃｅｎｔ］）と、ＶＡ領域の開始ピッチ（ｍＰｉｔｃｈ［ｃｅｎｔ］）とのずれ量を表すものとなっている。このように、ＶＢテンプレートを利用して求めたΔＰｉｔｃｈは、最終的には、下記式（３）により入力音声のピッチ（入力Ｐｉｔｃｈ［ｃｅｎｔ］）に加算され、これにより、ビブラートが付加された後の出力音声のピッチ（出力Ｐｉｔｃｈ［ｃｅｎｔ］）が生成される。
出力Ｐｉｔｃｈ＝入力Ｐｉｔｃｈ＋ΔＰｉｔｃｈ  ・・・（３）
【００３１】
Ａ−３−２．ゲイン変化について
上記と同様、Ｔｉｍｅ［ｓ］におけるＶＢ領域のゲインをＤＢＧａｉｎ（Ｔｉｍｅ）と表すとすると、ゲインのデルタ値（ΔＧａｉｎ［ｄＢ］）は下記式（４）によって表される。なお、下記式（４）において、ｍＧａｉｎ［ｄＢ］がＶＡ領域の開始ゲインを表すことは、前述したとおりである。
ΔＧａｉｎ＝ＤＢＧａｉｎ（Ｔｉｍｅ）−ｍＧａｉｎ  ・・・（４）
このように、ＶＢテンプレートを利用して求めたΔＧａｉｎは、最終的には、下記式（５）により入力音声のゲイン（入力Ｇａｉｎ［ｄＢ］）に加算され、これにより、ビブラートが付加された後の出力音声のＧａｉｎ（出力Ｇａｉｎ［ｄＢ］）が生成される。
出力Ｇａｉｎ＝入力Ｇａｉｎ＋ΔＧａｉｎ  ・・・（５）
【００３２】
ここで、図７及び図８は、Ｇａｉｎの大きさを変えたときのスペクトルエンベロープ及びＥＣｕｒｖｅの変化の様子を示す図であり、図７は、Ｇａｉｎを大きくしたとき（ΔＧａｉｎ＝正の値）の変化を示し、図８は、Ｇａｉｎを小さくしたとき（ΔＧａｉｎ＝負の値）の変化を示している。なお、図７及び図８に示すスペクトルエンベロープ及びＥＣｕｒｖｅは、いずれも前掲図５に示すスペクトルエンベロープ及びＥＣｕｒｖｅを基準にしている。
図７と図５、図８と図５をそれぞれ比較して明らかなように、Ｇａｉｎ（各図ではＥＣｕｒｖｅの切片）を変化させると、ＥＣｕｒｖｅ及びスペクトルエンベロープがその形状を維持したままで上下にシフトするのみであり、スペクトルエンベロープの形状そのものは変化しない。つまり、Ｇａｉｎの大きさを変えたとしても、全体の音量が変化する（Ｇａｉｎが大きくなれば全体の音量は大きくなり、Ｇａｉｎが小さくなれば全体の音量は小さくなる）のみであり、音色は変化しない。
【００３３】
Ａ−３−３．スロープ変化について
上記と同様、Ｔｉｍｅ［ｓ］におけるＶＢ領域のスロープをＤＢＳｌｏｐｅ（Ｔｉｍｅ）と表すとすると、スロープのデルタ値（ΔＳｌｏｐｅ）は下記式（６）によって表される。なお、下記式（６）において、ｍＳｌｏｐｅがＶＡ領域の開始スロープを表すことは、前述したとおりである。
ΔＳｌｏｐｅ＝ＤＢＳｌｏｐｅ（Ｔｉｍｅ）／ｍＳｌｏｐｅ  ・・・（６）
このようにして求めたΔＳｌｏｐｅとｍｓｌｏｐｅをさらに下記式（７）に代入し、入力音声の各周波数Ｆｒｅｑ［Ｈｚ］についてのＤｉｆｆ［ｄＢ］を求める。
Ｄｉｆｆ＝１００＊（ｅｘｐ（ｍｓｌｏｐｅ＊ΔＳｌｏｐｅ＊Ｆｒｅｑ）−１．０）−１００＊（ｅｘｐ（ｍｓｌｏｐｅ＊Ｆｒｅｑ）−１．０）  ・・・（７）
【００３４】
そして、このようにして求めたＤｉｆｆを下記式（８）に代入することで、出力ｂｉｎ Ｍａｇｎｉｔｕｄｅ［ｄＢ］を求める。なお、下記式（８）において入力ｂｉｎ Ｍａｇｎｉｔｕｄｅ［ｄＢ］は、入力音声のスペクトルにおける周波数ｆｒｅｑ［Ｈｚ］の成分の大きさを表す（図９参照）。
出力ｂｉｎ Ｍａｇｎｉｔｕｄｅ＝入力ｂｉｎ Ｍａｇｎｉｔｕｄｅ＋Ｄｉｆｆ  ・・・（８）
このような計算を全てのｂｉｎ（周波数）について行い、各々のｂｉｎにおける出力ｂｉｎ Ｍａｇｎｉｔｕｄｅ［ｄＢ］を求める。この操作により、入力音声のスペクトル分析によって得られるスペクトルの傾き（スロープ）が、時間と共に変化していくことになる。
【００３５】
図１０及び図１１は、上記操作によってＥｃｕｒｖｅのＳｌｏｐｅを変えたときのスペクトルエンベロープの変化の様子を示す図であり、図１０は、Ｓｌｏｐｅを大きくしたときのスペクトルエンベロープの変化を示し、図１１は、Ｓｌｏｐｅを小さくしたときのスペクトルエンベロープの変化を示している。なお、図１０及び図１１に示すスペクトルエンベロープ及びＥＣｕｒｖｅは、いずれも前掲図５に示すスペクトルエンベロープ及びＥＣｕｒｖｅを基準にしている。
図１０と図５、図１１と図５をそれぞれ比較して明らかなように、Ｓｌｏｐｅを変化させると、全体の音量を表すＧａｉｎ（各図ではＥＣｕｒｖｅの切片）は変わらないが、ＥＣｕｒｖｅのＳｌｏｐｅの変化に伴ってスペクトルエンベロープの形状が変化し、これにより音色が変化する。より具体的には、図１０に示すようにＳｌｏｐｅを大きくすると、高域側のスペクトルが出なくなるため、こもった音色になる。一方、図１１に示すようにＳｌｏｐｅを小さくすると、低域から高域まで均等にスペクトルが出るため、明るい音色になる。
【００３６】
次に、このＶＢテンプレートを使用して、所望のビブラートレート、所望のピッチデプス（ピッチの波の深さ）、所望のトレモロデプス（ゲインの波の深さ）とする方法について説明する。
【００３７】
Ａ−４．所望のビブラートレートを得る場合
所望のビブラートレートを得るには、まず、下記式（９）及び式（１０）により、テンプレートの読み取り時刻（速度）を変更する。なお、下記式（９）及び式（１０）では、所望のビブラートレートをＶｉｂＲａｔｅ［Ｈｚ］で表し、テンプレートの開始ビブラートレート及びテンプレートの終了ビブラートレートをそれぞれｍＢｅｇｉｎＲａｔｅ［Ｈｚ］及びｍＥｎｄＲａｔｅ［Ｈｚ］で表す。また、テンプレートの読み取り開始時刻を０としたときの時刻をＴｉｍｅ［ｓ］で表し、式（１０）によって得られるＶＢテンプレートの読み取り時刻をＮｅｗＴｉｍｅ［ｓ］で表す。
ＶｉｂＲａｔｅＦａｃｔｏｒ＝ＶｉｂＲａｔｅ／｛（ｍＢｅｇｉｎＲａｔｅ＋ｍＥｎｄＲａｔｅ）／２｝  ・・・（９）
ＮｅｗＴｉｍｅ＝Ｔｉｍｅ＊ＶｉｂＲａｔｅＦａｃｔｏｒ  ・・・（１０）
このようにしてテンプレートの読み取り時刻（速度）を変更することにより、所望のピッチ変化を実現する。
【００３８】
Ａ−５．所望のピッチデプスを得る場合
次に、ピッチデプスであるが、下記式（１１）により新たなΔＰｉｔｃｈを求め、これにより所望のピッチデプスを実現する。なお、下記式（１１）では、所望のピッチデプスをＰｉｔｃｈＤｅｐｔｈ［ｃｅｎｔ］で表し、ＶＢテンプレートの開始ビブラート（ピッチ）デプス及びＶＢテンプレートの終了ビブラート（ピッチ）デプスをそれぞれｍＢｅｇｉｎＤｅｐｔｈ［ｃｅｎｔ］、ｍＥｎｄＤｅｐｔｈ［ｃｅｎｔ］で表す。また、テンプレートの読み取り開始時刻を０とした時間（テンプレートの読み取り時刻）をＴｉｍｅ［ｓ］で表し、Ｔｉｍｅ［ｓ］におけるピッチのデルタ値をΔＰｉｔｃｈ（Ｔｉｍｅ）［ｃｅｎｔ］で表す。
ΔＰｉｔｃｈ＝ΔＰｉｔｃｈ（Ｔｉｍｅ）＊ＰｉｔｃｈＤｅｐｔｈ／｛ｍＢｅｇｉｎＤｅｐｔｈ＋ｍＥｎｄＤｅｐｔｈ）／２｝  ・・・（１１）
【００３９】
ただし、上記の如くテンプレートの読み取り時刻がＮｅｗＴｉｍｅ（ｓ）に変更されている場合には、下記式（１１）’により新たなΔＰｉｔｃｈを求めれば良い。
ΔＰｉｔｃｈ＝ΔＰｉｔｃｈ（ＮｅｗＴｉｍｅ）＊ＰｉｔｃｈＤｅｐｔｈ／｛ｍＢｅｇｉｎＤｅｐｔｈ＋ｍＥｎｄＤｅｐｔｈ）／２｝  ・・・（１１）’
【００４０】
Ａ−６．所望のトレモロデプスを得る場合
次に、トレモロデプスであるが、下記式（１２）により新たなΔＧａｉｎ［ｄＢ］を求め、これにより所望のトレモロデプスを実現する。なお、下記式（１２）では、所望のトレモロデプスをＴｒｅｍｏｌｏＤｅｐｔｈ［ｄＢ］、ＶＢテンプレートの開始トレモロデプス及びＶＢテンプレートの終了トレモロデプスをそれぞれｍＢｅｇｉｎＴｒｅｍｏｌｏＤｅｐｔｈ［ｄＢ］、ｍＥｎｄＴｒｅｍｏｌｏＤｅｐｔｈ［ｄＢ］で表す。また、テンプレートの読み取り開始時刻を０とした時間（テンプレートの読み取り時刻）をＴｉｍｅ［ｓ］で表し、Ｔｉｍｅ［ｓ］におけるゲインのデルタ値をΔＧａｉｎ（Ｔｉｍｅ）［ｄＢ］で表す。
ΔＧａｉｎ＝ΔＧａｉｎ（Ｔｉｍｅ）＊ＴｒｅｍｏｌｏＤｅｐｔｈ／｛（ｍＢｅｇｉｎＴｒｅｍｏｌｏＤｅｐｔｈ＋ｍＥｎｄＴｒｅｍｏｌｏＤｅｐｔｈ）／２｝  ・・・（１２）
【００４１】
ただし、上記の如くテンプレートの読み取り時刻がＮｅｗＴｉｍｅ（ｓ）に変更されている場合には、下記式（１２）’により新たなΔＧａｉｎを求めれば良い。
ΔＧａｉｎ＝ΔＧａｉｎ（ＮｅｗＴｉｍｅ）＊ＴｒｅｍｏｌｏＤｅｐｔｈ／｛（ｍＢｅｇｉｎＴｒｅｍｏｌｏＤｅｐｔｈ＋ｍＥｎｄＴｒｅｍｏｌｏＤｅｐｔｈ）／２｝  ・・・（１２）’
【００４２】
また、音色の変化は、主に音の大きさに連動すると考えられるため、下記式（１３）により、新たなＤｉｆｆ［ｄＢ］を求める。なお、下記式（１３）の右辺に示すＤｉｆｆ［ｄＢ］は、上記式（７）によって求まるＤｉｆｆ［ｄＢ］を指す。
Ｄｉｆｆ＝Ｄｉｆｆ＊ＴｒｅｍｏｌｏＤｅｐｔｈ／｛（ｍＢｅｇｉｎＴｒｅｍｏｌｏＤｅｐｔｈ＋ｍＥｎｄＴｒｅｍｏｌｏＤｅｐｔｈ）／２｝  ・・・（１３）
【００４３】
ただし、上記の如くテンプレートの読み取り時刻がＮｅｗＴｉｍｅ［ｓ］に変更されている場合には、上記式（６）、（７）を用いてＮｅｗＴｉｍｅ［ｓ］におけるＤｉｆｆ［ｄＢ］を求め、このＤｉｆｆ［ｄＢ］を式（１３）の右辺に代入することで新たなＤｉｆｆ［ｄＢ］を求めれば良い。
以上、ＶＢテンプレートを利用してビブラートを付加する場合を例に説明したが、ＶＡテンプレート、ＶＲテンプレートを利用してビブラートを付加する場合も同様に説明することができるため、これ以上の説明は割愛する。
【００４４】
Ａ−７．実施形態の動作
以下、本実施形態に係る音声処理装置１００を利用してビブラートを付加する場合の動作について説明する。なお、以下の説明では、ＶＲ領域の各データを利用せずにビブラートを付加する場合を想定する。
図１２及び図１３は、ビブラート付加制御部７００によって実行されるビブラート付加処理を示すフローチャートである。入力音声のピッチを検出して有声音であると判定されると、その音声にビブラートを付加する以下の処理が開始される。ビブラート付加制御部７００は、ビブラートを制御するために素人歌唱者等が入力したVibパラメータをパラメータ入力部６００から受け取る（ステップＳ１）。ここで、パラメータ入力部６００に入力されるVibパラメータとしては、例えば有声音が検出されてから実際にビブラートの付与が開始されるまでの時間長を表すビブラートディレイ（ＶｉｂＤｅｌａｙ［ｓ］）、ビブラートの周期を表すビブラート周期（ＶｉｂＲａｔｅ［Ｈｚ］）、ビブラートのおけるピッチのゆらぎの深さを表すピッチデプス（ＰｉｔｃｈＤｅｐｔｈ［ｃｅｎｔ］）、ビブラートにおける音量変化のゆらぎの深さを表すトレモロデプス（ＴｒｅｍｏｌｏＤｅｐｔｈ［ＤＢ］）等がある。なお、ビブラートの付与を開始（つまり、ビブラートアタック部の適用を開始）するタイミングについては、上記の如く有声音が検出されることを契機とするほか、ピッチ変化が検出されることを契機としても良い。かかる態様によれば、例えばピッチの違う有声音が連続して入力された場合に、最初のピッチの音声についてのみビブラートアタック部を適用する、あるいは最初のピッチの音声と次のピッチの音声の両方にビブラートアタック部を適用することができる。もちろん、これらに限定する趣旨ではなく、ピッチ変化の検出結果をどのように利用してビブラートの付与を開始するかは適宜設定可能である。
【００４５】
次に、ビブラート付加制御部７００は、ビブラート付加のためのアルゴリズムの初期化を行う。ここでは、例えばフラグＶｉｂＡｔｔａｃｋＦｌａｇ及びフラグＶｉｂＢｏｄｙＦｌａｇを“１”にセットする（ステップＳ２）。これら各フラグは、それぞれＶＡテンプレート若しくはＶＢテンプレートを使用するか否かを判別するためのフラグであり、フラグＶｉｂＡｔｔａｃｋＦｌａｇが“１”にセットされているときはＶＡテンプレートを使用し、フラグＶｉｂＡｔｔａｃｋＦｌａｇが“０”でフラグＶｉｂＢｏｄｙＦｌａｇが“１”にセットされているときはＶＢテンプレートを使用し、フラグＶｉｂＡｔｔａｃｋＦｌａｇ及びフラグＶｉｂＢｏｄｙＦｌａｇが共に“０”にセットされているときはビブラート付加の終了を意味する。なお、ビブラート付加については、上述したように、入力音声が有声音として検出されてからＶｉｂパラメータのビブラートディレイ（ＶｉｂＤｅｌａｙ［ｓ］）に示される時間が経過した後に開始される。
【００４６】
ビブラート付加制御部７００は、ステップＳ３に進むと、ビブラートデータベース８００に格納されている複数種類のテンプレートセットＴＳの中から、音声入力部２００を介して入力される入力音声のステップＳ１で検出したピッチに最も近いテンプレートセットＴＳ（ただし、本動作例では、ＶＡテンプレートとＶＢテンプレートによって構成されたテンプレートセットＴＳ）を選択する（ステップＳ３）。なお、テンプレートセットＴＳの作成については、上記Ａ−２においてその詳細を明らかにしたため、ここでは説明を割愛する。
【００４７】
そして、ビブラート付加制御部７００は、選択したＶＡテンプレートの時間長（ＶｉｂＡｔｔａｃｋＤｕｒａｔｉｏｎ［ｓ］）及びＶＢテンプレートの時間長（ＶｉｂＢｏｄｙＤｕｒａｔｉｏｎ［ｓ］）を取得し（ステップＳ４）、ステップＳ５に進む。
【００４８】
ビブラート付加制御部７００は、ステップＳ５において、フラグＶｉｂＡｔｔａｃｋＦｌａｇの値をチェックする。ここで、フラグＶｉｂＡｔｔａｃｋＦｌａｇの値が“１”であれば、ステップＳ６に進む一方、フラグＶｉｂＡｔｔａｃｋＦｌａｇの値が“０”であれば、ステップＳ１０に進む。
【００４９】
ステップＳ６に進むと、ビブラート付加制御部７００は、ステップＳ３において選択されたテンプレートセットＴＳからＶＡテンプレートを読み込み、これをＤＢｄａｔａ（ＤＢＰｉｔｃｈ、ＤＢＧａｉｎ、ＤＢＳｌｏｐｅ）とする。また、上記式（９）によりＶｉｂＲａｔｅＦａｃｔｏｒを計算する。
【００５０】
そして、ビブラート付加制御部７００は、ステップＳ７において、計算したＶｉｂＲａｔｅＦａｃｔｏｒから、上記式（１０）によりテンプレートの読み取り時刻を計算してＮｅｗＴｉｍｅ［ｓ］を得る。
【００５１】
ビブラート付加制御部７００は、ステップＳ８に進むと、上記の如く求めたテンプレートの読み取り時刻ＮｅｗＴｉｍｅ［ｓ］が、ＶＡテンプレートの時間長ＶｉｂＡｔｔａｃｋＤｕｒａｔｉｏｎ［ｓ］（ステップＳ４参照）を越えているか否かを判断する。ビブラート付加制御部７００は、テンプレートの読み取り時刻ＮｅｗＴｉｍｅ［ｓ］がＶＡテンプレートの時間長ＶｉｂＡｔｔａｃｋＤｕｒａｔｉｏｎ［ｓ］を越えている（すなわち、ＶＡテンプレートを最後まで使い終わった）と判断すると（ステップＳ８；ＹＥＳ）、ステップＳ９に進む。一方、ビブラート付加制御部７００は、テンプレートの読み取り時刻ＮｅｗＴｉｍｅ［ｓ］がＶｉｂＡｔｔａｃｋＤｕｒａｔｉｏｎを越えていないと判断すると（ステップＳ８；ＮＯ）、ＶＡテンプレートを利用してビブラートを付加するべく、ステップＳ１５に進む。
【００５２】
Ａ−７−１．ステップＳ１５に進んだ場合（ステップＳ８；ＮＯ）
ビブラート付加制御部７００は、ステップＳ１５に進むと、ＶＡテンプレートのＤＢｄａｔａから、時刻ＮｅｗＴｉｍｅ［ｓ］における各パラメータ（Ｐｉｔｃｈ、Ｇａｉｎ、Ｓｌｏｐｅ）の値を求める。このとき、時刻ＮｅｗＴｉｍｅ［ｓ］がＶＡテンプレート内の実データのあるフレーム時間の中間に位置する場合には、ＮｅｗＴｉｍｅ［ｓ］前後のフレームにおける各パラメータの値を補間（例えば直線補間）することによって上記各パラメータの値を求める。
【００５３】
そして、ビブラート付加制御部７００は、各パラメータの各デルタ値（ΔＰｉｔｃｈ、ΔＧａｉｎ、ΔＳｌｏｐｅ）を求める（ステップＳ１６）。ただし、各デルタ値を求める際には、上記Ａ−５、Ａ−６で述べたように、ＰｉｔｃｈＤｅｐｔｈ［ｃｅｎｔ］、ＴｒｅｍｏｌｏＤｅｐｔｈ［ｄＢ］の値が反映される（上記式（１１）〜（１３）参照）。
【００５４】
ビブラート付加制御部７００は、ステップＳ１７に進むと、図１４に示すような係数Ｍｕｌｄｅｌｔａを求める。この係数Ｍｕｌｄｅｌｔａは、ビブラートの終了条件（例えば、入力音声のピッチが検出されなくなった場合等；詳しくは後述）を満たした時刻から、各パラメータのΔ値を徐々に小さくしてビブラートを収束させるための係数である。もし、このような処理をしないでビブラートをかけたい時間長に達すると同時に、ビブラートをかけるのをやめたとすれば、その時点で急激にピッチ等が変化してしまうといった問題が生じてしまう。本実施例では、このような問題を未然に回避するために、上記ビブラートを収束させるための係数Ｍｕｌｄｅｌｔａを求めるのである。なお、図１４に示すグラフからも明らかなように、ビブラートの終了条件を満たした時刻に達していない場合には、係数Ｍｕｌｄｅｌｔａは「１」に設定され、ビブラートを収束させる処理は行われない。
【００５５】
ビブラート付加制御部７００は、ステップＳ１８に進むと、ステップＳ１６で求めた各パラメータの各デルタ値（ΔＰｉｔｃｈ、ΔＧａｉｎ、ΔＳｌｏｐｅ）に、ステップＳ１７で求めた係数Ｍｕｌｄｅｌｔａを乗算する。そして、ビブラート付加制御部７００は、乗算した結果をビブラート付加部４００に供給し、ステップＳ７に戻る。ビブラート付加部４００は、ビブラート付加制御部７００から該乗算結果を受け取ると、先に求めた入力音声のピッチ、ゲイン、スロープについて、該乗算結果に示される各デルタ値（ΔＰｉｔｃｈ、ΔＧａｉｎ、ΔＳｌｏｐｅ）に応じたスペクトル変換を行う。すなわち、ビブラート付加部４００は、上述した式（３）を利用して出力Ｐｉｔｃｈ［ｃｅｎｔ］を算出し、上述した式（５）を利用して出力Ｇａｉｎ［ｄＢ］を算出し、上述した式（７）、（８）を利用して出力ｂｉｎ Ｍａｇｎｉｔｕｄｅ［ｄＢ］を算出し、これらに基づきピッチ、ゲイン、スロープが変更されたスペクトルを得る。そして、ビブラート付加部４００は、このようにして求めたスペクトルを逆ＦＦＴし、逆ＦＦＴによって得た音声を音声出力部５００に供給する。これにより、あたかもターゲット歌唱者が歌唱しているかのうような自然な音色変化を示す音声が、音声出力部５００から出力される。
【００５６】
Ａ−７−２．ステップＳ９に進んだ場合（ステップＳ８；ＹＥＳ）
一方、ビブラート付加制御部７００は、ステップＳ８において、テンプレートの読み取り時刻ＮｅｗＴｉｍｅ［ｓ］がＶＡテンプレートの時間長ＶｉｂＡｔｔａｃｋＤｕｒａｔｉｏｎ［ｓ］を越えていると判断すると、ステップＳ９に進み、フラグＶｉｂＡｔｔａｃｋＦｌａｇを“０”にセットしてビブラートアタックを終了し、そのときの時刻Ｔｉｍｅ［ｓ］をＶｉｂＡｔｔａｃｋＥｎｄＴｉｍｅ［ｓ］としてセットする。
そして、ビブラート付加制御部７００は、フラグＶｉｂＢｏｄｙＦｌａｇをチェックし、ＶＢテンプレートを使用するか否かを判断する（ステップＳ１０）。ビブラート付加制御部７００は、フラグＶｉｂＢｏｄｙＦｌａｇの値が“０”の場合（ステップＳ１０；ＮＯ）、ビブラート付加処理を終了する一方、フラグＶｉｂＢｏｄｙＦｌａｇの値が“１”の場合には（ステップＳ１０；ＹＥＳ）、ステップＳ１１に進む。
【００５７】
ビブラート付加制御部７００は、フラグＶｉｂＡｔｔａｃｋＦｌａｇの値が“０”にセットされ、フラグＶｉｂＢｏｄｙＦｌａｇの値が“１”にセットされていることを確認すると、ＶＢテンプレートを読み込み、これをＤＢｄａｔａ（ＤＢＰｉｔｃｈ、ＤＢＧａｉｎ、ＤＢＳｌｏｐｅ）とする。
【００５８】
そして、ビブラート付加制御部７００は、ステップＳ１２において、上記式（９）によりＶｉｂＲａｔｅＦａｃｔｏｒを計算すると共に、上記式（１０）によりテンプレートの読み取り時刻を計算してＮｅｗＴｉｍｅ［ｓ］を得る。ただし、ＶＢテンプレートをループしたときのＮｅｗＴｉｍｅ［ｓ］の計算には注意を要する。ビブラート付加制御部７００は、このようにしてＮｅｗＴｉｍｅ［ｓ］を求めると、ビブラートを終了すべきか否か判断する（ステップＳ１３）。具体的には、ビブラート付加制御部７００は、入力音声のピッチが検出されなくなった場合（有声音が検出されなくなった場合等）、図示せぬ操作部を介してビブラートの終了指示が与えられた場合、入力音声の音量が閾値以下になった場合などに、ビブラートを終了すべきと判断する。
【００５９】
ビブラート付加制御部７００は、ビブラートを終了すべきでないと判断すると（ステップＳ１３；ＮＯ）、ステップＳ１５’に進む。一方、ビブラート付加制御部７００は、ビブラートを終了すべきであると判断すると（ステップＳ１３；ＹＥＳ）、ステップＳ１４に進み、ビブラートを収束させるべきか否かを判断するためのフラグＶｉｂＣｏｎＦｌａｇを“１”にセットする。そして、ビブラート付加制御部７００は、ステップＳ１５’に進む。なお、このフラグＶｉｂＣｏｎＦｌａｇの値が“０”のときにはビブラートを収束させず、このフラグＶｉｂＣｏｎＦｌａｇの値が“１”のときにはビブラートを収束させる（ビブラートの収束に関してはステップＳ１７参照）。
【００６０】
ビブラート付加制御部７００は、ステップＳ１５’に進むと、ＶＢテンプレートのＤＢｄａｔａから、時刻ＮｅｗＴｉｍｅ［ｓ］における各パラメータ（Ｐｉｔｃｈ、Ｇａｉｎ、Ｓｌｏｐｅ）の値を求める。このとき、時刻ＮｅｗＴｉｍｅ［ｓ］がＶＢテンプレート内の実データのあるフレーム時間の中間に位置する場合には、ＮｅｗＴｉｍｅ［ｓ］前後のフレームにおける各パラメータの値を補間（例えば直線補間）することによって上記各パラメータの値を求める。そして、
ビブラート付加制御部７００は、各パラメータの各デルタ値（ΔＰｉｔｃｈ、ΔＧａｉｎ、ΔＳｌｏｐｅ）を求める（ステップＳ１６’）。ただし、各デルタ値を求める際には、上記Ａ−５、Ａ−６で述べたように、ＰｉｔｃｈＤｅｐｔｈ［ｃｅｎｔ］、ＴｒｅｍｏｌｏＤｅｐｔｈ［ｄＢ］の値が反映される（上記式（１１）〜（１３）参照）。
【００６１】
ビブラート付加制御部７００は、ステップＳ１７’に進むと、フラグＶｉｂＣｏｎＦｌａｇの値を参照し、ビブラートの終了条件を満たした時刻に到達したか否かを判断する。ビブラート付加制御部７００は、フラグＶｉｂＣｏｎＦｌａｇの値が“０”であり、未だビブラートの終了条件を満たした時刻に達していないと判断すると、ステップＳ１８’に進み、係数Ｍｕｌｄｅｌｔａ＝「１」（すなわち、ビブラートを収束させない値）を取得する。そして、ビブラート付加制御部７００は、ステップＳ１９’に進み、ステップＳ１６’で求めた各パラメータの各デルタ値（ΔＰｉｔｃｈ、ΔＧａｉｎ、ΔＳｌｏｐｅ）に、ステップＳ１８’で求めた係数Ｍｕｌｄｅｌｔａ＝「１」を乗算する。そして、ビブラート付加制御部７００は、乗算した結果をビブラート付加部４００に供給し、ステップＳ１２に戻る。
【００６２】
一方、ビブラート付加制御部７００は、ステップＳ１７’において、フラグＶｉｂＣｏｎＦｌａｇの値が“１”であり、ビブラートの終了条件を満たした時刻に到達したと判断すると、ステップＳ１８’’に進み、各パラメータの各Δ値を徐々に小さくし、ビブラートを収束させるような係数Ｍｕｌｄｅｌｔａを取得する（図１４に示すＶｉｂ終了時刻参照）。そして、ビブラート付加制御部７００は、ステップＳ１９’’に進み、ステップＳ１６’で求めた各パラメータの各デルタ値（ΔＰｉｔｃｈ、ΔＧａｉｎ、ΔＳｌｏｐｅ）に、ステップＳ１８’’で求めた係数Ｍｕｌｄｅｌｔａの値を乗算する。そして、ビブラート付加制御部７００は、乗算した結果をビブラート付加部４００に供給する。ビブラート付加制御部７００は、ステップＳ２０’’に進むと、上記ステップＳ１８’’において取得した係数Ｍｕｌｄｅｌｔａが「０」に収束したか否かを判断する。ビブラート付加制御部７００は、取得した係数Ｍｕｌｄｅｌｔａが未だ「０」に収束していないと判断すると（ステップＳ２０’’；ＮＯ）、ステップＳ１２に戻り、上述した処理を繰り返し実行する。かかる処理を繰り返し実行している間に、ビブラート付加制御部７００は、ステップＳ１８’’において取得した係数Ｍｕｌｄｅｌｔａが「０」に収束したと判断すると（ステップＳ２０’’；ＹＥＳ）、フラグＶｉｂＢｏｄｙＦｌａｇの値を“０”にセットし（ステップＳ２１’’）、以上説明した処理を終了する。なお、ビブラート付加制御部７００からビブラート付加部４００へ乗算結果が供給された後の動作については、上記ＶＡテンプレートを利用してビブラートを付加する場合と同様に説明することができるため、説明を割愛する。
【００６３】
以上、ＶＲ領域の各データを利用せずにビブラートを付加する場合について説明したが、ＶＲ領域の各データを利用して（すなわち、ＶＲテンプレートを利用して）ビブラートを付加するようにしても良いのはもちろんである。かかる場合には、上述したビブラートの終了条件を満たしたときに、ＶＲテンプレートを利用してビブラートを付加するように制御すれば良い。なお、このＶＲテンプレートを利用してビブラートを付加する場合には、計算によってビブラートを収束させるための係数Ｍｕｌｄｅｌｔａを求める必要がなく、音声処理装置１００の制御部にかかる処理の負担を軽減することができる。
【００６４】
以上説明したように、本実施形態によれば、ターゲット歌唱者によって付加されるビブラートの微妙なピッチやゲインのゆれを再現するばかりでなく、音色の自然な変化をも忠実に再現することができる。これにより、従来のカラオケ装置等ではなしえなかったよりリアルなビブラートを素人歌唱者の歌唱音声に付加することが可能となる。
また、本実施形態によれば、ビブラートがかかったターゲット歌唱者の音声を分析した各データを、ビブラートアタック領域、ビブラートボディ領域、ビブラートリリース領域の各々に分割して保持しているため、ビブラートボディ領域の各データのみを保持しているカラオケ装置等と比較してリアルなビブラートを付加することが可能となる。
【００６５】
また、本実施形態によれば、ビブラートを付加する際にビブラートリリース領域のテンプレートを用いない場合であっても、係数Ｍｕｌｄｅｌｔａを利用することによりビブラートをゆるやかに減衰させていく。これにより、自然なビブラートを終了させることが可能となる。
また、本実施形態によれば、ターゲット歌唱者が種々のピッチでビブラートをかけて歌ったときの音声を分析して得た複数種類のテンプレートセットＴＳがビブラートデータベースに記憶される。かかる構成を採用することにより、入力音声にビブラートを付加する際には、この入力音声のピッチに最も近いテンプレートセットＴＳを選択・使用することができ、これにより、リアルなビブラートを付加することが可能となる。
【００６６】
なお、本実施形態では、歌唱音声を例に説明したが、例えば通常の会話の音声や楽器音などにも適用することができる。また、以上説明した音声処理装置１００の各部の機能は、ＲＯＭ等に格納されているプログラムによって実現されるため、かかるプログラムについてＣＤ−ＲＯＭ等の記録媒体に記録して頒布したり、インターネット等の通信ネットワークを介して頒布しても良い。もちろん、音声処理装置１００の各部の機能をハードウェアによって実現しても良い。
【図面の簡単な説明】
【００６７】
【図１】本実施形態に係る音声処理装置の構成を示す図である。
【図２】同実施形態に係るビブラートがかかったターゲット音声のピッチ波形を示す図である。
【図３】同実施形態に係るＶＡ領域のピッチ波形を示す図である。
【図４】同実施形態に係るＶＢ領域のピッチ波形を示す図である。
【図５】同実施形態に係るＶＡ領域のあるフレームのスペクトルを例示した図である。
【図６】同実施形態に係る図５に示すスペクトルの傾きを表すカーブを説明するための図である。
【図７】同実施形態に係るＧａｉｎの大きさを変えたときのスペクトルエンベロープ及びＥＣｕｒｖｅの変化の様子を示す図である。
【図８】同実施形態に係るＧａｉｎの大きさを変えたときのスペクトルエンベロープ及びＥＣｕｒｖｅの変化の様子を示す図である。
【図９】同実施形態に係る入力ｂｉｎ Ｍａｇｎｉｔｕｄｅを例示した図である。
【図１０】同実施形態に係るＥＣｕｒｖｅのＳｌｏｐｅを変えたときのスペクトルエンベロープの変化の様子を示す図である。
【図１１】同実施形態に係るＥＣｕｒｖｅのＳｌｏｐｅを変えたときのスペクトルエンベロープの変化の様子を示す図である。
【図１２】同実施形態に係るビブラート付加処理を示すフローチャートである。
【図１３】同実施形態に係るビブラート付加処理を示すフローチャートである。
【図１４】同実施形態に係る係数Ｍｕｌｄｅｌｔａとビブラート時刻との関係を示す図である。
【符号の説明】
【００６８】
１００・・・音声処理装置、２００・・・音声入力部、３００・・・スペクトル・ピッチ分析部、４００・・・ビブラート付加部、５００・・・音声出力部、６００・・・パラメータ入力部、７００・・・ビブラート付加制御部、８００・・・ビブラートデータベース、９００・・・テンプレート作成部、９５０・・・ターゲット入力部、ＴＳ・・・テンプレートセット。
【図１】
2005099509.tif 000003
【図２】
2005099509.tif 000004
【図３】
2005099509.tif 000005
【図４】
2005099509.tif 000006
【図５】
2005099509.tif 000007
【図６】
2005099509.tif 000008
【図７】
2005099509.tif 000009
【図８】
2005099509.tif 000010
【図９】
2005099509.tif 000011
【図１０】
2005099509.tif 000012
【図１１】
2005099509.tif 000013
【図１２】
2005099509.tif 000014
【図１３】
2005099509.tif 000015
【図１４】
2005099509.tif 000016