ソースフィルタモデルについてのまとめ(永遠に未完)

はじめに

音声合成の確率統計的な定式化:その3』の記事で必要になるので、ここに記事を書いて簡単に整理することにした。本記事はディジタル信号処理の言葉で述べられるので、それについて読者には多少の予備知識を仮定するが、「知らないよ、そんなの(´・ω・`)」な方は本記事の一番最後に示した『やる夫で学ぶディジタル信号処理』を適宜参照してほしい。

解説

音声波形から複数の特徴(パラメータ)を抽出し、それらから音声を再構成する技術は分析合成と呼ばれる。音声合成システムの実現にとって、音声を最終的に出力する役割を担う分析合成の技術は必要不可欠なものである。伝統的には音声の生成過程を数学的なモデルで模擬する方法が取られてきた。そこでまず、音声の生成過程の概略図を以下に示そう。
f:id:tam5917:20160314111455p:plain
肺からの呼気は発声器官(声帯、口腔・鼻腔、口唇など)を通過して発声される。その過程で、声の高さや大きさ、音色の特徴が付加されることで「音声」が形成される。様々な音声は脳からの司令により発声器官が変形することで実現される。このような音声の生成過程を(工学的に)シミュレーションできれば、任意に与えた音源の特徴と声道の特徴から音声を合成することが可能となる。そのためにこれらの特徴が具体的にどう表現されるかを明確にしておく必要がある。

コンピュータで高速に処理する関係上、音声波形はディジタル信号として扱われる。分析合成のための数学的モデルは、ディジタル信号処理技術を駆使したソースフィルタモデルが伝統的に用いられてきた。概略図を示そう:
f:id:tam5917:20160314143600p:plain

以下に説明を述べよう。

音源の特徴

声帯音源の特徴は有声音と無声音で異なる。ただし有声音とは声帯の振動を伴う音声であり、無声音は声帯の振動を伴わない音声である。声帯の振動により発生する「音」をパルス列で表現し、それ以外は白色雑音で表現する。この段階では音声ではない。パルス列は要はブザー音である。音の大きさはパルスの振幅の大きさできまり、音の高さはパルスの間隔で決まる。間隔が密なほど音が高く、疎なほど音は低く聞こえる。つまり間隔の逆数に比例して高さが決まる。そのパルスの間隔に対応し、音の高さを表す特徴量が基本周波数である。
f:id:tam5917:20150305161515p:plain
人間は本来、声帯から物理的な制約を受けるため、その基本周波数の時間変化には特徴的なパターンが必然的に存在する。先行研究により、いわゆるアクセント*1やイントネーション*2の変化のパターンはいわゆる藤崎モデルと呼ばれる物理モデルにより説明できることが分かっている(本当はこのあたりもきちんと説明すべきだろうなぁ)。

実際の音声は有声音と無声音が素早く切り替わる。その切り替えが図中のスイッチにより表現されている。音源をこのように表したモデルは(単純)励振源モデルと呼ばれる。励振源モデルからの出力が励振源信  e(n)である。

ここで励振源信号の例を示しておこう。まず音声波形が以下のように与えられた場合、
f:id:tam5917:20160314174400p:plain:w600
対応する励振源信号は以下のように与えられる。
f:id:tam5917:20160314174525p:plain:w600
有声と無声の切り替わりが音声波形と同期していることが分かるだろう。音声波形から基本周波数と有声・無声の切り替わり情報を高精度に抽出することは、合成音の音質にとって重要である。

声道の特徴

声道の特徴はディジタルフィルタにより表現される。それが表現するのは咽頭や口腔、鼻腔内での共鳴作用であり、フィルタを通過することで励振源の単調な音に音色が付加されて音声が合成される。ディジタルフィルタは線形時不変システムにより実現されるため、フィルタの出力は励振源信 e(n)と単位インパルス応答  h(n)との畳み込みにより計算される。

音色の付加はスペクトルを考えることで明確に了解される。

出力 x(n)、フィルタ h(n)、励振源 e(n)フーリエ変換をそれぞれ X(\omega) H(\omega) E(\omega)とすると*3 x(n) = h(n) * e(n) *は畳み込みを表す記号)の両辺にフーリエ変換を施した結果は X(\omega)=H(\omega)E(\omega)になることが知られている。 \omegaは角周波数を表す。信号に含まれる各周波数成分の強弱を表したものがフーリエ変換の結果であり、(フーリエ)スペクトルと呼ばれる。 E(\omega)ほぼ平坦な形状をしている*4。そこに H(\omega)を掛けることは E(\omega)の形状を変形させ、特定の周波数成分を強調する効果を持つ。見方を変えれば、 H(\omega)は音声スペクトルの概形(スペクトル包絡)を決定するものである。これにより、単なるブザー音が「あ」や「い」として知覚されるようになるわけである(うーん、説明が下手くそだ…)。

音声のスペクトル包絡を効率よく表現するパラメータとしてケプストラムがよく知られているが、音声合成では人間の聴覚特性に合わせて改良したメルケプストラムが広く用いられている。メルケプストラムについては以下の記事を読むことで概観が得られるだろう:
tam5917.hatenablog.com

実はこれら以外にもスペクトル包絡を表現するパラメータはあるのだが*5、割愛する。

統計モデルによるモデル化

基本周波数、スペクトル包絡パラメータ(例えばメルケプストラム)、有声・無声情報をまとめて音響特徴量と呼ぼう。音声のパラメトリック表現とも言える。統計モデル(隠れマルコフモデル; HMM)によるモデル化のターゲットとなるのは、これら音響特徴量である。音声合成時には音響特徴量が予測の対象となり、予測する手段がHMMに基づいている、というわけである。音響特徴量はどのような分析合成系を用いるかによって多少異なってくる。分析合成時の音質がHMM音声合成が目指すところ(音質の上限)であり、高品質な分析合成系を用いればその分、HMM音声合成による合成音の音質は引き上げられる。

おわりに

本記事で示した励振源モデルおよびソースフィルタモデルは最もシンプルなものである。それによりもたらされるメリットもあるが、デメリットもある。具体的には有声摩擦音のように周期成分と非周期成分の両方を持つ音声を合成することが難しいことが挙げられる。またこのモデル特有の機械的な音質(buzzyな音)が含まれることがあり、音質には限界がある。過去10年を振り返ると、励振源モデルや分析合成系について、音質の向上を目指してモデルを改善する数多くの研究がなされている。日本発のものでは以下の記事で紹介したSTRAIGHTWORLDに基づく分析合成系が知られている。STRAIGHTについてはいつかまた記事を改めて説明するときが来るかもしれない。。。

参考文献

ディジタル信号処理について基礎を確認したい読者には以下を薦める。対話形式であり、とっつきやすいのではないだろうか。
www.ic.is.tohoku.ac.jp

  • NTT亀岡さんの記事

音声のイントネーションとアクセントを分析,合成,変換

謝辞

本記事で使用した一部の画像は、現(株)テクノスピーチの中村 和寛様が、名古屋工業大学 博士論文の公聴会で使用されたスライドに基づいており、ご本人の許可を得た上で画像を掲載した。

TODO

記事を改めた上でも、以下は必要だろう。。。(´・ω・`)

  • STRAIGHTの説明
  • LPCやLSPについての説明
  • 藤崎モデルについての説明

*1:各単語の中で急峻に変化する基本周波数パターンのこと。単語の意味や方言の違いに関係する(参考文献より)

*2:文や句の全体に及ぶ範囲で緩やかに変化する基本周波数パターン。話者の調子や意図,文の区切りや係り受けを表現する(参考文献より)

*3:ここにはスペクトルの時不変性の仮定が入っている

*4: E(\omega)に相当する成分を生の音声から抽出すると、スペクトルの微細構造(スペクトルの細かいギザギザ)となってそこに現れる。

*5:LPCやPARCOR、LSP