(58)【調査した分野】(Int.Cl.,DB名)
前記サブバンド分割音源生成部は、前記蓄積されたサブバンド分割音源波形ベクトルのうち複数のサブバンド分割音源波形ベクトルを組み合わせて、前記入力された音源制御情報に対応するサブバンド分割音源波形ベクトルを生成することを特徴とする請求項1記載の音声合成装置。
前記サブバンド分割音源生成部は、インパルス音源に対応するサブバンド分割音源波形ベクトルと白色雑音音源に対応するサブバンド分割音源波形ベクトルとの重み付け和により前記生成されたサブバンド分割音源波形ベクトルを生成することを特徴とする請求項1または請求項2記載の音声合成装置。
前記サブバンド分割音源生成部は、白色雑音音源に対しては、前記蓄積されたサブバンド分割音源波形ベクトルに基づいて、入力された音源制御情報に対応するサブバンド分割音源波形ベクトルを生成し、インパルス音源に対しては、音源波形を複数の周波数帯域に分割してサブバンド分割音源波形ベクトルを生成することを特徴とする請求項1から請求項3のいずれかに記載の音声合成装置。
音源波形を複数の周波数帯域に分割し、前記音源波形の分割により得られたベクトル系列に対し、等時間間隔内のベクトル系列からベクトルを間引き、前記蓄積をするためのサブバンド分割音源波形ベクトルを生成するサブバンド分割部を更に備えることを特徴とする請求項1から請求項4のいずれかに記載の音声合成装置。
【背景技術】
【0002】
音声合成技術とは、一般にテキストから音声波形を合成する一連の技術の総称であるが、まず、その一要素である、合成したい音声のスペクトル情報および音源情報から、音声波形を合成する処理を説明する。この処理にあたり、合成したい音声のスペクトル情報や音源情報は、予め対応する自然音声等から求めておく。
【0003】
音声合成波形の合成の方法として代表的なものに、ソース・フィルタモデルに基づく音声合成方法がある。この方式は、まず適当な音源(ソース)波形を生成し、それを適当な特性のフィルタを通過させることで、所望の特徴を有した音声波形を合成する方法である。これは、例えば、音源が声帯振動に伴う声門体積流に、フィルタが声道伝達特性にそれぞれ対応すると考えると、人間の音声生成過程に対応したモデルであるとも言える。
【0004】
ただし、音声の波形から観測できるのは、音声波形のスペクトル特性や周期的な音声波形で観測される基本周波数といった最終的な音声波形に対する物理量であり、音声生成過程に関連した特徴との厳密な対応付けは難しい。そのため、実際には、インパルス列や白色雑音といったスペクトル的に白色な音源波形に対して、フィルタにより合成目標となる音声のスペクトル特性を直接的に与えることで、音声波形を合成することが多い。
【0005】
なお、音声波形が周期性を有する場合、観測されるスペクトル情報には、その周期性に由来した基本周波数成分およびその調波成分が含まれる。そして、通常この周期性は、インパルス列等により音源側で表現される。
【0006】
以下、スペクトル情報とは、基本周波数およびその調波成分の影響を除いた、平滑化されたスペクトル情報をいう。この平滑化の方法には、周波数軸上で、調波成分のピーク点のみをつなぐ方法等がある。また、音声波形は短時間的にはほぼ定常と見なせるが、長時間的には時変であるので、通常は、ある一定間隔(例えば1ミリ秒から20ミリ秒程度)毎の特性を考慮し、そのそれぞれの時刻においてはその定常性を仮定する。ここで、各サンプルのスペクトル情報は例えば複数次のメルケプストラム係数や線形予測係数等で表現する。
【0007】
一般に、声帯振動を伴う音声は有声音、伴わない音声は無声音と呼ばれ、有声音では通常、波形の周期性が観測される。ソース・フィルタに基づく音声波形合成では、有声音の音源としてインパルス列のみを、無声音の音源に白色雑音のみを用いる方法がしばしば用いられている。この方法でも合成音声の言語的な了解度の点では問題ないことが多いが、実際の有声音には雑音的成分も含まれており、その自然性が低下するという問題が生じていた。
【0008】
そこで、インパルス列と白色雑音を同時に生成し、それを組み合わせた波形を音源波形とすることで、合成音声の自然性を改善する方法が開発されている。しかし通常、最適なインパルスと雑音のパワー比が各周波数帯域で一定ではなく、それは合成対象の音声の種類ごとに異なる。そこで、フィルタバンク等を用いて、インパルスと白色雑音の振幅特性を周波数帯域(サブバンド)毎に変える必要がある。
【0009】
この際、従来のソース・フィルタモデルとの対応を考え、各音源を足し合わせた結果が白色になるように制御する方法がしばしば用いられる。以下、このような音源をマルチバンド混合励振源と呼ぶ。サブバンド毎の混合比は、時間変化させなくてもある程度の自然性が得られると考えられるが、スペクトル情報同様に時間変化させた方が、より自然性の高い音声を合成することができる。
【0010】
よって、音声合成には、時間軸上である間隔毎の、音声のスペクトル情報、有声・無声情報、有声についての基本周波数の情報、およびマルチバンド混合励振源を用いてかつその特性を動的に変化させる場合における各サブバンドの混合比の情報が必要となる。なお、以下で説明される音声合成の形態では、音源のパワーは常に一定とし、合成音声のパワーはスペクトル特性に含めて制御されるものとする。
【発明の概要】
【発明が解決しようとする課題】
【0012】
上記のような従来技術ではソース・フィルタモデルのフィルタに、MLSA(メル対数スペクトル近似)フィルタ等の比較的演算量の大きいフィルタが用いられている(非特許文献1参照)。MLSAフィルタは、z変換領域における指数関数を、z変換領域上でパデ近似により直接有理式近似することで、目標特性を近似的に実現する回路を構成する手法が用いられている。そして、メルケプストラム係数をほぼそのままフィルタ係数とできる、といった利点があるが、波形1サンプル当たりの積和演算回数が、およそフィルタの次数とパデ近似の次数の積となり、計算量が比較的大きい。
【0013】
例えば合成音声品質上は、16kHzサンプリング時に30〜40次のメルケプストラムを用いる必要があるが、その場合、指数関数を必要な精度で近似するためには4次または5次のパデ近似が必要、つまり1サンプル当たり150〜200回程度の積和演算が必要である。
【0014】
さらにマルチバンド混合励振を行なう場合、指定の混合比となるよう、インパルス列と白色雑音のそれぞれにフィルタを掛ける必要があるため、それぞれのフィルタ処理の分、さらに計算量が増える。このため、携帯端末等の計算処理性能が限られた環境では、比較的高次のフィルタを用いた音声合成処理や、混合励振を行なうことが難しい。
【0015】
本発明は、このような事情に鑑みてなされたものであり、計算処理性能が限られた環境でも、十分な音声合成処理や混合励振を可能にする音声合成装置、音声合成方法および音声合成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0016】
(1)上記の目的を達成するため、本発明の音声合成装置は、入力された時系列の音源制御情報およびスペクトル特性情報を基に、音声波形を合成する音声合成装置であって、音源波形を複数の周波数帯域に分割して蓄積されたサブバンド分割音源波形ベクトルに基づいて、入力された音源制御情報に対応するサブバンド分割音源波形ベクトルを生成するサブバンド分割音源生成部と、前記生成されたサブバンド分割音源波形ベクトルに対して、入力されたスペクトル特性情報に応じたサブバンド毎の振幅調整を行なうサブバンドパワー調整部と、前記振幅調整がなされたサブバンド分割音源波形ベクトルを単一の音声波形に合成するサブバンド合成部と、を備えることを特徴としている。
【0017】
このように、分析フィルタによる分割処理を事前に行なった結果を蓄積しておき、それを音声合成に用いることで、音声合成時に分割処理が不要となり、処理量を削減できる。そして、携帯端末等の計算処理性能が限られた環境でも、十分な音声合成処理や混合励振を可能にする。
【0018】
(2)また、本発明の音声合成装置は、前記サブバンド分割音源生成部が、前記蓄積されたサブバンド分割音源波形ベクトルのうち複数のサブバンド分割音源波形ベクトルを組み合わせて、前記入力された音源制御情報に対応するサブバンド分割音源波形ベクトルを生成することを特徴としている。これにより、サブバンド分割領域において、音声合成に必要な音源波形を合成するため、処理量を削減しつつ、入力に対応した合成音声波形を生成できる。
【0019】
(3)また、本発明の音声合成装置は、前記サブバンド分割音源生成部が、インパルス音源に対応するサブバンド分割音源波形ベクトルと白色雑音音源に対応するサブバンド分割音源波形ベクトルとの重み付け和により前記生成されたサブバンド分割音源波形ベクトルを生成することを特徴としている。これにより、サブバンド分割領域において、入力に対して適正な音源波形を合成することができ、目的の音声合成が可能になる。
【0020】
(4)また、本発明の音声合成装置は、前記サブバンド分割音源生成部が、白色雑音音源に対しては、前記蓄積されたサブバンド分割音源波形ベクトルに基づいて、入力された音源制御情報に対応するサブバンド分割音源波形ベクトルを生成し、インパルス音源に対しては、音源波形を複数の周波数帯域に分割してサブバンド分割音源波形ベクトルを生成することを特徴としている。これにより、インパルス列等の分割フィルタバンクの処理量が大きくならない種類の音源については、音声合成時の帯域分割処理を用いることで、蓄積量を減らすことができる。
【0021】
(5)また、本発明の音声合成装置は、音源波形を複数の周波数帯域に分割し、前記音源波形の分割により得られたベクトル系列に対し、等時間間隔内のベクトル系列からベクトルを間引き、前記蓄積をするためのサブバンド分割音源波形ベクトルを生成するサブバンド分割部を更に備えることを特徴としている。これにより、帯域分割後のサンプル間引きを行なうことで、必要な計算回数を減らし高速化できる。
【0022】
(6)また、本発明の音声合成方法は、入力された時系列の音源制御情報およびスペクトル特性情報を基に、音声波形を合成する音声合成方法であって、音源波形を複数の周波数帯域に分割して蓄積されたサブバンド分割音源波形ベクトルに基づいて、入力された音源制御情報に対応するサブバンド分割音源波形ベクトルを生成するステップと、前記生成されたサブバンド分割音源波形ベクトルに対して、入力されたスペクトル特性情報に応じたサブバンド毎の振幅調整を行なうステップと、前記振幅調整がなされたサブバンド分割音源波形ベクトルを単一の音声波形に合成するステップと、を含むことを特徴としている。これにより、音声合成時に分割処理が不要となり、処理量を削減できる。そして、計算処理性能が限られた環境でも、十分な音声合成処理や混合励振を可能にする。
【0023】
(7)また、本発明の音声合成プログラムは、入力された時系列の音源制御情報およびスペクトル特性情報を基に、音声波形を合成する音声合成プログラムであって、音源波形を複数の周波数帯域に分割して蓄積されたサブバンド分割音源波形ベクトルに基づいて、入力された音源制御情報に対応するサブバンド分割音源波形ベクトルを生成する処理と、前記生成されたサブバンド分割音源波形ベクトルに対して、入力されたスペクトル特性情報に応じたサブバンド毎の振幅調整を行なう処理と、前記振幅調整がなされたサブバンド分割音源波形ベクトルを単一の音声波形に合成する処理と、をコンピュータに実行させることを特徴としている。これにより、音声合成時に分割処理が不要となり、処理量を削減できる。そして、計算処理性能が限られた環境でも、十分な音声合成処理や混合励振を可能にする。
【発明の効果】
【0024】
本発明によれば、音声合成時に分割フィルタバンクの処理が不要となり、処理量を削減できる。そして、携帯端末等の計算処理性能が限られた環境でも、十分な音声合成処理や混合励振を可能にする。
【発明を実施するための形態】
【0026】
次に、本発明の実施の形態について、図面を参照しながら説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては同一の参照番号を付し、重複する説明は省略する。
【0027】
[第1の実施形態]
(音声合成装置の構成)
図1は、音声合成装置100の基本構成を示すブロック図であり、
図2は、音声合成装置100の具体的構成を示すブロック図である。音声合成装置100は、音源波形をサブバンド分割部110によりサブバンド分割して蓄積し、入力情報に応じてサブバンド毎に振幅を調整する。そして、振幅を調整されたサブバンド分割音源波形ベクトルを用いてサブバンド合成部140により合成し、目標となるスペクトル特性を近似的に有する音声波形を合成する。
【0028】
音声合成装置100は、入力された時系列の音源制御情報およびスペクトル特性情報を基に、音声波形を合成する。本実施形態において、音源制御情報とは基本周波数である。
図1に示すように、音声合成装置100は、サブバンド分割部110、サブバンド分割音源生成部120、サブバンドパワー調整部130およびサブバンド合成部140を備えている。
【0029】
サブバンド分割部110は、音源波形を複数の周波数帯域に分割し、音源波形の分割によりベクトル系列を生成する。サブバンド分割部110は、等時間間隔内のベクトル系列からベクトルを間引き、蓄積をするためのサブバンド分割音源波形ベクトルを生成することが好ましい。
【0030】
なお、サブバンド分割部110は、例えば分析フィルタバンクE
0(z)〜E
M−1(z)およびダウンサンプラ↓Dにより構成される。分析フィルタバンクE
0(z)〜E
M−1(z)は、M個の周波数帯域に等分割するフィルタバンクで構成される。ダウンサンプラ↓Dは、サブバンド分割後のM次元のベクトル系列に対し、等時間間隔でD(ただしD≦Mとする)サンプルのベクトル系列から(D−1)のベクトルを間引いて1つのベクトルのみを残す処理を行なう。このような間引き処理により、事前蓄積のサイズと、合成フィルタバンクの処理量をそれぞれ削減できる。
【0031】
サブバンド分割音源生成部120は、音源波形を複数の周波数帯域に分割して蓄積されたサブバンド分割音源波形ベクトルに基づいて、入力された音源制御情報に対応するサブバンド分割音源波形ベクトルを生成する。その際には、蓄積されたサブバンド分割音源波形ベクトルのうち複数のサブバンド分割音源波形ベクトルを組み合わせて、入力された音源制御情報に対応するサブバンド分割音源波形ベクトルを生成する。
【0032】
サブバンド分割音源生成部120は、さらに蓄積部121および選択部122を備えている。蓄積部121は、事前に生成した、比較的短時間の音源波形(音源波形素片)をサブバンド分割した結果としてのベクトルを格納する。このベクトルは、サブバンド分割数と同じ次元数のベクトルであり、これをサブバンド分割波形ベクトルという。
【0033】
選択部122は、入力された基本周波数の情報に基づき、事前蓄積されたサブバンド分割波形ベクトルを選択する。このようにして、サブバンド分割音源生成部120は、選択されたサブバンド分割波形ベクトルを用いて、または、複数種類のサブバンド分割波形ベクトルをサブバンド分割波形ベクトルとして構成して、サブバンド分割された音源波形ベクトルを出力する。なお、上記の蓄積までは事前処理として予め行ない、それ以降の処理は入力情報があったときに行なう。
【0034】
サブバンドパワー調整部130は、生成されたサブバンド分割音源波形ベクトルに対して、入力されたスペクトル特性情報に応じたサブバンド毎の振幅調整を行なう。サブバンドパワー調整部130には、各サブバンドのパワーを制御するための乗算回路を設けている。サブバンドパワー調整部130は、入力されるスペクトル特徴情報に基づき、サブバンド毎にこの係数A
0〜A
M−1を調整する。その結果、目標音声のスペクトル特性を再現する。なお、入力されるスペクトル情報は、直接的に各サブバンドのパワー情報で構成しても良いが、例えばメルケプストラム係数を入力とし、内部的に各サブバンドのパワー情報を計算し、その結果を用いてもよい。
【0035】
サブバンド合成部140は、振幅調整がなされたサブバンド分割音源波形ベクトルを単一の音声波形に合成する。すなわち、サブバンド分割波形を合成し、最終的な合成音声波形を生成する。サブバンド合成部140は、例えばアップサンプラ↑Dおよび合成フィルタバンクR
0(z)〜R
M−1(z)により構成される。アップサンプラ↑Dは、振幅調整がなされたサブバンド分割音源波形ベクトルに対し、帯域分割信号間にゼロ値サンプルを挿入し、D倍のアップサンプリングを行なう。合成フィルタバンクR
0(z)〜R
M−1(z)は、M個の周波数帯域に分割されたサブバンド分割音源波形ベクトルを単一の音声波形に合成する。
【0036】
(フィルタバンクの構成)
フィルタバンクを構成するあるフィルタの係数に離散フーリエ変換(DFT)や離散コサイン変換(DCT)、あるいはそれらの逆変換の係数系列を掛けると、基となったフィルタの特性を、周波数軸上でシフトした形のフィルタ特性が得られる。そして、このようなフィルタでフィルタバンクを構成することで、フィルタバンクの処理で必要な計算に、FFT(高速フーリエ変換)等の高速化手法が利用可能となる。これにより、サブバンド分割・サブバンド合成の処理を高速化することができる。
【0037】
図3Aおよび
図3Bは、それぞれサブバンド分割部110の実際の回路構成および理論的な構成を示すブロック図である。また、
図4Aおよび
図4Bは、それぞれサブバンド合成部140の実際の回路構成および理論的な構成を示すブロック図である。いずれの例も離散コサイン変換を用いた構成例を示している。
【0038】
サブバンド分割部110およびサブバンド合成部140のいずれについても、実際の回路構成には、遅延要素z
−1が設けられ、離散コサイン変換要素DCTまたは逆離散コサイン変換要素IDCTが設けられている。これに対し、サブバンド分割部110およびサブバンド合成部140と理論的に等価な構成では、上記の各要素が含まれない形が等価となっている。サブバンド分割部110と理論的に等価な構成では、フィルタ処理を行なってからダウンサンプリングを行なうため、処理のサンプルレートが大きく、処理量も大きくなるが、実際の構成では、先にダウンサンプリングを行なっているため、処理量は少なくなる。これは、サブバンド合成部140も同様である。
【0039】
図5は、等帯域分割フィルタバンクについて周波数に対する振幅特性を示すグラフである。DFTやDCTのみを用いた場合、矩形窓関数をインパルス応答とする帯域通過フィルタを、周波数軸上でシフトした形の帯域通過フィルタで構成されるフィルタバンクと通常見なせる。以下、シフト前の基となるフィルタを基礎フィルタと呼ぶ。なお、基礎フィルタを、一般にはより好ましいと考えられる、遮断域での減衰量がより大きい周波数特性を持つ帯域通過フィルタ(なお周波数0を中心とする場合は、低域通過フィルタとなる)とすることも可能である。ただし、サブバンド分割処理結果をサブバンド合成した場合に原音声波形が復元できるようにフィルタを設計する必要がある。その条件は完全再構成条件と呼ばれる。また、フィルタ構成によっては厳密な復元が不可能な場合があり、その場合は、近似的に復元されるようにフィルタを設計する。また、長さMのDFTを用いた場合は、基となるフィルタを、正規化角周波数で2πk/M(k≦0<M)シフトさせたM個のフィルタでフィルタバンクが構成され、DCTを用いた場合は、その定義にもよるが、以下の例で定義されるDCT変換の場合、正規化角周波数でπ(k+1/2)/Mシフトさせた特徴と、π(−k+1/2)/Mシフトさせた特徴の和をその周波数特性とする、M個のフィルタでフィルタバンクが構成される。
【0040】
以下の例では、DCT変換および逆DCT変換のペアを用いている。DFTの入出力は複素数で定義されるのに対し、DCTの入出力は実数であり、処理をより簡単に行なうことができる。例えば、(1)式のM次のDCT係数を係数とするフィルタとして(2)式(0≦k<M)を用いても分析フィルタバンクを構成できる。
【数1】
【数2】
【0041】
DCT係数の特性上、これはM分割の等帯域分割フィルタバンクであり、さらにこのフィルタバンクは、完全再構成条件を満たすように構成できるので、帯域分割波形から入力波形を復元することができる。
【0042】
なお、上記の構成において、サブバンド数はスペクトル特徴情報で記述されるスペクトルを所定の精度で模擬できるだけの数とする。例えば、1サンプルのスペクトル情報がk次(0次係数も含めパラメータ数としてはk+1個)のメルケプストラムの場合で、かつここでのkがスペクトル特徴を表現するのに必要な次元数の場合、そのようなスペクトルを一般的に模擬するために、少なくとも(k+1)個のサブバンド数が必要となる。
【0043】
また、サブバンドパワー調整部130は、白色な音源に対して、各サブバンドのゲインを調整し、入力されたスペクトル特徴情報に対応する音声波形を生成するように動作する。なお、マルチバンド混合励振を行なう場合は、予めインパルス音源と白色雑音源が等パワーとなるように正規化しておき、各サブバンドのパワー重みの和が1となるように制御することで白色な音源を得ることができる。
【0044】
先述のように、スペクトル情報として各サブバンドのパワー値を直接入力とする構成ではなく、メルケプストラム係数等から変換して各サブバンドのパワー係数を求めてもよい。サブバンド中心のスペクトル強度を、サブバンドのパワー値と見なして制御することで、目標のスペクトル特徴を近似的に得ることができる。サブバンドの中心は、DFTに基づくフィルタバンクを構成する場合、正規化角周波数軸上で、0,2π/M,4π/M,…となる。
【0045】
一方、先述のDCTに基づくフィルタバンクを構成する場合は、±π/2M,±3π/2M,…となる。ただし、入力が実数系列でかつ、インパルス応答が対称な基礎フィルタを用いる場合は、周波数特性も全て周波数0を中心に対称となるので、例えば正規化角周波数で0からπの範囲のみ考えれば良い。サブバンド毎のスペクトル特性はフィルタバンク係数から求めることができるので、目標のスペクトル特徴との誤差を、周波数軸上で、サブバンド数よりもより細かい間隔で評価してもよい。例えば平均二乗誤差が最少となるようなサブバンドのパワー係数の組を、反復近似推定等により求めることで、より正確な制御を実現できる。なお、上記の例は一例であり、DCT変換・逆DCT変換のペアを、他の可逆変換のペアに置き換えることもできる。
【0046】
(音源の制御方法)
次に、音源の制御方法について説明する。まず前提として、サブバンド分割・サブバンド合成の前後で処理の線形性が保証されているものとする。先述のDFTやDCTに基づくフィルタバンクは、線形な操作の組み合わせだけでその処理が構成されているので、この条件を満たす。
【0047】
このとき、インパルス列について、例えば、過去の32サンプルから32帯域の分割を行ない、かつ各帯域の分析フィルタ・合成フィルタがFIRフィルタで表現可能な場合、サブバンド分割した結果を次のように得ることができる。すなわち、入力フレームの1番目と20番目のサンプルでインパルスが立っているようなインパルス音源波形を帯域分割した場合には、1番目のサンプルのみでインパルスが立っている音源波形をサブバンド分割した結果と、20番目のサンプルのみでインパルスが立っている音源波形をサブバンド分割した結果の各要素を足すことにより得ることができる。
【0048】
つまり、M帯域分割の場合、インパルス音源については、M種類の音源波形の変化の事前蓄積があれば良い。実際には、音声合成で用いる基本周波数は比較的に低いので、音源波形のMサンプル内に2つ以上のインパルスが含まれるケースが少ない場合も考えられる。その場合、足し合わせ処理の処理量はほぼ無視することができる。
【0049】
なお、事前作成・蓄積する波形を生成するための処理量は音声合成時の処理ではないためあまり問題とならない。したがって、例えば、1.5番目のサンプルでインパルスが立っているといった、仮想的にサンプリング周期以上の時間精度でインパルスの位置を制御することも容易である。そのような音源波形は、例えば2倍のサンプリング周波数を用いた対応する波形をまず作成し、高域遮断フィルタであるアンチエイリアスフィルタを掛けることで、元のサンプリング周波数におけるナイキスト周波数以上の成分を除去してから、2:1のダウンサンプリングによりサンプルを間引くことで得ることができる。
【0050】
このような手法は、サンプリング周波数が低く、インパルス位置をサンプル点に丸めてしまうと合成される音声の基本周波数の誤差が大きくなるケースで特に有効である。逆にサンプリングレートが高い場合は、インパルスの位置精度を下げ、蓄積するサブバンド分割波形の数を減らすという方法も考えられる。
【0051】
一方、白色雑音源については、インパルスの足し合わせで白色雑音を合成しても良いが、適当な個数、フレーム長の白色雑音列を事前に帯域分割・蓄積しておき、それをフレーム毎にランダムに選択することで、近似的に構成しても良い。この場合、変換波形を蓄積する必要はあるものの、重みづけ和の計算処理が不要となるので、処理量を減らすことができる。なお、比較的少ない数の蓄積のみから白色な雑音を生成するため、蓄積された帯域分割音源波形を複数個足し合わせて、帯域分割音源波形を構成する方法も考えられる。
【0052】
(非最大間引きフィルタバンクを用いた構成)
フィルタバンクにおける間引き率Mはその値が1(全く間引かない)からMまでの場合で、少なくとも再合成前に各サブバンドでパワー調整を行なわない場合、サブバンド合成結果がサブバンド分割前の入力信号と一致するようなフィルタバンクを構成することができることが理論上知られている。例えば、DFTやDCTのみでフィルタバンクを構成し、間引き率Lの間引きを行なう場合、計算誤差を無視すれば、それらの逆変換により入力波形が完全に復元できることは明らかである。
【0053】
しかし、特にD=M(間引き率が最大であり、最大間引きと呼ばれる)の場合は、DCTを用いると、正規化角周波数において(ただしここではその対称性から0からπの範囲のみ考えることとする)、0〜π/M,π/M〜2π/M,…,(M−2)π/M〜(M−1)π/Mの各帯域の成分が、それが通過帯域、遮断帯域であるかに関わらず、それぞれのサブバンドに全て折り返されて格納される。そして、合成時に、各サブバンドの折り返し雑音成分が互いに打ち消しあうことで、入力波形が復元される。
【0054】
各サブバンドのフィルタを帯域通過と見た場合、その通過域の幅もπ/Mだが、実際には、通過域で常にゲインが1、遮断域で常に0となるような理想的なフィルタは、有限長のフィルタでは理論上実現できない。実際には、遮断域でもある程度の通過量があり、最大間引きの場合、大きな折り返し雑音が各サブバンドには含まれている。このため、各サブバンドのパワーをサブバンド毎に独立に変更してしまうと、サブバンド間で互いに打ち消しあっている折り返し雑音の構造が崩れてしまい、その折り返し雑音が問題となる。
【0055】
これに対し、DにMより小さい値を設定すると、サンプルの間引きによる折り返しの幅が、フィルタバンクにおける帯域通過フィルタの通過域の幅より広くなるので、各サブバンドの折り返し雑音が減り、サブバンド毎に独立にパワーを調整した場合でも、折り返し雑音の影響を小さくすることができる。このような設定は非最大間引きと呼ばれる。一般に間引き率Dを小さくするほど、折り返し雑音の影響は小さくなるが、情報量的には冗長となり、蓄積・処理するデータ量が増える。このため、折り返し雑音の影響を抑えるために必要な範囲で、Dはできるだけ大きな値を設定することが好ましい。
【0056】
先述の非最大間引きは、帯域分割前、帯域合成後の波形系列から見ると、フレームシフトDのオーバラップ分析を行なっていることと等価である。また、時間領域におけるDサンプルの処理毎に、サブバンド分割領域における1サンプルの処理が行なわれる。ここで、簡単のためにDがMの約数であるとする。なお、完全再構成条件を満たすフィルタバンクを用いるものとする。
【0057】
まず、インパルス音源については、非最大間引きであっても、上記で説明している音源の制御方法と同様の方法で制御する。ただし、例えば長さMのフレームにおいて、先頭からNサンプル目(ただしM>N≧Dとする)のサンプルが立っている場合、Dサンプルのフレームシフトにより、次のフレームでは先頭からN−D番目のサンプルにインパルスが立つ。このとき、インパルス音源はそれぞれのタイミングで、対応する事前蓄積されたサブバンド分割波形ベクトルを出力する。
【0058】
一方、白色雑音については、例えば、最も簡単な方法として、M×Nサンプル周期で同じ波形を繰り返すことで生成する方法が考えられる。その場合は、フレームシフトに対応する、M×N×(M/D)通りの、長さMの波形を事前蓄積しておき、フレームシフトに応じて順に出力する方法がまず考えられる。ここでNは、雑音周期が聴感上問題ない程度となるものであれば良い。例えば雑音の周期M×Nが、可聴周波数の下限(例えば20Hz)に対応する周期より長ければよい。
【0059】
あるいは、長さMの白色雑音波形素片を予め何個か用意しておき、それをランダムに繋ぎ合わせる方法もある。ここで1つの長さMの白色雑音波形素片について、時間軸上の素片範囲外でサンプル値が全て0として扱う。この白色雑音波形素片単独の時間領域における1フレーム内での出現パターンは、フレーム内における波形の開始点の違いで決まり、開始点には−M+D,−M+2D,…,−D,0,D,…,M−Dの計(2(M/D)−1)個のパターンがある。
【0060】
1フレーム分の雑音波形は1種類(開始点が0の場合)または2種類の長さMの雑音波形の組み合わせで表現できる。したがって、事前作成する長さMのサンプルの白色雑音波形素片がN種類のとき、合計N(2(M/D)−1)個の事前蓄積から、1または2個のサブバンド分割波形を取得し、それをサブバンド分割領域で足し合わせる処理により、白色雑音源を実現できる。
【0061】
また、白色雑音波形素片の長さをM/2,M/4…と短くしていくことで、その場合、1フレーム内での出現パターン数が減り、音源で必要な足し合せ処理が増えていく。逆に白色雑音波形素片の長さを長くすることもできる。その場合は出現パターン数が増えるため、必要な蓄積の数が増えるが、音源で足し合わせの処理が必要となる場合が減ることとなる。
【0062】
[第2の実施形態]
(混合励振源を用いる音声合成装置の構成)
上記の実施形態は、音源ごとに乗算回路を設けてスペクトル包絡特性の再現と音源の混合比調整を同時に行なう構成であるが、例えば混合励振源の各帯域のパワーが等しくなるような条件の下でサブバンド分割された音源波形をまず作成し、それに対してサブバンドごとにパワー制御を行なっても良い。
【0063】
図6は、混合励振源を用いる音声合成装置200の基本構成を示すブロック図であり、
図7は、音声合成装置200の具体的構成を示すブロック図である。音声合成装置200の基本構成は、音声合成装置100と同様であり、音源波形をサブバンド分割部210によりサブバンド分割して蓄積し、入力情報に応じてサブバンド毎に振幅を調整する。そして、振幅を調整されたサブバンド分割音源波形ベクトルを用いてサブバンド合成部140により合成し、目標となるスペクトル特性を近似的に有する音声波形を合成する。
【0064】
音声合成装置200は、入力された時系列の音源制御情報およびスペクトル特性情報を基に、音声波形を合成するが、本実施形態において、音源制御情報とは基本周波数および混合重みの情報である。
図6に示すように、音声合成装置200は、サブバンド分割部210、サブバンド分割音源生成部220、サブバンドパワー調整部130およびサブバンド合成部140を備えている。
【0065】
サブバンド分割音源生成部220は、インパルス音源に対応するサブバンド分割音源波形ベクトルと白色雑音音源に対応するサブバンド分割音源波形ベクトルとの重み付け和により生成されたサブバンド分割音源波形ベクトルを生成する。サブバンド分割部210は、インパルス側分割部211aおよび白色雑音側分割部211bを備えている。インパルス側分割部211aはインパルス音源をサブバンド分割し、白色雑音側分割部211bは、白色雑音源をサブバンド分割する。
【0066】
サブバンド分割音源生成部220は、インパルス側蓄積部221a、インパルス側選択部222a、インパルス側重み付け乗算部223a、白色雑音側蓄積部221b、白色雑音側選択部222b、白色雑音側重み付け乗算部223bおよび加算部224を備えている。
【0067】
インパルス側蓄積部221aは、インパルス音源に基づくサブバンド分割音源波形ベクトルを蓄積する。インパルス側選択部222aは、入力された基本周波数の情報に基づき、事前蓄積されたインパルス音源に基づくサブバンド分割波形ベクトルを選択する。インパルス側重み付け乗算部223aは、選択されたサブバンド分割波形ベクトルの各要素に重み付け係数A
p0〜A
p(M−1)をそれぞれ乗算する。
【0068】
一方、白色雑音側蓄積部221bは、白色雑音源に基づくサブバンド分割音源波形ベクトルを蓄積する。白色雑音側選択部222bは、例えば上記の「音源の制御方法」に記載された方法に基づき、事前蓄積された白色雑音源に基づくサブバンド分割波形ベクトルを選択する。白色雑音側重み付け乗算部223bは、選択されたサブバンド分割波形ベクトルの各要素に重み付け係数A
a0〜A
a(M−1)をそれぞれ乗算する。なお、各係数は、A
px+A
ax=1となるように決められる。
【0069】
加算部224は、それぞれインパルス側および白色雑音側で重み付け乗算されたサブバンド分割波形ベクトルを加算する。このように、複数種類のサブバンド分割波形ベクトルを、音源情報に基づき1つのサブバンド分割波形ベクトルとして生成する。混合励振源を音源に用いる場合、音源情報に基づき、インパルス列と雑音源の混合比調整も同時に行なう。
【0070】
なお、インパルス側蓄積部221a、インパルス側選択部222aおよびインパルス側重み付け乗算部223aは、インパルス側サブバンド分割音源生成部220aを構成する。白色雑音側蓄積部221b、白色雑音側選択部222bおよび白色雑音側重み付け乗算部223bは、白色雑音側サブバンド分割音源生成部220bを構成する。
【0071】
このように、音声合成装置200は、音源波形の種類に応じて、サブバンド分割した結果を音声合成時に計算する装置と、事前蓄積した帯域サブバンド分割波形ベクトルとを組み合わせて、音源となるサブバンド分割波形ベクトルを生成する。
【0072】
(音声合成装置の動作例)
次に、音声合成装置200の動作例を説明する。
図8および
図9は、音声合成装置200の動作の一例を示すフローチャートである。なお、図中のA、Bは、
図8と
図9との流れを結ぶ点を示している。本動作例では、フレームシフトがDサンプル、音源波形の1素片の長さがMサンプル、分割帯域数がMであることを前提条件としている。
【0073】
まず、ランダムに選択した雑音素片n1のフレーム内開始点s1を0に設定し、ランダムに選択した雑音素片n2のフレーム内開始点s2をMに設定する(ステップT1)。次に、入力データの有無を判定する(ステップT2)。入力データが無い場合には、処理を終了する。入力データがある場合には、入力データとして、基本周波数、混合重み、スペクトル特徴情報を取得する(ステップT3)。
【0074】
入力された基本周波数からインパルスの位置を決定する(ステップT4)。各インパルスに対応するサブバンド分割音源波形ベクトルを蓄積されたサブバンド分割音源波形ベクトルから取得する(ステップT5)。なお、取得数はインパルスの数と同じ個数である。そして、インパルス側で取得したサブバンド分割音源波形ベクトルの和を計算する(ステップT6)。また、インパルス側でサブバンド分割音源波形ベクトルの要素をそれぞれ混合重み係数倍する(ステップT7)。
【0075】
一方、2個の白色雑音のサブバンド分割音源波形ベクトルを(n1,s1)、(n2,s2)の情報に基づき蓄積されたサブバンド分割音源波形ベクトルから取得する(ステップT8)。そして、取得したサブバンド分割音源波形ベクトルの和を計算する(ステップT9)。白色雑音源波形のサブバンド分割音源波形ベクトルの要素は、それぞれ(1−混合重み係数)倍する(ステップT10)。
【0076】
次に、雑音素片n1のフレーム内開始点s1をs1−Dに設定し、雑音素片n2のフレーム内開始点s2をs2−Dに設定する(ステップT11)。フレーム内開始点s1が−Mより大きいか否かを判定し(ステップT12)、大きい場合には、ステップT14に進む。
【0077】
フレーム内開始点s1が−M以下である場合には、雑音素片n1を雑音素片n2と同じに設定し、フレーム内開始点s1を0に設定する。また、雑音素片n2を新たにランダムに選択し、雑音素片n2のフレーム内開始点s2をMに設定する(ステップT13)。
【0078】
次に、混合励振源のサブバンド分割音源波形ベクトルとして、インパルス側と白色雑側の重み付きサブバンド分割音源波形ベクトルの和を計算する(ステップT14)。そして、音源波形のサブバンド分割音源波形ベクトルの各要素に対し、スペクトル特徴に基づく値を乗じ(ステップT15)、サブバンド合成処理を行ない(ステップT16)、Dサンプルを出力して(ステップT17)、ステップT2に戻る。このような処理により、処理量を削減し、十分な音声合成処理や混合励振が可能になる。
【0079】
[第3の実施形態]
(インパルス音源のみ動的生成する音声合成装置の構成)
上記の実施形態では、インパルス音源に基づくサブバンド分割音源波形ベクトルも、白色雑音源に基づくサブバンド分割音源波形ベクトルも、事前に蓄積しているが、インパルス側ではサブバンド分割音源波形ベクトルを蓄積しない形態も採用可能である。
図10は、そのような音声合成装置300の基本構成を示すブロック図である。
図10に示す音声合成装置300の構成は、基本的には音声合成装置200と同様であるが、サブバンド分割音源生成部320には、インパルス側のサブバンド分割音源波形ベクトルの蓄積、選択を行なう構成が無い。
【0080】
インパルス側分割部211aは、入力情報のインパルス列に基づいてサブバンド分割音源波形ベクトルを生成し、白色雑音側重み付け乗算部223aでインパルス側の混合重み付け乗算を行う。加算部224は、これと白色雑音源側の重み付け乗算されたサブバンド分割音源波形ベクトルとを加算する。すなわち、サブバンド分割音源生成部320は、白色雑音音源に対しては、蓄積されたサブバンド分割音源波形ベクトルに基づいて、入力された音源制御情報に対応するサブバンド分割音源波形ベクトルを生成し、インパルス音源に対しては、音源波形を複数の周波数帯域に分割してサブバンド分割音源波形ベクトルを生成する。
【0081】
このように、音声合成装置300では、インパルス音源に由来する音源を音声合成時に計算している。インパルス音源の出力はそのサンプル値のほとんどが0である。FIRフィルタによるフィルタバンクの処理は、フィルタ係数と、現在あるいは過去の入力サンプル値との積を計算し、その和を求める操作が行なわれる。
【0082】
この場合に、フィルタ係数にサンプル値0を乗ずる演算処理は実際には行なう必要がなく、サンプル値が0でない時刻の入力のみを考慮することで、FFTや逆FFTによる処理を行なうよりも、少ない演算量でフィルタバンクの各帯域の出力を得ることができる。このように、フィルタバンクの演算量が小さいことが分かっている種類の音源波形については、事前作成した蓄積を用いるのではなく、音声合成時に計算処理を行なうことで、必要な蓄積のサイズを抑えることができる。