(57)【要約】【課題】  高音域での発振が容易に得られる音声合成プログラム、音声合成装置および音声合成方法を提供することである。【解決手段】  二次元声帯振動モデルでは、声帯が二次元に振動することを仮定する。声帯２は、重り２１および弾性体２２からなる。重り２１は、弾性体２２を介して声門３に取り付けられている。弾性体２２は、ｘ軸方向に振動するバネ２３およびダンパ２４と、ｙ軸方向に振動するバネ２５およびダンパ２６とにより構成される。シミュレーションプログラムは、二次元声帯振動モデルに基づいて所定のパラメータおよび声道４の反射関数ｒ（ｔ）を用いて声門体積流量率ｕを計算する。音圧信号生成プログラムは、声門体積流量率ｕおよび声道４の伝達関数Ｔ（ｔ）を用いて音圧信号ｐout （ｔ）を計算する。【選択図】        図１
2005091727.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実行可能な音声合成プログラムであって、
呼気に垂直な方向および平行な方向に振動する声帯を仮定した二次元声帯振動モデルに基づいて声門における体積流量率を算出する処理と、
前記算出された体積流量率に基づいて声道出口における音圧を示す音圧信号を算出する処理とを、
前記コンピュータに実行させることを特徴とする音声合成プログラム。
【請求項２】
前記体積流量率を算出する処理は、声帯、声門および声道に関するパラメータならびに声道の反射関数を用いて前記体積流量率を算出する処理を含み、
前記音圧信号を算出する処理は、前記算出された体積流量率および声道の伝達関数を用いて前記音圧信号を算出する処理を含むことを特徴とする請求項１記載の音声合成プログラム。
【請求項３】
音声を合成する音声合成装置であって、
呼気に垂直な方向および平行な方向に振動する声帯を仮定した二次元声帯振動モデルに基づいて声門における体積流量率を算出する第１の算出手段と、
前記第１の算出手段により算出された体積流量率に基づいて声道出口における音圧を示す音圧信号を算出する第２の算出手段とを備えたことを特徴とする音声合成装置。
【請求項４】
前記第１の算出手段は、声帯、声門および声道に関するパラメータならびに声道の反射関数を用いて前記体積流量率を算出し、
前記第２の算出手段は、前記第１の算出手段により算出された体積流量率および声道の伝達関数を用いて前記音圧信号を算出することを特徴とする請求項３記載の音声合成装置。
【請求項５】
音声を合成する音声合成方法であって、
呼気に垂直な方向および平行な方向に振動する声帯を仮定した二次元声帯振動モデルに基づいて声門における体積流量率を算出するステップと、
前記算出された体積流量率に基づいて声道出口における音圧を示す音圧信号を算出するステップとを備えたことを特徴とする音声合成方法。
【請求項６】
前記体積流量率を算出するステップは、声帯、声門および声道に関するパラメータならびに声道の反射関数を用いて前記体積流量率を算出するステップを含み、
前記音圧信号を算出するステップは、前記算出された体積流量率および声道の伝達関数を用いて前記音圧信号を算出するステップを含むことを特徴とする請求項５記載の音声合成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声を合成する音声合成プログラム、音声合成装置および音声合成方法に関する。
【背景技術】
【０００２】
従来より声帯を模擬することにより音声を合成する技術が開発されている。声帯振動モデルとしてｔｗｏ−ｍａｓｓ（２質量）モデルが提案されている（非特許文献１参照）。
【０００３】
このような音声合成技術では、低音域から高音域までの音声を合成することが望まれる。
【非特許文献１】K. Ishizaka and J. L. Flanagan, “Synthesis of voiced sounds from a two-mass model of the vocal cords,” Bell Syst. Tech. J. 51(6), 1233-1268, 1972.
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ソプラノ歌唱等の高音域における発声では、声帯の振動周波数が上昇し、声道の最低次共鳴周波数に十分近づく場合または声道の最低次共鳴周波数を超える場合がある。
【０００５】
従来の声帯振動モデルでは、声帯は呼気に垂直な方向に振動することが仮定されている。そのような声帯振動モデルによれば、高音域では発振が困難であった。
【０００６】
本発明の目的は、高音域での発振が容易に得られる音声合成プログラム、音声合成装置および音声合成方法を提供することである。
【課題を解決するための手段】
【０００７】
第１の発明に係る音声合成プログラムは、コンピュータにより実行可能な音声合成プログラムであって、呼気に垂直な方向および平行な方向に振動する声帯を仮定した二次元声帯振動モデルに基づいて声門における体積流量率を算出する処理と、算出された体積流量率に基づいて声道出口における音圧を示す音圧信号を算出する処理とをコンピュータに実行させるものである。
【０００８】
本発明に係る音声合成プログラムにおいては、呼気に垂直な方向および平行な方向に振動する声帯を仮定した二次元声帯振動モデルに基づいて声門における体積流量率が算出される。そして、算出された体積流量率に基づいて声道出口における音圧を示す音圧信号が算出される。このように、声帯が二次元的に振動することを仮定することにより、高音域での発振が容易に得られる。
【０００９】
体積流量率を算出する処理は、声帯、声門および声道に関するパラメータならびに声道の反射関数を用いて体積流量率を算出する処理を含み、音圧信号を算出する処理は、算出された体積流量率および声道の伝達関数を用いて音圧信号を算出する処理を含んでもよい。
【００１０】
この場合、声帯、声門および声道に関するパラメータならびに声道の反射関数を用いて体積流量率が算出され、算出された体積流量率および声道の伝達関数を用いて音圧信号が算出される。
【００１１】
第２の発明に係る音声合成装置は、音声を合成する音声合成装置であって、呼気に垂直な方向および平行な方向に振動する声帯を仮定した二次元声帯振動モデルに基づいて声門における体積流量率を算出する第１の算出手段と、第１の算出手段により算出された体積流量率に基づいて声道出口における音圧を示す音圧信号を算出する第２の算出手段とを備えたものである。
【００１２】
本発明に係る音声合成装置においては、呼気に垂直な方向および平行な方向に振動する声帯を仮定した二次元声帯振動モデルに基づいて声門における体積流量率が算出される。そして、算出された体積流量率に基づいて声道出口における音圧を示す音圧信号が算出される。このように、声帯が二次元的に振動することを仮定することにより、高音域での発振が容易に得られる。
【００１３】
第１の算出手段は、声帯、声門および声道に関するパラメータならびに声道の反射関数を用いて体積流量率を算出し、第２の算出手段は、第１の算出手段により算出された体積流量率および声道の伝達関数を用いて音圧信号を算出してもよい。
【００１４】
この場合、声帯、声門および声道に関するパラメータならびに声道の反射関数を用いて体積流量率が算出され、算出された体積流量率および声道の伝達関数を用いて音圧信号が算出される。
【００１５】
第３の発明に係る音声合成方法は、音声を合成する音声合成方法であって、呼気に垂直な方向および平行な方向に振動する声帯を仮定した二次元声帯振動モデルに基づいて声門における体積流量率を算出するステップと、算出された体積流量率に基づいて声道出口における音圧を示す音圧信号を算出するステップとを備えたものである。
【００１６】
本発明に係る音声合成方法においては、呼気に垂直な方向および平行な方向に振動する声帯を仮定した二次元声帯振動モデルに基づいて声門における体積流量率が算出される。そして、算出された体積流量率に基づいて声道出口における音圧を示す音圧信号が算出される。このように、声帯が二次元的に振動することを仮定することにより、高音域での発振が容易に得られる。
【００１７】
体積流量率を算出するステップは、声帯、声門および声道に関するパラメータならびに声道の反射関数を用いて体積流量率を算出するステップを含み、音圧信号を算出するステップは、算出された体積流量率および声道の伝達関数を用いて音圧信号を算出するステップを含んでもよい。
【００１８】
この場合、声帯、声門および声道に関するパラメータならびに声道の反射関数を用いて体積流量率が算出され、算出された体積流量率および声道の伝達関数を用いて音圧信号が算出される。
【発明の効果】
【００１９】
本発明によれば、声帯が二次元的に振動することを仮定することにより、高音域での発振が容易に得られる。
【発明を実施するための最良の形態】
【００２０】
図１は本発明の一実施の形態に係る音声合成プログラム、音声合成方法および音声合成装置に用いられる二次元声帯振動モデルの模式的断面図である。図２は図１の二次元声帯振動モデルの模式的斜視図である。図３は二次元声帯振動モデルにおける声門での気流を示す模式図である。
【００２１】
二次元声帯振動モデルでは、声帯が二次元に振動することを仮定する。図１および図２に示すように、声帯２は、気管１と声道４との間の声門３に位置する。ここで、気管１から声門３を通して声道４へ流れる呼気に平行な方向をｘ軸とし、呼気に垂直な方向をｙ軸とする。
【００２２】
図１に示すように、声帯２は、重り２１および弾性体２２からなる。重り２１は、弾性体２２を介して声門３に取り付けられている。弾性体２２は、ｙ軸方向に振動するバネ２３およびダンパ２４と、ｘ軸方向に振動するバネ２５およびダンパ２６とにより構成される。重り２１の質量はＭであり、バネ定数はｋである。
【００２３】
声帯２のｘ座標をｘとし、声帯２のｙ座標をｙとする。すなわち声帯２の位置座標を（ｘ，ｙ）とする。また、声門３の開口断面積（以下、声門断面積と呼ぶ）をＡg とし、声道４の入口の断面積（以下、声道断面積と呼ぶ）をＡ0 とする。
【００２４】
図３に示すように、声門３の上流部での音圧（以下、声門上流部音圧と呼ぶ）をｐ0 とし、声門３での音圧（以下、声門音圧と呼ぶ）をｐg とし、声道４の入口での音圧（以下、声道入口音圧と呼ぶ）をｐとする。
【００２５】
また、声門３で流体力学的に生成される体積流量率（以下、声門体積流量率と呼ぶ）をｕとし、声門３で機械的に生成される体積流量率（以下、機械的体積流量率と呼ぶ）をｕm とする。
【００２６】
後述するように、声門体積流量率ｕが求まれば、声道４の伝達関数を用いて声道４の出口での音圧信号ｐout を生成することができる。
【００２７】
図４は本発明の一実施の形態に係る音声合成プログラムの構成を示すブロック図である。
【００２８】
図４に示すように、音声合成プログラムは、シミュレーションプログラムＳＩおよび音圧信号生成プログラムＳＰにより構成される。
【００２９】
シミュレーションプログラムＳＩは、グラフィックユーザインタフェース（名称：“ｓｉｍｕＣＴＲ  ＧＵＩ”）ＧＵ、メインプログラム（名称：“ｓｉｍｕｌａｔｉｏｎ．ｃｃ”）ＭＰ、第１のクラス定義（名称：“ｓｏｌｕｔｉｏｎ．｛ｈ，ｃｃ｝”）Ｃ１、第２のクラス定義（名称：“ｖｏｉｃｅＳｙｎｔｈ．｛ｈ，ｃｃ｝”）Ｃ２、第３のクラス定義（名称：“ｖｏｃａｌＦｏｌｄ．｛ｈ，ｃｃ｝”）Ｃ３、第４のクラス定義（名称：“ｖｏｃａｌＴｒａｃｔ．｛ｈ，ｃｃ｝”）Ｃ４、および第５のクラス定義（名称：“ｆｌｕｉｄＭｏｄｅｌ．｛ｈ，ｃｃ｝”）Ｃ５を含む。音圧信号生成プログラムＳＰの名称は、“ｍｋＯｕｔＳｏｕｎｄ．ｍ”である。
【００３０】
以下、音声合成プログラムの各構成要素について詳細に説明する。
【００３１】
（１）“ｓｉｍｕＣＴＲ  ＧＵＩ”
“ｓｉｍｕＣＴＲ  ＧＵＩ”は、シミュレーションプログラム制御用スクリプトである。“ｓｉｍｕＣＴＲ  ＧＵＩ”は、ユーザがパラメータの設定、後述する反射関数ｒ（ｔ）の読み込み、シミュレーションの開始、停止、一時停止等の操作を行うためのグラフィックユーザインターフェースを提供する。
【００３２】
パラメータとして設定を行うのは、声帯２の平衡位置座標（静止位置座標）（ｘ0 ，ｙ0 ）、声帯２の質量Ｍおよびバネ定数ｋである。
【００３３】
反射関数ｒ（ｔ）は、声道４の共鳴特性を表わし、声道４の形状が与えられれば一意に決まる時間ｔの関数である。反射関数ｒ（ｔ）は、予め声道４の形状から公知の方法により計算される。
【００３４】
（２）“ｓｉｍｕｌａｔｉｏｎ．ｃｃ”
“ｓｉｍｕｌａｔｉｏｎ．ｃｃ”は、シミュレーションプログラムにおけるメインプログラムである。声道４の反射関数ｒ（ｔ）を引数として受け取り、シミュレータオブジェクトを生成し、そのシミュレータオブジェクトにシミュレーションを実行させる。
【００３５】
（３）“ｓｏｌｕｔｉｏｎ．｛ｈ，ｃｃ｝”
“ｓｏｌｕｔｉｏｎ．｛ｈ，ｃｃ｝”は、系の状態を記述するクラスの定義である。系の状態は以下の未知変数で表わされる。
【００３６】
ｐ：声道入口音圧
ｐg ：声門音圧
ｕ：声門体積流量率
ｕm ：機械的体積流量率
ｘ：声帯２のｘ座標
ｙ：声帯２のｙ座標
系の状態は時間ｔの変数である。現在の状態は、過去の状態に依存する。シミュレーションでは、開始時刻から終了時刻まで一定時間幅で時間を更新し、現在時刻における変数の値を過去の時刻での値から計算する。
【００３７】
（４）“ｖｏｉｃｅＳｙｎｔｈ．｛ｈ，ｃｃ｝”
“ｖｏｉｃｅＳｙｎｔｈ．｛ｈ，ｃｃ｝”は、シミュレータを記述するクラスの定義である。
【００３８】
図５はシミュレータの構成を示す図である。シミュレータは、声帯オブジェクトＶＦ、声道オブジェクトＶＴおよび流体力学オブジェクトＦＤから構成されている。
【００３９】
また、“ｖｏｉｃｅＳｙｎｔｈ．｛ｈ，ｃｃ｝”は、メンバ関数“ｓｉｍｕｌａｔｉｏｎ（）”、メンバ関数“ｇｅｔＮｅｘｔ（）”等を有する。
【００４０】
メンバ関数“ｓｉｍｕｌａｔｉｏｎ（）”では以下の計算を行う。
【００４１】
（ａ）現在時刻から過去に遡って系の状態を保持する配列“ｓｏｌ［］”を生成する。ここで、配列“ｓｏｌ［］”の各要素には、未知変数である声道入口音圧ｐ、声門音圧ｐg 、声門体積流量率ｕ、機械的体積流量率ｕm 、声帯２のｘ座標ｘおよび声帯２のｙ座標ｙの各時刻における値が保存される。
【００４２】
（ｂ）時間を開始時刻から終了時刻まで一定間隔で進行させながら、以下の処理を行う。
【００４３】
・パラメータ（平衡位置座標（ｘ0 ，ｙ0 ）、バネ定数ｋ、質量Ｍおよび反射関数ｒ（ｔ））を監視し、変化があれば、それを声帯オブジェクトＶＦおよび声道オブジェクトＶＴに伝える。
・メンバ関数“ｇｅｔＮｅｘｔ（）”により配列“ｓｏｌ［］”から次時刻の状態“ｓｏｌＮｅｗ”を計算する。
・配列“ｓｏｌ［］”を更新する。すなわち配列“ｓｏｌ［］”の要素を右へ１つシフトするとともに、配列“ｓｏｌ［０］”に状態“ｓｏｌＮｅｗ”を代入する。
・現在までの状態をグラフ表示する。
・状態“ｓｏｌＮｅｗ”をファイルに保存する。
【００４４】
メンバ関数“ｇｅｔＮｅｘｔ（）”では以下の計算を行う。
【００４５】
（ステップＳ１）
声帯オブジェクトＶＦに声道入口音圧ｐおよび声門音圧ｐg を渡し、次時刻のｘ座標ｘおよびｙ座標ｙを計算させる。
【００４６】
（ステップＳ２）
声門断面積Ａg を計算する。
【００４７】
（ステップＳ３）
機械的体積流量率ｕm を計算する。。
【００４８】
（ステップＳ４）
声道オブジェクトＶＴに総体積流量率（声門体積流量率ｕと機械的体積流量率ｕm との和）および声門音圧ｐを渡し、声道入口の圧力反射波ｐinc を計算させる。
【００４９】
（ステップＳ５）
流体力学オブジェクトＦＤに声門断面積Ａg および圧力反射波ｐinc を渡し、声門体積流量率ｕおよび声道入口音圧ｐを計算させる。
【００５０】
（ステップＳ６）
流体力学オブジェクトＦＤに声門音圧ｐg を計算させる。
【００５１】
（５）“ｖｏｃａｌＦｏｌｄ．｛ｈ，ｃｃ｝”
“ｖｏｃａｌＦｏｌｄ．｛ｈ，ｃｃ｝”は、声帯オブジェクトＶＦを記述するクラスの定義である。“ｖｏｃａｌＦｏｌｄ．｛ｈ，ｃｃ｝”は、声帯２の平衡位置座標（ｘ0 ，ｙ0 ）、バネ定数ｋおよび質量Ｍをオブジェクトとして持つ。
【００５２】
図２に示したように、声帯２においては、質量Ｍの重り２１が弾性体２２を介して声門３に取り付けられている。重り２１は、ｘ軸方向およびｙ軸方向に回復力を受けながら二次元的に振動するものと仮定する。声帯２には次の力が働く。
【００５３】
１．声門３を流れる気流がもたらすベルヌーイ力ｆB 
２．声門３の上下間の差圧（圧力差）がもたらす力ｆdp
３．左右両声帯２が接触したときの接触力ｆc 
４．声帯２の平衡位置座標（ｘ0 ，ｙ0 ）からの距離に比例した回復力ｆR 
なお、回復力ｆR は、声帯２に取り付けられたバネ２３，２５により発生する。
【００５４】
運動方程式は、ｒｖ＝（ｘ，ｙ）とおけば、次式のようになる。
【００５５】
【数１】
2005091727.tif 000003
【００５６】
ここで、ｒｖは、声帯２の位置ベクトルである。γは係数であり、γｄｒｖ／ｄｔは声帯２の振動速度に比例した抵抗力を表わす。
【００５７】
“ｖｏｃａｌＦｏｌｄ．｛ｈ，ｃｃ｝”は、ベルヌーイ力ｆB 、声帯２の位置座標（ｘ，ｙ）から声帯２に印加される回復力ｆR 、声門３の上下間の差圧（圧力差）がもたらす力ｆdp、接触力ｆc 、および抵抗力γｄｒｖ／ｄｔを計算するメンバ関数を持つ。
【００５８】
さらに、“ｖｏｃａｌＦｏｌｄ．｛ｈ，ｃｃ｝”は、これらのメンバ関数を用いて、次時刻の声帯２の位置座標を計算するメンバ関数“ｕｐｄａｔｅ（）”を持つ。
【００５９】
メンバ関数“ｕｐｄａｔｅ（）”では以下の計算を行う。
【００６０】
・声帯２の振動速度を計算し、抵抗力γｄｒｖ／ｄｔを計算する。
・左右両声帯２が接触したときの接触力ｆc を計算する。
・声門３を流れる気流がもたらすベルヌーイ力ｆB を計算する。
・声門３の上下間の差圧（圧力差）がもたらす力ｆdpを計算する。
・声帯２に取り付けられたバネ２３，２５から発生する回復力ｆR を計算する。
・上記の力を外力として、上式（１）の運動方程式をオイラー法を用いて解き、次時刻の声帯２の位置座標（ｘ，ｙ）を計算する。
【００６１】
（６）“ｖｏｃａｌＴｒａｃｔ．｛ｈ，ｃｃ｝”
“ｖｏｃａｌＴｒａｃｔ．｛ｈ，ｃｃ｝”は、声道オブジェクトＶＴを記述するクラスの定義である。“ｖｏｃａｌＴｒａｃｔ．｛ｈ，ｃｃ｝”は、反射関数ｒ（ｔ）をオブジェクトとして持つ。また、“ｖｏｃａｌＴｒａｃｔ．｛ｈ，ｃｃ｝”は、声道４の入口に発生する圧力反射波ｐinc を計算するメンバ関数“ｇｅｔＰｉｎｃ（）”を持つ。
【００６２】
図６は声道４における圧力進行波、圧力反射波および反射関数の関係を示す図である。
【００６３】
声道入口音圧ｐ（ｔ）および声門体積流量率ｕ（ｔ）を用いると、声道４に入射する圧力進行波ｐ+（ｔ）は次式のように表される。
【００６４】
ｐ+（ｔ）＝ｐ（ｔ）＋Ｚ0 ｕ（ｔ）
上式において、Ｚ0 ＝ρｃ／Ａ0 であり、ρは空気の密度、ｃは音速である。ここで、ｐ（ｔ）およびｕは、それぞれ声道入口音圧ｐおよび声門体積流量率ｕが時間ｔの関数であることを意味する。ｐ+（ｔ）は圧力進行波の時系列を示す。
【００６５】
現在時刻の圧力反射波ｐinc （ｔ）は、過去の圧力進行波ｐ+（ｔ）を用いて次式により計算される。
【００６６】
【数２】
2005091727.tif 000004
【００６７】
ここで、ｒ（ｓ）は声道４の反射関数である。
【００６８】
メンバ関数“ｇｅｔＰｉｎｃ（）”では以下の計算を行う。
【００６９】
・過去の声門体積流量率ｕおよび声道入口音圧ｐから圧力進行波ｐ+（ｔ）を計算する。
・上式（２）を用いて、圧力進行波ｐ+（ｔ）と反射関数ｒ（ｓ）との畳み込み演算を行い、現在時刻の圧力反射波ｐinc を計算する。
【００７０】
（７）“ｆｌｕｉｄＭｏｄｅｌ．｛ｈ，ｃｃ｝”
“ｆｌｕｉｄＭｏｄｅｌ．｛ｈ，ｃｃ｝”は、流体力学オブジェクトＦＤを記述するクラスの定義である。この“ｆｌｕｉｄＭｏｄｅｌ．｛ｈ，ｃｃ｝”は、声道４の入口に発生する圧力反射波ｐinc および声門断面積Ａg から声道入口音圧ｐおよび声門体積流量率ｕを計算するメンバ関数“ｅｑ１ｐｌｕｓ２（）”を持つ。また、声門体積流量率ｕおよび声門断面積Ａg から声門音圧ｐg を計算するメンバ関数“ｅｑ２（）”を持つ。
【００７１】
声門音圧ｐg 、声門上流部音圧ｐ0、声道入口音圧ｐおよび声門体積流量率ｕは、流体力学的考察に基づいて次式のように関係づけられる。
【００７２】
【数３】
2005091727.tif 000005
【００７３】
【数４】
2005091727.tif 000006
【００７４】
上式において、ρは空気の密度、Ａ0 は声道断面積、Ａg は声門断面積である。また、圧力反射波ｐinc 、声道入口音圧ｐおよび声門体積流量率ｕは次式の関係を有する。
【００７５】
【数５】
2005091727.tif 000007
【００７６】
上式において、Ｚ0 ＝ρｃ／Ａ0 であり、ρは空気の密度、ｃは音速である。上式（３），（４）を足し合わせて声門音圧ｐgを消去し、さらに上式（５）を用いて声道入口音圧ｐを消去すると、声門体積流量率ｕに関する２次方程式が得られる。
【００７７】
【数６】
2005091727.tif 000008
【００７８】
メンバ関数“ｅｑ１ｐｌｕｓ２（）”では以下の計算を行う。
【００７９】
・上式（６）の２次方程式を解き、声門体積流量率ｕを求める。
・上式（５）から声道入口音圧ｐを求める。
【００８０】
メンバ関数“ｅｑ２（）”では以下の計算を行う。
【００８１】
・上式（３）から声門音圧ｐg を求める。
【００８２】
図３に示したように、声門３の上流から声門３までは気流が狭められる。声門３から下流では気流がジェットとなって噴出する。上式（３）は、声門３の上流から声門３までの領域において成立する流体力学的関係式である。上式（４）は、声門３から下流の領域において成立する流体力学的関係式である。
【００８３】
以上のように、シミュレーションプログラムＳＩにより声門体積流量率ｕが求められる。
【００８４】
シミュレーションプログラムＳＩにより求められた声門体積流量率ｕはファイルに保存される。
【００８５】
次に、音圧信号生成プログラムＳＰについて説明する。
【００８６】
（８）“ｍｋＯｕｔＳｏｕｎｄ．ｍ”
“ｍｋＯｕｔＳｏｕｎｄ．ｍ”は、シミュレーションプログラムＳＩによるシミュレーション終了後、ファイルに保存されている声門体積流量率ｕと声道４の伝達関数Ｔ（ｔ）との畳み込み演算を行い、声道４の出口の音圧信号ｐout を生成する。
【００８７】
なお、声道４の伝達関数Ｔ（ｔ）は、反射関数ｒ（ｓ）と同様に、声道４の形状が与えられれば一意に決まる時間ｔの関数であり、予め公知の方法により計算される。
【００８８】
“ｍｋＯｕｔＳｏｕｎｄ．ｍ”では、声門体積流量率ｕおよび声道４の伝達関数Ｔ（ｔ）を用いて声道４の出口での音圧信号（圧力波）Ｐout （ｔ）を次式により計算する。
【００８９】
【数７】
2005091727.tif 000009
【００９０】
上式（７）により計算された音圧信号Ｐout （ｔ）はファイルに保存される。
【００９１】
以上のように、本実施の形態に係る音声合成プログラムによれば、二次元声帯振動モデルに基づいて音圧信号Ｐout （ｔ）が得られる。二次元声帯振動モデルでは、声帯２が呼気に垂直な方向および平行な方向に二次元的に振動することを仮定することにより、高音域でも発振が容易に得られる。
【００９２】
（９）音声合成装置
図７は本実施の形態の音声合成プログラムを実施するための音声合成装置の構成を示すブロック図である。
【００９３】
音声合成装置５０は、ＣＰＵ（中央演算処理装置）５０１、ＲＯＭ（リードオンリメモリ）５０２、ＲＡＭ（ランダムアクセスメモリ）５０３、入力装置５０４、表示装置５０５、外部記憶装置５０６、記録媒体駆動装置５０７およびスピーカ５０８を含む。
【００９４】
入力装置５０４は、キーボード、マウス、スキャナ、デジタルカメラ等からなり、各種指令、データおよび画像を入力するために用いられる。ＲＯＭ５０２にはシステムプログラムが記憶される。記録媒体駆動装置５０７は、ＣＤ−ＲＯＭドライブ、フロッピィディスクドライブ等からなり、ＣＤ−ＲＯＭ、フロッピィディスク等の記録媒体５０９に対してデータの読み書きを行う。記録媒体５０９には、音声合成プログラムが記録されている。外部記憶装置５０６は、ハードディスク装置等からなり、記録媒体駆動装置５０７を介して記録媒体５０９から読み込まれた音声合成プログラムおよび各種データを記憶する。ＣＰＵ５０１は、外部記憶装置５０６に記憶された音声合成プログラムをＲＡＭ５０３上で実行する。
【００９５】
表示装置５０５は、液晶表示パネル、ＣＲＴ（陰極線管）等からなり、各種画像等を表示する。スピーカ５０８は、音声合成プログラムにより生成された音圧信号ｐout に基づいて音声を出力する。
【００９６】
なお、音声合成プログラムを記録する記録媒体５０９として、ＲＯＭ等の半導体メモリ、ハードディスク等の種々の記録媒体を用いることができる。また、音声合成プログラムを通信回線等の通信媒体を介して外部記憶装置５０６にダウンロードし、ＲＡＭ５０３上で実行してもよい。
【００９７】
図７の音声合成装置５０によれば、二次元声帯振動モデルに基づいてＣＰＵ５０１により音圧信号Ｐout が生成されるので、高音域でも発振が容易に得られる。
【００９８】
本実施の形態では、ＣＰＵ５０１第１の算出手段および第２の算出手段に相当する。
【実施例】
【００９９】
実施例１，２では、本発明に係る音声合成プログラムを用いて二次元声帯振動モデルに基づくシミュレーションを実行した。このシミュレーションでは、声道の長さを変化させることにより声道の最低次共鳴周波数を変化させ、声帯振動の基本周波数を測定した。
【０１００】
また、比較例では、ｔｗｏ−ｍａｓｓモデルに基づくシミュレーションを実行した。このシミュレーションにおいても、実施例と同様に、声道の長さを変化させることにより声道の最低次共鳴周波数を変化させ、声帯振動の基本周波数を測定した。
【０１０１】
図８は実施例１，２および比較例のシミュレーション結果を示す図である。図８の横軸は声道の長さであり、縦軸は基本周波数である。図８において、丸印は、比較例のｔｗｏ−ｍａｓｓモデルにおける声帯の振動周波数であり、三角印および星印は実施例１，２の二次元声帯振動モデルにおける異なる２つのパラメータでの振動周波数である。実施例１では、ｘ0 ＝−０．５とし、実施例２では、ｘ0 ＝１．５とした。また、点線Ｆ０１，Ｆ０１’は声道の最低次共鳴周波数である。
【０１０２】
図８に示すように、実施例１，２では、声道の長さが２０ｃｍから１００ｃｍまたは１２０ｃｍの範囲において、声帯の振動周波数は、声道の最低次共鳴周波数が低下するにつれて緩やかに低下し、声道の最低次共鳴周波数を超えても連続的に緩やかに低下する。声道の長さが１００ｃｍまたは１２０ｃｍを超えると、声帯の振動周波数は急激に上昇する。
【０１０３】
一方、比較例では、声道の長さが２０ｃｍから６０ｃｍの範囲において、声帯の振動周波数は、声道の最低次共鳴周波数の低下とともに急峻に低下し、声道の長さが６０ｃｍで急激に上昇する。
【０１０４】
これらの結果から、二次元声帯振動モデルを用いた実施例１，２では、声帯の振動周波数が上昇して声道の最低次共鳴周波数に十分に近づく場合または声道の最低次共鳴周波数を超えた場合でも発振が容易に得られる。一方、ｔｗｏ−ｍａｓｓモデルを用いた比較例では、声帯の振動周波数が上昇して声道の最低次共鳴周波数に十分に近づく場合または声道の最低次共鳴周波数を超えた場合に発振が困難となる。
【産業上の利用可能性】
【０１０５】
本発明に係る音声合成プログラム、音声合成装置および音声合成方法は、種々の音声を合成するため等に利用することができる。
【図面の簡単な説明】
【０１０６】
【図１】本発明の一実施の形態に係る音声合成プログラム、音声合成方法および音声合成装置に用いられる二次元声帯振動モデルの模式的断面図である。
【図２】図１の二次元声帯振動モデルの模式的斜視図である。
【図３】二次元声帯振動モデルにおける声門での気流を示す模式図である。
【図４】本発明の一実施の形態に係る音声合成プログラムの構成を示すブロック図である。
【図５】シミュレータの構成を示す図である。
【図６】声道における圧力進行波、圧力反射波および反射関数の関係を示す図である。
【図７】本実施の形態の音声合成プログラムを実施するための音声合成装置の構成を示すブロック図である。
【図８】実施例および比較例のシミュレーション結果を示す図である。
【符号の説明】
【０１０７】
１  気管
２  声帯
３  声門
４  声道
２１  重り
２２  弾性体
２３，２５  バネ
２４，２６  ダンパ
Ａg  声門断面積
Ａ0  声道断面積
ｕ  声門体積流量率
ｕm  機械的体積流量率
ｐ0  声門上流部音圧
ｐg  声門音圧
ｐ  声道入口音圧
ｐinc  圧力反射波
ＶＦ  声帯オブジェクト
ＶＴ  声道オブジェクト
ＦＤ  流体力学オブジェクト
ＳＩ  シミュレーションプログラム
ＳＰ  音圧信号生成プログラム
ＧＵ  グラフィックユーザインタフェース
ＭＰ  メインプログラム
Ｃ１  第１のクラス定義
Ｃ２  第２のクラス定義
Ｃ３  第３のクラス定義
Ｃ４  第４のクラス定義
Ｃ５  第５のクラス定義
【図１】
2005091727.tif 000010
【図２】
2005091727.tif 000011
【図３】
2005091727.tif 000012
【図４】
2005091727.tif 000013
【図５】
2005091727.tif 000014
【図６】
2005091727.tif 000015
【図７】
2005091727.tif 000016
【図８】
2005091727.tif 000017