(57)【要約】 【課題】  合成音声の発話長をより自然に伸ばすことができる音声合成装置等を提供する。【解決手段】  各音韻データの伸張区間を設定する。伸張区間は、母音、子音といった単位で設定するのではなく、例えば音韻のピッチが安定している区間で設定する。フレーム情報選択部２５０は、発話長を伸ばすべき指示が与えられると、この指示内容に基づき、伸張区間に存在するフレーム情報の繰り返し再生を制御する。【選択図】      図１
2005242231.tif 000002
【特許請求の範囲】
【請求項１】
入力されるテキスト情報から、合成音声の音韻を指定する音韻指定情報及び該合成音声の発話長を指定する発話長指定情報を取得する取得手段と、
伸張区間が設定されている所定の発話長を有する音韻毎の音韻データを記憶する記憶手段と、
前記記憶手段から、前記音韻指定情報に示される音韻に対応する音韻データを抽出する抽出手段と、
前記発話長指定情報に示される発話長が、抽出された前記音韻データの発話長よりも長いとき、前記発話長情報に示される発話長と前記音韻データの発話長との差分に応じて、前記伸張区間における前記音韻データの再生を制御する再生制御手段と
を具備することを特徴とする音声合成装置。
【請求項２】
前記音韻データは、前記所定の発話長を有する音韻を所定の周期で切り出すことにより得られる複数のフレーム情報によって構成され、
前記再生制御手段は、前記発話長指定情報に示される発話長が、抽出された前記音韻データの発話長よりも長いとき、前記発話長情報に示される発話長と前記音韻データの発話長との差分に応じて、前記音韻データを構成する複数のフレーム情報のうち前記伸張区間に存在するフレーム情報の再生を制御することを特徴とする請求項１に記載の音声合成装置。
【請求項３】
前記再生制御手段は、前記伸張区間に複数のフレーム情報が存在する場合、当該区間に存在する各フレーム情報の再生回数をそれぞれ決定し、決定した再生回数に従って前記各フレーム情報を再生することにより、前記伸張区間に存在する複数のフレーム情報の再生を制御することを特徴とする請求項２に記載の音声合成装置。
【請求項４】
入力されるテキスト情報から、合成音声の音韻を指定する音韻指定情報及び該合成音声の発話長を指定する発話長指定情報を取得する取得過程と、
伸張区間が設定されている所定の発話長を有する音韻毎の音韻データを記憶する記憶手段から、前記音韻指定情報に示される音韻に対応する音韻データを抽出する抽出過程と、
前記発話長指定情報に示される発話長が、抽出された前記音韻データの発話長よりも長いとき、前記発話長情報に示される発話長と前記音韻データの発話長との差分に応じて、前記伸張区間における前記音韻データの再生を制御する再生制御過程と
を具備することを特徴とする音声合成方法。
【請求項５】
伸張区間が設定されている所定の発話長を有する音韻毎の音韻データを記憶する記憶手段を備えたコンピュータを、
入力されるテキスト情報から、合成音声の音韻を指定する音韻指定情報及び該合成音声の発話長を指定する発話長指定情報を取得する取得手段と、
前記記憶手段から、前記音韻指定情報に示される音韻に対応する音韻データを抽出する抽出手段と、
前記発話長指定情報に示される発話長が、抽出された前記音韻データの発話長よりも長いとき、前記発話長情報に示される発話長と前記音韻データの発話長との差分に応じて、前記伸張区間における前記音韻データの再生を制御する再生制御手段として機能させるための音声合成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力されるテキスト情報から合成音声を生成する音声合成技術に関する。
【背景技術】
【０００２】
入力されるテキスト情報（「ｎｉｈａｏ」等）を単語解析・構文解析等し、このテキスト情報の内容を合成音声として出力する音声合成装置が広く利用されている。この種の音声合成装置には、発話速度（発話長）を変更可能とする機能が実装されている。例えば、下記特許文献１には、母音・子音といった単位で伸縮率を変化させることで、発話速度を変更可能とする音声合成装置が開示されている（特許文献１参照）。
【０００３】
【特許文献１】特開平６−０６７６８５号公報（第３−第４頁）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、合成音声として出力する言語の種類（例えば、中国語等）によっては、母音・子音といった単位で伸縮率を変えて発話速度を変更しても、そのような単位で伸縮率を変えることがその言語体系等において一般的でないために、合成音声が不自然に聞こえてしまう等の問題が生じていた。
【０００５】
本発明は、以上説明した事情を鑑みてなされたものであり、合成音声の発話長をより自然に伸ばすことができる音声合成装置、音声合成方法、及び音声合成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した問題を解決するため、本発明に係る音声合成装置は、入力されるテキスト情報から、合成音声の音韻を指定する音韻指定情報及び該合成音声の発話長を指定する発話長指定情報を取得する取得手段と、伸張区間が設定されている所定の発話長を有する音韻毎の音韻データを記憶する記憶手段と、前記記憶手段から、前記音韻指定情報に示される音韻に対応する音韻データを抽出する抽出手段と、前記発話長指定情報に示される発話長が、抽出された前記音韻データの発話長よりも長いとき、前記発話長情報に示される発話長と前記音韻データの発話長との差分に応じて、前記伸張区間における前記音韻データの再生を制御する再生制御手段とを具備することを特徴とする。
【０００７】
かかる構成によれば、発話長指定情報に示される発話長が音韻データの発話長よりも長いとき、伸張区間の音韻データを繰り返し再生する等の制御を行う。ここで、音韻のピッチが安定している区間を伸張区間として設定等すれば、母音、子音といった単位で伸張区間を設定する場合と比較して、伸ばし方がより自然な合成音声を得ることが可能となる。
【０００８】
ここで、前記音韻データは、前記所定の発話長を有する音韻を所定の周期で切り出すことにより得られる複数のフレーム情報によって構成され、前記再生制御手段は、前記発話長指定情報に示される発話長が、抽出された前記音韻データの発話長よりも長いとき、前記発話長情報に示される発話長と前記音韻データの発話長との差分に応じて、前記音韻データを構成する複数のフレーム情報のうち前記伸張区間に存在するフレーム情報の再生を制御する態様が好ましい。
【０００９】
さらに、前記再生制御手段は、前記伸張区間に複数のフレーム情報が存在する場合、当該区間に存在する各フレーム情報の再生回数をそれぞれ決定し、決定した再生回数に従って前記各フレーム情報を再生することにより、前記伸張区間に存在する複数のフレーム情報の再生を制御する態様がより好ましい。
【発明の効果】
【００１０】
以上説明したように、本発明によれば、合成音声の発話長をより自然に伸ばすことが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明に係る実施の形態について図面を参照しながら説明する。
Ａ．本実施形態
図１は、本実施形態に係る音声合成装置１００の機能構成を示す図である。なお、本実施形態では、携帯電話やＰＨＳ（Personal Handyphone System：登録商標）、ＰＤＡ（Personal Digital Assistance）などハードウェア資源に大きな制約が課される携帯端末に実装される場合を想定するが、これに限らず様々な電子機器に適用可能である。
【００１２】
入力部２１０は、図示せぬ操作部等を介して入力されるテキスト情報をテキスト解析部２２０に供給する。図２は、テキスト情報を例示した図である。
図２に示すテキスト情報は、発音すべき合成音声の音韻を指定する音韻文字列「ｎａ」と該音韻の発話長を指定する発話長記号「＿ ＿」から構成されている。図２に示す発話長記号「＿」は、所定長さ（例えば数ｍｓ等）だけ発話長を伸ばすことを意味し、連続する発話長記号の数が多ければ多いほど、対応する音韻（発話長記号の前の音韻文字列等）の発話長は長くなる。
【００１３】
なお、本実施形態では、音韻文字列をローマ字で表記しているが、これに限らず漢字、ひらがな、カタカナ等の各種文字、記号で表記しても良い。また、発話長も発話長記号「＿」によって表記するだけでなく、発話長の倍率をあらわす数字（例えば、「２」）等を用いて表記しても良い。このように、テキスト情報をどのように表記するかは、音声合成装置１００の設計等に応じて適宜設定・変更可能である。
【００１４】
テキスト解析部２２０は、入力部２１０から供給されるテキスト情報を解析し、解析結果を音韻データ取得部２３０、フレーム情報選択部２５０にそれぞれ供給する。詳述すると、テキスト解析部２２０は、入力部２１０からテキスト情報を受け取ると、このテキスト情報を音韻文字列と発話長記号とに分解する。そして、テキスト解析部２２０は、音韻文字列から音節単位の音韻（図２では「ｎａ」）を抽出するとともに、各音韻文字列に続く発話長記号（図２では「ｎａ」に続く「＿ ＿」）から対応する音韻の発話長を求める。
【００１５】
ここで、発話長については例えば下記式（１）等を用いて求めても良いが、どのような式等を用いて発話長を求めるかは任意である。
Ｔｄ＝Ｔｓ＊（ｎ＋１）    ・・・（１）
Ｔｄ；  テキスト情報に示される音韻の発話長
Ｔｓ；  発話長記号が付与されていない音韻の基準発話長
ｎ  ；  発話長記号の数    
【００１６】
テキスト解析部２２０は、テキスト情報から音節単位の音韻を抽出すると共に、該音韻の発話長を求めると、各音韻を指定する音韻情報（音韻指定情報）を生成して音韻データ取得部２３０に供給する一方、求めた発話長を指定する発話長情報（発話長指定情報）を生成してフレーム情報選択部２５０に供給する。
【００１７】
音韻データ取得部（抽出手段）２３０は、テキスト解析部２２０から供給される音韻情報を検索キーとして音韻データベース２４０を検索し、音韻情報に示される音韻に対応する音韻データを取得する。図３は、音韻データベース２４０の登録内容を例示した図である。図３に示すように、音韻データベース（記憶手段）２４０には、特定話者による音節単位の各音韻（「ａ」、「ｎａ」、・・・「ｎｉａｎｇ」等）をあらわす一連の音韻データ１〜Ｍや、一連の音韻データの数（以下、登録音韻データ数）等が登録されている。
【００１８】
図４は、ある音韻（例えば、「ｎｉａｎｇ」）をあらわす音韻データの構成を例示した図である。
図４に示すように、音韻データは、各音韻データを識別するための音韻識別番号、各音韻データに含まれるフレーム情報の数をあらわすフレーム数情報、各音韻データに含まれる複数のフレーム情報、及び後述する伸張区間を設定するための伸張区間設定情報等を備えている。なお、フレーム情報とは、例えば図５のＡに示すように、所定の発話長（図５のＡでは３９０（ｍｓ））を有する音韻を所定の周期（例えば１０（ｍｓ））で切り出すことによって得られる情報をいう。
【００１９】
図５のＡは、音節単位の音韻データ「ｎｉａｎｇ」をそのまま再生（通常再生）したときの合成波形を例示した図であり、図５のＢは、音韻データ「ｎｉａｎｇ」の子音以降（詳細には「ｉａｎｇ」以降）を均一に伸ばしたときの合成波形、図５のＣは、音韻データ「ｎｉａｎｇ」を伸張区間で伸ばしたときの合成波形を例示した図である。なお、図５のＡは、基準発話長Ｔｓ＝３９０（ｍｓ）で音韻データ「ｎｉａｎｇ」を再生（発話）したときの合成波形を例示しており、図５のＢ及び図５のＣは、いずれも発話長Ｔｄ＝１５６０（ｍｓ）で音韻データ「ｎｉａｎｇ」を再生したときの合成波形を例示している。また、図５のＡ〜Ｃでは、横軸をそれぞれ２０ｍｓ／ブロック、５０ｍｓ／ブロック、５０ｍｓ／ブロックであらわしている。
【００２０】
図４に示す第１〜第ｎフレーム情報は、それぞれ図５のＡに示す第１〜第ｎフレームの音声の特徴をあらわす情報であり、各フレームをフォルマント分析することによって得られるフォルマント情報（フォルマント周波数とフォルマントレベルの対等によって構成）等によって構成されている（図示略）。なお、フレーム情報については、上記合成波形を生成できれば良く、フォルマント情報等を含む構成に限定されないのはもちろんである。
【００２１】
一方、図４に示す伸張区間設定情報は、図５のＡに示す伸張区間を設定するための情報であって、伸張区間の始まりのフレーム情報を特定する開始フレーム情報番号と伸張区間の終わりのフレーム情報を特定する終了フレーム情報番号とにより構成されている。図５に示すように、本実施形態では、母音、子音といった単位で伸張区間を設定するのではなく（発明が解決しようとする課題の項参照）、例えば音韻のピッチが安定している区間を伸張区間として設定している。
かかる設定を行うことにより、母音、子音といった単位で合成音声の発話長を伸ばす場合と比較して（図５のＢ参照）、より自然に伸ばすことが可能となる（図５のＣ参照）。なお、発話長を伸ばすための具体的な処理については後述する。
【００２２】
音韻データ取得部２３０は、音韻情報に対応する音節単位の音韻データ（「ｎｉａｎｇ」、「ａ」等）を音韻データベース２４０から取得すると、これら各音韻データをフレーム情報選択部２５０に供給する。
【００２３】
フレーム情報選択部（再生制御手段）２５０は、音韻データ取得部２３０から音韻データを受け取るとともに、テキスト解析部２２０から発話長情報を受け取ると、これらの情報に基づいて、発話長情報に示される発話長Ｔｄが音韻データの基準発話長Ｔｓよりも長いか否かを判断する。図５を例に説明すると、例えば供給される音韻データの基準発話長Ｔｓが３９０（ｍｓ）であるのに対し、発話長情報に示される発話長Ｔｄが１５６０（ｍｓ）であれば、フレーム情報選択部２５０は、発話長情報に示される発話長Ｔｄが該音韻データの基準発話長Ｔｓよりも長いと判断する。
【００２４】
かかる判断を行うと、フレーム情報選択部２５０は、発話長Ｔｄを実現するために必要なフレーム情報数ｎ’（以下、総フレーム情報数）を求める。なお、総フレーム情報数ｎ’は、例えば下記式（２）を用いて求めることができるが、どのような方法を用いて求めるかは適宜変更可能である。
ｎ’＝ｎ＊（Ｔｄ／Ｔｓ）    ・・・（２）
ｎ’；  総フレーム情報数
ｎ  ；  音韻データに含まれるフレーム情報数
【００２５】
フレーム情報選択部（再生制御手段）２５０は、総フレーム情報数ｎ’を求めると、音韻データに含まれる各フレーム情報を所定ルールに従って選択することで（詳細は後述）、発話長Ｔｄを実現するために足りないフレーム情報数を補う。
【００２６】
図６のＡは、ある音韻データに含まれる８個（ｎ＝８）のフレーム情報を例示した図であり、図６のＢは、図６のＡに示す音韻データを用いて発話長情報等に示される１２個分のフレーム情報（ｎ’＝１２）を再生する場合の動作を説明するための図である。なお、図６のＢにおいて、縦軸は再生されるフレーム情報のフレーム情報番号を示し、横軸はフレーム情報の再生時間を示している。
図６のＡに示すように、音韻データに含まれる第１〜第８フレーム情報のうち、第４フレーム情報が伸張区間の開始フレーム情報として設定され、第６フレーム情報が伸張区間の終了フレーム情報として設定されている。なお、いずれのフレーム情報を伸張区間の開始フレーム情報（若しくは終了フレーム情報）とするかは、伸張区間設定情報によって適宜設定・変更可能である。
【００２７】
これら音韻データに含まれる各フレーム情報は、図６のＢに示すように再生される。すなわち、伸張区間外に存在するフレーム情報（第１〜第３フレーム情報、第７、第８フレーム情報）については、１回ずつ再生（いいかえれば、０回繰り返し再生）される。これに対し、伸張区間内に存在するフレーム情報（第４〜第６フレーム情報）については、２回若しくは３回再生（いいかえれば、１回若しくは２回繰り返し再生）される。詳述すると、伸張区間に存在する第４〜第６フレーム情報のうち、第４フレーム情報及び第５フレーム情報については、それぞれ１回ずつ繰り返し再生される一方、第６フレーム情報については２回繰り返し再生される。このように、本実施形態では、発話長指定情報に示される発話長が音韻データの基準発話長よりも長いとき、発話長指定情報に示される発話長と前記基準発話長との差分に応じて伸張区間内に存在するフレーム情報を繰り返し再生（いいかえれば、伸張区間における音韻データの再生を制御）する。かかる音韻データの再生制御は、以下に示すフレーム情報選択部（再生制御手段）２５０、音声信号生成部（再生制御手段）２７０によって実現される。
【００２８】
＜フレーム情報の選択動作＞
図７及び図８は、フレーム情報選択部２５０によるフレーム情報の選択動作を説明するための図である。なお、以下の説明では、図６に示す再生が行われる場合を想定する。
フレーム情報選択部２５０は、まず、選択フレーム情報番号FrmTimerを「１」にセットするとともに、選択ループ回数LoopTimerを「０」にセットする。ここで、選択フレーム情報番号FrmTimerは、選択されるフレーム情報のフレーム情報番号をあらわし、選択ループ回数LoopTimerは、伸張区間において選択フレーム情報番号FrmTimerのフレーム情報がこれまでに繰り返し選択された回数をあらわす（詳細は後述）。また、フレーム情報選択部２５０は、後述する選択回数変更フラグLoopNumIncFragを“False”にセットし、さらに、以下に説明する選択回数LoopNum、選択増加フレーム情報番号LoopNumIncFrmを算出する（ステップＳ１）。
【００２９】
＜選択回数LoopNumの算出＞
フレーム情報選択部２５０は、まず下記式（ａ１）〜（ａ３）を用いてフレーム情報の選択回数（再生回数）LoopNumを求める。
（伸張区間フレーム情報数）＝（終了フレーム情報番号）−（開始フレーム情報番号）＋１    ・・・（ａ１）
（伸張区間で再生するフレーム情報数）＝（総フレーム情報数）−（伸張区間外で再生するフレーム情報数）    ・・・（ａ２）
選択回数LoopNum＝（伸張区間で再生するフレーム情報数）／（伸張区間フレーム情報数）    ・・・（ａ３）
（ただし、式（ａ３）では少数以下を切り捨てる）
【００３０】
具体的に説明すると、フレーム情報選択部２５０は、まず、式（ａ１）を用いて伸張区間フレーム情報数を算出する。ここでは、終了フレーム情報番号が「６」であり、開始フレーム情報番号が「４」であることから（図６参照）、伸張区間フレーム情報数は「３」となる。次に、フレーム情報選択部２５０は、式（ａ２）を用いて伸張区間で再生するフレーム情報数を算出する。ここでは、総フレーム情報数が「１２」であり、伸張区間外で再生するフレーム情報数が「５」であることから（図６等参照）、伸張区間で再生するフレーム情報数は「７」となる。さらに、フレーム情報選択部２５０は、式（ａ１）、（ａ２）によって得られた結果を式（ａ３）に代入することによって選択回数LoopNumを求める。ここでは、伸張区間フレーム情報数が「３」、伸張区間で再生するフレーム情報数が「７」であることから、少数以下を切り捨てることによって得られる選択回数LoopNumは「２」となる。
【００３１】
＜選択増加フレーム情報番号LoopNumIncFrm＞
さらに、フレーム情報選択部２５０は、下記式（ｂ１）を用いて選択増加フレーム情報番号（具体的には、選択回数LoopNumを増やすフレーム情報のフレーム情報番号）LoopNumIncFrmを求める。ただし、上記式（ａ３）を用いて選択回数LoopNumを求める際に割り切れた場合には、下記式（ｂ１）を用いて選択増加フレーム情報番号LoopNumIncFrmを求めることなく、選択増加フレーム情報番号LoopNumIncFrmを「０」とする。
選択増加フレーム情報番号LoopNumIncFrm＝（終了フレーム番号＋１）−｛（伸張区間で再生するフレーム情報数）−選択回数LoopNum＊（伸張区間フレーム情報数）｝    ・・・（ｂ１）
【００３２】
ここでは、終了フレーム番号が「６」、伸張区間で再生するフレーム情報数が「７」、選択回数LoopNumが「２」、伸張区間フレーム情報数が「３」であることから、選択増加フレーム情報番号LoopNumIncFrmは「６」となる。
フレーム情報選択部２５０は、このように選択回数LoopNum、選択増加フレーム情報番号LoopNumIncFrmを求めると、求めた結果をメモリ（図示略）等に格納し、ステップＳ２に進む。
【００３３】
フレーム情報選択部２５０は、ステップＳ２に進むと、選択フレーム情報番号FrmTimerのフレーム情報が伸張区間内に存在するか否かを判断する。詳述すると、フレーム情報選択部２５０は、選択フレーム情報番号FrmTimerと音韻データに含まれる開始フレーム情報番号（若しくは終了フレーム情報番号）等とを比較することにより、上記フレーム情報が伸張区間内に存在するか否かを判断する。
【００３４】
フレーム情報選択部２５０は、開始フレーム情報番号及び終了フレーム情報番号がそれぞれ「４」、「６」であるのに対し（図６参照）、例えば選択フレーム情報番号FrmTimerが「１」である場合、フレーム情報選択部２５０は、選択フレーム情報番号FrmTimer「１」のフレーム情報は伸張区間内に存在しないと判断する（ステップＳ２；ＮＯ）。フレーム情報選択部２５０は、かかる判断結果に基づきステップＳ３に進むと、選択フレーム情報番号FrmTimer「１」のフレーム情報を選択し、選択フレーム情報番号FrmTimerを「１」だけインクリメントする（ステップＳ４）。そして、フレーム情報選択部２５０は、インクリメントした後の選択フレーム情報番号FrmTimerが音韻データに含まれるフレーム情報数（以下、音韻フレーム情報数）FrmNumよりも大きいか否か（すなわち終了すべきか否か）を判断する（ステップＳ４→ステップＳ５）。
【００３５】
フレーム情報選択部２５０は、インクリメントした後の選択フレーム情報番号FrmTimerが「２」であるのに対し、音韻フレーム情報数FrmNumが「８」であることから（図６参照）、未だ終了すべきでないと判断すると（ステップＳ５；ＮＯ）、ステップＳ２に戻り、ステップＳ２→ステップＳ３→ステップＳ４→ステップＳ５といった一連の処理を繰り返し実行する。
【００３６】
その後、選択フレーム情報番号FrmTimerが「４」となり、選択フレーム情報番号FrmTimer「４」のフレーム情報が伸張区間に存在すると判断すると（ステップＳ２；ＹＥＳ）、フレーム情報選択部２５０は、ステップＳ６に進み、当該フレーム情報の選択回数LoopNumを増やすか否かの判断を行う。具体的には、フレーム情報選択部２５０は、選択回数変更フラグLoopNumIncFragが“False”であって、かつ、選択フレーム情報番号FrmTimerとステップＳ１において求めた選択増加フレーム情報番号LoopNumIncFrmとが一致しているか否かを判断する（ステップＳ６）。なお、選択回数変更フラグLoopNumIncFragは、フレーム情報選択部２５０によって選択回数LoopNumがインクリメントされたときに“False”から“True”に変更されるフラグである（ステップＳ１１参照）。
【００３７】
ここでは、選択フレーム情報番号FrmTimerが「４」、選択増加フレーム情報番号LoopNumIncFrmが「６」であるため、フレーム情報選択部２５０は、これらは一致しないと判断する（ステップＳ６；ＮＯ）。かかる判断を行うと、フレーム情報選択部２５０は、ステップＳ７に進み、選択フレーム情報番号FrmTimerのフレーム情報を選択した後、選択ループ回数LoopTimerを「１」だけインクリメントする（ステップＳ８）。
【００３８】
フレーム情報選択部２５０は、ステップＳ９に進むと、選択回数LoopNumが選択ループ回数LoopTimerと一致しているか否かを判断する。ここでは、ステップＳ１において求めた選択回数LoopNumが「２」であるのに対し、選択ループ回数LoopTimerは「１」であることから（ステップＳ９；ＮＯ）、フレーム情報選択部２５０はステップＳ２に戻る。そして、フレーム情報選択部２５０は、ステップＳ２→ステップＳ６→ステップＳ７→ステップＳ８→ステップＳ９と進み、再び選択回数LoopNumが選択ループ回数LoopTimerと一致しているか否かを判断する。ここでは、選択回数LoopNum及び選択ループ回数LoopTimerが共に「２」であることから（ステップＳ９；ＹＥＳ）、フレーム情報選択部２５０は、ステップＳ１０に進み、選択ループ回数LoopTimerを初期化（すなわち選択ループ回数LoopTimerを「０」にセット）する。
【００３９】
フレーム情報選択部２５０は、選択ループ回数LoopTimerを初期化すると、選択フレーム情報番号FrmTimerを「１」だけインクリメントし、インクリメントした後の選択フレーム情報番号FrmTimerが音韻フレーム情報数FrmNumよりも大きいか否か（すなわち終了すべきか否か）を判断する（ステップＳ４→ステップＳ５）。
【００４０】
フレーム情報選択部２５０は、インクリメントした後の選択フレーム情報番号FrmTimerが「５」であるのに対し、音韻フレーム情報数FrmNumが「８」であることから（図９参照）、未だ終了すべきでないと判断すると（ステップＳ５；ＮＯ）、ステップＳ２に戻り、上述した一連の処理を繰り返し実行する。
【００４１】
その後、フレーム情報選択部２５０は、選択回数変更フラグLoopNumIncFragが“False”であって、かつ、選択フレーム情報番号FrmTimerが選択増加フレーム情報番号LoopNumIncFrm「６」と一致したと判断すると（ステップＳ６；ＹＥＳ）、ステップＳ１１に進む。フレーム情報選択部２５０は、ステップＳ１１において選択回数LoopNumを「１」だけインクリメントするとともに、選択回数変更フラグLoopNumIncFragを“False”から“True”に切り換え（ステップＳ１１）、ステップＳ７に戻る。このインクリメントした選択回数LoopNumは、それ以降の伸張区間のフレーム処理にも適用される。つまり、上記式（ａ３）を用いて求めた選択回数（すなわち、割り切れない場合の選択回数）LoopNumをインクリメントした場合、設定した伸張区間の最後のフレームから最初のフレームに向けて順番に（言い換えれば逆順に遡って）インクリメントした選択回数LoopNumを適用することになる。具体例を挙げて説明すると、上記例では、終了フレーム番号と選択増加フレーム情報番号LoopNumIncFrmが共に「６」であったため、伸張区間の最後のフレーム（フレーム番号；「６」）についてのみ、インクリメントした選択回数LoopNumを適用したが、例えば、終了フレーム番号が「６」、伸張区間で再生するフレーム情報数が「８」、伸張区間フレーム情報数が「３」である場合には、上記式（ａ３）より選択回数「２」が求まるとともに、上記式（ｂ１）より選択増加フレーム情報番号LoopNumIncFrm「５」が求まる。この場合は、終了フレーム番号が「６」であるのに対し、選択増加フレーム情報番号LoopNumIncFrmが「５」であることから、伸張区間の最後のフレーム（フレーム番号；「６」）とその一つ前のフレーム、すなわち最後のフレームから１つ遡ったフレーム（フレーム番号；「５」）について、インクリメントした選択回数LoopNumを適用することになる。
【００４２】
ステップＳ７に戻ると、フレーム情報選択部２５０は、上述した一連の処理を繰り返し実行する。そして、フレーム情報選択部２５０は、最後のフレーム情報（選択フレーム情報番号FrmTimer「８」のフレーム情報）を選択し、インクリメントした選択フレーム情報番号FrmTimer「９」が音韻フレーム情報数FrmNum「８」よりも大きくなったことを検知すると（ステップＳ５；ＹＥＳ）、以上説明したフレーム選択動作を終了する。
【００４３】
フレーム情報選択部２５０は、このように各音韻データに含まれるフレーム情報を順次選択すると、これらを音声信号生成部２７０に順次供給してゆく。音声信号生成部２７０は、フレーム情報選択部２５０から供給されるフレーム情報に基づき、合成音声信号を生成する。この結果、図９に示すように、基準発話長Ｔｓを有する合成音声に対して伸張区間がほぼ均一に伸ばされた発話長Ｔｄ（＞Ｔｓ）の合成音声が、スピーカ（図示略）等を介して外部に出力される。
【００４４】
以上説明したように、本実施形態に係る音声合成装置によれば、音韻のピッチが安定している区間等を伸張区間として設定し、この伸張区間に存在するフレーム情報を繰り返し選択・再生することにより、基準発話長よりも発話長が長い合成音声を生成する。これにより、母音、子音といった単位で伸張区間を設定する場合と比較して（課題を解決するための手段の項参照）、伸ばし方がより自然な合成音声を得ることが可能となる。かかる方法は、例えば中国語のように、１つの音韻に複数の母音がある複合母音や、母音に加えて鼻音があるような言語において特に効果がある。
【００４５】
Ｂ．変形例
＜変形例１＞
以上説明した本実施形態では、式（ａ３）によって求まる選択回数LoopNumが割り切れない場合には、インクリメントした選択回数LoopNumを、設定した伸張区間の最後のフレームから最初のフレームに向けて順番に適用したが、これに限定する趣旨ではない。要は、伸張区間がほぼ均等に伸張されれば良く、例えば伸張区間の最初のフレームから順に適用対象となるフレームを選択したり、所定間隔（例えば３フレームに１フレームの割合等）で適用対象となるフレームを選択するようにしても良い。
【００４６】
＜変形例２＞
また、本実施形態では、ピッチの安定している区間を伸張区間として設定したが、フォルマント周波数やフォルマントレベルが安定している区間を伸張区間として設定等しても良い。かかる場合には、低次フォルマントが安定している区間を伸張区間として設定等すれば良い。なお、各音韻に設定する伸張区間は１つに限らず、複数であっても良いのはもちろんである。
【００４７】
＜変形例３＞
また、本実施形態では、音韻データベース２４０に一連の音韻データ１〜Ｍ、登録音韻データ数が登録されている場合について説明したが、その他に該音韻のピッチを指定するＣ（ド）といったピッチ情報や（図３の括弧書き参照）、各フレーム毎のフォルマント情報の数（フォルマント数情報；図３の括弧書き参照）を登録しても良い。
【００４８】
＜変形例４＞
また、以上説明した音声合成装置１００に係る諸機能は、ＣＰＵ（或いはＤＳＰ）がＲＯＭ等のメモリに格納されたプログラムを実行することによって実現されるため、かかるプログラムについてＣＤ−ＲＯＭ等の記録媒体に記録して頒布したり、インターネット等の通信ネットワークを介して頒布しても良い。
【図面の簡単な説明】
【００４９】
【図１】本実施形態に係る音声合成装置の機能構成を示すブロック図である。
【図２】同実施形態に係るテキスト情報を例示した図である。
【図３】同実施形態に係る音韻データベースの登録内容を例示した図である。
【図４】同実施形態に係る音韻データの構成を例示した図である。
【図５】同実施形態に係る音韻データの合成波形を例示した図である。
【図６】同実施形態に係る音韻データに含まれるフレーム情報の再生動作を説明するための図である。
【図７】同実施形態に係るフレーム情報の選択動作を説明するための図である。
【図８】同実施形態に係るフレーム情報の選択動作を説明するための図である。
【図９】同実施形態に係る設定された伸張区間と合成音声波形の関係を示す図である。
【符号の説明】
【００５０】
１００・・・音声合成装置、２１０・・・入力部、２２０・・・テキスト解析部、２３０・・・音韻データ取得部、２４０・・・音韻データベース、２５０・・・フレーム情報選択部、２７０・・・音声信号生成部。
【図１】
2005242231.tif 000003
【図２】
2005242231.tif 000004
【図３】
2005242231.tif 000005
【図４】
2005242231.tif 000006
【図５】
2005242231.tif 000007
【図６】
2005242231.tif 000008
【図７】
2005242231.tif 000009
【図８】
2005242231.tif 000010
【図９】
2005242231.tif 000011