(57)【特許請求の範囲】
【請求項１】
入力データに応じてピッチ、振幅、継続時間等の韻律パラメータを生成し、前記入力データから音韻の連続した音韻系列に対応した音声データをパラメータとして生成するパラメータ生成手段を備え、該パラメータ生成手段にて生成された音声データに応じた音声の合成を音声合成の標本化周波数に基づいて行う音声合成装置において、該装置は、
前記入力データが前記ピッチに関連した離散的な音の配列を音階とし、該音階を表すピッチ周期が音声合成に用いる前記標本化周波数に含まれる前記音階の周波数の個数で規定される場合、前記パラメータ生成手段が前記音階に対応して得られる実数のピッチ周期に隣接するそれぞれの整数のピッチ周期の間の音程を複数の所定の範囲に分けて、前記実数のピッチ周期が前記複数の所定の範囲の内で、どの範囲内にあるかに応じて音声合成に用いるピッチ周期のパラメータを選ぶピッチ周期選択手段を含み、
該ピッチ周期選択手段は、前記整数のピッチ周期の間の音程を前記所定の範囲に分ける範囲分割手段と、
該範囲分割手段により分割された範囲の中で前記実数のピッチ周期を含む範囲を選ぶ範囲選択手段と、
該範囲選択手段が選んだ範囲に対応するピッチ周期を前記音声合成に用いるピッチ周期として選んだパラメータを出力するピッチ周期出力手段とを含み、
該ピッチ周期出力手段は、前記実数のピッチ周期が前記範囲分割手段により分割された前記複数の所定の範囲の内の両末端のいずれか一方に位置する場合、該一方の位置に最も隣接した整数のピッチ周期のパラメータを出力させ、前記実数のピッチ周期が前記複数の所定の範囲の内の残る範囲にある場合には、前記音程の両端に位置する整数のピッチ周期のパラメータを交互に出力することを特徴とする音声合成装置。
【請求項２】
請求項１に記載の音声合成装置において、前記範囲分割手段は、前記複数の所定の範囲を少なくとも３つに分けることを特徴とする音声合成装置。
【請求項３】
請求項１または２に記載の音声合成装置において、前記ピッチ周期出力手段は、前記複数の所定の範囲の内の残る範囲に対応して前記整数のピッチ周期のパラメータを複数回ずつ交互に出力することを特徴とする音声合成装置。
【請求項４】
入力データに応じてピッチ、振幅、継続時間等の韻律パラメータを生成し、前記入力データから音韻の連続した音韻系列に対応した音声データをパラメータとして生成するパラメータ生成手段を備え、該パラメータ生成手段にて生成された音声データに応じた音声の合成を音声合成の標本化周波数に基づいて行う音声合成装置において、該装置は、
前記入力データが前記ピッチに関連した離散的な音の配列を音階とし、該音階を表すピッチ周期が音声合成に用いる前記標本化周波数に含まれる前記音階の周波数の個数で規定される場合、前記パラメータ生成手段が前記音階に対応して得られる実数のピッチ周期に隣接するそれぞれの整数のピッチ周期の間の音程を複数の所定の範囲に分けて、前記実数のピッチ周期が前記複数の所定の範囲の内で、どの範囲内にあるかに応じて音声合成に用いるピッチ周期のパラメータを選ぶピッチ周期選択手段を含み、
該ピッチ周期選択手段は、前記実数のピッチ周期と前記音程の整数のピッチ周期との差をそれぞれ前記実数のピッチ周期との距離とし、該各距離に応じた出現割合を算出する出現割合算出手段と、
該出現割合算出手段の算出結果と前記距離とを反比例の関係にしたパラメータを選択する反比例選択手段とを含むことを特徴とする音声合成装置。
【請求項５】
入力データに応じてピッチ、振幅、継続時間等の韻律パラメータを生成し、前記入力データから音韻の連続した音韻系列に対応した音声データをパラメータとしてパラメータ生成手段で生成し、得られた音声データに応じた音声の合成を音声合成の標本化周波数に基づいて行う音声合成方法において、該方法は、
前記ピッチに関連した離散的な音の配列を音階とし、該音階を表すピッチ周期が音声合成に用いる前記標本化周波数に含まれる前記音階の周波数の個数で規定される場合、前記パラメータ生成手段にて前記音階に対応して得られる実数のピッチ周期を含んで、該実数のピッチ周期に隣接するそれぞれの整数のピッチ周期の間の音程を複数の所定の範囲に分ける範囲分割工程と、
該範囲分割工程により分割された前記複数の所定の範囲の内、前記実数のピッチ周期がどの範囲内にあるかに応じて音声合成に用いるピッチ周期のパラメータを選ぶピッチ周期選択工程とを含み、
該ピッチ周期選択工程は、前記実数のピッチ周期が前記範囲分割手段により分割された前記複数の所定の範囲の内の両末端のいずれか一方に位置する場合、該一方の位置に最も隣接した整数のピッチ周期のパラメータを出力させ、前記実数のピッチ周期が前記複数の所定の範囲の内の残る範囲にある場合には、前記音程の両端に位置する整数のピッチ周期のパラメータを交互に出力することを特徴とする音声合成方法。
【請求項６】
入力データに応じてピッチ、振幅、継続時間等の韻律パラメータを生成し、前記入力データから音韻の連続した音韻系列に対応した音声データをパラメータとしてパラメータ生成手段で生成し、得られた音声データに応じた音声の合成を音声合成の標本化周波数に基づいて行う音声合成方法において、該方法は、
前記ピッチに関連した離散的な音の配列を音階とし、該音階を表すピッチ周期が音声合成に用いる前記標本化周波数に含まれる前記音階の周波数の個数で規定される場合、前記パラメータ生成手段にて前記音階に対応して得られる実数のピッチ周期を含んで、該実数のピッチ周期に隣接するそれぞれの整数のピッチ周期の間の音程を複数の所定の範囲に分ける範囲分割工程と、
該範囲分割工程により分割された前記複数の所定の範囲の内、前記実数のピッチ周期がどの範囲内にあるかに応じて音声合成に用いるピッチ周期のパラメータを選ぶピッチ周期選択工程とを含み、
該ピッチ周期選択工程は、前記実数のピッチ周期と前記音程の整数のピッチ周期との差をそれぞれ前記実数のピッチ周期との距離とし、該各距離に応じた出現割合を算出する出現割合算出工程と、
該出現割合算出工程の算出結果と前記各距離とを反比例の関係にしたパラメータを選択する反比例選択工程とを含むことを特徴とする音声合成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、供給されたデータを処理規則に応じた音声合成のパラメータにし、これらの生成されたパラメータに応じた任意の音声を合成する音声合成装置および音声合成方法に関し、特に、歌詞を入力して歌声を合成する音声合成に用いて好適なものである。
【０００２】
【従来の技術】
従来、文字列あるいは記号列をデータとして入力し、このデータを所定の規則に従って音声に変換して出力する音声合成装置がある。この音声合成装置は、パラメータ生成部および音声合成部を備えている（図示せず）。音声合成装置に供給されるデータが文字列の場合、データとしては、文字の読み方、単語や文章を読むときの抑揚や区切りの位置情報が提供される。音声合成装置のパラメータ生成部は、供給されるデータに基づいて声の高さを示すピッチ、声の大きさを示す音の振幅、音韻の長さを表す継続時間等を韻律パラメータとして生成し、この韻律パラメータを基に音韻系列に対応する音声データを生成している。音声合成に必要な音声データは、パラメータ生成部が含んでいる規則によってすべて生成される。パラメータ生成部は、最終的に供給されるデータを音声合成に必要なデータ形式にして音声合成部に送出する。
【０００３】
音声合成部は、供給されるデータを線形予測法に基づく音声合成方法あるいは時間領域の音声素片波形をピッチ周期毎にずらして重ね合わせるピッチ同期波形重畳法等によって音声を合成して出力している。
【０００４】
この音声合成装置は、予めパラメータの変換規則を設定しておき、出力に用いるように予め人間の発した音声を用意しておく必要がないので、文字列の作成・編集を行うだけで任意の音声を合成している。このような特徴を有することから、音声合成装置は、たとえば電子メールの読み上げやカーナビゲーションでの音声地理案内等、種々の分野で利用され始めている。最近では、この音声合成装置は、娯楽的な用途において音声合成により生成された歌声を出力するという要求もかなり増加してきている。
【０００５】
ここで、音声合成におけるパラメータの変換規則を適用して歌声の音声合成をする場合、歌の音階に合わせてピッチを正確に与えることが重要なポイントの一つになることが知られている。実際の歌声の音声合成も、前述と同様に音声のピッチ周期に基づいて行われている。すなわち、具体的には、前述した前者の音声合成方法の場合、有音声の音原モデルであるパルス列の間隔としてピッチが生成され、後者の音声合成方法の場合、音声素片波形をピッチ周期毎にずらして重ね合わせて音声合成が行われている。
【０００６】
【発明が解決しようとする課題】
ところで、歌の音声合成には、当然ながら音階が必要になる。この音階に必要とされる音階周波数F は、基準とする音階の周波数Fbase に対して変数m を用いて式(1)
【０００７】
【数１】
F=Fbase ×2m/12                                       ・・・(1)
によって与えられる。ここで、変数m は、・・・,-2, -1, 0, 1, 2,・・・ という値をとる。正式の音楽で基準を示す中央ハ音は、261.63Hz等と規定されている。この基準に基づいた音階と音階周波数F の関係は、
0004207237.tif 000002
となる。
【０００８】
また、いずれの合成方法でも実現できるピッチ周期は、音声合成の標本化周波数Sf（Sf:Sampling frequency ）で規定されるピッチ周期に限定される。パラメータの変換規則を適用した音声合成には、一般に、8 〜12kHz の標本化周波数が用いられている。ここで、たとえば10kHz の標本化周波数を用いると、ピッチ周波数Pfは、10000/n となる。ここで、サンプル数n は自然数である。ある音階に対する標本点のサンプル数で表されるピッチ周期P は、
【０００９】
【数２】
P=Int(x)=Int(Sf/F)=n                                  ・・・(2)
で表される。ここで、サンプル数を示す変数x は実数でSf/Fに対応している。また、式(2) のInt 関数は入力された実数の小数点以下の部分を四捨五入して整数化する機能を有する。これにより、たとえば標本化周波数10kHz,音程を「ソ」(329Hzとすると、式(2) により10000/329=25.51 であるから、Int(25.51)=26 となる。このような条件の基で音階周波数F に最も近いピッチ周波数Pfを周波数Fnear とし、サンプル数n 、音階周波数F と最も近い周波数Fnear(=Pf(n)）との周波数の差ΔF を調べると、
0004207237.tif 000003
となり、サンプル数n の数値が小さくなる程、サンプリングの間隔が粗くなって、かつ音階で必要とされる周波数の差、すなわちΔF の数値が「ド」、「ファ」、「ソ」に示されているように大きくなる傾向がある。この結果が示すように、音階によっては、聴者の聴感上許容範囲を越える誤差が生じることになる。この傾向を考慮すると、正確な歌声の音声生成を行う際に、たとえば声の高い女性の音声再生には大きな障害となることが予測される。
【００１０】
この原因を回避するため音階の精度の向上が望まれるが、そのためには音声合成の標本化周波数を高くしなければならない。この結果、歌声の音声生成には音声素片の容量の増加し、かつ音声生成の信号処理等の負担が重くなる。
【００１１】
この標本化周波数を高くする方法を用いることなく、正確なピッチ周波数を与えるためにピッチ同期波形重畳方法は、音声素片データが、標本化周波数のそれぞれ１周期毎の振幅データ系列として表現されていることを考慮している。すなわち、この方法は上述した条件を満足させるように標本化周波数の１周期より短い間隔で位相をずらした波形の音声素片データを予め用意するか、あるいは音声合成時にこの音声素片データを生成して、生成した音声素片により音声合成する方法のいずれかによっている。しかしながら、このピッチ同期波形重畳方法は、予め音声素片データを用意すると、そのデータ容量が増大してしまい、音声素片データの生成を音声合成時に行うと、信号処理の増加が余儀なくされ、得策とはいえない。
【００１２】
本発明はこのような従来技術の欠点を解消し、音声合成で設定する標本化周波数がそのままでありながら、簡単な処理でより高精度な音程を実現する音声合成装置およびその合成方法を提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明の音声合成装置は、上述の課題を解決するために、入力データに応じてピッチ、振幅、継続時間等の韻律パラメータを生成し、その入力データから音韻の連続した音韻系列に対応した音声データをパラメータとして生成するパラメータ生成手段を備え、このパラメータ生成手段にて生成された音声データに応じた音声の合成を音声合成の標本化周波数に基づいて行う音声合成装置において、入力データがピッチに関連した離散的な音の配列を音階とし、この音階を表すピッチ周期が音声合成に用いる標本化周波数に含まれる音階の周波数の個数で規定される場合、パラメータ生成手段が音階に対応して得られる実数のピッチ周期に隣接するそれぞれの整数のピッチ周期の間の音程を複数の所定の範囲に分けて、実数のピッチ周期が複数の所定の範囲の内で、どの範囲内にあるかに応じて音声合成に用いるピッチ周期のパラメータを選ぶピッチ周期選択手段を含むことを特徴とする。
【００１４】
ここで、ピッチ周期選択手段は、整数のピッチ周期の間の音程を所定の範囲に分ける範囲分割手段と、この範囲分割手段により分割された範囲の中で実数のピッチ周期を含む範囲を選ぶ範囲選択手段と、この範囲選択手段が選んだ範囲に対応するピッチ周期を音声合成に用いるピッチ周期として選んだパラメータを出力するピッチ周期出力手段とを含むことが好ましい。
【００１５】
ピッチ周期出力手段は、実数のピッチ周期が前記範囲分割手段により分割された複数の所定の範囲の内の両末端のいずれか一方に位置する場合、この一方の位置に最も隣接した整数のピッチ周期のパラメータを出力させ、実数のピッチ周期が複数の所定の範囲の内の残る範囲にある場合には、音程の両端に位置する整数のピッチ周期のパラメータを交互に出力することが望ましい。
【００１６】
また、範囲分割手段は、複数の所定の範囲を少なくとも３つに分けるとよい。
【００１７】
さらに、ピッチ周期出力手段は、複数の所定の範囲の内の残る範囲に対応して整数のピッチ周期のパラメータを複数回ずつ交互に出力するようにしてもよい。
【００１８】
ピッチ周期選択手段は、実数のピッチ周期と音程の整数のピッチ周期との差をそれぞれ実数のピッチ周期との距離とし、この各距離に応じた出現割合を算出する出現割合算出手段と、この出現割合算出手段の算出結果と距離とを反比例の関係にしたパラメータを選択する反比例選択手段とを含むと有利である。
【００１９】
本発明の音声合成装置は、ピッチ周期選択手段が実数のピッチ周期を挟む整数のピッチ周期の音程を複数の所定の範囲に分割し、この実数のピッチ周期がその範囲のどこにあるかに応じて音声合成に用いるピッチ周期のパラメータを選んで出力することにより、与えられた音階に対する音声合成上のピッチ周波数と理論的に得られる音階周波数の誤差を従来に比べて小さく抑えることができる。
【００２０】
また、本発明の音声合成方法は、入力データに応じてピッチ、振幅、継続時間等の韻律パラメータを生成し、入力データから音韻の連続した音韻系列に対応した音声データをパラメータとしてパラメータ生成手段で生成し、得られた音声データに応じた音声の合成を音声合成の標本化周波数に基づいて行う音声合成方法において、ピッチに関連した離散的な音の配列を音階とし、この音階を表すピッチ周期が音声合成に用いる標本化周波数に含まれる音階の周波数の個数で規定される場合、パラメータ生成手段にて音階に対応して得られる実数のピッチ周期を含んで、この実数のピッチ周期に隣接するそれぞれの整数のピッチ周期の間の音程を複数の所定の範囲に分ける範囲分割工程と、この範囲分割工程により分割された複数の所定の範囲の内、実数のピッチ周期がどの範囲内にあるかに応じて音声合成に用いるピッチ周期のパラメータを選ぶピッチ周期選択工程とを含むことを特徴とする。
【００２１】
ここで、ピッチ周期選択工程は、実数のピッチ周期が範囲分割手段により分割された複数の所定の範囲の内の両末端のいずれか一方に位置する場合、この一方の位置に最も隣接した整数のピッチ周期のパラメータを出力させ、実数のピッチ周期が複数の所定の範囲の内の残る範囲にある場合には、音程の両端に位置する整数のピッチ周期のパラメータを交互に出力することが好ましい。
【００２２】
また、ピッチ周期選択工程は、実数のピッチ周期と音程の整数のピッチ周期との差をそれぞれ実数のピッチ周期との距離とし、この各距離に応じた出現割合を算出する出現割合算出工程と、この出現割合算出工程の算出結果と各距離とを反比例の関係にしたパラメータを選択する反比例選択工程とを含むことが望ましい。
【００２３】
本発明の音声合成方法は、整数のピッチ周期で表される音程内を範囲分割工程で複数の所定の範囲に分割し、ピッチ周期選択工程で実数のピッチ周期が複数の所定の範囲の内、どの範囲内にあるかに応じて音声合成に用いるピッチ周期のパラメータを選ぶことにより、与えられた音階に対する音声合成上のピッチ周波数と理論的に得られる音階周波数の誤差を従来に比べて小さく抑えることができる。
【００２４】
【発明の実施の形態】
次に添付図面を参照して本発明に係る音声合成装置およびその合成方法の実施例を詳細に説明する。
【００２５】
本発明の音声合成装置は、供給される入力データに応じて韻律パラメータを生成し、その入力データから音韻の連続した音韻系列に対応した音声データを生成する。そして、生成された音声データに基づいて音声合成装置は、音声の合成を行って出力する。このため、音声合成装置は、入力データを単に合成された音として発音することによって文章等を読み上げるだけでなく、音階に合わせた発音によって歌声のような音声合成も行える装置となっている。
【００２６】
本発明の音声合成装置について図１〜図９を参照しながら構成およびその構成した各部の動作について説明する。上述したような機能を持たせるため、音声合成装置10は、基本的に図１に示すようにインターフェース部11、合成パラメータ生成部12、および音声合成部13で構成されている。
【００２７】
以後、その各部について説明する。インターフェース部11は、MIDI規格でない歌詞、および楽譜に関するデータを装置内に入力する部分である。また、たとえば電子楽器同士や電子楽器とコンピュータを接続するインターフェースであるMIDI（Music Instrument Digital Interface）規格に合わせて設定してもよい。供給される入力データは、予めこの規格に合ったコードとしてコード変換されたデータとなっている。入力データの内容は、予めたとえば歌における歌詞、および楽譜に対応するデータ等に変換済みである。
【００２８】
合成パラメータ生成部12は、音声素片選択部12a 、音素長生成部12b 、およびピッチ生成部12c を備えている。音声素片選択部12a は、歌詞に応じて合成に使用すべき各種のパラメータが含まれた音声単位片を選択する。音声合成装置10のように入力データを予め設定している規則に合わせて音声を合成する場合、この音声単位片は、パラメータとして音素、音節、VCV （母音- 子音- 母音の連鎖）等がある。これらパラメータを選択することにより音声素片選択部12a は、音声データの一部を生成する。
【００２９】
音素長生成部12b は、各音階に指定された音符の種類、すなわち音の長さに応じて音節の長さを設定する音声データを生成する。この音節の長さは、音節の母音部の長さを伸縮させることで実現させている。
【００３０】
ピッチ生成部12c は、音の高さを表すピッチのパラメータを生成する。このピッチに関連した離散的な音の配列である音階はピッチ周期で表す。音階のピッチ周期とは、音声合成装置10が用いる標本化周波数に含まれる音階の周波数の個数で規定されている。理論的にピッチ周期P は、前述した式(2) により得られるが、サンプル数を示した変数x が実数のピッチ周期Prである。この実数のピッチ周期Prは標本化周波数Sf、式(1) により基準とする音階の周波数Fbase に対して得られる音階周波数F を用いて、Sf/Fで表される実数である。
【００３１】
ピッチ生成部12c は、音階に対応して得られる実数のピッチ周期Prに隣接するそれぞれの整数のピッチ周期PI, すなわちPM, PM+1の間の音程をたとえば３つの範囲に分ける音程分割部120 と、この音程分割部120 により分割された範囲の中で実数のピッチ周期Prを含む範囲を選ぶ範囲判定部121 と、この範囲判定部121 が選んだ範囲に対応するピッチ周期を音声合成のピッチ周期とし、このピッチ周期のパラメータを出力するピッチ周期出力部122 を備えている。
【００３２】
合成パラメータ生成部12は、音声素片選択部12a 、音素長生成部12b 、およびピッチ生成部12c で得られたパラメータを合成し、この合成によるデータ形式のた音声データを音声合成部13に供給する。音声合成部13は、この音声データに応じた合成音声を出力する。
【００３３】
この音声合成装置10の動作について図２のフローチャート等を用いて簡単に説明する。音声合成装置10は、電源投入して音声合成を行うための基本動作が可能な状態に設定される。この設定により動作を開始して図２のステップS10 に進む。
【００３４】
ステップS10 では、この音声合成装置10のインターフェース部11に前述したような、たとえばMIDI規格のコードに変換されたデータが供給されると、インターフェース部11を介して装置内にこのデータを取り込む。図示していないが、取り込んだデータは、一旦メモリに格納される。
【００３５】
次にステップS11 では、メモリから読み出した入力データ（たとえば歌詞等）に応じて合成すべき音声単位片を選択する。この選択によって音素、音節、VCV 等が規定される。本実施例では簡単に説明するため、後述する具体例のように歌詞にそのまま対応する音節を用いている。この音声単位片の規定後、ステップS12 に進む。
【００３６】
ステップS12 では、入力データに応じた音素長の生成を行う。音素長とは、音符の種類、たとえば全音符、二分音符、四分音符、八分音符や付点の付いた音符等に合わせた音の長さである。この音素長の生成によって音節の長さが設定される。音節の長さを設定した後、サブルーチンSUB1に移行する。
【００３７】
サブルーチンSUB1では、入力データに応じた音階のピッチ周期を決定する処理を行っている。この処理によって音の高さが設定される。この処理の詳細な説明は後段で行っている。サブルーチンSUB1の終了後、ステップS13 に進む。
【００３８】
ステップS13 では、これまでステップS10, S11, S12,およびサブルーチンSUB1で規定されたパラメータに従う音声の合成処理を行う。この音声合成には、従来からの線形予測法に基づく音声合成やピッチ同期波形重畳法等が用いられている。前者の音声合成方法では、たとえばパラメータに応じて雑音源側とピッチ周期に合ったパルスを出力するパルス音源側とを切り換えて得られる出力を合成フィルタに供給し合成フィルタが所望の音声となる出力信号に合成している。この出力信号をスピーカに供給してスピーカから規則により合成された音声として出力している。この合成後、音声合成装置10の動作を終了させる。
【００３９】
次に前述したサブルーチンSUB1の動作について図３を参照しながら説明する。サブルーチンSUB1は音階のピッチ周期を決定する処理を行うため、まず、サブステップSS10に進む。
【００４０】
サブステップSS10では、入力データから音階をいくつにするか読み取って音階周波数F を設定する。この設定は、前述したように基準とする音階の周波数Fbase に基づいて式(1) により与えられる。この設定後、サブステップSS11に進む。サブステップSS11では、標本化周波数Sfと音階周波数F を用い、Sf/Fで規定される実数のピッチ周期Pr（=x）を算出する。この算出後、サブステップSS12に進む。
【００４１】
サブステップSS12では、サブステップSS11で求めた実数のピッチ周期Prを含んで、この実数のピッチ周期Prに隣接するそれぞれの整数のピッチ周期PI、すなわちPM, PM+1の間の音程をたとえば３つの範囲に分ける（範囲分割工程）。この音程を分割する境界点をRA, RBに設定して、サブステップSS13に進む。この設定は、図１に示すように予め音階分割部120 で音階にかかわらず設定しておいても良い。この場合、図示しない制御部からの制御信号に応じて境界点の値RA, RBを範囲判定部121 に出力させている。
【００４２】
サブステップSS13では、実数のピッチ周期Prを整数値PMと小数点以下の数値Y に分けて、数値Y と境界値RAの大きさを図１の範囲判定部121 で比較する。すなわち、数値Y が境界値RAより小さいとき（Yes ）、サブステップSS14に移行する。また、数値Y が境界値RA以上の値のとき（No）、サブステップSS15に進む。ここで、サブステップSS14では、ピッチ周期PMあるいはピッチM が示す周波数を出力するようにパラメータを図１のピッチ周期出力部122 から出力する。この後、リターンに進む。
【００４３】
サブステップSS15では、さらに範囲判定部121 で数値Y の大きさを比較する。この範囲判定部121 では数値Y が境界値RA以上で、かつ境界値RBより小さいかを判定している。数値Y が境界値RA以上で、かつ境界値RBより小さいとき（Yes ）、サブステップSS16に進む。また、数値Y が境界値RB以上のとき（No）、サブステップSS17に進む。
【００４４】
サブステップSS16では、ピッチ周期PM, PM+1あるいはピッチM, M+1が示す周波数がそれぞれ交互に出力するように対応させたパラメータを図１のピッチ周期出力部122 から出力する。このような交互のピッチ出力は、たとえ同じ音程で発声（あるいは歌唱）しているつもりでもその音程が微妙に揺らいでいることに対応すると考えられるので、人間の音声のつやの増加に反映させるとともに、理論からもたらされる真のピッチ周波数と交互のピッチ出力によるピッチ周波数との差を従来に比べて小さくできる。この後、リターンに進む。また、サブステップSS17では、ピッチ周期PM+1あるいはピッチM+1 が示す周波数を出力するようにパラメータを図１のピッチ周期出力部122 から出力する。この後、リターンに進む。
【００４５】
このように一連のサブステップSS13〜SS17までの処理は、どのピッチ周期を選択するかを決定するピッチ周期選択工程に相当している。この一連の処理によって実数のピッチ周期Prそのままの値で判定する場合には、音程分割部120 で３つの範囲の内、境界値PM+RA より小さい範囲と境界値PM+1+RB より大きい範囲のいずれか一方に位置する場合、この一方の位置に最も隣接した整数のピッチ周期PM, あるいはPM+1のパラメータを出力させ、実数のピッチ周期Prが上述した範囲以外（PM+RA ≦Pr＜PM+1+RB ）にある場合には、音程の両端に位置する整数のピッチ周期PMとPM+1のパラメータを交互に出力する。サブルーチンSUB1はこのリターンを経て終了してメインルーチンに戻る。
【００４６】
より具体的にピッチ生成部12c の動作を説明する。音声合成装置10には、たとえば次のような入力データ
0004207237.tif 000004
等のような形式で提供される。この入力データをステップS10 で取り込んだ。ステップS10 以降、ステップS11 で音声素片を選択しステップS12 で音符の長さに対応したパラメータを生成した。この後、サブルーチンSUB1に移行してピッチ生成を行った。このピッチ生成において、音階周波数F は、標準化周波数=10kHzの場合、サブステップSS10で音階に対応する式(1) により理論的に設定される。音階がたとえば、「ソ」の音の場合、329.0Hz と規定される。
【００４７】
次にサブステップSS11では、音階が「ソ」の場合、/Fにより実数のピッチ周期Prは25.51 が算出された。このとき、整数のピッチ周期PIは25（=PM ）、小数点以下の数値Y は0.51であった。
【００４８】
次のサブステップSS12では音程の分割が設定されるが、音階分割部120 には予め境界値を設定しておく。この音階分割部120 から範囲判定部121 に供給される境界値は、それぞれ、RA=0.25, RB=0.75であった。
【００４９】
次のサブステップSS13では、数値Y と境界値RAの大小判定が行われる。この大小判定により数値Y が境界値RAより大きかったので、手順をサブステップSS15に進めた。サブステップSS15では、条件（RA≦Y ＜RB）を満足するので、サブステップSS16に進む。
【００５０】
サブステップSS16では、整数のピッチM=25, M+1=26に対応するパラメータを交互に出力する。このような出力により音声合成した際に人間は聴感上、整数のピッチ周期PM, PM+1により得られる周波数の中間の周波数となる。上述した条件によってこのサブステップSS16に至るのは、この「ソ」だけでなく、「ミ」および「ファ」でも要求される。前述したように、音階、音階周波数、音階周波数F に最も近いピッチ周波数のFnear 、サンプル数n 、音階周波数F と最も近い周波数Fnear との周波数の差ΔF を表すと、
0004207237.tif 000005
となる。この中で実数のピッチ周期Prの内、整数値で表される周波数が、前述した条件の基で音階周波数F に最も近いピッチ周波数のFnear であり、サンプル数n が整数値のピッチ数であることは明らかである。
【００５１】
ところで、図１のピッチ周期出力部122 には、予め音程の分割条件に応じて音階と整数のピッチ周期の関係を図４に示す対応テーブルに記憶させ、要求に応じて出力させるようにしてもよい。この対応テーブルを設けることによって、逐一与えるピッチ周期を計算しないで、与えられる音階に応じて直ちに対応するパラメータを出力させるようにしてもよい。これにより、ピッチ生成部12c の構成を簡略化させることができる。
【００５２】
また、ピッチ同期波形重畳法を適用した場合でも、上述した関係により図５(a) に示す音素片M, M+1を交互に出力させると音声合成部13で重ね合わせた結果、図５(b) の合成音声の波形を得ることができる。
【００５３】
この実施例の構成により、ピッチ生成において標本化周波数で表現する音階を条件に応じて相前後するピッチ周期を交互に出力させる簡単な方法で、音階周波数に対する誤差を従来の誤差に比べて半減させることができる。これにより、標本化周波数を変更することなく、２倍の標本化周波数を用いた場合と等価な音階精度が得られる。
【００５４】
なお、ピッチ生成部12c は、複数の所定の範囲の内の残る範囲に対応して整数のピッチ周期PM, PM+1のパラメータを１回ずつ交互に出力させる説明をしたが、本発明ではこの回数に限定されるものでなく、複数回ずつ交互に出力させてもよい。
【００５５】
次に本発明に係る音声合成装置の他の実施例について図６〜図９を参照しながら説明する。音声合成装置10は、基本的に前述した実施例と同じである。前述した実施例では標本化周波数で規定される音階を一部分だけを見かけ上２倍の細かさで量子化しているが、音階の量子化誤差の結果、生じる音程の量子化誤差を従来の半分以下にはできない。この音程の量子化誤差を半分以下にするため、本実施例のピッチ生成部12c は、図６に示すように、出現頻度算出部123 、および反比例選択部124 を備えている。
【００５６】
出現頻度算出部123 は、実数のピッチ周期Prと音程の整数のピッチ周期PM, PM+1との差をそれぞれ実数のピッチ周期Prとの距離p, qとし、この各距離に応じた出現割合を算出する（原理として図８を参照）。
【００５７】
また、反比例選択部124 は、出現割合算出部123 の算出結果と距離p, qとが反比例の関係になるよう選択している。反比例選択部124 は、選択に応じて整数のピッチ周期PM, PM+1が出力される。このとき、出力されるピッチ周期が真のピッチ周期に近い方の整数のピッチ周期に重きをおいた調整が行われるので、聴感上、真の音階に近づくようになる。
【００５８】
この動作手順は基本的に前述したメインルーチンと同じであるが、ピッチ生成を行うサブルーチンSUB1の代わりにサブルーチンSUB2を適用している。サブルーチンSUB2の手順は図７に示している。この実施例ではピッチ生成に際してサブステップSS20に移行する。
【００５９】
サブステップSS20では、音階周波数を設定する。この設定は、前述の実施例と全く同じ手順で行い、サブステップSS21に進む。このサブステップSS21では、実数のピッチ周期Prを算出する。この算出も前述した手順に同じで、本来当てられるべき真のピッチであり、標本化周波数Sf／音階周波数F で表される。また、サブステップSS22では、算出した実数のピッチ周期Prは整数部の値PMと小数部の数値Y で表されることから、図８に示すように実数のピッチ周期Prは、整数のピッチ周期PMとPM+1、すなわち標本点（あるいはサンプリング点）との間に位置する。このとき、距離p, qは、p=PM+1-Pr, q=Pr-PMという関係にある（図８を参照）。この算出の後、サブステップSS22に進む。
【００６０】
サブステップSS22では、１つの音階が発音させられる時間（すなわち、音符の長さ）にわたって実数のピッチ周期Prを挟んで隣接する整数のピッチ周期PMとPM+1がそれぞれランダムに出現させるため、上述した各整数のピッチ周期の出現頻度Z を算出する（出現割合算出工程）。整数のピッチ周期の出現頻度Z には、 0〜1 の範囲の値をランダムに出現させる一様乱数発生関数RANDU( )を用いている。一様乱数発生関数RANDU( )は、一般に、プログラミング言語の標準関数として備えられている。この出現頻度Z は、式(3)
【００６１】
【数３】
Z=RANDU( )-Y                                          ・・・(3)
により与えられる。また、一様乱数発生関数RANDU( )の発生する数値範囲と小数点以下の数値Y の関係が 0≦Y<＜1 の関係にあることから、図９に示すように距離p は、p=Y,距離q=1-Y であることは容易に理解することができる。
【００６２】
次にサブステップSS23では、出現頻度Z がゼロ以上の値かどうか判定している。出現頻度Z がゼロ以上の値のとき（Yes ）、サブステップSS24に進む。これは出現頻度Z が数値Y 以上の距離p にあることを示している。また、出現頻度Z がゼロより小さい値のとき（No）、サブステップSS25に進む。この場合、出現頻度Z は数値Y より小さい距離q にあることを示している。
【００６３】
サブステップSS24では、整数のピッチ周期PMあるいはピッチM のパラメータを出力するように付与し、サブステップSS25では整数のピッチ周期PM+1あるいはピッチM+1 のパラメータを出力するように付与する。サブステップSS23, SS24, SS25（の反比例選択工程）によって１つの音階の発音時間での整数のピッチ周期PM,PM+1 あるいは整数のピッチM+1,およびM のそれぞれの出現割合は、距離p, qと反比例した値が付与されることとなる。すなわち、（ピッチM の付与頻度）：（ピッチM+1 の付与頻度）=p:qとなるように制御する。この一連の処理は、図６の反比例選択部124 で行っている。この処理により実数のピッチ周期Prに近い整数のピッチ周期の方を距離の近さに応じて大きな頻度が付与されるように出現頻度が混合され、結果として、この混合された出現頻度（割合）の調整により聴感上の音階を真の音階に近づけている。
【００６４】
サブステップSS24, SS25のいずれの処理も終了した後、サブステップSS26に移行する。サブステップSS26では、音符区間が終わったかを判定している。まだ音符区間にある場合（No）、サブステップSS22に戻る。ここで、再び出現頻度Z を算出し以後、前述したどちらのピッチを出力するかという処理を継続する。また、音符区間が終了した場合（Yes ）、リターンに移行する。リターンを経てこのサブルーチンSUB2を終了する。
【００６５】
より具体的に例を挙げて説明する。入力データで指定された音階に対する音階周波数をサブステップSS20で決定する。ここで、供給された音階のデータは、「ミ」で式(1) より音階周波数F=329.63Hzが算出された。次にサブステップSS21で音声合成装置10が用いる標本化周波数に対応する実数のピッチ周期Prを算出する。標本化周波数は、前述した実施例と同じ10kHz とする。この設定から、実数のピッチ周期Prは、30.34 （=10000/329.63 ）で与えられる。このとき、実数のピッチ周期Prは、整数のピッチ周期PM＝30と小数点以下の数値Y=0.34に分けられる。したがって距離q=0.34, 距離p=1-Y=0.76となる。
【００６６】
次にサブステップSS22では、出現頻度Z を算出してサブステップSS23に進む。この算出により、正になる頻度と負になる頻度の割合はq:p になる。サブステップSS23では、出現頻度Z の大きさに応じてサブステップSS24, SS25に手順を振り分ける。サブステップSS24では、出現頻度Z がゼロを含む正のときピッチM のパラメータを出力するように付与し、サブステップSS25では出現頻度Z が負のときピッチM+1 のパラメータを出力するように付与する。サブステップSS26の判定により音符の長さ分この処理を繰り返すと、音符の長さの間にピッチM とピッチM+1 の付与が距離に応じた混合割合に合わせて行われる。サブルーチンSUB2を終了した後、ステップS13 で音声合成処理を行うと真の音階に近い音声合成が行われる。
【００６７】
なお、本実施例では、一様乱数発生関数を用いたがこの方法に限定されるものでなく、ある音程に含まれる実数のピッチ周期Prと整数のピッチ周期（すなわち、サンプリング点）との距離をたとえば10レベル程度にすると10倍に量子化したと同じ効果が得られるので、1:9, 2:8, 6:4 等と簡易な比の関係で付与割合を配分するようにしてもよい。この設定により、従来の音階精度に比べて細かく設定した量子化のレベルの程度と同じくらい高めることができるようになる。この結果、出力される合成された音声（歌声）の音程を良くすることができる。
【００６８】
この実施例のように構成することにより、音声合成に低い標本化周波数を用いても音階の誤差を小さく抑えることができるので合成音声の音程を正確に保つことができる。また、使用する標本化周波数が低いので、合成に要する音声素片の容量も少なく済ませることができる。
【００６９】
このように構成することにより、ピッチ生成部12c で実数のピッチ周期Prを挟む整数のピッチ周期PM, PM+1間の音程を複数の所定の範囲に分割し、この実数のピッチ周期Prがその範囲のどこにあるかに応じて音声合成に用いるピッチ周期PM, PM+1を選んで出力することにより、与えられた音階に対する音声合成上のピッチ周波数と理論的に得られる音階周波数の誤差を従来に比べて小さく抑えることができる。これにより、使用する標本化周波数が低いので音声素片の容量を抑えることができ、かつ標本化周波数が低くても音階の精度の向上を図ることができる。
【００７０】
本発明の音声合成方法は、整数のピッチ周期PM, PM+1で表される音程内を範囲分割工程で複数の所定の範囲に分割し、ピッチ周期選択工程で実数のピッチ周期Prが複数の所定の範囲の内、どの範囲内にあるかに応じて音声合成に用いるピッチ周期PM, PM+1を選んで、与えられた音階に対する音声合成上のピッチ周波数と理論的に得られる音階周波数の誤差を従来に比べて小さく抑えることにより、使用する標本化周波数が低いので音声素片の容量を抑えることができ、かつ標本化周波数が低くても音階の精度の向上を図ることができる。
【００７１】
なお、前述したいずれの実施例でも実数のピッチ周期を挟む整数のピッチ周期には実数のピッチ周期に最も近い整数値（すなわちピッチM, M+1）に限定したが、これらの整数値に限定されるものでなく、サンプリングするピッチをたとえばM-2, M-1, M+2 等の値のように広く取ってもよい。このとき、用いる整数値の区間内の平均ピッチが真のピッチになるようにこれら前後のピッチに応じた配分に付与するしてもよい。
【００７２】
【発明の効果】
このように本発明の音声合成装置によれば、ピッチ周期選択手段が実数のピッチ周期を挟む整数のピッチ周期の音程を複数の所定の範囲に分割し、この実数のピッチ周期がその範囲のどこにあるかに応じて音声合成のピッチ周期を選んで出力して、与えられた音階に対する音声合成上のピッチ周波数と理論的に得られる音階周波数の誤差を従来に比べて小さく抑えることにより、使用する標本化周波数が低いので音声素片の容量を抑えることができ、かつ標本化周波数が低くても音階の精度の向上を図ることができる。
【００７３】
また、本発明の音声合成方法によれば、整数のピッチ周期で表される音程内を範囲分割工程で複数の所定の範囲に分割し、ピッチ周期選択工程で実数のピッチ周期が複数の所定の範囲の内、どの範囲内にあるかに応じて音声合成に用いるピッチ周期を選んで、与えられた音階に対する音声合成上のピッチ周波数と理論的に得られる音階周波数の誤差を従来に比べて小さく抑えることにより、使用する標本化周波数が低いので音声素片の容量を抑えることができ、かつ標本化周波数が低くても音階の精度の向上を図ることができる。
【図面の簡単な説明】
【図１】本発明に係る音声合成装置の概略的な構成を示す一実施例のブロック図である。
【図２】図１に示した音声合成装置の基本的な動作を説明するメインフローチャートである。
【図３】図２に示したサブルーチンSUB1の動作手順を説明するフローチャートである。
【図４】図３に示した手順で音階を表す際に音階に対して出力されるピッチ周期の関係を表す図である。
【図５】図１の合成パラメータ生成部から出力される音素片を音声合成部で重ね合わせて合成音声を合成する関係を模式的に示した図である。
【図６】本発明に係る音声合成装置の概略的な構成を示す他の実施例のブロック図である。
【図７】図６の構成に対応した動作手順を示すサブルーチンSUB2のフローチャートである。
【図８】図７のサブルーチンSUB2で用いられる各変数とピッチ周期の関係を説明する模式図である。
【図９】図６の反比例選択部の動作をRANDU 関数と出現頻度の関係により説明する模式図である。
【符号の説明】
10  音声合成装置
11  インターフェース部
12  合成パラメータ生成部
13  音声合成部
12a 音声素片選択部
12b 音素長生成部
12c ピッチ生成部
120 音程分割部
121 範囲判定部
122 ピッチ周期出力部
【図１】
0004207237.tif 000006
【図２】
0004207237.tif 000007
【図３】
0004207237.tif 000008
【図４】
0004207237.tif 000009
【図５】
0004207237.tif 000010
【図６】
0004207237.tif 000011
【図７】
0004207237.tif 000012
【図８】
0004207237.tif 000013
【図９】
0004207237.tif 000014