(57)【特許請求の範囲】
【請求項１】
時系列のデータを出力するデータ出力装置において、
状態が遷移する状態遷移確率と、各状態が出力するデータの確率分布とで定義されるHMMの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率を推定する状態確率推定手段と、
前記状態確率と、前記確率分布に従うデータの平均値とに基づいて、HMMが出力する所定の間隔の時刻ごとのデータを求め、時系列のデータとして出力する時系列データ生成手段と
を備え、
前記状態確率推定手段は、前記HMMの各状態について、
自己遷移の状態遷移確率を用いて、自己遷移が生じる回数の期待値に対応する値を、自己遷移が継続する継続時間の期待値として求め、
ある状態から他の状態に遷移する遷移時刻が、前記継続時間の期待値の加算によって求められる期待遷移時刻を平均値とする正規分布に従うことを仮定して、前記正規分布を用いた漸化式により求められる、各時刻に、状態から状態遷移が始まる確率に対応する値を、各時刻の前記状態確率として求め、
前記時系列データ生成手段は、各状態の状態確率を重みとする前記データの平均値の線形結合により、各時刻にHMMが出力するデータを求める
データ出力装置。
【請求項２】
請求項１に記載のデータ出力装置において、
前記正規分布の分散は、前記自己遷移が継続する継続時間の期待値に基づいて決定される
データ出力装置。
【請求項３】
請求項１に記載のデータ出力装置において、
前記正規分布の分散を調整する
データ出力装置。
【請求項４】
請求項１に記載のデータ出力装置において、
前記状態確率推定手段が前記状態確率を推定する時刻の間隔を決定する
データ出力装置。
【請求項５】
請求項１に記載のデータ出力装置において、
前記状態確率推定手段は、複数のHMMを結合することにより得られる新たなHMMの各状態について、前記状態確率を推定する
データ出力装置。
【請求項６】
請求項１に記載のデータ出力装置において、
前記状態確率推定手段は、３つの同一のHMMである第１、第２、および第３のHMMを結合することにより得られる新たなHMMの各状態について、前記状態確率を推定し、
前記時系列データ生成手段は、前記状態確率推定手段において推定された前記状態確率のうちの、前記第２のHMMの各状態についての状態確率と、前記確率分布に従うデータの平均値とに基づいて、HMMが出力する所定の間隔の時刻ごとのデータを求める
データ出力装置。
【請求項７】
請求項１に記載のデータ出力装置において、
前記状態確率推定手段は、
第１及び第２のHMMそれぞれについて、前記継続時間の期待値の総和を同一の所定の時間に調整する第１及び第２の係数を求め、
前記第１のHMMの前記継続時間の期待値を、前記第１の係数によって調整するとともに、前記第２のHMMの前記継続時間の期待値を、前記第２の係数によって調整し、
前記第１及び第２のHMMそれぞれについて、調整後の前記継続時間の期待値を用いて、各時刻の前記状態確率を求め、
前記時系列データ生成手段は、前記第１のHMMの前記状態確率と前記第１のHMMの前記確率分布に従うデータの平均値、および、前記第２のHMMの前記状態確率と前記第２のHMMの前記確率分布に従うデータの平均値に基づいて、前記時系列のデータを求める
データ出力装置。
【請求項８】
請求項７に記載のデータ出力装置において、
前記状態確率推定手段は、前記第１と第２のHMMを混合する混合比率に基づいて、前記第１のHMMの前記継続時間の期待値の総和と、前記第２のHMMの前記継続時間の期待値の総和とを、前記混合比率に従って加算した加算値を、前記所定の時間として、前記第１及び第２の係数を求める
データ出力装置。
【請求項９】
請求項１に記載のデータ出力装置において、
前記時系列のデータは、時系列のベクトルである
データ出力装置。
【請求項１０】
時系列のデータを出力するデータ出力方法において、
状態が遷移する状態遷移確率と、各状態が出力するデータの確率分布とで定義されるHMMの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率を推定する状態確率推定ステップと、
前記状態確率と、前記確率分布に従うデータの平均値とに基づいて、HMMが出力する所定の間隔の時刻ごとのデータを求め、時系列のデータとして出力する時系列データ生成ステップと
を含み、
前記状態確率推定ステップは、前記HMMの各状態について、
自己遷移の状態遷移確率を用いて、自己遷移が生じる回数の期待値に対応する値を、自己遷移が継続する継続時間の期待値として求め、
ある状態から他の状態に遷移する遷移時刻が、前記継続時間の期待値の加算によって求められる期待遷移時刻を平均値とする正規分布に従うことを仮定して、前記正規分布を用いた漸化式により求められる、各時刻に、状態から状態遷移が始まる確率に対応する値を、各時刻の前記状態確率として求め、
前記時系列データ生成ステップは、各状態の状態確率を重みとする前記データの平均値の線形結合により、各時刻にHMMが出力するデータを求める
データ出力方法。
【請求項１１】
時系列のデータを出力するデータ出力処理を、コンピュータに実行させるプログラムにおいて、
状態が遷移する状態遷移確率と、各状態が出力するデータの確率分布とで定義されるHMMの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率を推定する状態確率推定手段と、
前記状態確率と、前記確率分布に従うデータの平均値とに基づいて、HMMが出力する所定の間隔の時刻ごとのデータを求め、時系列のデータとして出力する時系列データ生成手段と
して、コンピュータを機能させるためのプログラムであり、
前記状態確率推定手段は、前記HMMの各状態について、
自己遷移の状態遷移確率を用いて、自己遷移が生じる回数の期待値に対応する値を、自己遷移が継続する継続時間の期待値として求め、
ある状態から他の状態に遷移する遷移時刻が、前記継続時間の期待値の加算によって求められる期待遷移時刻を平均値とする正規分布に従うことを仮定して、前記正規分布を用いた漸化式により求められる、各時刻に、状態から状態遷移が始まる確率に対応する値を、各時刻の前記状態確率として求め、
前記時系列データ生成手段は、各状態の状態確率を重みとする前記データの平均値の線形結合により、各時刻にHMMが出力するデータを求める
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ出力装置、データ出力方法、およびプログラムに関し、特に、状態遷移確率モデルを用いて、滑らかに変化する時系列のベクトル等のデータを、容易に得ることができるようにするデータ出力装置、データ出力方法、およびプログラムに関する。
【背景技術】
【０００２】
音声（信号）、さらには、音声から抽出される音声パラメータは、時系列のデータ（時系列データ）であり、時系列データをモデル化するモデルとしては、例えば、HMM（Hidden Markov Model）がある。
【０００３】
近年、HMMは、音声認識に広く利用されている。HMMは、状態の遷移に応じてデータが出力される状態遷移確率モデルの１種であり、状態Siから状態Sjに遷移する確率である状態遷移確率aijと、状態が遷移したときに遷移先の状態Sjがデータ（観測値）xを出力する確率分布を表す出力確率密度関数bj(x)で定義される。
【０００４】
なお、出力確率密度関数としては、例えば、混合正規分布などが仮定される。また、出力確率密度関数は、状態Siから状態Sjに遷移したときにデータ（観測値）xが出力される確率分布を表す関数であるとして、遷移前の状態Siのサフィックスiと遷移後の状態Sjのサフィックスjとを用いて、bij(x)と表されることがある。
【０００５】
HMMによれば、学習すべき時系列データの統計的な特性がモデル化される。HMMの学習、即ち、HMMを定義する状態遷移確率aijと出力確率密度関数bj(x)の推定方法としては、Baum-Welch 法が広く使われている。ここで、HMMについては、非特許文献１に記載されている。
【０００６】
現在、HMMは、孤立単語音声認識から大語彙連続音声認識にまで幅広く用いられ、そのような音声認識を行う音声認識装置が実用化されている。
【０００７】
ところで、近年においては、音声合成にHMMを用いる方法が提案されている。
【０００８】
HMMを用いた音声合成では、時系列のピッチやスペクトルなどの音声パラメータ（の時系列）をHMMによってモデル化し、HMMから音声パラメータを生成して、その音声パラメータから、音声信号が合成（生成）される。音声パラメータから音声信号を合成するにあたっては、音声信号からスペクトルなどの音声パラメータを抽出する処理と逆向きの処理を行う逆フィルタが用いられる。
【０００９】
例えば、音声パラメータの一種であるメルケプストラム係数から音声信号を合成するフィルタとしては、MLSAフィルタ（メル対数スペクトル近似フィルタ）などがある。ここで、MLSAフィルタについては、例えば、非特許文献２や３に記載されている。
【００１０】
HMMから音声合成に用いる時系列データである音声パラメータを生成する方法としては、例えば、動的特徴量を用いたHMMによって音声パラメータを生成する方法がある。ここで、動的特徴量を用いたHMMについては、非特許文献４や５に記載されている。
【００１１】
ここで、音声パラメータは、音声の特徴を表し、一般に、ベクトルであるので、以下、適宜、特徴ベクトルともいう。
【００１２】
動的特徴量を用いたHMMによって特徴ベクトルを生成する場合、HMMの状態遷移確率aijに基づき、各状態について、同一の状態に遷移し続ける（自己遷移している）時間である継続時間（継続時間長）が尤度最大化に基づいて推定され、その継続時間に基づき、最適状態系列、つまり、HMMにおいて、最も確からしい状態の遷移のしていき方が求められる。そして、その最適状態系列にしたがった順番で状態を遷移しながら、各状態から、尤度最大化に基づいて特徴ベクトルが生成される。
【００１３】
状態Sjでの特徴ベクトルxの生成は、その状態Sjの出力確率密度関数bj(x)を用いて行われるが、特徴ベクトルxの生成に、何の制約も与えない場合、尤度最大化によれば、出力確率密度関数bj(x)の平均ベクトルが、特徴ベクトルxとして生成される。従って、この場合、状態Sjが決まれば、その状態Sjから生成される特徴ベクトルxも、状態Sjの出力確率密度関数bj(x)の平均ベクトルに一意に決まってしまい、その結果、滑らかに変化する時系列の特徴ベクトルを得ることが困難となる。
【００１４】
そこで、動的特徴量を用いたHMMでは、滑らかに変化する時系列の特徴ベクトルを得るために、動的特徴量が利用される。
【００１５】
即ち、いま、時刻tにおける特徴ベクトルを、ctと表すこととすると、長さＴの時系列の特徴ベクトルは、c1,c2,・・・,cTと表すことができる。この場合、動的特徴量としては、式（１）のdtや、式（２）のatが用いられる。
【００１６】
【数１】
0004662139.tif 000002
・・・（１）
【００１７】
【数２】
0004662139.tif 000003
・・・（２）
【００１８】
式（１）の動的特徴量dtは、特徴ベクトルct の変化量をあらわすベクトルであり、デルタパラメータと呼ばれる。式（２）の動的特徴量at は、デルタパラメータdt の変化量を表すベクトルであり、デルタデルタパラメータと呼ばれる。
【００１９】
いま、特徴ベクトルctと、動的特徴量（ベクトル）dtおよびatとをコンポーネントとするベクトルotを、式（３）のように表す。
【００２０】
【数３】
0004662139.tif 000004
・・・（３）
【００２１】
動的特徴量を用いたHMMでは、時系列のベクトルo1,o2,o3,・・・,oT を用いて、HMMの学習が行われ、学習後のHMMを用いて、時系列のベクトルo1,o2,o3,・・・,oT が生成される。そして、時系列のベクトルo1,o2,o3,・・・,oT を生成するにあたっては、式（１）と式（２）とが考慮される。その結果、HMMの状態Sjから出力されるベクトルotは、単なる出力確率密度関数bj(ot)の平均ベクトルにならず、ベクトルotのコンポーネントとなっている特徴ベクトルctは、滑らかに変化する時系列のベクトル（時系列ベクトル）となる。
【００２２】
動的特徴量を用いたHMMによれば、滑らかに変化する特徴ベクトルc1,c2,・・・,cTを得て、自然な合成音を生成することができる。
【００２３】
しかしながら、動的特徴量を用いたHMMでは、特徴ベクトルctの他に、動的特徴量としてデルタパラメータdtやデルタデルタパラメータatを用いるため、動的特徴量として、デルタパラメータdtだけを用いることとしても、HMMが学習するベクトルotの次元数が２倍に増加し、さらに、動的特徴量として、デルタデルタパラメータatをも用いる場合には、HMMが学習するベクトルotの次元数が３倍に増加する。
【００２４】
そして、このようなベクトルotの次元数の増加に起因して、HMMの学習や、HMMからのベクトルの生成に必要となる処理量が大になり、さらには、HMMのパラメータ、即ち、HMMを定義する状態遷移確率aijと出力確率密度関数bj(x)のうちの、出力確率密度関数bj(x)を規定する平均ベクトル等のデータ量も大になる。
【００２５】
一方、HMMからの時系列の特徴ベクトルの生成の確率的試行を繰り返し、その確率的試行の結果の平均をとることで、滑らかに変化する特徴ベクトルを生成する方法が提案されている。ここで、かかる確率的試行に基づく特徴ベクトルの生成の方法については、例えば、特許文献１や非特許文献６に記載されている。
【００２６】
確率的試行に基づく特徴ベクトルの生成では、HMMの状態遷移確率aijにしたがって確率的に複数の状態の系列（遷移する状態の系列（状態遷移系列））を求め、その複数の状態遷移系列の平均的な状態遷移系列を決定し、さらに、その平均的な状態遷移系列から出力確率密度関数bj(x)に基づき、時系列の特徴ベクトルを生成するという試行が多数回行われる。そして、その多数回の試行によって生成された時系列の特徴ベクトルを平均化することで、最終的な時系列の特徴ベクトルが求められる。
【００２７】
確率的試行に基づく特徴ベクトルの生成では、動的特徴量を用いたHMMによる特徴ベクトルの生成と異なり、尤度最大化という基準で時系列の特徴ベクトルが生成されるのではなく、特徴ベクトルの生成の確率的試行の結果の平均的な時系列の特徴ベクトルが生成される。
【００２８】
従って、確率的試行に基づく特徴ベクトルの生成によれば、時系列の特徴ベクトルを生成する処理を多数回試行する必要があるため、処理量が大になる。
【００２９】
【特許文献１】特開2004-330361号公報
【非特許文献１】Laurence Rabiner, Biing-Hwang Juang 、「音声認識の基礎（上・下）」、NTTアドバンステクノロジ株式会社
【非特許文献２】今井聖、住田一男、古市千恵子、「音声合成のためのメル対数スペクトル近似（MLSA）フィルタ」、電子情報通信学会論文誌（Ａ）、J66-A, 2, pp.122-129, 1983
【非特許文献３】徳田恵一、小林隆夫、斉藤博徳、深田俊明、今井聖、「メルケプストラムをパラメータとする音声のスペクトル推定」、電子情報通信学会論文誌（Ａ）、J74-A, 8, pp.1240-1248, 1991
【非特許文献４】K. Tokuda, T. Yoshimura, T. Masuko, T. Kobayashi, T. Kitamura, "SPEECH PARAMETER GENERATION ALGORITHMS FOR HMM-BASED SPEECH SYNTHESIS", Proc. of ICASSP 2000, vol.3, pp.1315-1318, June 2000
【非特許文献５】徳田 恵一、「HMMによる音声合成の基礎」、電子情報通信学会技術研究報告, SP2000-74, pp.43--50, Oct. 2000.
【非特許文献６】稲邑哲也、谷江博昭、中村仁彦、「連続分布型隠れマルコフモデルを用いた時系列データのキーフレーム抽出とその復元」、日本機械学会ロボティクス・メカトロニクス講演会2003講演論文集、2P1-3F-C6，2003
【発明の開示】
【発明が解決しようとする課題】
【００３０】
本発明は、このような状況に鑑みてなされたものであり、動的特徴量を用いることなく、かつ、時系列データの生成を繰り返し試行することなく、滑らかに変化する時系列データを得ることができるようにするものである。
【課題を解決するための手段】
【００３１】
本発明の一側面のデータ出力装置、又は、プログラムは、時系列のデータを出力するデータ出力装置において、状態が遷移する状態遷移確率と、各状態が出力するデータの確率分布とで定義されるHMMの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率を推定する状態確率推定手段と、前記状態確率と、前記確率分布に従うデータの平均値とに基づいて、HMMが出力する所定の間隔の時刻ごとのデータを求め、時系列のデータとして出力する時系列データ生成手段とを備え、前記状態確率推定手段は、前記HMMの各状態について、自己遷移の状態遷移確率を用いて、自己遷移が生じる回数の期待値に対応する値を、自己遷移が継続する継続時間の期待値として求め、ある状態から他の状態に遷移する遷移時刻が、前記継続時間の期待値の加算によって求められる期待遷移時刻を平均値とする正規分布に従うことを仮定して、前記正規分布を用いた漸化式により求められる、各時刻に、状態から状態遷移が始まる確率に対応する値を、各時刻の前記状態確率として求め、前記時系列データ生成手段は、各状態の状態確率を重みとする前記データの平均値の線形結合により、各時刻にHMMが出力するデータを求めるデータ出力装置、又は、データ出力装置として、コンピュータを機能させるためのプログラムである。
本発明の一側面のデータ出力方法は、時系列のデータを出力するデータ出力方法において、状態が遷移する状態遷移確率と、各状態が出力するデータの確率分布とで定義されるHMMの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率を推定する状態確率推定ステップと、前記状態確率と、前記確率分布に従うデータの平均値とに基づいて、HMMが出力する所定の間隔の時刻ごとのデータを求め、時系列のデータとして出力する時系列データ生成ステップとを含み、前記状態確率推定ステップは、前記HMMの各状態について、自己遷移の状態遷移確率を用いて、自己遷移が生じる回数の期待値に対応する値を、自己遷移が継続する継続時間の期待値として求め、ある状態から他の状態に遷移する遷移時刻が、前記継続時間の期待値の加算によって求められる期待遷移時刻を平均値とする正規分布に従うことを仮定して、前記正規分布を用いた漸化式により求められる、各時刻に、状態から状態遷移が始まる確率に対応する値を、各時刻の前記状態確率として求め、前記時系列データ生成ステップは、各状態の状態確率を重みとする前記データの平均値の線形結合により、各時刻にHMMが出力するデータを求めるデータ出力方法である。
【００３２】
本発明の一側面においては、状態が遷移する状態遷移確率と、各状態が出力するデータの確率分布とで定義されるHMMの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率が推定され、前記状態確率と、前記確率分布に従うデータの平均値とに基づいて、HMMが出力する所定の間隔の時刻ごとのデータが求められ、時系列のデータとして出力される。具体的には、前記HMMの各状態について、自己遷移の状態遷移確率を用いて、自己遷移が生じる回数の期待値に対応する値が、自己遷移が継続する継続時間の期待値として求められ、ある状態から他の状態に遷移する遷移時刻が、前記継続時間の期待値の加算によって求められる期待遷移時刻を平均値とする正規分布に従うことを仮定して、前記正規分布を用いた漸化式により求められる、各時刻に、状態から状態遷移が始まる確率に対応する値が、各時刻の前記状態確率として求められる。そして、各状態の状態確率を重みとする前記データの平均値の線形結合により、各時刻にHMMが出力するデータが求められる。
【発明の効果】
【００３３】
本発明によれば、滑らかに変化する時系列データを得ることができる。
【発明を実施するための最良の形態】
【００３７】
以下、図面を参照して、本発明の実施の形態について説明する。
【００３８】
図１は、本発明を適用した音声合成装置の一実施の形態の構成例を示している。
【００３９】
図１において、音声合成装置は、HMM記憶部１、選択部２、逆フィルタ５、およびベクトル時系列出力部１０から構成されている。そして、ベクトル時系列出力部１０は、状態確率推定部３とベクトル時系列生成部４とから構成されている。
【００４０】
HMM記憶部１は、音声合成に用いられる複数のHMMを記憶している。
【００４１】
選択部２は、HMM記憶部１に記憶されたHMMの中から、音声合成に用いるHMMを選択し、状態確率推定部３とベクトル時系列生成部４に供給する。
【００４２】
状態確率推定部３は、選択部２から供給されるHMMの各状態について、所定の間隔の時刻ごとの、状態がベクトルを出力する状態確率を推定し、ベクトル時系列生成部４に供給する。
【００４３】
ベクトル時系列生成部４は、状態確率推定部３から供給される状態確率と、選択部２から供給されるHMMの状態が出力する代表的なベクトルとに基づいて、所定の間隔の時刻ごとのベクトルを求め、時系列のベクトル（ベクトルの時系列）として出力する。
【００４４】
逆フィルタ５は、ベクトル時系列生成部４が出力する時系列のベクトルをフィルタリングすることにより、音声信号（合成音）を得て出力する。
【００４５】
ここで、ベクトル時系列生成部４が出力するベクトルが、例えば、メルケプストラム係数をコンポーネントとする特徴ベクトルである場合には、逆フィルタ５としては、例えば、MLSAフィルタを採用することができる。さらに、ベクトル時系列生成部４が出力するベクトルが、例えば、メルケプストラム係数をコンポーネントとする特徴ベクトルである場合には、HMM記憶部１には、メルケプストラム係数をコンポーネントとする特徴ベクトルを、HMMの学習用の学習データとして用い、例えば、学習データが出力される尤度を最大化する学習の方法であるBaum-Welch 法により学習が行われたHMMが記憶されている。
【００４６】
次に、図２は、図１のHMM記憶部１に記憶されているHMMの例を示している。
【００４７】
HMMは、状態遷移確率と出力確率密度関数とをモデルのパラメータ（モデルパラメータ）として定義される確率モデルである。
【００４８】
図２のHMMは、left-to-right型と呼ばれるHMMで、図中○印で示すN+2個の状態S0,S1,・・・,SN-1,SN,SN+1が、左から右方向に並んでいる。状態S0乃至SN+1のうちの、最も左の状態S0は初期状態と呼ばれ、最も右の状態SN+1は終了状態と呼ばれる。図２のleft-to-right型と呼ばれるHMMでは、初期状態S0と終了状態SN+1を除く状態Si(i=1,2,・・・,N)において、自身への状態の遷移（自己遷移）と、自身の右隣への状態の遷移とだけが許されている。ここで、図２では、矢印が状態の遷移を表している。
【００４９】
また、図２のHMMでは、初期状態S0から、その右隣の状態S1に状態遷移するようになっている。従って、状態S0から状態S1への状態遷移確率a01は、1である。さらに、終了状態SN+1では、状態遷移が生じないようになっている。そして、状態遷移は、初期状態S0から始まって、終了状態SN+1に到達して終了する。
【００５０】
さらに、図２のHMMでは、初期状態S0と終了状態SN+1を除く状態Si(i=1,2,・・・,N)において、ベクトルxが出力される確率密度（確率分布）を表す出力確率密度関数bi(x)が定義されている。ここでは、出力確率密度関数bi(x)は、例えば、平均ベクトルμi と共分散行列Σi によって定義される正規分布を表す式（４）で与えられることとする。
【００５１】
【数４】
0004662139.tif 000005
・・・（４）
【００５２】
ここで、式（４）において、Kは、確率変数であるベクトルxの次元数を表し、上付のT は行列の転置を表す。
【００５３】
なお、図２では、自己遷移と、自身の右隣への状態の遷移とだけが許されているHMMを採用することとしたが、その他、さらに、右側の他の状態への遷移も許されているHMMを採用することが可能である。また、left-to-right型でないHMMを採用することも可能である。
【００５４】
次に、図３のフローチャートを参照して、図１の音声合成装置の処理について説明する。
【００５５】
まず最初に、ステップＳ１において、選択部２は、HMM記憶部１に記憶されたHMMの中から、音声合成に用いるHMMを選択し、状態確率推定部３とベクトル時系列生成部４に供給して、ステップＳ２に進む。
【００５６】
ステップＳ２では、状態確率推定部３は、選択部２から供給されるHMMの各状態について、所定の間隔の時刻ごとの、状態がベクトルを出力する状態確率を推定する状態確率推定処理を行い、その結果得られる状態確率を、ベクトル時系列生成部４に供給して、ステップＳ３に進む。
【００５７】
ステップＳ３では、ベクトル時系列生成部４は、状態確率推定部３から供給される状態確率と、選択部２から供給されるHMMの状態が出力する代表的なベクトルとに基づいて、所定の間隔の時刻ごとのベクトルを求めるベクトル時系列生成処理を行い、その結果得られる時系列のベクトル（ベクトルの時系列）を出力して、ステップＳ４に進む。
【００５８】
ステップＳ４では、逆フィルタ５が、ベクトル時系列生成部４が出力する時系列のベクトルをフィルタリングすることにより、音声信号を得て出力し、処理を終了する。
【００５９】
次に、図１の状態確率推定部３が図３のステップＳ２で行う状態確率推定処理について説明する。
【００６０】
状態確率推定処理では、HMMの状態確率が推定される。HMMの状態確率とは、HMMの各状態についての、所定の間隔の時刻ごとの、状態がベクトルを出力する確率であり、時刻tにおいて、状態Siがベクトルxを出力する状態確率をPi(t)と表す。
【００６１】
状態確率Pi(t)は、時刻tに、ベクトルxを出力する状態Siを確率的に与える。
【００６２】
ここで、上述したように、HMMでは、初期状態S0と終了状態SN+1を除く状態S1乃至SNに出力確率密度関数bi(x)が定義されており、初期状態S0と終了状態SN+1からは、ベクトルが出力されず、他のN個の状態S1乃至SNからベクトルxが出力される可能性がある。
【００６３】
また、時刻t=0 において初期状態S0 から状態遷移が始まり、その後、適宜、自己遷移をしながら、状態S1, S2, S3,・・・,SNと遷移し、最終時刻t=T+1において状態 SN+1 に到達することとすると、状態S1から状態SNまでの状態遷移においてベクトルxが出力される。つまり、時刻t=1から時刻t=Tまでの、時間幅が1の時間間隔の各時刻tでベクトルxが出力される。時刻t=1から時刻t=Tまでの、時間幅が1の時間間隔の各時刻でベクトルxが出力されることによって得られるベクトルxの時系列の長さはTで表される。この、時系列の長さがTの、ベクトルxの時系列（時系列のベクトルx）を、x1,x2,x3,・・・,xTで表す。
【００６４】
状態確率推定処理では、時系列のベクトルx1,x2,x3,・・・,xTを求めるために必要となるHMMの状態確率Pi(t)を、t=1,2,・・・,Tの各時刻tについて、出力確率密度関数bi(x)が定義されたすべての状態S1,S2,・・・,SNに対して推定する。
【００６５】
なお、t=1,2,・・・,Tのうちのいずれかの時刻tでは、HMMのある状態が、ベクトルxtを、必ず出力する。従って、式（５）に示すように、ベクトルxを出力しうる状態S1, S2, S3,・・・,SNのすべてに関して、時刻tにおける状態確率Pi(t)のサメーションをとると1になる。
【００６６】
【数５】
0004662139.tif 000006
・・・（５）
【００６７】
状態確率Pi(t)は、上述したように、時刻tにおいて、状態Siがベクトルxを出力する確率（状態Siへの状態遷移によって状態Siからベクトルxが出力される確率）であるので、状態確率Pi(t)を求めるにあたり、まず、HMMにおいて、状態Siに留まっている時間（状態Siで自己遷移している時間）を考える。
【００６８】
ここで、図４は、図２のleft-to-right型のHMMにおける状態遷移の仕方の例を示している。
【００６９】
図４では、時刻t=0において、初期状態S0 から状態遷移が始まり、時刻t=1において、状態（初期状態）S0から右隣の状態S1に遷移している。その後、時刻t=2,3,4それぞれにおいて、状態S1から状態S1に遷移（自己遷移）し、時刻t=5において、状態S1から右隣の状態S2に遷移している。さらに、時刻t=6,7それぞれにおいて、状態S2から状態S2に自己遷移し、時刻t=8において、状態S2から右隣の状態S3に遷移している。その後、順次、自己遷移または右隣の状態に遷移し、時刻t=T-2において、状態SN-1から右隣の状態SNに遷移している。そして、時刻t=T-1,Tそれぞれにおいて、状態SNから状態SNに自己遷移し、最終時刻t=T+1において、状態SNから右隣の終了状態SN+1に遷移している。
【００７０】
いま、ある時刻tにおいて、状態Si-1から右隣の状態Siに遷移し、その後、自己遷移をn-1回だけ繰り返し、さらにその後に右隣の状態Si+1に遷移した場合、状態Siには、時間nだけ留まる。この、状態Siに留まる時間nを、継続時間（または継続時間長）と呼ぶこととすると、状態Siの継続時間が時間nになる確率は、状態Siから状態Siに自己遷移する確率である状態遷移確率aiiを用いて、式（６）で与えられる。
【００７１】
【数６】
0004662139.tif 000007
・・・（６）
【００７２】
ここで、式（６）において、状態遷移確率aiiは、状態Siから状態Siに自己遷移する確率であるから、1-aiiは、状態Siから他の状態に遷移する確率である。
【００７３】
状態Siの継続時間nの期待値E[n]は、式（６）を用いると、式（７）で表される。
【００７４】
【数７】
0004662139.tif 000008
・・・（７）
【００７５】
式（７）の継続時間nの期待値E[n]は、状態S1,S2,・・・,SNすべてについて求めることができ、いま、状態Siの継続時間nの期待値E[n]を、diと表すこととする。ここで、状態Siの継続時間nの期待値diは、図４に示すように、状態Siにおいて自己遷移が生じる回数（の期待値）に対応する。
【００７６】
状態S1,S2,・・・,SNそれぞれの継続時間の期待値d1,d2,・・・,dNを、式（８）に示すように累積することで、初期状態S0から終了状態SN+1に遷移するまでの全体の継続時間（全体継続時間）Tを求めることができる。
【００７７】
【数８】
0004662139.tif 000009
・・・（８）
【００７８】
式（８）で表される全体継続時間Tが、HMMから出力されるベクトル時系列x1,x2,x3,...,xTの長さとなる。
【００７９】
なお、式（８）の全体継続時間Tは、HMMから出力されるベクトル時系列x1,x2,x3,...,xTの長さ、つまり、ベクトル時系列x1,x2,x3,...,xTにおけるベクトルの個数であり、従って、整数値であるため、全体継続時間Tを求めるのに用いられる式（７）の継続時間の期待値di(=E[n])は、例えば、小数点以下を切り上げるなどして整数化することとする。
【００８０】
HMMにおいて、状態が、式（７）によって求められる状態Siの継続時間の期待値diにしたがって遷移していった場合の、状態の系列（状態遷移系列）において、状態Si-1から右隣の状態Siに遷移する時刻tを、tiと表すことにする。
【００８１】
ここで、図４では、上述したように、状態S1から右隣の状態S2に遷移する時刻t2が5になっており、状態S2から右隣の状態S3に遷移する時刻t3が8になっている。また、状態SN-1から右隣の状態SNに遷移する時刻tNはT-2になっている。
【００８２】
なお、図２のHMMでは、状態遷移は、必ず、初期状態S0から状態遷移は始まり、初期状態S0からは、必ず、右隣の状態S1に遷移するから、状態S0から右隣の状態S1に遷移する時刻t1は、必ず1である。
【００８３】
さらに、図２のHMMでは、状態の遷移は、最後に、状態SNから終了状態SN+1に遷移して終了し、状態SNから終了状態SN+1に遷移する直前の遷移の時刻tは、全体継続時間Tに等しいから、状態SNから右隣の状態SN+1に遷移する時刻tN+1は、必ずT+1である。
【００８４】
以上のように、初期状態S0から状態S1に遷移する時刻t1は必ず1であり、さらに、
状態SNから終了状態SN+1に遷移する時刻tN+1は必ずT+1である。また、状態Siの継続時間の期待値diは、式（７）で求めることができる。
【００８５】
従って、初期状態S0から状態S1に遷移する時刻t1(=1)を初期値とし、ある状態Si-1から他の状態Siに遷移する時刻tiに対して、状態Siの継続時間の期待値diを加算することにより、状態遷移が初期状態S0から始まって終了状態SN+1で終了する状態遷移系列において、状態Siから他の状態Si+1に遷移する時刻ti+1を求めることができる。
【００８６】
ここで、以下、適宜、状態Si-1から他の状態（右隣の状態）Siに遷移する時刻tを、遷移時刻tといい、上述のように、状態Siの継続時間の期待値diを用いた加算を行うことにより求められる遷移時刻tiを、期待遷移時刻tiという。
【００８７】
いま、遷移時刻tが、所定の確率分布にしたがうとし、その所定の確率分布として、例えば、正規分布（ガウシアン）を仮定すると、状態Si-1から他の状態Siに遷移する遷移時刻tの確率密度（確率分布）を表す確率密度関数qi(t)は、式（９）で与えられる。
【００８８】
【数９】
0004662139.tif 000010
・・・（９）
【００８９】
式（９）の確率密度関数qi(t)によれば、図５に示すように、状態Si-1から他の状態Siに遷移する遷移時刻tは、平均値が期待遷移時刻tiで、分散がσ2の正規分布にしたがう。また、式（９）の確率密度関数qi(t)によれば、分散σ2が非常に小さいと、状態Siに遷移する遷移時刻tが確定的な値tiになり、分散σ2が大きくなるにしたがって、状態Siに遷移する遷移時刻tが確率的な値になる。
【００９０】
ここで、以下、適宜、式（９）の確率密度関数（によって与えられる確率）qi(t)を、前向き遷移確率と呼ぶこととする。
【００９１】
図６は、前向き遷移確率qi(t)とHMMの状態との関係を示している。
【００９２】
前向き遷移確率qi(t)は、時刻tにおいて、状態Si-1から他の状態Siに遷移する遷移確率を与える。同様に、前向き遷移確率qi+1(t)は、時刻tにおいて、状態Siから他の状態Si+1に遷移する遷移確率を与える。
【００９３】
さらに、時刻tにおいて、状態Siで自己遷移をする確率は、前向き遷移確率qi+1(t)を用いた式1-qi+1(t)で与えられる。
【００９４】
一方、以上の式（９）の前向き遷移確率qi(t)を求めた場合と同様に、状態遷移が終了状態SN+1から始まって初期状態S0で終了する状態遷移系列を考えると、その状態遷移系列については、状態Si+1から他の状態Siに遡って遷移する時刻tを求めることができる。この、状態Si+1から他の状態Siに遡って遷移する時刻tは、終了状態SN+1から状態SNに遡って遷移する時刻tN'(=T)を初期値とし、ある状態Si+2から他の状態Si+1に遡って遷移する時刻ti+1'に対して、状態Siの継続時間の期待値diを加算することにより求めることができる。
【００９５】
ここで、以下、適宜、状態Si+1から他の状態（左隣の状態）Siに遡って遷移する時刻tを、逆遷移時刻tといいい、上述のように、状態Siの継続時間の期待値diを用いた加算を行うことにより求められる逆遷移時刻ti'を、逆期待遷移時刻ti'という。
【００９６】
いま、逆遷移時刻tが、遷移時刻tと同様に、所定の確率分布にしたがうとし、その所定の確率分布として、例えば、正規分布を仮定すると、状態Si+1から他の状態Siに遷移する逆遷移時刻tの確率密度を表す確率密度関数ri(t)は、式（９）と同様の式（１０）で与えられる。
【００９７】
【数１０】
0004662139.tif 000011
・・・（１０）
【００９８】
式（１０）の確率密度関数ri(t)によれば、図５に示した確率密度関数（前向き遷移確率）qi(t)と同様に、状態Si+1から他の状態Siに遡って逆遷移する逆遷移時刻tは、平均値が逆期待遷移時刻ti'で、分散がσ'2の正規分布にしたがう。また、式（１０）の確率密度関数ri(t)によれば、分散σ'2が非常に小さいと、状態Siに遷移する遷移時刻tが確定的な値tiになり、分散σ'2が大きくなるにしたがって、状態Siに遷移する逆遷移時刻tが確率的な値になる。
【００９９】
ここで、以下、適宜、式（１０）の確率密度関数（によって与えられる確率）ri(t)を、後ろ向き遷移確率と呼ぶこととする。
【０１００】
図７は、後ろ向き遷移確率ri(t)とHMMの状態との関係を示している。
【０１０１】
なお、図７では、後ろ向きの状態遷移（状態を遡る遷移）を表すために、状態遷移を表す矢印の向きを、図６とは逆向きに図示してある。
【０１０２】
後ろ向き遷移確率ri(t)は、時刻tにおいて、状態Si+1から他の状態Siに遡って遷移する遷移確率を与える。同様に、後ろ向き遷移確率ri-1(t)は、時刻tにおいて、状態Siから他の状態Si-1に遡って遷移する遷移確率を与える。
【０１０３】
さらに、時刻tにおいて、状態Siで自己遷移をする確率は、後ろ向き遷移確率ri-1(t)を用いた式1-ri-1(t)で与えられる。
【０１０４】
次に、状態遷移が初期状態S0から始まって終了状態SN+1で終了する状態遷移系列について、時刻t=0において、状態Siから遷移が始まる確率を、Pfi(0)と表すこととすると、図２のHMMでは、時刻t=0に初期状態S0から必ず遷移が始まるので、時刻t=0において、状態S0から遷移が始まる確率Pf0(0)は、式（１１）に示すように1となる。
【０１０５】
【数１１】
0004662139.tif 000012
・・・（１１）
【０１０６】
また、時刻t=0において、状態S0から必ず遷移が始まるということは、時刻t=0において、状態S0以外の状態S1,S2,・・・,SN,SN+1から遷移が始まることはあり得ないので、時刻t=0において、状態S0以外の状態Siから遷移が始まる確率Pfi(0)は、式（１２）に示すように0となる。
【０１０７】
【数１２】
0004662139.tif 000013
・・・（１２）
【０１０８】
図２のleft-to-right型のHMMについては、時刻tに状態Siに存在する（いる）確率Pfi(t)、つまり、時刻tにおいて、状態Siから遷移が始まる確率Pfi(t)は、式（１１）の確率Pf0(0)と、式（１２）の確率Pfi(0)とを初期値とする、式（９）の前向き遷移確率qi(t)を用いた、式（１３）の漸化式を用いて計算することができる。
【０１０９】
【数１３】
0004662139.tif 000014
・・・（１３）
【０１１０】
ここで、式（１３）の右辺の第１項Pfi-1(t-1)qi(t)は、時刻t-1に状態Si-1にいて、次の時刻tに状態Siに遷移する確率を表す。また、式（１３）の右辺の第２項Pfi(t-1)(1-qi+1(t)は、時刻t-1に状態Siにいて、次に時刻tに状態Siに自己遷移する確率を表す。
【０１１１】
なお、時刻t=0以外の時刻では、初期状態S0から遷移が始まることはあり得ないため、時刻t=0以外の時刻において、初期状態S0から遷移が始まる確率Pf0(t)は、式（１４）に示すように0である。
【０１１２】
【数１４】
0004662139.tif 000015
・・・（１４）
【０１１３】
以下、適宜、以上のようにして求められる、時刻tにおいて、状態Siから遷移が始まる確率Pfi(t)を、前向き状態確率Pfi(t)と呼ぶ。
【０１１４】
ここで、図８は、前向き状態確率Pfi(t)を模式的に示した表である。
【０１１５】
図８の表において、横軸は状態Siを表し、縦軸は時刻tを表している。そして、横軸のある状態Siの列と、縦軸のある時刻tの行とが交差する欄に、時刻tにおいて、状態Siから遷移が始まる前向き状態確率Pfi(t)が記述されている。
【０１１６】
図８の表の欄のうちの、時刻tが0の欄は、式（１１）および式（１２）にしたがって記述されていき、状態Siが初期状態S0の欄は、式（１１）および式（１４）にしたがって記述されていく。そして、以下、他の欄には、式（１３）の漸化式を計算することにより得られる前向き状態確率Pfi(t)が順次記述されていく。
【０１１７】
次に、時刻tにおいて、状態Siから遷移が始まる確率は、状態遷移が、終了状態SN+1から始まって初期状態S0で終了する状態遷移系列についても考えることができる。
【０１１８】
そこで、いま、時刻t=T+1において、状態Siから遡る遷移（後ろ向きの遷移）が始まる確率を、Pbi(T+1)と表すこととすると、図２のHMMでは、時刻t=T+1に最終状態SN+1から必ず後ろ向きの遷移が始まるので、時刻t=T+1において、状態SN+1から後ろ向きの遷移が始まる確率PbN+1(T+1)は、式（１５）に示すように1となる。
【０１１９】
【数１５】
0004662139.tif 000016
・・・（１５）
【０１２０】
また、時刻t=T+1において、状態SN+1から必ず後ろ向きの遷移が始まるということは、時刻t=T+1において、状態SN+1以外の状態SN,SN-1,・・・,S1,S0から遷移が始まることはあり得ないので、時刻t=T+1において、状態SN+1以外の状態Siから遷移が始まる確率Pbi(T+1)は、式（１６）に示すように0となる。
【０１２１】
【数１６】
0004662139.tif 000017
・・・（１６）
【０１２２】
図２のleft-to-right型のHMMについては、時刻tに状態Siに存在する（いる）確率Pbi(t)、つまり、時刻tにおいて、状態Siから後ろ向きの遷移が始まる確率Pbi(t)は、式（１５）の確率PbN+1(T+1)と、式（１６）の確率Pbi(T+1)とを初期値とする、式（１０）の後ろ向き遷移確率ri(t)を用いた、式（１７）の漸化式を用いて計算することができる。
【０１２３】
【数１７】
0004662139.tif 000018
・・・（１７）
【０１２４】
なお、時刻t=T+1以外の時刻では、終了状態SN+1から後ろ向きの遷移が始まることはあり得ないため、時刻t=T+1以外の時刻において、終了状態SN+1から遷移が始まる確率PbN+1(t)は、式（１８）に示すように0である。
【０１２５】
【数１８】
0004662139.tif 000019
・・・（１８）
【０１２６】
以下、適宜、以上のようにして求められる、時刻tにおいて、状態Siから後ろ向きの遷移が始まる確率Pbi(t)を、後ろ向き状態確率Pbi(t)と呼ぶ。
【０１２７】
ここで、図９は、後ろ向き状態確率Pbi(t)を模式的に示した表である。
【０１２８】
図９の表において、横軸は状態Siを表し、縦軸は時刻tを表している。そして、横軸のある状態Siの列と、縦軸のある時刻tの行とが交差する欄に、時刻tにおいて、状態Siから後ろ向き遷移が始まる後ろ向き状態確率Pbi(t)が記述されている。
【０１２９】
図９の表の欄のうちの、時刻tがT+1の欄は、式（１５）および式（１６）にしたがって記述されていき、状態Siが終了状態SN+1の欄は、式（１５）および式（１８）にしたがって記述されていく。そして、以下、他の欄には、式（１７）の漸化式を計算することにより得られる後ろ向き状態確率Pbi(t)が順次記述されていく。
【０１３０】
式（１３）の前向き状態確率Pfi(t)は、状態遷移が初期状態S0から始まって終了状態SN+1で終了する状態遷移系列について、時刻tにおいて、状態Siから遷移が始まる確率であり、式（１７）の後ろ向き状態確率Pbi(t)は、状態遷移が終了状態SN+1から始まって初期状態S0で終了する状態遷移系列について、時刻tにおいて、状態Siから遷移が始まる確率であるから、これらの前向き状態確率Pfi(t)と、後ろ向き状態確率Pbi(t)を掛け合わせることにより、時刻tに状態Siに存在する（居る）確率、つまり、状態Siがベクトルxを出力する状態確率（ベクトルxを出力する状態が状態Siである確率）Pi(t)を求めることができる。
【０１３１】
そこで、状態確率Pi(t)を、式（１９）で定義することとする。
【０１３２】
【数１９】
0004662139.tif 000020
・・・（１９）
【０１３３】
なお、式（１９）の状態確率Pi(t)は、前向き状態確率Pfi(t)と、後ろ向き状態確率Pbi(t)との乗算値を、その乗算値の、状態S1乃至SNについてのサメーション（Σ）で正規化しているので、上述の式（５）を満たす。
【０１３４】
式（１９）の状態確率Pi(t)は、出力確率密度関数bi(x)が定義されたすべての状態S1,S2,・・・,SNについて、状態遷移時に何らかのベクトルが出力される各時刻t=1,2,・・・,Tごとに計算することができる。
【０１３５】
ここで、図１０は、状態確率Pi(t)を模式的に示した表である。
【０１３６】
図１０の表において、横軸は状態Siを表し、縦軸は時刻tを表している。そして、横軸のある状態Siの列と、縦軸のある時刻tの行とが交差する欄に、時刻tにおいて、状態Siからベクトルが出力される確率である状態確率Pi(t)が記述されている。
【０１３７】
図１０の表の各欄には、図８の表の前向き状態確率Pfi(t)と、図９の表の後ろ向き状態確率Pbi(t)とを用いて、式（１９）を計算することにより得られる状態確率Pi(t)が記述される。
【０１３８】
次に、図１１は、以上のようにして状態確率Pi(t)を推定する状態確率推定処理を行う図１の状態確率推定部３の構成例を示している。
【０１３９】
状態確率推定部３は、継続時間長算出部２１、期待遷移時刻算出部２２、前向き遷移確率決定部２３Ｆおよび後ろ向き遷移確率決定部２３Ｂ、前向き状態確率算出部２４Ｆおよび後ろ向き状態確率算出部２４Ｂ、並びに状態確率算出部２５から構成されている。
【０１４０】
継続時間長算出部２１には、選択部２（図１）からHMM（の状態遷移確率aij）が供給される。
【０１４１】
継続時間長算出部２１は、選択部２から供給されるHMMの状態遷移確率aijを用いて、式（７）で表される状態Siの継続時間nの期待値di(=E[n])を、状態S1,S2,・・・,SNすべてについて算出し、期待遷移時刻算出部２２に供給する。
【０１４２】
さらに、継続時間長算出部２１は、状態S1,S2,・・・,SNそれぞれの継続時間の期待値d1,d2,・・・,dNを用いて、式（８）の全体継続時間Tを求める。そして、継続時間長算出部２１は、全体継続時間Tを必要なブロックに供給する。
【０１４３】
期待遷移時刻算出部２２は、継続時間長算出部２１から供給される、状態S1,S2,・・・,SNそれぞれの継続時間の期待値d1,d2,・・・,dNを用いて、期待遷移時刻tiと、逆期待遷移時刻ti'とを求め、期待遷移時刻tiを、前向き遷移確率決定部２３Ｆに供給するとともに、逆期待遷移時刻ti'を、後ろ向き遷移確率決定部２３Ｂに供給する。
【０１４４】
前向き遷移確率決定部２３Ｆは、期待遷移時刻算出部２２から供給される期待遷移時刻tiを用い、式（９）の前向き遷移確率qi(t)を求め、前向き状態確率算出部２４Ｆに供給する。なお、式（９）の前向き遷移確率qi(t)の分散σ2としては、例えば、あらかじめ定められた固定値を採用することもできるし、後述するようにして求められる値を採用することもできる。
【０１４５】
後ろ向き遷移確率決定部２３Ｂは、期待遷移時刻算出部２２から供給される逆期待遷移時刻ti'を用い、式（１０）の後ろ向き遷移確率ri(t)を求め、後ろ向き状態確率算出部２４Ｂに供給する。なお、式（１０）の後ろ向き遷移確率ri(t)の分散σ'2としては、例えば、あらかじめ定められた固定値を採用することもできるし、後述するようにして求められる値を採用することもできる。
【０１４６】
前向き状態確率算出部２４Ｆは、前向き遷移確率決定部２３Ｆから供給される式（９）の前向き遷移確率qi(t)を用いて、式（１３）の漸化式を計算することにより前向き状態確率Pfi(t)を求め、状態確率算出部２５に供給する。
【０１４７】
後ろ向き状態確率算出部２４Ｂは、後ろ向き遷移確率決定部２３Ｂから供給される式（１０）の後ろ向き遷移確率ri(t)を用いて、式（１７）の漸化式を計算することにより後ろ向き状態確率Pbi(t)を求め、状態確率算出部２５に供給する。
【０１４８】
状態確率算出部２５は、前向き状態確率算出部２４Ｆから供給される前向き状態確率Pfi(t)と、後ろ向き状態確率算出部２４Ｂから供給される後ろ向き状態確率Pbi(t)とを用いて、式（１９）の状態確率Pi(t)を求め、後段のベクトル時系列生成部４（図１）に供給する。
【０１４９】
次に、図１２のフローチャートを参照して、図１１の状態確率推定部３が図３のステップＳ２で行う状態確率推定処理について説明する。
【０１５０】
継続時間長算出部２１は、選択部２（図１）からHMMの供給を受け、ステップＳ２１において、選択部２からのHMMの状態遷移確率aijを用いて、式（７）で表されるHMMの各状態Siの継続時間nの期待値di(=E[n])を算出し、期待遷移時刻算出部２２に供給して、ステップＳ２２に進む。
【０１５１】
ステップＳ２２では、期待遷移時刻算出部２２は、継続時間長算出部２１からの継続時間の期待値d1,d2,・・・,dNを用いて、期待遷移時刻tiと、逆期待遷移時刻ti'とを求め、期待遷移時刻tiを、前向き遷移確率決定部２３Ｆに供給するとともに、逆期待遷移時刻ti'を、後ろ向き遷移確率決定部２３Ｂに供給して、ステップＳ２３に進む。
【０１５２】
ステップＳ２３では、前向き遷移確率決定部２３Ｆが、期待遷移時刻算出部２２からの期待遷移時刻tiを用い、式（９）の前向き遷移確率qi(t)を求め、前向き状態確率算出部２４Ｆに供給するとともに、後ろ向き遷移確率決定部２３Ｂが、期待遷移時刻算出部２２からの逆期待遷移時刻ti'を用い、式（１０）の後ろ向き遷移確率ri(t)を求め、後ろ向き状態確率算出部２４Ｂに供給して、ステップＳ２４に進む。
【０１５３】
ステップＳ２４では、前向き状態確率算出部２４Ｆが、前向き遷移確率決定部２３Ｆからの前向き遷移確率qi(t)を用い、式（１３）の前向き状態確率Pfi(t)を求めて、状態確率算出部２５に供給するとともに、後ろ向き状態確率算出部２４Ｂが、後ろ向き遷移確率決定部２３Ｂからの後ろ向き遷移確率ri(t)を用いて、式（１７）の後ろ向き状態確率Pbi(t)を求めて、状態確率算出部２５に供給して、ステップＳ２５に進む。
【０１５４】
ステップＳ２５では、状態確率算出部２５が、前向き状態確率算出部２４Ｆからの前向き状態確率Pfi(t)と、後ろ向き状態確率算出部２４Ｂからの後ろ向き状態確率Pbi(t)とを用いて、式（１９）の状態確率Pi(t)を求め、後段のベクトル時系列生成部４（図１）に供給して、状態確率推定処理を終了する。
【０１５５】
次に、図１のベクトル時系列生成部４が図３のステップＳ３で行うベクトル時系列生成処理について説明する。
【０１５６】
ベクトル時系列生成処理では、状態確率推定部３で得られる状態確率Pi(t)と、HMMの状態Siに定義されている出力確率密度関数bi(x)に基づき、ベクトル時系列  x1,x2,x3,・・・,xTが生成される。
【０１５７】
いま、HMMから時刻tにベクトルxが出力（観測）される確率分布（確率密度）を表す確率密度関数を、Ft(x)と表すこととする。
【０１５８】
状態確率Pi(t)は、時刻tに、状態Siから何らかのベクトルが出力される確率であり、出力確率密度関数bi(x)は、状態Siからベクトルxが出力される確率密度であるから、時刻tにおいて、HMMからベクトルxが出力される確率密度、即ち、HMMのいずれかの状態Siからベクトルxが出力される確率密度を表す確率密度関数Ft(x)は、式（２０）で与えられる。
【０１５９】
【数２０】
0004662139.tif 000021
・・・（２０）
【０１６０】
ここで、出力確率密度関数bi(x)が、式（４）に示した正規分布で与えられ、状態確率Pi(t)が、式（５）を満たす確率であることを考慮すれば、確率密度関数Ft(x)は、複数の正規分布（ガウシアン）を混合して得られる混合正規分布にしたがう。
【０１６１】
即ち、式（２０）の確率密度関数Ft(x)における状態確率Pi(t)は、式（４）に示した正規分布（出力確率密度関数bi(x)）に対して与えられる混合重みに相当する。但し、式（２０）において、混合重みである状態確率Pi(t)は、時刻tとともに変化する。
【０１６２】
式（２０）の確率密度関数Ft(x)によって、時刻tにHMMからベクトルxが出力される確率密度が与えられる場合、時刻tにHMMから出力されるベクトルxの期待値E[x]は、式（２１）で与えられる。
【０１６３】
【数２１】
0004662139.tif 000022
・・・（２１）
【０１６４】
式（２１）に、式（２０）を代入することにより、時刻tにHMMから出力されるベクトルxの期待値E[x]は、式（２２）で求めることができる。
【０１６５】
【数２２】
0004662139.tif 000023
・・・（２２）
【０１６６】
ここで、式（２２）の上から２行目におけるbi(x)・xの、ベクトルxに関する-∞から+∞に亘る積分∫(bi(x)・x)dxは、出力確率密度関数bi(x)で確率密度が与えられるベクトルxの代表的なベクトルとしての、ベクトルxの期待値となるが、出力確率密度関数bi(x)が式（４）に示した正規分布で与えられる場合には、式（２２）の上から３行目に示すように、式（４）の正規分布を規定する平均ベクトルμiとなる。
【０１６７】
式（２２）によれば、時刻tに出力されるベクトルxの期待値E[x]は、HMMの各状態S1,S2,・・・,SNにおいて定義される出力確率密度関数b1(x),b2(x),・・・,bN(x)がしたがう正規分布を規定する平均ベクトルμ1，μ2，・・・，μNを、混合重みP1(t),P2(t),・・・,PN(t)で線形結合することで計算されることになる。
【０１６８】
ベクトル時系列生成処理では、式（２２）により求められるベクトルxの期待値E[x]が、時刻t=1,2,・・・,Tについてそれぞれ求められ、ベクトル時系列x1,x2,・・・,xTとして出力される。
【０１６９】
次に、図１３は、以上のようにして、所定の間隔の時刻t=1,2,・・・,Tごとのベクトルを求め、ベクトル時系列x1,x2,・・・,xTとして出力するベクトル時系列生成処理を行う図１のベクトル時系列生成部４の構成例を示している。
【０１７０】
ベクトル時系列生成部４は、期待値取得部３１と期待値算出部３２とから構成される。
【０１７１】
期待値取得部３１には、選択部２（図１）からHMM（の出力確率密度関数bi(x)）が供給される。期待値取得部３１は、選択部２から供給されるHMMの出力確率密度関数bi(x)から、その出力確率密度関数bi(x)が表す確率分布にしたがうベクトルxの期待値を求め、即ち、式（２２）の上から２行目におけるbi(x)・xの、ベクトルxに関する-∞から+∞に亘る積分∫(bi(x)・x)dxの演算結果を求め、期待値算出部３２に供給する。
【０１７２】
ここでは、上述したように、出力確率密度関数bi(x)は正規分布であるため、期待値取得部３１では、その正規分布を規定する平均ベクトルμiが、ベクトルxの期待値として求められる。
【０１７３】
期待値算出部３２には、期待値取得部３１からベクトルxの期待値としての平均ベクトルμiが供給される他、状態確率推定部３（図１）から状態確率Pi(t)が供給される。期待値算出部３２は、期待値取得部３１から供給される平均ベクトルμiと、状態確率推定部３から供給される状態確率Pi(t)とを用いて、式（２２）の上から３行目の演算を行うことにより、HMMの各状態S1,S2,・・・,SNにおいて定義される出力確率密度関数b1(x),b2(x),・・・,bN(x)がしたがう正規分布を規定する平均ベクトルμ1，μ2，・・・，μNを、混合重みP1(t),P2(t),・・・,PN(t)で線形結合した線形結合結果、つまり、時刻tにHMMから出力されるベクトルxの期待値E[x]を、時刻t=1,2,・・・,Tごとに求め、その結果得られるベクトル時系列x1,x2,・・・,xTを出力する。
【０１７４】
次に、図１４のフローチャートを参照して、図１３のベクトル時系列生成部４が行う図３のステップＳ３のベクトル時系列生成処理について説明する。
【０１７５】
期待値取得部３１は、選択部２（図１）からHMMの供給を受け、ステップＳ３１において、選択部２から供給されるHMMの出力確率密度関数bi(x)から、その出力確率密度関数bi(x)が表す確率分布にしたがうベクトルxの期待値を、選択部２からのHMMにおいて出力確率密度関数b1(x),b2(x),・・・,bN(x)が定義されている各状態S1,S2,・・・,SNについて求め、期待値算出部３２に供給する。
【０１７６】
即ち、期待値取得部３１は、選択部２からのHMMにおいて出力確率密度関数b1(x),b2(x),・・・,bN(x)が定義されている各状態S1,S2,・・・,SNについて、出力確率密度関数b1(x),b2(x),・・・,bN(x)が表す正規分布を規定する平均ベクトルμ1，μ2，・・・，μNを求め（取得し）、期待値算出部３２に供給する。
【０１７７】
そして、ステップＳ３１からステップＳ３２に進み、期待値算出部３２は、期待値取得部３１から供給される平均ベクトルμ1，μ2，・・・，μNと、状態確率推定部３から供給される時刻tについての状態確率P1(t),P2(t),・・・,PN(t)との積和演算を行い、その積和演算結果ΣPi(t)・μiを、時刻tにHMMから出力されるベクトルxの期待値xt(=E[x])として求める。
【０１７８】
期待値算出部３２は、ステップＳ３２において、時刻t=1,2,・・・,Tごとに、HMMから出力されるベクトルxの期待値x1,x2,・・・,xTを求めて、ステップＳ３３に進み、そのベクトルxの期待値x1,x2,・・・,xTを、全体継続時間がTのベクトル時系列x1,x2,・・・,xTとして出力して、ベクトル時系列生成処理を終了する。
【０１７９】
以上のように、状態の遷移に応じてベクトルxが出力されるHMMの各状態Siについて、所定の間隔の時刻tごとの、状態Siがベクトルxを出力する状態確率Pi(t)を推定し、その状態確率Pi(t)と、状態Siが出力する代表的なベクトルとしての、例えば、平均ベクトルμiとに基づいて、HMMが出力する所定の間隔の時刻tごとのベクトルx1,x2,・・・,xTを求めるようにしたので、即ち、ベクトルxを出力するべきHMMの状態を確定せずに、状態確率Pi(t)によって確率的に表し、その状態確率Pi(t)に基づいて、HMMが出力するベクトルxの期待値を解析的に計算することで、ベクトル時系列x1,x2,・・・,xTを生成するようにしたので、動的特徴量を用いることなく、かつ、ベクトル時系列の生成を繰り返し試行することもなく、効率的に、滑らかに変化するベクトル時系列を生成することができる。
【０１８０】
即ち、ある状態Siから他の状態Si+1に遷移する遷移時刻t（および逆遷移時刻t'）が確率分布にしたがうとして、その遷移時刻tが、状態Siの自己遷移が継続する継続時間diを用いて求められ、さらに、その遷移時刻tを用いて、時刻tにおいて状態Siがベクトルxを出力する状態である確率を表す状態確率Pi(t)が求められる。従って、状態確率Pi(t)が高くなる状態Siが、時刻tの進行に伴い、状態S1から状態SNへと移行するように、状態確率Pi(t)は滑らかに変化し、この状態確率Pi(t)の滑らかな変化に応じて、状態確率Pi(t)を用いて生成されるベクトル時系列は滑らかに変化する。
【０１８１】
ここで、状態確率Pi(t)が時刻tに応じて変化することが、最終的に得られるベクトル時系列x1,x2,・・・,xTの時間的な変化の特性を大きく左右する。
【０１８２】
即ち、例えば、全ての状態Siにおいて、状態確率Pi(t)が時刻tに依存しない一定値とすると、時間的に変化しないベクトル時系列x1,x2,・・・,xTが得られる。
【０１８３】
また、例えば、各時刻tにおいて、ある１つの状態の状態確率Pi(t)だけが1となり、その他の状態の状態確率Pi(t)が0となるとすると、各時刻tにおいてベクトルxを出力する状態が１つの状態に固定（確定）され、その結果、ベクトル時系列が出力されるときの状態遷移系列が固定される。この場合、その固定された状態遷移系列の各状態から出力される平均ベクトルを並べたベクトル時系列が得られる。
【０１８４】
なお、上述の場合には、HMMの各状態Siにおいて定義される出力確率密度関数bi(x)が正規分布にしたがうこととしたが、出力確率密度関数bi(x)としては、正規分布以外の、例えば、混合正規分布などの、平均ベクトルを計算することができる確率分布を表す関数を採用することができる。
【０１８５】
さらに、出力確率密度関数bi(x)としては、平均ベクトルを厳密（正確に）に求めることができない確率分布であっても、平均ベクトルを近似的に求めることができる確率分布を表す関数を採用することが可能である。
【０１８６】
即ち、出力確率密度関数bi(x)としては、式（２２）の上から２行目におけるbi(x)・xの、ベクトルxに関する-∞から+∞に亘る積分∫(bi(x)・x)dxの演算、つまり、状態Siから出力される尤度が最大のベクトルx（状態Siから出力されるベクトルxの期待値E[x]）を求める演算を、厳密にまたは近似的に行うことができる関数を採用することができる。
【０１８７】
なお、式（２２）の上から２行目におけるbi(x)・xの、ベクトルxに関する-∞から+∞に亘る積分∫(bi(x)・x)dxの演算結果としては、上述した平均ベクトルμiなどの他、例えば、出力確率密度関数bi(x)の最大値を与えるベクトルxなどの、状態Siが出力確率密度関数bi(x)が表す確率分布にしたがって出力するベクトルxのうちの、いわば代表的なベクトルを採用することができる。
【０１８８】
また、上述の場合には、状態遷移確率モデルとして、left-to-right型のHMMを採用することとしたが、HMMは、left-to-right型に限定されるものではなく、例えば、状態のスキップを伴う状態遷移を持つHMMや、後ろ向きの状態遷移を持つHMM、さらには、全ての状態間の遷移が定義されたHMMであっても良い。
【０１８９】
さらに、状態遷移確率モデルとしては、HMM以外の状態遷移確率モデルを採用することが可能である。HMM以外の状態遷移確率モデルとしては、例えば、ベイジアンネットワークなどの、状態確率Pi(t)を推定することができる状態遷移確率モデルがある。
【０１９０】
ベイジアンネットワークでは、変数間の依存関係をグラフ構造で表し、各ノードに条件付き確率を割り当てることで、時系列データのモデル化が行われる。
【０１９１】
なお、ベイジアンネットワークのグラフ構造の決定は、例えば、学習に用いられる学習データの尤度とグラフ構造の複雑さとを考慮したモデルを選択することにより行われ、条件付き確率の推定には、例えば、最尤推定法やEM(Expectation Maximaization)アルゴリズムなどが利用される。ここで、ベイジアンネットワークの詳細については、例えば、本村陽一、「不確実性モデリングのための情報表現：ベイジアンネット」、２００１年、ベイジアンネットチュートリアルなどに記載されている。
【０１９２】
また、上述したように、状態確率Pi(t)が時刻tに応じて変化することが、最終的に得られるベクトル時系列x1,x2,・・・,xTの時間的な変化の特性を大きく左右することから、ベクトル時系列x1,x2,・・・,xTの特性は、状態確率Pi(t)、ひいては、状態確率Pi(t)を求めるのに用いられる式（９）の前向き遷移確率qi(t)の分散σ2や、式（１０）の後ろ向き遷移確率ri(t)の分散σ'2を調整することにより変化させることが可能である。
【０１９３】
例えば、分散σ2やσ'2を小さくすると、状態Si-1から状態Siに遷移する時刻が確定的な値に近づき、その結果、HMMがベクトル時系列を出力するときの状態の遷移の仕方、つまり、状態遷移系列も確定的になっていくので、そのような確定的な状態遷移系列の各状態から、各状態に定義されている出力確率密度関数bi(x)の平均ベクトルを順に出力したようなベクトル時系列が得られる。
【０１９４】
一方、分散σ2やσ'2を大きくすると、状態確率Pi(t)が高くなる状態Siが、時刻tの進行に伴い、状態S1から状態SNへと移行するように、状態確率pi(t)が滑らかに変化し、この状態確率Pi(t)の滑らかな変化に応じて、滑らかに変化するベクトル時系列が得られる。
【０１９５】
図１５および図１６は、分散σ2およびσ'2を変えて、ベクトル時系列を求めたシミュレーションの内容を説明する図である。
【０１９６】
即ち、図１５は、HMMの学習に用いた学習データを示している。
【０１９７】
シミュレーションでは、長さ（全体継続時間）Tが100の１次元のベクトルの時系列、つまり、長さTが100の、スカラーのデータの時系列を、HMMの学習データとして用いた。
【０１９８】
図１５においては、横軸を時刻tとするとともに、縦軸をデータの値として、学習データが示されている。
【０１９９】
図１５の学習データは、時刻t=0において、0であり、時刻tの進行とともに滑らかに減少して、時刻t=50付近で最小値となっている。さらに、図１５の学習データは、最小値となった後、時刻tの進行とともに滑らかに増加して、時刻t=100において、再び0となっている。
【０２００】
HMMの学習は、図１５の学習データを用いて、Baum-Welch法により行った。また、HMMとしては、状態数が10のleft-to-right型のHMMを用い、出力確率密度関数は正規分布に従うものとして学習を行った。
【０２０１】
図１６は、ベクトル時系列出力部１０（図１）において、上述のような学習によって得られたHMMから生成された１次元のベクトル（スカラーのデータ）の時系列を示している。
【０２０２】
図１６においては、図１５と同様に、横軸は時刻tを表し、縦軸はデータの値を表す。
【０２０３】
なお、HMMから１次元のベクトルの時系列を生成するシミュレーションでは、状態確率Pi(t)を求めるのに用いられる式（９）の前向き遷移確率qi(t)の分散σ2と、式（１０）の後ろ向き遷移確率ri(t)の分散σ'2とを、HMMのすべての状態で同一の値に固定した。そして、その固定の分散σ2およびσ'2の値としては、0.0001,36.0,400の3種類の値を用いた。
【０２０４】
図１６は、分散σ2およびσ'2の値として、0.0001,36.0,400の3種類の値を用いた場合のそれぞれにおいて得られたベクトル時系列を示している。
【０２０５】
図１６によれば、分散σ2およびσ'2の値として、0.0001という非常に小さな値を採用した場合には、上述したように、HMMがベクトル時系列を出力するときの状態遷移系列が確定的になり、その確定的な状態遷移系列の各状態から出力確率密度関数を表す正規分布を規定する平均ベクトル（平均値）が並んだような、いわば変化が段階的なベクトル時系列が出力されることを確認することができる。
【０２０６】
また、図１６によれば、分散σ2およびσ'2の値として、36.0という大きな値を採用した場合には、滑らかに変化するベクトル時系列が出力されることを確認することができる。さらに、図１６によれば、分散σ2およびσ'2の値として、400というより大きな値を採用した場合には、ベクトル時系列を時間に応じて変化する波形として見たときに、その波形が、いわば怠けたベクトル時系列が出力されることを確認することができる。
【０２０７】
以上のように、分散σ2およびσ'2の値を調整することにより、HMMから出力されるベクトル時系列の特性を変化させることができる。
【０２０８】
なお、図１６においては、分散σ2およびσ'2の値を36.0にした場合に得られるベクトル時系列が、図１５の学習データに近いものとなっている。このことから、分散σ2およびσ'2の値を適切に調整することで、学習データと近い特性のベクトル時系列を生成することができることが分かる。
【０２０９】
また、分散σ2およびσ'2（の値）の調整は、例えば、ユーザによる、図示せぬ操作部の操作や、図１の状態確率推定部３およびベクトル時系列生成部４から構成されるベクトル時系列出力部１０を使用するアプリケーション（図１では、音声合成装置）からの要求などに応じて行うことができる。
【０２１０】
さらに、分散σ2およびσ'2（の値）の調整（決定）は、その他、例えば、式（７）で求められる各状態Siの継続時間の期待値di(=E[n])に基づいて行うこともできる。
【０２１１】
即ち、式（９）の前向き遷移確率qi(t)の分散σ2は、時刻tに状態Si-1から状態Siへの遷移（前向きの遷移）が行われる直前の、状態Si-1での自己遷移が連続する継続時間の期待値di-1に基づいて、例えば、式（２３）により決定することができる。
【０２１２】
【数２３】
0004662139.tif 000024
・・・（２３）
【０２１３】
式（２３）において、cfは定数であり、例えばcf=0.5が用いられる。
【０２１４】
式（２３）によれば、式（９）の前向き遷移確率qi(t)の分散σ2が、状態Siに前向きの遷移が行われる直前の状態Si-1の継続時間の期待値di-1に基づき、その継続時間の期待値di-1が長ければ大きな値に決定され、継続時間の期待値di-1が短ければ小さな値に決定される。
【０２１５】
同様に、式（１０）の後ろ向き遷移確率ri(t)の分散σ'2は、時刻tに状態Si+1から状態Siに遡る遷移（後ろ向きの遷移）が行われる直前の、状態Si+1での自己遷移が連続する継続時間の期待値di+1に基づいて、例えば、式（２４）により決定することができる。
【０２１６】
【数２４】
0004662139.tif 000025
・・・（２４）
【０２１７】
式（２４）において、cbは定数であり、例えばcb=0.5が用いられる。
【０２１８】
式（２４）によれば、式（１０）の後ろ向き遷移確率ri(t)の分散σ'2が、状態Siに後ろ向きの遷移が行われる直前の状態Si+1の継続時間の期待値di+1に基づき、その継続時間の期待値di+1が長ければ大きな値に決定され、継続時間の期待値di+1が短ければ小さな値に決定される。
【０２１９】
次に、上述の場合には、式（７）の継続時間の期待値di(=E[n])を、例えば、小数点以下を切り上げるなどして、整数化して用いることとしたが、この整数化に起因して、HMMから出力されるベクトル時系列には、整数化をしない場合に対して誤差が生じる。
【０２２０】
この誤差は、継続時間の期待値diとして、小数点以下を含む値を用いるようにすることで低減することができる。
【０２２１】
即ち、上述の場合には、明示的な説明は省略したが、HMMの学習に用いられる学習データの時間間隔が1であることを前提として、HMMからは、時間幅が1の時間間隔の各時刻tでベクトルxが出力されることとしたため、時刻tは整数値のみをとり、従って、継続時間の期待値diも整数値のみをとることとしたが、HMMからベクトルxが出力される時刻として、小数点以下を含む値を想定することにより、継続時間の期待値diも、小数点以下を含む値を用いることができ、これにより、HMMから出力されるベクトル時系列に生じる誤差を低減することができる。
【０２２２】
即ち、状態確率推定部３（図１）において、式（７）の継続時間の期待値diを、例えば、小数点以下第２位以下を切り上げるなどして、小数第１位まで求める。さらに、状態確率推定部３において、小数第１位まで求めた継続時間の期待値diを用いて、式（９）の前向き遷移確率qi(t)と、式（１０）の後ろ向き遷移確率ri(t)とを求め、さらには、式（９）の前向き遷移確率qi(t)を用いて、式（１３）の漸化式で表される前向き状態確率Pfi(t)を求めるとともに、式（１０）の後ろ向き遷移確率ri(t)を用いて、式（１７）の漸化式で表される後ろ向き状態確率Pbi(t)を求める。
【０２２３】
但し、式（１３）の漸化式で表される前向き状態確率Pfi(t)と、式（１７）の漸化式で表される後ろ向き状態確率Pbi(t)とは、時刻tの刻み幅（時間間隔）を0.1として求める。
【０２２４】
そして、状態確率推定部３では、時刻tの刻み幅を0.1として求められた前向き状態確率Pfi(t)と後ろ向き状態確率Pbi(t)とを用い、時刻tの刻み幅を0.1とする式（１９）の状態確率Pi(t)、即ち、Pi(0.0),Pi(0.1),Pi(0.2),Pi(0.3),・・・,Pi(T+0.8),Pi(T+0.9),Pi(T+1.0)を求める。
【０２２５】
ここで、図１７は、時刻tの刻み幅を1として求められる状態確率Pi(t)（図１７上側）と、時刻tの刻み幅を0.1として求められる状態確率Pi(t)（図１７下側）とを示している。
【０２２６】
時刻tの刻み幅が0.1の状態確率Pi(t)が求められた後は、ベクトル時系列生成部４（図１）において、時刻tの刻み幅を0.1とする状態確率Pi(t)のうちの、時刻t=1,2,3,・・・,Tにおける値を用い、式（２２）の演算を行うことにより、時刻tの刻み幅が1のベクトル時系列を得ることができる。
【０２２７】
以上のように、状態確率Pi(t)を計算する時刻tの刻み幅を小さくすることで、全体の処理量は大きくなるが、継続時間の期待値diの整数化によりベクトル時系列に生じる誤差を低減することができる。
【０２２８】
なお、時刻tの刻み幅は、処理量と誤差とをバランスさせて決定することが望ましい。
【０２２９】
さらに、ここでは、時刻tの刻み幅を1から0.1に変更して状態確率Pi(t)を計算することとしたが、時刻tの刻み幅は、その他、例えば、0.5や0.01その他の値を採用することが可能であり、この時刻tの刻み幅によって、HMMから出力されるベクトル時系列に生じる誤差（HMMから出力されるベクトル時系列の精度）と、全体の処理量とを調整することができる。
【０２３０】
また、HMMから出力されるベクトル時系列の時間間隔は、状態確率Pi(t)を求める時刻tの刻み幅を最小値として調整することができる。即ち、上述のように、時刻tの刻み幅を0.1として状態確率Pi(t)を求めた場合には、HMMから出力されるベクトル時系列の時間間隔は、上述のように、1とすることもできるし、その他、例えば、0.5や0.1などとすることもできる。
【０２３１】
状態確率Pi(t)を求める時刻tの刻み幅や、HMMから出力されるベクトル時系列の時間間隔の調整は、例えば、ユーザによる、図示せぬ操作部の操作や、図１のベクトル時系列出力部１０を使用するアプリケーションからの要求などに応じて行うことができる。
【０２３２】
次に、上述の場合には、１つのHMMからベクトル時系列を生成したが、ベクトル時系列は、複数のHMMを結合して得られるHMM（以下、適宜、結合HMMという）から生成することも可能である。
【０２３３】
図１８は、left-to-right型の２つのHMM#1と#2とを結合した結合HMMを示している。
【０２３４】
図１８では、状態S0乃至SN1+1を有するleft-to-right型のHMM#1と、状態S'0乃至S'N2+1を有するleft-to-right型のHMM#2とが、その順番で結合され、１つの結合HMMとなっている。
【０２３５】
即ち、図１８では、HMM#1の終了状態SN1+1と、HMM#2の初期状態S'0とが削除され、HMM#1の状態SN1と、HMM#2の状態S'1とが接続されることにより、HMM#1と#2とが結合されている。
【０２３６】
結合HMMも、１つのHMMと同様に扱うことができ、従って、ベクトル時系列出力部１０は、上述した、１つのHMMからベクトル時系列を生成する場合と同様に、結合HMMからベクトル時系列を生成することができる。
【０２３７】
なお、結合HMMでは、HMM#1の状態SN1から、HMM#1の終了状態SN1+1に代えて、HMM#2の状態S'1に遷移するようになっており、結合HMMにおいて、HMM#1の状態SN1からHMM#2の状態S'1に遷移するときも、滑らかに変化するベクトル時系列を得ることができる。
【０２３８】
また、上述の場合には、２つのHMM#1と#2を結合したが、３以上のHMMを結合することも可能である。
【０２３９】
次に、図１９のフローチャートを参照して、上述のように、HMMを結合して、ベクトル時系列を生成する場合の図１の音声合成装置の処理について説明する。
【０２４０】
ステップＳ５１において、図１の選択部２は、HMM記憶部１に記憶されたHMMの中から、音声合成に用いる複数のHMMを選択して、ステップＳ５２に進み、その複数のHMMを、図１８で説明したように結合して、結合HMMを得る。そして、選択部２は、結合HMMを、状態確率推定部３とベクトル時系列生成部４に供給して、ステップＳ５２からステップＳ５３に進む。
【０２４１】
ステップＳ５３では、状態確率推定部３は、選択部２から供給される結合HMMの各状態Siについて、所定の間隔の時刻tごとの状態確率Pi(t)を推定する状態確率推定処理を行い、その結果得られる状態確率Pi(t)を、ベクトル時系列生成部４に供給して、ステップＳ５４に進む。
【０２４２】
ステップＳ５４では、ベクトル時系列生成部４は、状態確率推定部３から供給される状態確率Pi(t)と、選択部２から供給される結合HMMの状態Siが出力する代表的なベクトルとしての、例えば平均ベクトルμiとに基づいて、所定の間隔の時刻tごとのベクトルを求めるベクトル時系列生成処理を行い、その結果得られるベクトル時系列を出力して、ステップＳ５５に進む。
【０２４３】
ステップＳ５５では、逆フィルタ５が、ベクトル時系列生成部４が出力するベクトル時系列をフィルタリングすることにより、音声信号を得て出力し、処理を終了する。
【０２４４】
次に、図２に示したようなleft-to-right型のHMMは、ベクトル時系列のあるパターン（時系列パターン）を表現する（モデル化する）のに適している。
【０２４５】
従って、図２０に示すような、left-to-right型のHMMに対して、その終了状態SN+1の直前の状態SNから、初期状態S0の直後の状態S1に戻るような遷移を与えたHMMを考えた場合、状態SNから状態S1への遷移が行われることによって、元のHMMが表現する時系列パターンが繰り返されるような、いわば周期的な軌道のベクトル時系列（波形が周期的なベクトル時系列）を生成することが可能となる。
【０２４６】
図２０に示した、状態SNから状態S1への遷移が与えられたHMMから出力される周期的な軌道のベクトル時系列は、上述した結合HMMを利用することにより生成することができる。
【０２４７】
即ち、周期的な軌道のベクトル時系列の、例えば、１周期分のベクトル時系列に対応する時系列パターンを表現するHMMをコピーして３つ用意する。ここで、この３つのHMMを、HMM#1,#2,#3と呼ぶこととする。
【０２４８】
そして、図２１に示すように、同一の３つのHMM#1,#2,#3を、その順で、図１８の場合と同様に結合して、結合HMMとする。いま、同一の３つのHMM#1,#2,#3の１つが、状態S0乃至SN+1を有する場合、結合HMMは、図２１に示すように、HMM#1の状態SNに、HMM#2の状態S1が接続され、さらに、HMM#2の状態SNに、HMM#3の状態S1が接続された、状態S1乃至SNが３回繰り返して並ぶHMMとなる。そして、この結合HMMは、周期的な軌道のベクトル時系列の、３周期分のベクトル時系列に対応する時系列パターンを表現する。
【０２４９】
以上のような、同一の３つのHMM#1,#2,#3が結合された結合HMMも、図１８の場合と同様に、１つのHMMと同様に扱うことができ、従って、ベクトル時系列出力部１０は、上述した、１つのHMMからベクトル時系列を生成する場合と同様に、結合HMMからベクトル時系列を生成することができる。
【０２５０】
図２１の結合HMMからベクトル時系列を生成した場合、周期的な軌道のベクトル時系列の、３周期分のベクトル時系列が得られることとなるが、以下のようにすることで、任意の周期分のベクトル時系列を得ることが可能となる。
【０２５１】
即ち、状態確率推定部３（図３）において、図２１の結合HMMについて、状態確率Pi(t)を求めた後、その状態確率Pi(t)の中で、HMM#2の状態S1乃至SNに対応する分の状態確率Pi'(t)だけを取り出す。そして、ベクトル時系列生成部４において、その状態確率Pi'(t)から求まるベクトル時系列を１周期分として出力し、これを繰り返すことで周期的な軌道のベクトル時系列を生成することが可能となる。
【０２５２】
ここで、図２１の結合HMMにおいては、HMM#2の左側のHMM#1と、HMM#2の右側のHMM#3との影響により、HMM#1の状態SNからHMM#2の状態S1に亘って得られるベクトル時系列と、HMM#2の状態SNからHMM#3の状態S1に亘って得られるベクトル時系列は滑らかに変化するものとなることから、HMM#2の状態S1乃至SNに対応する分の状態確率Pi'(t)から求まるベクトル時系列を１周期分として出力することを繰り返すことで得られるベクトル時系列においても、HMM#2の状態SNから状態S1に亘って得られる部分は滑らかに変化することになる。
【０２５３】
次に、図２２のフローチャートを参照して、上述のように、HMMを結合して、周期的な軌道のベクトル時系列を生成する場合の図１の音声合成装置の処理について説明する。
【０２５４】
ステップＳ６１において、図１の選択部２は、HMM記憶部１に記憶されたHMMの中から、音声合成に用いる１つのHMMを選択して、ステップＳ６２に進み、その１つのHMMをコピーし、同一の３つのHMM#1,#2,#3を得る。さらに、選択部２は、３つのHMM#1,#2,#3をその順に結合し、これにより、図２１に示した結合HMMを得る。そして、選択部２は、結合HMMを、状態確率推定部３とベクトル時系列生成部４に供給して、ステップＳ６２からステップＳ６３に進む。
【０２５５】
ステップＳ６３では、状態確率推定部３は、選択部２から供給される結合HMMの各状態Siについて、所定の間隔の時刻tごとの状態確率Pi(t)を推定する状態確率推定処理を行って、ステップＳ６４に進み、状態確率推定処理の結果得られる状態確率Pi(t)から、HMM#2の状態S1乃至SNに対応する分の状態確率Pi'(t)だけを取り出し、ベクトル時系列生成部４に供給して、ステップＳ６５に進む。
【０２５６】
ステップＳ６５では、ベクトル時系列生成部４は、ベクトル時系列生成処理を、状態確率推定部３からの状態確率Pi'(t)と、選択部２から供給される結合HMMのうちのHMM#2の部分とを用いて行い、その結果得られる１周期分のベクトル時系列を出力して、ステップＳ６６に進む。
【０２５７】
ステップＳ６６では、逆フィルタ５が、ベクトル時系列生成部４が出力するベクトル時系列をフィルタリングすることにより、音声信号を得て出力し、ステップＳ６７に進む。
【０２５８】
ステップＳ６７では、ベクトル時系列生成部４が、ベクトル時系列の出力を、例えば、あらかじめ定められた回数などの所定の回数だけ繰り返して行ったかどうかを判定し、まだ、所定の回数だけ繰り返し行っていないと判定した場合、ステップＳ６５に戻り、以下、同様の処理が繰り返される。なお、２回目以降のステップＳ６５では、ベクトル時系列生成処理を再度行っても良いが、ベクトル時系列生成処理を行わずに、１回目のステップＳ６５で出力したベクトル時系列を記憶しておき、そのベクトル時系列を出力しても良い。
【０２５９】
一方、ステップＳ６７において、ベクトル時系列の出力を所定の回数だけ繰り返し行ったと判定された場合、処理を終了する。
【０２６０】
なお、図２１では、同一の３つのHMM#1,#2,#3を結合するようにしたが、同一の４以上のHMMを結合しても良い。この場合、その４以上のHMMを結合した結合HMMから得られる状態確率Pi(t)から、先頭のHMMと最後のHMMとを除く１以上のHMMに対応する分の状態確率Pi'(t)だけを取り出し（抽出し）、その状態確率Pi'(t)を用いて、ベクトル時系列を生成すれば良い。
【０２６１】
次に、上述の場合には、HMMの各状態Siの継続時間の期待値diの総和である式（８）の全体継続時間Tを、HMMから出力されるベクトル時系列の長さ（ベクトル時系列のベクトルの個数）としたが、HMMから出力されるベクトル時系列の長さは、例えば、ユーザによる、図示せぬ操作部の操作や、図１のベクトル時系列出力部１０を使用するアプリケーションからの要求などに応じて調整することができる。
【０２６２】
HMMから出力されるベクトル時系列の長さの調整は、例えば、期待遷移時刻ti（および逆期待遷移時刻ti'）を求めるときに用いられる継続時間の期待値diを、例えば、式（２５）にしたがって調整することによって行うことができる。
【０２６３】
【数２５】
0004662139.tif 000026
・・・（２５）
【０２６４】
式（２５）において、係数αを1.0とした場合、継続時間の期待値diは、式（７）で求められる値(E[n])のままとなる。また、式（２５）において、係数αを1.0よりも大の値とした場合、継続時間の期待値diは、式（７）で求められる値よりも大となり、逆に、係数αを1.0よりも小の値とした場合、継続時間の期待値diは、式（７）で求められる値よりも小となる。
【０２６５】
継続時間の期待値diを、例えば、式（２５）にしたがって調整することにより、式（８）で求められる全体継続時間T、つまり、HMMから出力されるベクトル時系列の長さは、調整をしない場合（αが1.0の場合）のα倍となる。
【０２６６】
なお、式（２５）における係数αは、HMMの状態Siすべてについて同一の値とすることもできるし、状態Siごとに変えることもできる。即ち、状態S1の継続時間の期待値d1の調整には、例えば、α=0.7を用い、状態SNの継続時間の期待値dNの調整には、例えば、α=1.5を用いること等が可能である。式（２５）における係数αを、HMMの状態Siごとに変えた場合、HMMから出力されるベクトル時系列の長さを部分的に調整することが可能となる。
【０２６７】
次に、以上においては、図１のベクトル時系列出力部１０において、１つのHMM（結合HMMを含む）を用いて、そのHMMから出力されるベクトル時系列を生成するようにしたが、その他、例えば、複数のHMMを用いて、その複数のHMMそれぞれから出力されるベクトル時系列を混合（合成）したベクトル時系列、即ち、複数のHMMそれぞれから出力されるベクトル時系列の、いわば中間的なベクトル時系列を生成することが可能である。
【０２６８】
ここで、複数のHMMそれぞれから出力されるベクトル時系列を混合したベクトル時系列は、その複数のHMMを、１つのHMMに混合（合成）し、そのHMM（以下、適宜、合成HMMという）から出力されるベクトル時系列であると考えることができる。
【０２６９】
なお、合成HMMは、結合HMMのような、単純に、複数のHMMの状態どうしを接続（結合）したHMMとは異なる。即ち、仮に、HMMを、xy座標系上の点で表すことができるとすると、合成HMMは、直感的には、例えば、xy座標系上の２点が与えられたときに、その２点を使って、その２点を通る直線上の任意の点を表現することができるが如く、２つのHMMを表す２点を通る直線上の任意の点で表されるHMMである。
【０２７０】
図２３は、２つのHMM#1と#2を用いて、そのHMM#1から出力されるベクトル時系列とHMM#2から出力されるベクトル時系列とを混合した中間的なベクトル時系列を生成する方法を説明する図である。
【０２７１】
図２３において、HMM#1は、N+2個の状態S0,S1,S2,・・・,SN,SN+1からなるleft-to-right型のHMMであり、HMM#2は、M+2個の状態S'0,S'1,S'2,・・・,S'M,S'M+1からなるleft-to-right型のHMMである。
【０２７２】
いま、HMM#1（から出力されるベクトル時系列）と、HMM#2（から出力されるベクトル時系列）とを、β：１−βの比率で混合することとする。
【０２７３】
ここで、以下、適宜、βを、混合係数という。また、混合係数βは、0.0<=β<=1.0の範囲の値であるとする。
【０２７４】
混合係数β=1.0の場合には、HMM#1だけを用いて生成されるベクトル時系列と同一のベクトル時系列が生成されなければならず、混合係数β=0.0の場合、HMM#2だけを用いて生成されるベクトル時系列と同一のベクトル時系列が生成されなければならない。そして、混合係数βが、0より大で1より小さい値である場合、その混合係数βの値に応じて、HMM#1を用いて生成されるベクトル時系列とHMM#2を用いて生成されるベクトル時系列とを混合した中間的なベクトル時系列が生成されなければならない。
【０２７５】
そこで、まず、HMM#1の各状態Siの継続時間の期待値d1,d2,・・・,dNを、式（７）により求めるとともに、HMM#2の各状態S'jの継続時間の期待値d'1,d'2,・・・,dMを、式（７）により求める。
【０２７６】
HMM#1の全体継続時間（HMM#1を用いて生成されるベクトル時系列の長さ）Tは、式（２６）に示すように、HMM#1の各状態Siの継続時間の期待値d1,d2,・・・,dNの総和となる。
【０２７７】
【数２６】
0004662139.tif 000027
・・・（２６）
【０２７８】
同様に、HMM#2の全体継続時間（HMM#2を用いて生成されるベクトル時系列の長さ）T'は、式（２７）に示すように、HMM#2の各状態S'jの継続時間の期待値d'1,d'2,・・・,dMの総和となる。
【０２７９】
【数２７】
0004662139.tif 000028
・・・（２７）
【０２８０】
式（２６）のHMM#1の全体継続時間Tと、式（２７）のHMM#2の全体継続時間T'とは、必ずしも一致するとは限らない。そこで、HMM#1を用いて生成される長さがTのベクトル時系列と、HMM#2を用いて生成される長さがT'のベクトル時系列とを混合した中間的なベクトル時系列（以下、適宜、混合ベクトル時系列という）の長さT''を、どのようにするかが問題となるが、例えば、混合係数βに基づき、式（２８）にしたがって決定することとする。
【０２８１】
【数２８】
0004662139.tif 000029
・・・（２８）
【０２８２】
HMM#1を用いて生成される長さがTのベクトル時系列と、HMM#2を用いて生成される長さがT'のベクトル時系列との長さを、式（２８）で求められる混合ベクトル時系列の長さT''に調整する（一致させる）ため、HMM#1を用いて生成されるベクトル時系列の長さを調整する係数γと、HMM#2を用いて生成されるベクトル時系列の長さを調整する係数γ'とを、それぞれ、式（２９）と式（３０）とにより求める。
【０２８３】
【数２９】
0004662139.tif 000030
・・・（２９）
【０２８４】
【数３０】
0004662139.tif 000031
・・・（３０）
【０２８５】
そして、HMM#1の各状態Siの継続時間の期待値d1,d2,・・・,dNを、係数γを用いて、γ×d1,γ×d2,・・・,γ×dNに調整する。同様に、HMM#2の各状態S'jの継続時間の期待値d'1,d'2,・・・,dMも、係数γ'を用いて、γ'×d'1,γ'×d'2,・・・,γ'×d'Mに調整する。
【０２８６】
以上の結果、HMM#1の全体継続時間はγ×T(=T'')となり、HMM#2の全体継続時間はγ'×T'(=T'')となって、いずれも、式（２８）の混合ベクトル時系列の長さT''となる。
【０２８７】
以上のように、HMM#1の全体継続時間と、HMM#2の全体継続時間とが、式（２８）の混合ベクトル時系列の長さT''となるように、HMM#1の各状態Siの継続時間の期待値d1,d2,・・・,dNを、それぞれγ×d1,γ×d2,・・・,γ×dNに調整するとともに、HMM#2の各状態S'jの継続時間の期待値d'1,d'2,・・・,dMを、それぞれγ'×d'1,γ'×d'2,・・・,γ'×d'Mに調整した後、HMM#1について、調整後の継続時間の期待値γ×diを用いて、状態確率を求めるとともに、HMM#2についても、調整後の継続時間の期待値γ×d'jを用いて、状態確率を求める。
【０２８８】
ここで、HMM#1について求められる状態確率を、Pi(t)と表し、HMM#2について求められる状態確率を、P'j(t)と表す。
【０２８９】
HMM#1については、各状態Si(i=1,2,・・・,N)に対して時刻t=1,2,・・・,T''の状態確率Pi(t)が求められ、HMM#2については、各状態S'j(j=1,2,・・・,M)に対して時刻t=1,2,・・・,T''の状態確率P'j(t)が求められる。
【０２９０】
HMM#1の状態確率Pi(t)は、時刻tにおいて、HMM#1の状態S1, S2, S3,・・・,SNがベクトルを出力する確率を表し、HMM#2の状態確率P'j(t)は、時刻tにおいて、HMM#2の状態S'1, S'2, S'3,・・・,S'Mがベクトルを出力する確率を表す。
【０２９１】
即ち、時刻tにおいて、HMM#1の状態S1, S2, S3,・・・,SNがベクトルを出力する確率は、それぞれ、P1(t),P2(t),P3(t),・・・,PN(t)であり、HMM#2の状態S'1, S'2, S'3,・・・,S'Mがベクトルを出力する確率は、それぞれ、P'1(t),P'2(t),P'3(t),・・・,P'M(t)である。
【０２９２】
混合ベクトル時系列の時刻tのベクトルxtは、時刻tにおいて、HMM#1から出力されるベクトルと、HMM#2から出力されるベクトルとを、混合係数βにしたがった比率β：１−βで混合したベクトルであり、式（３１）で与えられる。
【０２９３】
【数３１】
0004662139.tif 000032
・・・（３１）
【０２９４】
ここで、式（３１）において、μiは、HMM#1の状態Siに定義された出力確率密度関数から求められる平均ベクトルであり、μ'jは、HMM#2の状態S'jに定義された出力確率密度関数から求められる平均ベクトルである。
【０２９５】
式（３１）にしたがい、ベクトルxtを、時刻t=1,2,・・・.,T''それぞれに対して求めることにより、長さがT''のベクトル時系列x1,x2,・・・,xT''を得ることができる。
【０２９６】
なお、式（５）から、HMM#1の状態S1乃至SNに亘る状態確率Pi(t)のサメーションΣPi(t)と、HMM#2の状態S1乃至SMに亘る状態確率P'j(t)のサメーションΣP'j(t)とは、いずれも1であり、従って、式（３１）の混合係数β、状態確率Pi(t)、P'j(t)については、式（３２）が成立する。
【０２９７】
【数３２】
0004662139.tif 000033
・・・（３２）
【０２９８】
式（３１）および式（３２）によれば、混合ベクトル時系列の時刻tのベクトルxtは、HMM#1とHMM#2のすべての状態から出力される平均ベクトルを線形結合したベクトルとなっており、その線形結合に用いられる重みが混合係数β、状態確率Pi(t)、および状態確率P'j(t)によって調整されることになる。
【０２９９】
また、上述の場合には、混合係数βが、式0.0<=β<=1.0を満たすものとして説明を行ったが、混合係数βの値が負の場合であっても、1.0より大きい場合であっても、式（３２）は成立する。従って、任意の値の混合係数βを採用して、式（３１）によりベクトルxtを求めることができる。混合係数βが、式0.0<=β<=1.0を満たす値である場合には、HMM#1と#2との、いわば内分点に相当する合成HMMから出力されるベクトル時系列を求めることができる。また、混合係数βが、例えば、-1.0のような負の値である場合や、例えば、1.5のような1.0より大きい値である場合には、HMM#1と#2との、いわば外分点に相当する合成HMMから出力されるベクトル時系列を求めることができる。
【０３００】
ここで、上述のような混合ベクトル時系列の生成は、HMM#1の状態数NとHMM#2の状態数Mが一致する場合であっても、一致しない場合であっても行うことができる。
【０３０１】
また、上述の場合には、継続時間の期待値をそのまま用いて求められる式（２６）のHMM#1の全体継続時間Tと、式（２７）のHMM#2の全体継続時間T'とを用い、式（２８）にしたがって、混合ベクトル時系列の長さT"を決定するようにしたが、混合ベクトル時系列の長さT"は、その他、例えば、式（２５）によって、HMM#1や#2の継続時間の期待値を調整し、その調整後の継続時間の期待値を用いて求められるHMM#1と#2の全体継続時間を用いて決定することも可能である。
【０３０２】
また、上述の場合には、２つのHMM#1と#2を混合するようにしたが（HMM#1から出力されるベクトル時系列とHMM#2から出力されるベクトル時系列とを混合するようにしたが）、その他、３以上のHMMを混合することも可能である。
【０３０３】
次に、図２４のフローチャートを参照して、上述のように、HMMを混合する場合に、図１１の状態確率推定部３で行われる状態確率推定処理について説明する。なお、ここでは、２つのHMM#1と#2を混合することとし、その２つのHMM#1と#2が、選択部２（図１）によって、HMM記憶部１から読み出され、状態確率推定部３に供給されることとする。
【０３０４】
継続時間長算出部２１は、選択部２（図１）からHMM#1と#2の供給を受け、ステップＳ７１において、選択部２からのHMM#1の状態遷移確率aijを用いて、式（７）で表されるHMM#1の各状態Siの継続時間nの期待値di(=E[n])を算出するとともに、選択部２からのHMM#2の状態遷移確率a'ijを用いて、式（７）で表されるHMM#2の各状態S'jの継続時間nの期待値d'j(=E[n])を算出して、ステップＳ７２に進む。
【０３０５】
ステップＳ７２では、継続時間長算出部２１は、HMM#1の各状態Siの継続時間nの期待値diと、HMM#2の各状態S'jの継続時間nの期待値d'jとを調整する。
【０３０６】
即ち、継続時間長算出部２１は、HMM#1の全体継続時間（HMM#1を用いて生成されるベクトル時系列の長さ）Tを、式（２６）にしたがい、HMM#1の各状態Siの継続時間の期待値d1,d2,・・・,dNの総和をとることによって求めるとともに、HMM#2の全体継続時間（HMM#2を用いて生成されるベクトル時系列の長さ）T'を、式（２７）にしたがい、HMM#2の各状態S'jの継続時間の期待値d'1,d'2,・・・,dMの総和をとることによって求める。
【０３０７】
さらに、継続時間長算出部２１は、HMM#1の全体継続時間T、HMM#2の全体継続時間T'、および混合係数βを用い、式（２８）にしたがって、HMM#1と#2とを混合した合成HMMから出力される混合ベクトル時系列の長さT''を求める。
【０３０８】
ここで、混合係数βは、例えば、あらかじめ設定しておくことができる。また、混合係数βは、例えば、ユーザが、図示せぬ操作部を操作することにより、あるいは、図１の状態確率推定部３およびベクトル時系列生成部４から構成されるベクトル時系列出力部１０を使用するアプリケーションから与えることができる。
【０３０９】
継続時間長算出部２１は、混合ベクトル時系列の長さT''を求めると、その長さT''に基づき、HMM#1を用いて生成されるベクトル時系列の長さを調整する係数γを、式（２９）にしたがって求めるとともに、HMM#2を用いて生成されるベクトル時系列の長さを調整する係数γ'を、式（３０）にしたがって求める。
【０３１０】
そして、継続時間長算出部２１は、HMM#1の各状態Siの継続時間の期待値d1,d2,・・・,dNを、係数γを用いて、γ×d1,γ×d2,・・・,γ×dNに調整するとともに、HMM#2の各状態S'jの継続時間の期待値d'1,d'2,・・・,dMも、係数γ'を用いて、γ'×d'1,γ'×d'2,・・・,γ'×d'Mに調整する。
【０３１１】
その後、継続時間長算出部２１は、HMM#1の各状態Siの継続時間の期待値の調整後の値γ×d1,γ×d2,・・・,γ×dNと、HMM#2の各状態S'jの継続時間の期待値の調整後の値γ'×d'1,γ'×d'2,・・・,γ'×d'Mを、期待遷移時刻算出部２２に供給して、ステップＳ７２からステップＳ７３に進む。
【０３１２】
ステップＳ７３では、期待遷移時刻算出部２２は、継続時間長算出部２１からのHMM#1の各状態Siの継続時間の期待値の調整後の値γ×d1,γ×d2,・・・,γ×dNを用いて、期待遷移時刻tiと、逆期待遷移時刻ti'とを求め、期待遷移時刻tiを、前向き遷移確率決定部２３Ｆに供給するとともに、逆期待遷移時刻ti'を、後ろ向き遷移確率決定部２３Ｂに供給して、ステップＳ７４に進む。
【０３１３】
ステップＳ７４では、前向き遷移確率決定部２３Ｆが、期待遷移時刻算出部２２からの期待遷移時刻tiを用い、式（９）の前向き遷移確率qi(t)を求め、前向き状態確率算出部２４Ｆに供給するとともに、後ろ向き遷移確率決定部２３Ｂが、期待遷移時刻算出部２２からの逆期待遷移時刻ti'を用い、式（１０）の後ろ向き遷移確率ri(t)を求め、後ろ向き状態確率算出部２４Ｂに供給して、ステップＳ７５に進む。
【０３１４】
ステップＳ７５では、前向き状態確率算出部２４Ｆが、前向き遷移確率決定部２３Ｆからの前向き遷移確率qi(t)を用い、式（１３）の前向き状態確率Pfi(t)を求めて、状態確率算出部２５に供給するとともに、後ろ向き状態確率算出部２４Ｂが、後ろ向き遷移確率決定部２３Ｂからの後ろ向き遷移確率ri(t)を用いて、式（１７）の後ろ向き状態確率Pbi(t)を求めて、状態確率算出部２５に供給して、ステップＳ７６に進む。
【０３１５】
ステップＳ７６では、状態確率算出部２５が、前向き状態確率算出部２４Ｆからの前向き状態確率Pfi(t)と、後ろ向き状態確率算出部２４Ｂからの後ろ向き状態確率Pbi(t)とを用いて、式（１９）の状態確率Pi(t)、即ち、HMM#1の各状態Si(i=1,2,・・・,N)が各時刻t(=1,2,・・・,T''(=γ×T))においてベクトルを出力する確率である状態確率Pi(t)を求める。
【０３１６】
ステップＳ７３乃至Ｓ７６の処理は、HMM#2についても同様にして行われ、これにより、状態確率算出部２５では、HMM#2についての式（１９）の状態確率Pi(t)、即ち、HMM#2の各状態Sj(j=1,2,・・・,N)が各時刻t(=1,2,・・・,T''(=γ'×T'))においてベクトルを出力する確率である状態確率P'j(t)も求められる。
【０３１７】
そして、状態確率算出部２５は、HMM#1についての状態確率Pi(t)と、HMM#2についての状態確率P'j(t)とを、後段のベクトル時系列生成部４（図１）に供給して、状態確率推定処理を終了する。
【０３１８】
次に、図２５のフローチャートを参照して、上述のように、HMMを混合する場合に、図１３のベクトル時系列生成部４で行われるベクトル時系列生成処理について説明する。なお、ここでは、図２４の場合と同様に、２つのHMM#1と#2を混合することとし、その２つのHMM#1と#2が、選択部２（図１）によって、HMM記憶部１から読み出され、ベクトル時系列生成部４に供給されることとする。
【０３１９】
ベクトル時系列生成部４には、選択部２（図１）からHMM#1と#2が供給されるとともに、状態確率推定部３（図１）から、図２４の状態確率推定処理が行われることにより得られるHMM#1についての状態確率Pi(t)と、HMM#2についての状態確率P'j(t)とが供給される。
【０３２０】
期待値取得部３１は、選択部２（図１）からHMM#1と#2の供給を受け、ステップＳ８１において、選択部２から供給されるHMM#1の出力確率密度関数bi(x)から、その出力確率密度関数bi(x)が表す確率分布にしたがうベクトルxの期待値を、選択部２からのHMM#1において出力確率密度関数b1(x),b2(x),・・・,bN(x)が定義されている各状態S1,S2,・・・,SNについて求め、期待値算出部３２に供給する。
【０３２１】
即ち、期待値取得部３１は、選択部２からのHMM#1において出力確率密度関数b1(x),b2(x),・・・,bN(x)が定義されている各状態S1,S2,・・・,SNについて、出力確率密度関数b1(x),b2(x),・・・,bN(x)が表す正規分布を規定する平均ベクトルμ1，μ2，・・・，μNを求め、期待値算出部３２に供給する。
【０３２２】
同様に、期待値取得部３１は、選択部２からのHMM#2についても、HMM#2において出力確率密度関数b'1(x),b'2(x),・・・,b'M(x)が定義されている各状態S'1,S'2,・・・,S'Mについて、出力確率密度関数b'1(x),b'2(x),・・・,b'M(x)が表す正規分布を規定する平均ベクトルμ'1，μ'2，・・・，μ'Mを求め、期待値算出部３２に供給する。
【０３２３】
そして、ステップＳ８１からステップＳ８２に進み、期待値算出部３２は、状態確率推定部３（図１）からのHMM#1についての状態確率Pi(t)と、HMM#2についての状態確率P'j(t)との供給を受け、期待値取得部３１から供給されるHMM#1についての平均ベクトルμ1，μ2，・・・，μNと、状態確率推定部３から供給される時刻tについてのHMM#1の状態確率P1(t),P2(t),・・・,PN(t)との積和演算、つまり、式（３１）の右辺第１項の括弧内のサメーションの演算を行い、その積和演算結果ΣPi(t)・μiを、時刻tにHMM#1から出力されるベクトルの期待値として求める。
【０３２４】
同様に、期待値算出部３２は、期待値取得部３１から供給されるHMM#2についての平均ベクトルμ'1，μ'2，・・・，μ'Mと、状態確率推定部３から供給される時刻tについてのHMM#2の状態確率P'1(t),P'2(t),・・・,P'M(t)との積和演算、つまり、式（３１）の右辺第２項の括弧内のサメーションの演算を行い、その積和演算結果ΣP'j(t)・μ'jを、時刻tにHMM#2から出力されるベクトルの期待値として求める。
【０３２５】
期待値算出部３２は、ステップＳ８２において、時刻t=1,2,・・・,T''ごとの、HMM#1から出力されるベクトルxの期待値ΣPi(t)・μiと、HMM#2から出力されるベクトルxの期待値ΣP'j(t)・μ'jとを求めると、ステップＳ８３に進み、式（３１）にしたがい、時刻tごとに、HMM#1から出力されるベクトルxの期待値ΣPi(t)・μiと、HMM#2から出力されるベクトルxの期待値ΣP'j(t)・μ'jとを、混合係数βに基づく比率β:1-βで混合し、全体継続時間がT''の混合ベクトル時系列x1,x2,・・・,xTを求める。そして、期待値算出部３２は、ステップＳ８３からステップＳ８４に進み、混合ベクトル時系列x1,x2,・・・,xTを出力して、ベクトル時系列生成処理を終了する。
【０３２６】
以上のように、各時刻tにおいて、HMMの各状態Siがベクトルを出力する確率である状態確率Pi(t)を導入し、その状態確率Pi(t)に基づき、HMMが出力するベクトルxの期待値を解析的に計算することで、ベクトル時系列x1,x2,・・・,xTを生成するようにしたので、滑らかに変化する時系列データを容易に得ることができる他、状態確率Pi(t)を求める時刻tの時間間隔の調整等によって、HMMから出力されるベクトル時系列の長さや時間間隔その他の特性の調整を容易に行うことが可能となる。
【０３２７】
また、複数のHMMどうしを結合した結合HMMからのベクトル時系列の生成や、周期的なベクトル時系列の生成、さらには、複数のHMMを混合した合成HMMからのベクトル時系列（混合ベクトル時系列）の生成なども容易に行うことが可能となる。
【０３２８】
即ち、例えば、１の状態から他の１の状態に遷移する時刻（期待遷移時刻ti、逆期待遷移時刻t'i）が所定の確率分布としての、例えば、正規分布にしたがうこととして、状態確率Pi(t)が推定されるが、その正規分布の分散（式（９）の分散σ2や式（１０）の分散σ'2）を調整可能としたので、その調整によって、HMMから出力されるベクトル時系列の特性を、容易に調整することができる。
【０３２９】
さらに、例えば、状態確率Pi(t)を推定する時刻の間隔も、1だけでなく、0.1等に調整可能としたので、その調整によって、HMMから出力されるベクトル時系列のベクトル間の時間間隔を、容易に調整することができる。
【０３３０】
また、例えば、複数のHMMを結合することにより得られる新たな状態遷移確率モデルとしての結合HMMの各状態について、状態確率Pi(t)を推定することにより、複数のHMMそれぞれから出力されるベクトル時系列を並べたベクトル時系列であって、滑らかに変化するベクトル時系列を、容易に生成することができる。
【０３３１】
さらに、例えば、同一の３つのHMM#1,#2,#3を結合した結合HMMについて、状態確率Pi(t)を推定して、その状態確率Pi(t)のうちの、HMM#2の各状態に対応する分の状態確率Pi'(t)だけを取り出し、その状態確率Pi'(t)に基づいて、ベクトル時系列を生成することにより、周期的なベクトル時系列を、容易に生成することができる。
【０３３２】
また、例えば、HMM#1の状態確率Pi(t)と、HMM#2の状態確率P'j(t)とを、HMM#1が出力するベクトル時系列の長さと、HMM#2が出力するベクトル時系列の長さとが同一になるように調整をして推定し、HMM#1の状態確率Pi(t)とHMM#1の状態が出力する代表的なデータとしての平均ベクトルμi、および、HMM#2の状態確率P'j(t)とHMM#2の状態が出力する代表的なデータとしての平均ベクトルμ'jに基づいて、ベクトル時系列を生成することにより、HMM#1とHMM#2とを混合した合成HMMが出力する混合ベクトル時系列を、容易に得ることができる。即ち、HMM#1および#2のいずれでもない合成HMMが出力するベクトル時系列を、容易に得ることができる。
【０３３３】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０３３４】
そこで、図２６は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０３３５】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク１０５やＲＯＭ１０３に予め記録しておくことができる。
【０３３６】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体１１１に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体１１１は、いわゆるパッケージソフトウエアとして提供することができる。
【０３３７】
なお、プログラムは、上述したようなリムーバブル記録媒体１１１からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部１０８で受信し、内蔵するハードディスク１０５にインストールすることができる。
【０３３８】
コンピュータは、CPU(Central Processing Unit)１０２を内蔵している。CPU１０２には、バス１０１を介して、入出力インタフェース１１０が接続されており、CPU１０２は、入出力インタフェース１１０を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部１０７が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)１０３に格納されているプログラムを実行する。あるいは、また、CPU１０２は、ハードディスク１０５に格納されているプログラム、衛星若しくはネットワークから転送され、通信部１０８で受信されてハードディスク１０５にインストールされたプログラム、またはドライブ１０９に装着されたリムーバブル記録媒体１１１から読み出されてハードディスク１０５にインストールされたプログラムを、RAM(Random Access Memory)１０４にロードして実行する。これにより、CPU１０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU１０２は、その処理結果を、必要に応じて、例えば、入出力インタフェース１１０を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部１０６から出力、あるいは、通信部１０８から送信、さらには、ハードディスク１０５に記録等させる。
【０３３９】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０３４０】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０３４１】
なお、本実施の形態では、ベクトル時系列を出力するベクトル時系列出力部１０を、音声合成装置に適用した場合について説明したが、ベクトル時系列出力部１０は、音声合成装置の他、ベクトル時系列、つまり、時系列の信号を入力として、その時系列の信号にしたがって処理を行う各種のシステム、即ち、例えば、時系列の信号であるモータ信号にしたがってアクチュエータ（モータ）を駆動することにより、腕や脚に対応する部分を動かすロボットなどに適用することができる。
【０３４２】
また、本実施の形態における「ベクトル」には、１次元のベクトル、つまり、スカラー量も含まれる。
【０３４３】
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０３４４】
【図１】本発明を適用した音声合成装置の一実施の形態の構成例を示すブロック図である。
【図２】left-to-right型のHMMの例を示す図である。
【図３】音声合成装置の処理を説明するフローチャートである。
【図４】left-to-right型のHMMにおける状態遷移の仕方の例を示す図である。
【図５】遷移時刻tがしたがう、平均値が期待遷移時刻tiで、分散がσ2の正規分布を示す図である。
【図６】前向き遷移確率qi(t)とHMMの状態との関係を示す図である。
【図７】後ろ向き遷移確率ri(t)とHMMの状態との関係を示す図である。
【図８】前向き状態確率Pfi(t)を模式的に示した図である。
【図９】後ろ向き状態確率Pbi(t)を模式的に示した図である。
【図１０】状態確率Pi(t)を模式的に示した図である。
【図１１】状態確率推定部３の構成例を示すブロック図である。
【図１２】状態確率推定処理を説明するフローチャートである。
【図１３】ベクトル時系列生成部４の構成例を示すブロック図である。
【図１４】ベクトル時系列生成処理を説明するフローチャートである。
【図１５】シミュレーションでのHMMの学習に用いた学習データを示す図である。
【図１６】シミュレーションによってHMMから生成された１次元のベクトル時系列を示す図である。
【図１７】時刻tの刻み幅を1として求められる状態確率Pi(t)と、時刻tの刻み幅を0.1として求められる状態確率Pi(t)とを示す図である。
【図１８】２つのHMM#1と#2とを結合した結合HMMを示す図である。
【図１９】HMMを結合して、ベクトル時系列を生成する場合の音声合成装置の処理を説明するフローチャートである。
【図２０】終了状態SN+1の直前の状態SNから、初期状態S0の直後の状態S1に戻る遷移を与えたHMMを示す図である。
【図２１】同一の３つのHMM#1,#2,#3を、その順で結合した結合HMMを示す図である。
【図２２】周期的な軌道のベクトル時系列を生成する場合の音声合成装置の処理を説明するフローチャートである。
【図２３】HMM#1から出力されるベクトル時系列とHMM#2から出力されるベクトル時系列とを混合した中間的なベクトル時系列を生成する方法を説明する図である。
【図２４】HMMを混合する場合の、状態確率推定部３で行われる状態確率推定処理を説明するフローチャートである。
【図２５】HMMを混合する場合の、ベクトル時系列生成部４で行われるベクトル時系列生成処理を説明するフローチャートである。
【図２６】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【０３４５】
１  HMM記憶部，  ２  選択部，    ３  状態確率推定部，  ４  ベクトル時系列生成部，  ５  逆フィルタ，  １０  ベクトル時系列出力部，  ２１  継続時間長算出部，  ２２  期待遷移時刻算出部，  ２３Ｆ  前向き遷移確率決定部，  ２３Ｂ  後ろ向き遷移確率決定部，  ２４Ｆ  前向き状態確率算出部，  ２４Ｂ  後ろ向き状態確率算出部，  ２５  状態確率算出部，  ３１  期待値取得部，  ３２  期待値算出部，  １０１  バス，  １０２  CPU，  １０３  ROM，  １０４  RAM，  １０５  ハードディスク，  １０６  出力部，  １０７  入力部，  １０８  通信部，  １０９  ドライブ，  １１０  入出力インタフェース，  １１１  リムーバブル記録媒体
【図１】
0004662139.tif 000034
【図２】
0004662139.tif 000035
【図３】
0004662139.tif 000036
【図４】
0004662139.tif 000037
【図５】
0004662139.tif 000038
【図６】
0004662139.tif 000039
【図７】
0004662139.tif 000040
【図８】
0004662139.tif 000041
【図９】
0004662139.tif 000042
【図１０】
0004662139.tif 000043
【図１１】
0004662139.tif 000044
【図１２】
0004662139.tif 000045
【図１３】
0004662139.tif 000046
【図１４】
0004662139.tif 000047
【図１５】
0004662139.tif 000048
【図１６】
0004662139.tif 000049
【図１７】
0004662139.tif 000050
【図１８】
0004662139.tif 000051
【図１９】
0004662139.tif 000052
【図２０】
0004662139.tif 000053
【図２１】
0004662139.tif 000054
【図２２】
0004662139.tif 000055
【図２３】
0004662139.tif 000056
【図２４】
0004662139.tif 000057
【図２５】
0004662139.tif 000058
【図２６】
0004662139.tif 000059