VOICE FONTS: 音声合成データベースの作成
1.はじめに
ワープロやHTMLで書かれた文書では通常さまざまな種類や大きさのフォントが使われています。当研究所で開発されたCHATR[1]
は、音声データベースを切り替えることにより大人から子供、英語や韓国語などのさまざまな音声を出力することが可能で、音声データベースはボイスフォントとも呼べるものでしょう。
CHATRはあらかじめ録音した音声に、音素ラベルや各音素の音の高さ、強さ、時間長といった韻律的特徴を計算したデータベースを作成し、どの波形のどの部分の音素を合成に使うか決定します。録音した音声波形を部分的に切り貼りして合成音声を作成しますので、話者の特徴を保持した合成音声を作ることが可能です。データベースのサイズが大きいほど、すなわち録音時間の長いデータベースほど合成に使われる音素の韻律的バリエーションが増えるため、合成音声の品質が向上します。つまりCHATRで品質の良い合成音声を作るには大量の録音音声と、正確な音素ラベル、また音素ごとに計算される韻律情報が重要になります。
本稿ではCHATRの音声データベースの作成方法について紹介します。音声データベース作成は大きく分けて1.音声録音、2.ラベリング、3.韻律情報付与、4.重み計算、の4つの工程からなります。この中で、韻律情報の計算と重み計算は完全に自動化されています。
2.音声録音
CHATRでは一定量以上(例えば60分程度)の音声を録音してデータベース化しています。これは市販のカセットブックなどを利用することも可能です。新規に録音するときには、雑音が入ることを防ぐために無響室で録音作業を行います。通常はさまざまな音素並びの種類の数が多くなるように決められた、音素バランス文(503文)を朗読してもらいます。ただし、503文は雑誌や新聞記事から選ばれているため、文章間のつながりがなく、言い慣れない、音読しにくい文章とも言えます。結果として普段より沈んだ感じの音声になりがちなため、最近では小説などを読んでもらい、感情を含む音声データを作成しています。
また、子供の音声のデータベースを作成したときには絵本や、学校の教科書を読んでもらいました。図1は音声を録音している様子です。基本周波数(声の高さ)を声帯の振動から直接得るために、のどにラリンゴグラフという装置をつけて発声します。
3.ラベリング
音声データベースを作成するために、まず最初に音声波形のどの部分がどの音素であるかを決める音素ラベリングという作業が必要になります。また音声の抑揚を表わす韻律ラベルを付けることもあります。
音素ラベリングはテキストの有無により、手順は大きく二つに分けられます。
(1)録音されている音声データの発話内容を書き起こし、人が音声を聞きながら音素ラベルを付ける方法
(2)503文等、決められた文を話し手に読んでもらい、既存の音素ラベルを自動的に割り振る方法
(1)の場合、ラベラーと呼ばれる専属の人が音声を聞き、また音声のスペクトル情報を見ながら音素ラベルとその境界を決定します。前述の503文の場合、音声の録音時間がおよそ50分前後で、その音声に手動でラベリングする作業はおよそ2週間程度かかります。一方(2)の場合、隠れマルコフモデル(HMM)による音声認識ツールを用いて自動的に音素ラベル境界を決定します。
人手により音素ラベル境界を決める際には、隣りの音が混じったり、音の先頭部分を削ってしまったり、また操作ミス等で実際に聞いた音と異なる音素をつけてしまうこともあります。また、音声認識ツールを用いた場合、波形と発話内容を表わす音素列が一致することが必要です。しかし、同じ文章を読んだ場合でも人によっては文章の途中で休止を入れたり入れなかったりするため、休止の部分がその前後の音素としてラベリングされるような問題がありました。そのため、一旦ラベリングがされると、ミスがないかチェックする必要があります。これらの作業はすべて音声を聞きながら行っていましたが、大量の音声を録音したデータベースの場合この作業だけでも数日間必要になります。
ラベリング結果を自動的に検証できれば時間的にも効率的であり、また人手でラベリングしたものに較べてラベリングの方法が一貫したものとなります。Alignerはこのようなニーズに応じて作られたツールです。デルタケプストラムと呼ばれる音声の音響的特徴を表わすケプストラムの変動量を調べ、そのピークの位置から音素境界を決定します。[2]
図2の二段目がデルタケプストラム、四段目が音素境界候補(CD)と実際の音素境界を表わしています。
また、図3のようにパワースペクトル密度を用いて無音区間の検出を行います。図の一段目の白い縦線に挟まれた部分は、音素/t/に含まれる無音区間を表わしています。スペクトルパターンから二つの音素を区別することもでき、誤ってラベリングをされた音素を検出することも可能です。
これらの二つの音響的特徴は言語に依存しないため、どの言語の音素ラベリングにも適用でき、正確な音素境界を検出します。
4.韻律情報付与・重み計算
音素ラベリングが終了すると、それぞれの音素の声の高さ、大きさ、時間長といった韻律情報を計算します。声の高さは音声波形から自動抽出しますが、誤って本来の声の高さの二倍や、半分の高さとして計算される場合もあります。そのため最近は図1のように声帯の振動を直接測っています。時間長はラベルの時間情報から、声の大きさは波形より計算し、最終的に図4のように、録音した音声に含まれるすべての音素に対して韻律情報を算出します。なお、簡単化のため図4ではそれぞれの生の値を出していますが、実際にはこれらを平均0、分散1に変換したz-scoreを用います。CHATRで声の高さや時間長などの理想値を予測してデータベースから理想値に近い音素を選び出すわけですが、z-scoreを用いることにより話者の依存性(例えば男性と女性では声の高さが異なり、大人と子供では喋る速さも違う)を無くすことができます。CHATRでは、それぞれの音素が持つ声の高さや大きさ、時間長などの韻律的特徴や前後の音素の情報を考慮してデータベースから音素を選びます。
それぞれの要素をどの程度重要とみるかを決めるのが重み計算で、音素別に設定します。
5.おわりに
CHATRの音声データベース作成方法について紹介しました。従来の音声合成手法で合成器自体がインテリジェントであり、データは少なかったのですが、CHATRでは合成器が小さく、音声合成に必要な情報は音声データベースに入れることにより、音声データが大きな「知識ベース」となりました。その結果、データベースの交換だけで多言語、多話者、多発話スタイル等、フォントのように利用することが可能になりました。
参考文献
Copyright(c)2002(株)国際電気通信基礎技術研究所