next up previous contents
次へ: 市販の合成機による合成音声の作成 上へ: 合成音声の作成 戻る: 合成音声の作成   目次

音節波形接続方式による合成音声の作成

まず、合成対象となる単語から音節部品ラベル列を作成する。そして、各音節部 品ラベルに一致するようなラベルデータを音節部品データベースから取り出し、 音節の波形位置を元に波形データを切り出し、単純につなぎ合わせて合成する。

本研究では、切り出す波形データを選択する方法として、音節部品データベース を利用する。音節部品データベースには、異なる音節部品ラベルごとに作成した データベースファイルを格納する。 データベースファイル名は「$ M/m.Sy.P.N.db $」という名前にする。 $ M,m,Sy,P,N $はそれぞれ以下の通りである。

  $ M $:単語のモーラ数
  $m$:単語中のモーラ位置
  $Sy$:音節
  $P$:直前の音素(前音素環境)
  $N$:直後の音素(後音素環境)

各データ ベースファイルには、以下の情報を格納する。

  No:録音データ番号
  St:音節開始時間(ms)
  Ed:音節終了時間(ms)

音節波形接続方式では、取り出す波形データの候補が複数出る場合があり、選択 する方法が問題となる。本研究では、第1音節についてはデータベース内の先頭 要素を選択した。また、それ以外の音節については、取り出す音節の開始時間が、 直前の音節の終了時間により近いものを選択した。それでも候補が複数出た場合 は、音節の継続時間が長い方が聞き取りやすくなると考え、一番長いものを選択 した。

例として、「印刷」(i/ng/sa/tsu)という音声を合成する場合を説明する。概略 を図3に示す。

\includegraphics[]{fig3.eps}

図 3: 「印刷」(i/ng/sa/tsu)の作成

まず、音節部品ラベルを作成する。例の場合「i/ng/sa/tsu」であるので、 「i(,ng)1,4」 「ng(i,s)2,4」 「sa(ng,ts)3,4」 「tsu(a,)4,4」 という音節部品ラベル列が得られる。

次に、音節部品データベースファイルから、各音節ごとに切り出せるデータを選 択する。

第1音節については、データベースファイルの先頭要素を選ぶことにする。例では、 「$No$=340, $St$=300.0ms, $Ed$=395.0ms」を選ぶ。

第2音節以降の音節については、
  (1) 音節開始時間が、直前の音節の終了時間に最も近いもの
  (2) 音節継続時間がより長いもの
を優先的に選ぶ。

まず、第2音節は、第1音節の終了時間が395.0msなので、開始時間が最も近いも のを探し、「No=1217, St=435.0ms, Ed=530.0ms」を選択す る。

次に、第3音節は、第2音節の終了時間が530.0msなので、開始時間が最も近いも のを探し、「No=955, St=520.0ms, Ed=785.0ms」を選択する。

最後に、第4音節は、第3音節の終了時間が785.0msなので、開始時間が最も近い ものを探し、「No=250, St=785.0ms, Ed=1065.0ms」を選択 する。

切り出すデータが決まったら、データ番号をもとに音声データを読み込み、 該当区間の音節波形を切り出す。そして、それらを接続し、合成する。



平成14年3月7日