p - 音声言語処理研究室

音声言語処理特論
第5回 音声合成システム 山本一公
音声合成とは?
• 音声を人工的に合成すること •  基本的には「文章の読み上げ」を目的とする •  対話システムでも生成した応答文を音声合成部に渡す形 •  Text-­‐to-­‐Speech (TTS) System • 音声認識等と異なり、評価は人間の主観 •  どのような音声を人間は自然な音声だと感じるのか?(不自然だと
思わないのか?) •  「なんとなく」の場合も •  平均オピニオン評点 (Mean Opinion Score; MOS値) •  非常に悪い(1点)〜非常に良い(5点)の5段階評価の平均
音声言語処理特論 第5回
2
音声合成の基本的な処理の流れ
1.  音声化したいテキスト(例えば、かな漢字文)を用意 2.  テキスト(かな漢字文)を読み情報(音素列)に変換 3.  テキスト(かな漢字文)から韻律(アクセント、強弱、ポー
ズ)情報を生成 4.  音素情報と韻律情報から合成単位音声を合成単位毎に
生成 5.  生成された合成単位音声を音素列に従って接続 音声言語処理特論 第5回
3
読み情報への変換
•  かな漢字文を音素列に変換する •  読み情報は辞書に登録されているので簡単? ⇒ 実際はそう単純ではない •  かな漢字文の単語(形態素)への分割(「形態素解析」) •  完全に自動で行うのは難しい •  「ここではきものをぬいでください」 •  音韻処理 •  連濁 •  株式(かぶしき)、会社(かいしゃ)⇒ 株式会社(かぶしきがいしゃ) •  数詞・助数詞 •  1本(いちほん ⇒ いっぽん)、6匹(ろくひき ⇒ ろっぴき) •  同形異音語 •  生物(なまもの、せいぶつ)、永遠(えいえん、とわ) •  記号や略称 •  NICT(えぬあいしーてぃー、にくと)情報通信研究機構 •  音韻変形 •  無声化(/ku/ ⇒ /k/)、長音化(えいが ⇒ えーが)
音声言語処理特論 第5回
4
韻律情報の生成(1)
•  アクセント情報 •  高さアクセント(モーラ毎にH/L) •  アクセント型 •  n+1モーラ目でLに移行 ⇒ n型 •  nモーラ単語の場合、その単語に接続される次の単語の1モーラ目がL
になるものはn型、Hになるものは0型 •  方言に依存 音声言語処理特論 第5回
5
韻律情報の生成(2)
•  アクセントも単語の接続によって変化する •  「経済」(HLLL)⇒「経済学」(LHHLLL) •  「赤」(HL)⇒「赤鉛筆」(LHHLLL) •  文全体の強弱 (ストレス) •  適度なポーズ •  全くポーズのない音声は 不自然で聴き取りにくい
音声言語処理特論 第5回
6
人間の音声生成機構(1)
声門(声帯)
右上:hFp://www.e-­‐kantei.org/voice/onsei003.htm 中央:hFp://www.ieice-­‐hbkb.org/files/02/02gun_07hen_01.pdf
音声言語処理特論 第5回
7
人間の音声生成機構(2)
• 声帯振動により音源となる声帯波が発生 •  声帯波は三角波(左図左上) •  声帯振動の様子
hFp://www.youtube.com/watch?v=ajbcJiYhFKY
• 声道は音響管となり、周波数毎の強弱を変化させる 左:hFp://www.kuhp.kyoto-­‐u.ac.jp/~ent/Topics/fsl/fig73.html 右:hFp://www.iikoe.net/category/1409215.html
音声言語処理特論 第5回
8
単純に考えてみよう その1
•  これをそのまま物理的に作ってみたらいいんじゃない? 声門(声帯)
•  問題点 •  形状が時間的に変化しない •  1種類の単音しか出せない •  2種類以上の単音を連続して出せない → ほとんどの音節は無理 音声言語処理特論 第5回
9
音声模型
日本語5母音発生時の声道形状を模擬するプレート公正は例の通り。いず
れも声門側からの穴径をmm単位で示している。
母音「あ」 12 12 26 16 12 14 20 26 30 34 38 38 34 30 28 32
母音「い」 12 12 32 32 32 32 32 32 24 16 10 10 10 12 14 24
母音「う」 12 12 30 30 30 30 26 18 14 22 26 24 22 20 14 16
母音「え」 12 12 30 30 30 30 28 24 18 16 16 18 20 22 22 24
母音「お」 12 12 30 22 16 14 16 22 28 34 38 38 32 26 22 14
http://www.sp4win.com/vtm.vtm.htm
音声言語処理特論 第5回
10
単純に考えてみよう その2
•  声道の変化や声帯の動きを、そのまま“機械的に”再現すればいいん
じゃないか? •  WASEDA Talker シリーズ •  あくまでも「こういうロボットを作ろう」と思って作られたものであって、汎
用的なシステムを目指してはいない •  電気的に生成したり、計算機上で合成するできるものを考えた方が良
い
音声言語処理特論 第5回
11
人間の発声メカニズムの模擬
肺から声帯に空気を送り込み、その空気によって声帯を
振動させ音源を作り出す。
その声帯音源を口腔(舌)、鼻腔(軟口蓋)、歯、口唇によって
調音し、発話音声を生成する. 音声言語処理特論 第5回
12
Waseda-­‐Talker
「あいうえお」
音声言語処理特論 第5回
13
編集方式
•  波形接続方式 •  録音した波形を保持・蓄積 •  文、単語、音節、音素 •  音素連鎖の場合も(CV、VC、VCV、CVC) •  蓄積する単位が短くなると、合成できる文のバリエーションは増える •  一方で、接続が多くなる分、合成品質を維持するのが難しくなる •  駅や電車内のアナウンス(録音編集方式) •  最近の音素片合成システム(VOCALOID) •  パラメータ合成方式 •  音源とスペクトル包絡のパラメータを保持・蓄積 •  調音様式による合成もある •  パラメータを変更することで出す音声を変える •  時間長の伸縮、スペクトルやピッチの補間が行いやすい
音声言語処理特論 第5回
14
合成単位音声の生成
• 波形接続方式 •  蓄積してある音声波形を用いる • パラメータ合成方式 •  声道アナログ方式 •  声道内の音波の伝搬(前進波・後進波)をシミュレートする •  声道を円筒音響管で近似 •  ターミナルアナログ方式 •  複数の共振回路と反共振回路を用いて、声道における共振現象をシミュレートする •  フォルマント合成 •  その他 •  PARCOR係数、LSP(線スペクトル対)によるパラメータ合成 •  HMM音声合成 音声言語処理特論 第5回
15
音声生成の信号モデル
線形分離等価回路モデル (ソースフィルタモデル)
パルス系列
(声帯振動)
調音フィルタ
g(n)
インパルス系列 音源信号
(破裂音)
h(n)
s(n)
音声信号
調音器官
(舌、顎、口蓋、唇など)
ノイズ
(乱流)
無声音源
音声言語処理特論 第5回
16
声道アナログ方式の
ディジタル・シミュレーション
Ai +1
Ai
Ai −1
Bi −1
Fi −1
Fi +1
Fi
Bi
Bi +1
Δl
τ
1 − γ i −1
Bi
Ai − Ai +1
γi =
Ai + Ai +1
音声言語処理特論 第5回
+
Fi +1
+
γi
× −γ i
τ
×
× − γ i −1
×
×
+
τ
×
γ i −1
1+ γ i
×
Bi −1
+
×
τ
τ
Fi
1 + γ i −1
Fi −1
τ
1− γ i
Bi +1
Δl
τ=
C
17
ターミナルアナログ方式(1)
•  フォルマント合成 •  フォルマント周波数を強調する(フォルマント周波数が共振周波数となる)
フィルタを構成 •  音源波形をそのフィルタに通す •  音源は様々な周波数成分を含む必要がある •  そのため、パルス列・インパルス・ノイズを用いる •  フォルマントだけでなく、スペクトル包絡全体をパラメータ化する方が
良い •  LPC分析法 •  メルケプストラム法 音声言語処理特論 第5回
18
ターミナルアナログ方式(2)
• LPC分析合成 • LPC分析系 X(z)
p
xt = xˆt + ε t = −∑ ai xt −i +ε t
i =1
F ( z ) = a1 z −1 + a2 z −2 + ! + a p z − p
•  残差が出力 • 逆フィルタ -
+
F(z)
E(z)
X(z)
^ X ( z ) = Xˆ ( z ) + E ( z )
= F ( z) X ( z) + E( z)
E( z) = X ( z) − F ( z) X ( z)
= (1 − F ( z ) )X ( z )
•  残差を入力とする •  Residual Excited Linear Predicdon(RELP) •  残差をベクトル量子化によりコードブックで表現 •  CELP / VSELP / ACELP •  携帯電話のCODECとして使われている •  今の携帯電話は、音声波形をそのまま送ったりしません 音声言語処理特論 第5回
19
パラメトリックな分析
- LPC分析(線形予測分析)
パルス系列
(声帯振動)
調音フィルタ
g(n)
音声信号
調音器官
(舌,顎,口蓋,唇など)
H ( z) =
ノイズ
(乱流)
s(n)
h(n)
音源信号
インパルス系列
(破裂音)
-
1
1
=
1 − a1 z −1 − a2 z − 2 − ! − a p z − p 1 − F (z )
p
xt = xˆt + εt = −∑ ai xt−i +εt
i=1
音声言語処理特論 第5回
X(z)
-
+
F(z)
E(z)
X(z)
^ 20
LPC合成フィルタ(逆フィルタ)
•  予測残差を入力して、波形を合成する(RELP)
X ( z) =
1
E( z) =
1 − F ( z)
1
p
E( z)
1 − ∑ ai z −i
i =1
音声言語処理特論 第5回
21
線形予測係数を求める(1)
•  自己相関法 •  最小二乗誤差基準
p
xt = xˆt + ε t = −∑ ai xt −i +ε t
i =1
E=
∞
∞
∞
⎛
p
⎝
i =1
⎞
2
2
ˆ
(
)
(
)
ε
=
x
−
x
∑ t ∑ t t = ∑ ⎜⎜ xt + ∑ ai xt −i ⎟⎟
t = −∞
t = −∞
t = −∞
⎠
2
∞
=
p
⎛
⎞
⎜
a
x
∑
⎜ ∑ i t −i ⎟⎟
t = −∞⎝ i = 0
⎠
2
ただし、a0 = 1とする
最小化のためa jで偏微分して0と置く
p
∞
∞
∂
E = ∑ ai R| j −i| = 0 ただし、Rl = ∑ xt xt +l = ∑ xt xt −l
∂a j
i =0
t = −∞
t = −∞
音声言語処理特論 第5回
22
線形予測係数を求める(2)
•  p個の式が求まるので、連立方程式にする p
p
∑a R
i
| j − i|
=0 ⇒
i =0
⎛ R0
⎜
⎜ R1
⎜ !
⎜
⎜ R
⎝ p −1
∑a R
i
| j − i|
= −R j
i =1
R1
R0
!
R p −2
" R p −1 ⎞⎛ a1 ⎞
⎛ R1 ⎞
⎟⎜ ⎟
⎜ ⎟
" R p − 2 ⎟⎜ a2 ⎟
⎜ R2 ⎟
= −⎜ ⎟
⎟
⎜
⎟
#
!
!
!
⎟⎜ ⎟
⎜ ⎟
⎜ R ⎟
" R0 ⎟⎠⎜⎝ a p ⎟⎠
⎝ p ⎠
•  Toeplitz行列となる ⇒ Yule-­‐Walker方程式 •  Levinson-­‐Durbinの再帰アルゴリズムによって高速に解くことができる
音声言語処理特論 第5回
23
LPCケプストラム係数
•  ケプストラム係数をLPC係数から求める •  以下の漸化式による求められる c(0) = log e (σ )
m −1
m−k
c(m) = −α m − ∑
c(m − p )α k
m
k =1
p
m−k
c ( m) = − ∑
c(m − k )α k
m
k =1
m=0
1≤ m ≤ p
p<m≤M
•  σ2は音声のエネルギー
音声言語処理特論 第5回
24
スペクトル包絡の分析例
音声言語処理特論 第5回
25
メルケプストラム係数(1)
•  非線形周波数軸上でのスペクトル包絡を考える ⎛ M
⎞
H ( z ) = exp⎜ ∑ c(m) ~
z − m ⎟
⎝ m =0
⎠
−1
z
−α
~
z −1 =
ただし、| α |< 1
−1
1 − αz
•  c(m):メルケプストラム係数 •  α=0のとき、ケプストラム係数と同じ •  α:伸縮係数 •  16kHzサンプリングのとき、α=0.42でメル周波数を近似 •  12kHzサンプリングのとき、α=0.38でメル周波数を近似
•  8kHzサンプリングのとき、α=0.31でメル周波数を近似
音声言語処理特論 第5回
26
メルケプストラム係数(2)
•  スペクトル評価関数 1 π
{R(ω ) − log R(ω ) − 1}dω
E ( x, c ) =
2π ∫−π
I (ω )
R(ω ) =
2
H ( e jω )
1
I (ω ) =
W
N −1
∑ w(n) x(n)e
2
− j ωn
n =0
N −1
W = ∑ w 2 ( n)
•  E(x,c)をcに関して最小化する n =0
•  E(x,c)は凸関数であるため、反復アルゴリズムによって最小値が求まる •  MLSAフィルタにより直接合成音の生成が可能 •  MLSA:Mel Log Spectral Approximadon(メル対数スペクトル近似)
音声言語処理特論 第5回
27
HMM音声合成(1)
•  HMMから合成に必要なパラメータ時系列を生成する •  HMMから最尤なパラメータベクトル時系列(メルケプストラム係数)
を生成する •  メルケプストラム係数だけのHMMから生成すると、平均値ベクトルが並ぶこ
とになる •  ΔケプストラムもHMMのパラメータとして学習する •  Δケプストラム=メルケプストラム係数の時間的な変化 •  この“時間的な変化”まで考慮して最尤となるベクトル時系列を生成することで、時間的
に滑らかに変化するパラメータが生成される •  ピッチもHMMにより生成する •  MSD(Muld Space Probability Distribudon)-­‐HMM •  有声/無声で基本周波数の有無が切り替わるため、それをマルチ空間で表現する •  継続時間もHMMから生成できる 音声言語処理特論 第5回
28
HMM音声合成(2)
Open JTalkのデモ音声 Δケプストラムを 考慮しない場合
同じスペクトルが続いた後、 急激に変化する
Δケプストラムを 考慮する場合
スペクトルが滑らかに変化している
音源波形を入力して、音声を合成
音声言語処理特論 第5回
29
VOCODER
•  分析合成系のこと。語源は「Voice Coder」 •  パラメータ合成方式のことをボコーダー方式という 映画「禁断の惑星」の ロビー・ザ・ロボット •  ボコーダーの出力の不自然さ「ロボットみたいな」 ⇒ 音楽の分野でロボットボイスを出すために使われるようになった •  音声を加工して出力するエフェクターの1種 •  キャリアとして音声ではない別の楽器音を使用 •  モジュレータとして音声を使用 •  シンセサイザーに分類されることもある •  仕組みはシンセサイザーも同じようなもの •  フィルタの組み合わせ方が違うとかそんなレベル •  クラフトワーク(Kralwerk)やYMOの使用が有名 •  YMO「BEHIND THE MASK」「TECHNOPOLIS」とか •  「テクノポップ」 「シンセポップ」「コンピュ・ミュージック」 •  電気グルーブや中田ヤスタカへ •  シンセサイザーの歴史とも重なる 音声言語処理特論 第5回
30
波形接続型音声合成(1)
•  観測された音声波形を合成単位に分割し、データベースとして保持 •  合成したいテキストに対して •  音素・ピッチ・ストレスを考慮した、合成単位の相応しさ •  接続しても不自然にならないように、隣接単位が上手くつながるかどうか •  これらをコストと考えて、コストが最少になるように波形を接続する •  データベースが大きければ大きい程、選択の余地が増えるので合
成品質は向上する •  計算コストは増える •  対象話者から大量のデータが取れるか?
音声言語処理特論 第5回
31
波形接続型音声合成(2)
•  小さいデータベースで合成するとどうなるか? •  ATRの音声合成エンジンCHATR(ただし、かなり昔) •  黒柳徹子が小説を朗読した音声 •  向田邦子「男どき女どき」に収録されている短編小説『鮒』を朗読したもの •  短編小説なので、大した長さではない •  この声を使って、テキストから音声合成 •  題材は「天気予報」 •  ドメインが合ってない •  データベースが小さいことの悪影響が出ている •  いろいろな感情を含んだ大きなデータベースが望ましい 音声言語処理特論 第5回
大量のデータがあれば、
もっと高品質
HOYA VoiceTextの サンプル音声
32
ピッチ・継続時間の変更
•  PSOLA (Pitch Synchronous OverLap Add) •  基本波形(1周期分の波形。下図で窓関数を掛けて切り出されたもの)を基
本周期の間隔(ピッチマーク)に応じて、貼り付ける •  ピッチ間隔を狭く/広くすれば、音高が上がる/下がる •  貼り付ける回数を増やす/減らす(基本波形を挿入する/間引く)ことで、
継続長が長く/短くなる
ピッチマーク位置 (窓関数の中央)
こちらの方が 高い声になる
音声言語処理特論 第5回
33
歌声合成システム
•  歌わせる研究は1960年頃からある •  音高の制御、自然性が難点 •  YAMAHA PLG100-­‐SGというフォルマント合成方式のMIDI楽器もあった •  1997年にMU-­‐100/100Rの拡張ボードとして発売 •  VOCALOID(hFp://www.vocaloid.com/) •  YAMAHAが開発した波形接続方式による歌声合成システム •  波形接続方式のため、大量の波形を内部に持っている •  音素環境別(トライフォンのような) •  音高別 •  接続そのものは周波数領域で行っている •  Synsy(hFp://www.synsy.jp/) •  名工大が開発したHMM合成方式による歌声合成システム •  HMM音声合成の利点をそのまま使える •  話者適応化しやすいので、声を変えやすい 音声言語処理特論 第5回
34
デモのページ
•  Dennis KlaF’s History of Speech Synthesis •  hFp://www.cs.indiana.edu/rhythmsp/ASA/Contents.html
•  昔の合成音声のサンプルがずらっと並んでいる •  1985年ぐらいまでのもの •  DECtalkは比較的良い品質 •  AT&T Labs -­‐ Research •  hFp://www2.research.aF.com/~Fsweb/Fs/demo.php •  品質の違いは歴然 •  Open JTalk •  hFp://www.sp.nitech.ac.jp/demo/open_jtalk/ •  日本語HMM音声合成エンジンのページ。デモも置いてある •  他にも今売られている製品のデモは山とあります 音声言語処理特論 第5回
35
自然な音声合成に向けて
•  話し言葉の音声合成 •  合成単位の品質自体は結構良い状態に •  良すぎる?なまけの合成? •  接続が自然かどうか? •  韻律の制御はまだかなり問題 •  アクセント位置・アクセントパターンの制御 •  市内電車線のアナウンスはかなり変 •  文全体のイントネーション(高さ、大きさ)制御 •  最初高く、徐々に下がり、息継ぎがあると、そこからまた上がる •  いわゆる「へ」の字型 •  感情付与 •  特定の人の声の合成 •  話し方の模倣 音声言語処理特論 第5回
36