JP2007011203A - データ出力装置、データ出力方法、およびプログラム - Google Patents

データ出力装置、データ出力方法、およびプログラム Download PDF

Info

Publication number
JP2007011203A
JP2007011203A JP2005194907A JP2005194907A JP2007011203A JP 2007011203 A JP2007011203 A JP 2007011203A JP 2005194907 A JP2005194907 A JP 2005194907A JP 2005194907 A JP2005194907 A JP 2005194907A JP 2007011203 A JP2007011203 A JP 2007011203A
Authority
JP
Japan
Prior art keywords
state
probability
time
hmm
vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005194907A
Other languages
English (en)
Other versions
JP4662139B2 (ja
Inventor
Katsuki Minamino
活樹 南野
Kazumi Aoyama
一美 青山
Hirotaka Suzuki
洋貴 鈴木
Hideki Shimomura
秀樹 下村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2005194907A priority Critical patent/JP4662139B2/ja
Publication of JP2007011203A publication Critical patent/JP2007011203A/ja
Application granted granted Critical
Publication of JP4662139B2 publication Critical patent/JP4662139B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

【課題】動的特徴量を用いることなく、かつ、時系列データの生成を繰り返し試行することなく、滑らかに変化する時系列データを得る。
【解決手段】状態確率推定部3は、状態の遷移に応じてベクトルxが出力されるHMMの各状態Siについて、時刻tごとの、状態Siがベクトルxを出力する状態確率Pi(t)を推定する。ベクトル時系列生成部4は、状態確率Pi(t)と、状態Siが出力する代表的なベクトルとしての、例えば、平均ベクトルμiとに基づいて、HMMが出力する時刻tごとのベクトルx1,x2,・・・,xTを求める。本発明は、例えば、HMMなどの状態遷移確率モデルを用いて音声合成を行う音声合成装置などに適用できる。
【選択図】図1

Description

本発明は、データ出力装置、データ出力方法、およびプログラムに関し、特に、状態遷移確率モデルを用いて、滑らかに変化する時系列のベクトル等のデータを、容易に得ることができるようにするデータ出力装置、データ出力方法、およびプログラムに関する。
音声(信号)、さらには、音声から抽出される音声パラメータは、時系列のデータ(時系列データ)であり、時系列データをモデル化するモデルとしては、例えば、HMM(Hidden Markov Model)がある。
近年、HMMは、音声認識に広く利用されている。HMMは、状態の遷移に応じてデータが出力される状態遷移確率モデルの1種であり、状態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については、非特許文献1に記載されている。
現在、HMMは、孤立単語音声認識から大語彙連続音声認識にまで幅広く用いられ、そのような音声認識を行う音声認識装置が実用化されている。
ところで、近年においては、音声合成にHMMを用いる方法が提案されている。
HMMを用いた音声合成では、時系列のピッチやスペクトルなどの音声パラメータ(の時系列)をHMMによってモデル化し、HMMから音声パラメータを生成して、その音声パラメータから、音声信号が合成(生成)される。音声パラメータから音声信号を合成するにあたっては、音声信号からスペクトルなどの音声パラメータを抽出する処理と逆向きの処理を行う逆フィルタが用いられる。
例えば、音声パラメータの一種であるメルケプストラム係数から音声信号を合成するフィルタとしては、MLSAフィルタ(メル対数スペクトル近似フィルタ)などがある。ここで、MLSAフィルタについては、例えば、非特許文献2や3に記載されている。
HMMから音声合成に用いる時系列データである音声パラメータを生成する方法としては、例えば、動的特徴量を用いたHMMによって音声パラメータを生成する方法がある。ここで、動的特徴量を用いたHMMについては、非特許文献4や5に記載されている。
ここで、音声パラメータは、音声の特徴を表し、一般に、ベクトルであるので、以下、適宜、特徴ベクトルともいう。
動的特徴量を用いたHMMによって特徴ベクトルを生成する場合、HMMの状態遷移確率aijに基づき、各状態について、同一の状態に遷移し続ける(自己遷移している)時間である継続時間(継続時間長)が尤度最大化に基づいて推定され、その継続時間に基づき、最適状態系列、つまり、HMMにおいて、最も確からしい状態の遷移のしていき方が求められる。そして、その最適状態系列にしたがった順番で状態を遷移しながら、各状態から、尤度最大化に基づいて特徴ベクトルが生成される。
状態Sjでの特徴ベクトルxの生成は、その状態Sjの出力確率密度関数bj(x)を用いて行われるが、特徴ベクトルxの生成に、何の制約も与えない場合、尤度最大化によれば、出力確率密度関数bj(x)の平均ベクトルが、特徴ベクトルxとして生成される。従って、この場合、状態Sjが決まれば、その状態Sjから生成される特徴ベクトルxも、状態Sjの出力確率密度関数bj(x)の平均ベクトルに一意に決まってしまい、その結果、滑らかに変化する時系列の特徴ベクトルを得ることが困難となる。
そこで、動的特徴量を用いたHMMでは、滑らかに変化する時系列の特徴ベクトルを得るために、動的特徴量が利用される。
即ち、いま、時刻tにおける特徴ベクトルを、ctと表すこととすると、長さTの時系列の特徴ベクトルは、c1,c2,・・・,cTと表すことができる。この場合、動的特徴量としては、式(1)のdtや、式(2)のatが用いられる。
Figure 2007011203
・・・(1)
Figure 2007011203
・・・(2)
式(1)の動的特徴量dtは、特徴ベクトルct の変化量をあらわすベクトルであり、デルタパラメータと呼ばれる。式(2)の動的特徴量at は、デルタパラメータdt の変化量を表すベクトルであり、デルタデルタパラメータと呼ばれる。
いま、特徴ベクトルctと、動的特徴量(ベクトル)dtおよびatとをコンポーネントとするベクトルotを、式(3)のように表す。
Figure 2007011203
・・・(3)
動的特徴量を用いたHMMでは、時系列のベクトルo1,o2,o3,・・・,oT を用いて、HMMの学習が行われ、学習後のHMMを用いて、時系列のベクトルo1,o2,o3,・・・,oT が生成される。そして、時系列のベクトルo1,o2,o3,・・・,oT を生成するにあたっては、式(1)と式(2)とが考慮される。その結果、HMMの状態Sjから出力されるベクトルotは、単なる出力確率密度関数bj(ot)の平均ベクトルにならず、ベクトルotのコンポーネントとなっている特徴ベクトルctは、滑らかに変化する時系列のベクトル(時系列ベクトル)となる。
動的特徴量を用いたHMMによれば、滑らかに変化する特徴ベクトルc1,c2,・・・,cTを得て、自然な合成音を生成することができる。
しかしながら、動的特徴量を用いたHMMでは、特徴ベクトルctの他に、動的特徴量としてデルタパラメータdtやデルタデルタパラメータatを用いるため、動的特徴量として、デルタパラメータdtだけを用いることとしても、HMMが学習するベクトルotの次元数が2倍に増加し、さらに、動的特徴量として、デルタデルタパラメータatをも用いる場合には、HMMが学習するベクトルotの次元数が3倍に増加する。
そして、このようなベクトルotの次元数の増加に起因して、HMMの学習や、HMMからのベクトルの生成に必要となる処理量が大になり、さらには、HMMのパラメータ、即ち、HMMを定義する状態遷移確率aijと出力確率密度関数bj(x)のうちの、出力確率密度関数bj(x)を規定する平均ベクトル等のデータ量も大になる。
一方、HMMからの時系列の特徴ベクトルの生成の確率的試行を繰り返し、その確率的試行の結果の平均をとることで、滑らかに変化する特徴ベクトルを生成する方法が提案されている。ここで、かかる確率的試行に基づく特徴ベクトルの生成の方法については、例えば、特許文献1や非特許文献6に記載されている。
確率的試行に基づく特徴ベクトルの生成では、HMMの状態遷移確率aijにしたがって確率的に複数の状態の系列(遷移する状態の系列(状態遷移系列))を求め、その複数の状態遷移系列の平均的な状態遷移系列を決定し、さらに、その平均的な状態遷移系列から出力確率密度関数bj(x)に基づき、時系列の特徴ベクトルを生成するという試行が多数回行われる。そして、その多数回の試行によって生成された時系列の特徴ベクトルを平均化することで、最終的な時系列の特徴ベクトルが求められる。
確率的試行に基づく特徴ベクトルの生成では、動的特徴量を用いたHMMによる特徴ベクトルの生成と異なり、尤度最大化という基準で時系列の特徴ベクトルが生成されるのではなく、特徴ベクトルの生成の確率的試行の結果の平均的な時系列の特徴ベクトルが生成される。
従って、確率的試行に基づく特徴ベクトルの生成によれば、時系列の特徴ベクトルを生成する処理を多数回試行する必要があるため、処理量が大になる。
特開2004-330361号公報 Laurence Rabiner, Biing-Hwang Juang 、「音声認識の基礎(上・下)」、NTTアドバンステクノロジ株式会社 今井聖、住田一男、古市千恵子、「音声合成のためのメル対数スペクトル近似(MLSA)フィルタ」、電子情報通信学会論文誌(A)、J66-A, 2, pp.122-129, 1983 徳田恵一、小林隆夫、斉藤博徳、深田俊明、今井聖、「メルケプストラムをパラメータとする音声のスペクトル推定」、電子情報通信学会論文誌(A)、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
本発明は、このような状況に鑑みてなされたものであり、動的特徴量を用いることなく、かつ、時系列データの生成を繰り返し試行することなく、滑らかに変化する時系列データを得ることができるようにするものである。
本発明の一側面は、状態の遷移に応じてデータが出力される状態遷移確率モデルの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率を推定する状態確率推定手段/ステップと、状態確率と、状態が出力する代表的なデータとに基づいて、状態遷移確率モデルが出力する所定の間隔の時刻ごとのデータを求め、時系列のデータとして出力する時系列データ生成手段/ステップとを含む。
本発明の一側面においては、状態の遷移に応じてデータが出力される状態遷移確率モデルの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率が推定され、その状態確率と、状態が出力する代表的なデータとに基づいて、状態遷移確率モデルが出力する所定の間隔の時刻ごとのデータが求められ、時系列のデータとして出力される。
本発明によれば、滑らかに変化する時系列データを得ることができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面のデータ出力装置は、
時系列のデータを出力するデータ出力装置(例えば、図1の音声合成装置)において、
状態の遷移に応じてデータが出力される状態遷移確率モデルの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率(例えば、式(19)の状態確率Pi(t))を推定する状態確率推定手段(例えば、図1の状態確率推定部3)と、
前記状態確率と、状態が出力する代表的なデータ(例えば、式(22)の平均ベクトルμi)とに基づいて、状態遷移確率モデルが出力する所定の間隔の時刻ごとのデータ(例えば、式(22)のE[x])を求め、時系列のデータとして出力する時系列データ生成手段(例えば、図1のベクトル時系列生成部4)と
を備える。
本発明の一側面のデータ出力方法またはプログラムは、
状態の遷移に応じてデータが出力される状態遷移確率モデルの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率(例えば、式(19)の状態確率Pi(t))を推定する状態確率推定ステップ(例えば、図3のステップS2)と、
前記状態確率と、状態が出力する代表的なデータ(例えば、式(22)の平均ベクトルμi)とに基づいて、状態遷移確率モデルが出力する所定の間隔の時刻ごとのデータ(例えば、式(22)のE[x])を求め、時系列のデータとして出力する時系列データ出力ステップ(例えば、図3のステップS3)と
を含む。
以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明を適用した音声合成装置の一実施の形態の構成例を示している。
図1において、音声合成装置は、HMM記憶部1、選択部2、逆フィルタ5、およびベクトル時系列出力部10から構成されている。そして、ベクトル時系列出力部10は、状態確率推定部3とベクトル時系列生成部4とから構成されている。
HMM記憶部1は、音声合成に用いられる複数のHMMを記憶している。
選択部2は、HMM記憶部1に記憶されたHMMの中から、音声合成に用いるHMMを選択し、状態確率推定部3とベクトル時系列生成部4に供給する。
状態確率推定部3は、選択部2から供給されるHMMの各状態について、所定の間隔の時刻ごとの、状態がベクトルを出力する状態確率を推定し、ベクトル時系列生成部4に供給する。
ベクトル時系列生成部4は、状態確率推定部3から供給される状態確率と、選択部2から供給されるHMMの状態が出力する代表的なベクトルとに基づいて、所定の間隔の時刻ごとのベクトルを求め、時系列のベクトル(ベクトルの時系列)として出力する。
逆フィルタ5は、ベクトル時系列生成部4が出力する時系列のベクトルをフィルタリングすることにより、音声信号(合成音)を得て出力する。
ここで、ベクトル時系列生成部4が出力するベクトルが、例えば、メルケプストラム係数をコンポーネントとする特徴ベクトルである場合には、逆フィルタ5としては、例えば、MLSAフィルタを採用することができる。さらに、ベクトル時系列生成部4が出力するベクトルが、例えば、メルケプストラム係数をコンポーネントとする特徴ベクトルである場合には、HMM記憶部1には、メルケプストラム係数をコンポーネントとする特徴ベクトルを、HMMの学習用の学習データとして用い、例えば、学習データが出力される尤度を最大化する学習の方法であるBaum-Welch 法により学習が行われたHMMが記憶されている。
次に、図2は、図1のHMM記憶部1に記憶されているHMMの例を示している。
HMMは、状態遷移確率と出力確率密度関数とをモデルのパラメータ(モデルパラメータ)として定義される確率モデルである。
図2のHMMは、left-to-right型と呼ばれるHMMで、図中○印で示すN+2個の状態S0,S1,・・・,SN-1,SN,SN+1が、左から右方向に並んでいる。状態S0乃至SN+1のうちの、最も左の状態S0は初期状態と呼ばれ、最も右の状態SN+1は終了状態と呼ばれる。図2のleft-to-right型と呼ばれるHMMでは、初期状態S0と終了状態SN+1を除く状態Si(i=1,2,・・・,N)において、自身への状態の遷移(自己遷移)と、自身の右隣への状態の遷移とだけが許されている。ここで、図2では、矢印が状態の遷移を表している。
また、図2のHMMでは、初期状態S0から、その右隣の状態S1に状態遷移するようになっている。従って、状態S0から状態S1への状態遷移確率a01は、1である。さらに、終了状態SN+1では、状態遷移が生じないようになっている。そして、状態遷移は、初期状態S0から始まって、終了状態SN+1に到達して終了する。
さらに、図2のHMMでは、初期状態S0と終了状態SN+1を除く状態Si(i=1,2,・・・,N)において、ベクトルxが出力される確率密度(確率分布)を表す出力確率密度関数bi(x)が定義されている。ここでは、出力確率密度関数bi(x)は、例えば、平均ベクトルμi と共分散行列Σi によって定義される正規分布を表す式(4)で与えられることとする。
Figure 2007011203
・・・(4)
ここで、式(4)において、Kは、確率変数であるベクトルxの次元数を表し、上付のT は行列の転置を表す。
なお、図2では、自己遷移と、自身の右隣への状態の遷移とだけが許されているHMMを採用することとしたが、その他、さらに、右側の他の状態への遷移も許されているHMMを採用することが可能である。また、left-to-right型でないHMMを採用することも可能である。
次に、図3のフローチャートを参照して、図1の音声合成装置の処理について説明する。
まず最初に、ステップS1において、選択部2は、HMM記憶部1に記憶されたHMMの中から、音声合成に用いるHMMを選択し、状態確率推定部3とベクトル時系列生成部4に供給して、ステップS2に進む。
ステップS2では、状態確率推定部3は、選択部2から供給されるHMMの各状態について、所定の間隔の時刻ごとの、状態がベクトルを出力する状態確率を推定する状態確率推定処理を行い、その結果得られる状態確率を、ベクトル時系列生成部4に供給して、ステップS3に進む。
ステップS3では、ベクトル時系列生成部4は、状態確率推定部3から供給される状態確率と、選択部2から供給されるHMMの状態が出力する代表的なベクトルとに基づいて、所定の間隔の時刻ごとのベクトルを求めるベクトル時系列生成処理を行い、その結果得られる時系列のベクトル(ベクトルの時系列)を出力して、ステップS4に進む。
ステップS4では、逆フィルタ5が、ベクトル時系列生成部4が出力する時系列のベクトルをフィルタリングすることにより、音声信号を得て出力し、処理を終了する。
次に、図1の状態確率推定部3が図3のステップS2で行う状態確率推定処理について説明する。
状態確率推定処理では、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を、必ず出力する。従って、式(5)に示すように、ベクトルxを出力しうる状態S1, S2, S3,・・・,SNのすべてに関して、時刻tにおける状態確率Pi(t)のサメーションをとると1になる。
Figure 2007011203
・・・(5)
状態確率Pi(t)は、上述したように、時刻tにおいて、状態Siがベクトルxを出力する確率(状態Siへの状態遷移によって状態Siからベクトルxが出力される確率)であるので、状態確率Pi(t)を求めるにあたり、まず、HMMにおいて、状態Siに留まっている時間(状態Siで自己遷移している時間)を考える。
ここで、図4は、図2のleft-to-right型のHMMにおける状態遷移の仕方の例を示している。
図4では、時刻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を用いて、式(6)で与えられる。
Figure 2007011203
・・・(6)
ここで、式(6)において、状態遷移確率aiiは、状態Siから状態Siに自己遷移する確率であるから、1-aiiは、状態Siから他の状態に遷移する確率である。
状態Siの継続時間nの期待値E[n]は、式(6)を用いると、式(7)で表される。
Figure 2007011203
・・・(7)
式(7)の継続時間nの期待値E[n]は、状態S1,S2,・・・,SNすべてについて求めることができ、いま、状態Siの継続時間nの期待値E[n]を、diと表すこととする。ここで、状態Siの継続時間nの期待値diは、図4に示すように、状態Siにおいて自己遷移が生じる回数(の期待値)に対応する。
状態S1,S2,・・・,SNそれぞれの継続時間の期待値d1,d2,・・・,dNを、式(8)に示すように累積することで、初期状態S0から終了状態SN+1に遷移するまでの全体の継続時間(全体継続時間)Tを求めることができる。
Figure 2007011203
・・・(8)
式(8)で表される全体継続時間Tが、HMMから出力されるベクトル時系列x1,x2,x3,...,xTの長さとなる。
なお、式(8)の全体継続時間Tは、HMMから出力されるベクトル時系列x1,x2,x3,...,xTの長さ、つまり、ベクトル時系列x1,x2,x3,...,xTにおけるベクトルの個数であり、従って、整数値であるため、全体継続時間Tを求めるのに用いられる式(7)の継続時間の期待値di(=E[n])は、例えば、小数点以下を切り上げるなどして整数化することとする。
HMMにおいて、状態が、式(7)によって求められる状態Siの継続時間の期待値diにしたがって遷移していった場合の、状態の系列(状態遷移系列)において、状態Si-1から右隣の状態Siに遷移する時刻tを、tiと表すことにする。
ここで、図4では、上述したように、状態S1から右隣の状態S2に遷移する時刻t2が5になっており、状態S2から右隣の状態S3に遷移する時刻t3が8になっている。また、状態SN-1から右隣の状態SNに遷移する時刻tNはT-2になっている。
なお、図2のHMMでは、状態遷移は、必ず、初期状態S0から状態遷移は始まり、初期状態S0からは、必ず、右隣の状態S1に遷移するから、状態S0から右隣の状態S1に遷移する時刻t1は、必ず1である。
さらに、図2の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は、式(7)で求めることができる。
従って、初期状態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)は、式(9)で与えられる。
Figure 2007011203
・・・(9)
式(9)の確率密度関数qi(t)によれば、図5に示すように、状態Si-1から他の状態Siに遷移する遷移時刻tは、平均値が期待遷移時刻tiで、分散がσ2の正規分布にしたがう。また、式(9)の確率密度関数qi(t)によれば、分散σ2が非常に小さいと、状態Siに遷移する遷移時刻tが確定的な値tiになり、分散σ2が大きくなるにしたがって、状態Siに遷移する遷移時刻tが確率的な値になる。
ここで、以下、適宜、式(9)の確率密度関数(によって与えられる確率)qi(t)を、前向き遷移確率と呼ぶこととする。
図6は、前向き遷移確率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)で与えられる。
一方、以上の式(9)の前向き遷移確率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)は、式(9)と同様の式(10)で与えられる。
Figure 2007011203
・・・(10)
式(10)の確率密度関数ri(t)によれば、図5に示した確率密度関数(前向き遷移確率)qi(t)と同様に、状態Si+1から他の状態Siに遡って逆遷移する逆遷移時刻tは、平均値が逆期待遷移時刻ti'で、分散がσ'2の正規分布にしたがう。また、式(10)の確率密度関数ri(t)によれば、分散σ'2が非常に小さいと、状態Siに遷移する遷移時刻tが確定的な値tiになり、分散σ'2が大きくなるにしたがって、状態Siに遷移する逆遷移時刻tが確率的な値になる。
ここで、以下、適宜、式(10)の確率密度関数(によって与えられる確率)ri(t)を、後ろ向き遷移確率と呼ぶこととする。
図7は、後ろ向き遷移確率ri(t)とHMMの状態との関係を示している。
なお、図7では、後ろ向きの状態遷移(状態を遡る遷移)を表すために、状態遷移を表す矢印の向きを、図6とは逆向きに図示してある。
後ろ向き遷移確率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)と表すこととすると、図2のHMMでは、時刻t=0に初期状態S0から必ず遷移が始まるので、時刻t=0において、状態S0から遷移が始まる確率Pf0(0)は、式(11)に示すように1となる。
Figure 2007011203
・・・(11)
また、時刻t=0において、状態S0から必ず遷移が始まるということは、時刻t=0において、状態S0以外の状態S1,S2,・・・,SN,SN+1から遷移が始まることはあり得ないので、時刻t=0において、状態S0以外の状態Siから遷移が始まる確率Pfi(0)は、式(12)に示すように0となる。
Figure 2007011203
・・・(12)
図2のleft-to-right型のHMMについては、時刻tに状態Siに存在する(いる)確率Pfi(t)、つまり、時刻tにおいて、状態Siから遷移が始まる確率Pfi(t)は、式(11)の確率Pf0(0)と、式(12)の確率Pfi(0)とを初期値とする、式(9)の前向き遷移確率qi(t)を用いた、式(13)の漸化式を用いて計算することができる。
Figure 2007011203
・・・(13)
ここで、式(13)の右辺の第1項Pfi-1(t-1)qi(t)は、時刻t-1に状態Si-1にいて、次の時刻tに状態Siに遷移する確率を表す。また、式(13)の右辺の第2項Pfi(t-1)(1-qi+1(t)は、時刻t-1に状態Siにいて、次に時刻tに状態Siに自己遷移する確率を表す。
なお、時刻t=0以外の時刻では、初期状態S0から遷移が始まることはあり得ないため、時刻t=0以外の時刻において、初期状態S0から遷移が始まる確率Pf0(t)は、式(14)に示すように0である。
Figure 2007011203
・・・(14)
以下、適宜、以上のようにして求められる、時刻tにおいて、状態Siから遷移が始まる確率Pfi(t)を、前向き状態確率Pfi(t)と呼ぶ。
ここで、図8は、前向き状態確率Pfi(t)を模式的に示した表である。
図8の表において、横軸は状態Siを表し、縦軸は時刻tを表している。そして、横軸のある状態Siの列と、縦軸のある時刻tの行とが交差する欄に、時刻tにおいて、状態Siから遷移が始まる前向き状態確率Pfi(t)が記述されている。
図8の表の欄のうちの、時刻tが0の欄は、式(11)および式(12)にしたがって記述されていき、状態Siが初期状態S0の欄は、式(11)および式(14)にしたがって記述されていく。そして、以下、他の欄には、式(13)の漸化式を計算することにより得られる前向き状態確率Pfi(t)が順次記述されていく。
次に、時刻tにおいて、状態Siから遷移が始まる確率は、状態遷移が、終了状態SN+1から始まって初期状態S0で終了する状態遷移系列についても考えることができる。
そこで、いま、時刻t=T+1において、状態Siから遡る遷移(後ろ向きの遷移)が始まる確率を、Pbi(T+1)と表すこととすると、図2のHMMでは、時刻t=T+1に最終状態SN+1から必ず後ろ向きの遷移が始まるので、時刻t=T+1において、状態SN+1から後ろ向きの遷移が始まる確率PbN+1(T+1)は、式(15)に示すように1となる。
Figure 2007011203
・・・(15)
また、時刻t=T+1において、状態SN+1から必ず後ろ向きの遷移が始まるということは、時刻t=T+1において、状態SN+1以外の状態SN,SN-1,・・・,S1,S0から遷移が始まることはあり得ないので、時刻t=T+1において、状態SN+1以外の状態Siから遷移が始まる確率Pbi(T+1)は、式(16)に示すように0となる。
Figure 2007011203
・・・(16)
図2のleft-to-right型のHMMについては、時刻tに状態Siに存在する(いる)確率Pbi(t)、つまり、時刻tにおいて、状態Siから後ろ向きの遷移が始まる確率Pbi(t)は、式(15)の確率PbN+1(T+1)と、式(16)の確率Pbi(T+1)とを初期値とする、式(10)の後ろ向き遷移確率ri(t)を用いた、式(17)の漸化式を用いて計算することができる。
Figure 2007011203
・・・(17)
なお、時刻t=T+1以外の時刻では、終了状態SN+1から後ろ向きの遷移が始まることはあり得ないため、時刻t=T+1以外の時刻において、終了状態SN+1から遷移が始まる確率PbN+1(t)は、式(18)に示すように0である。
Figure 2007011203
・・・(18)
以下、適宜、以上のようにして求められる、時刻tにおいて、状態Siから後ろ向きの遷移が始まる確率Pbi(t)を、後ろ向き状態確率Pbi(t)と呼ぶ。
ここで、図9は、後ろ向き状態確率Pbi(t)を模式的に示した表である。
図9の表において、横軸は状態Siを表し、縦軸は時刻tを表している。そして、横軸のある状態Siの列と、縦軸のある時刻tの行とが交差する欄に、時刻tにおいて、状態Siから後ろ向き遷移が始まる後ろ向き状態確率Pbi(t)が記述されている。
図9の表の欄のうちの、時刻tがT+1の欄は、式(15)および式(16)にしたがって記述されていき、状態Siが終了状態SN+1の欄は、式(15)および式(18)にしたがって記述されていく。そして、以下、他の欄には、式(17)の漸化式を計算することにより得られる後ろ向き状態確率Pbi(t)が順次記述されていく。
式(13)の前向き状態確率Pfi(t)は、状態遷移が初期状態S0から始まって終了状態SN+1で終了する状態遷移系列について、時刻tにおいて、状態Siから遷移が始まる確率であり、式(17)の後ろ向き状態確率Pbi(t)は、状態遷移が終了状態SN+1から始まって初期状態S0で終了する状態遷移系列について、時刻tにおいて、状態Siから遷移が始まる確率であるから、これらの前向き状態確率Pfi(t)と、後ろ向き状態確率Pbi(t)を掛け合わせることにより、時刻tに状態Siに存在する(居る)確率、つまり、状態Siがベクトルxを出力する状態確率(ベクトルxを出力する状態が状態Siである確率)Pi(t)を求めることができる。
そこで、状態確率Pi(t)を、式(19)で定義することとする。
Figure 2007011203
・・・(19)
なお、式(19)の状態確率Pi(t)は、前向き状態確率Pfi(t)と、後ろ向き状態確率Pbi(t)との乗算値を、その乗算値の、状態S1乃至SNについてのサメーション(Σ)で正規化しているので、上述の式(5)を満たす。
式(19)の状態確率Pi(t)は、出力確率密度関数bi(x)が定義されたすべての状態S1,S2,・・・,SNについて、状態遷移時に何らかのベクトルが出力される各時刻t=1,2,・・・,Tごとに計算することができる。
ここで、図10は、状態確率Pi(t)を模式的に示した表である。
図10の表において、横軸は状態Siを表し、縦軸は時刻tを表している。そして、横軸のある状態Siの列と、縦軸のある時刻tの行とが交差する欄に、時刻tにおいて、状態Siからベクトルが出力される確率である状態確率Pi(t)が記述されている。
図10の表の各欄には、図8の表の前向き状態確率Pfi(t)と、図9の表の後ろ向き状態確率Pbi(t)とを用いて、式(19)を計算することにより得られる状態確率Pi(t)が記述される。
次に、図11は、以上のようにして状態確率Pi(t)を推定する状態確率推定処理を行う図1の状態確率推定部3の構成例を示している。
状態確率推定部3は、継続時間長算出部21、期待遷移時刻算出部22、前向き遷移確率決定部23Fおよび後ろ向き遷移確率決定部23B、前向き状態確率算出部24Fおよび後ろ向き状態確率算出部24B、並びに状態確率算出部25から構成されている。
継続時間長算出部21には、選択部2(図1)からHMM(の状態遷移確率aij)が供給される。
継続時間長算出部21は、選択部2から供給されるHMMの状態遷移確率aijを用いて、式(7)で表される状態Siの継続時間nの期待値di(=E[n])を、状態S1,S2,・・・,SNすべてについて算出し、期待遷移時刻算出部22に供給する。
さらに、継続時間長算出部21は、状態S1,S2,・・・,SNそれぞれの継続時間の期待値d1,d2,・・・,dNを用いて、式(8)の全体継続時間Tを求める。そして、継続時間長算出部21は、全体継続時間Tを必要なブロックに供給する。
期待遷移時刻算出部22は、継続時間長算出部21から供給される、状態S1,S2,・・・,SNそれぞれの継続時間の期待値d1,d2,・・・,dNを用いて、期待遷移時刻tiと、逆期待遷移時刻ti'とを求め、期待遷移時刻tiを、前向き遷移確率決定部23Fに供給するとともに、逆期待遷移時刻ti'を、後ろ向き遷移確率決定部23Bに供給する。
前向き遷移確率決定部23Fは、期待遷移時刻算出部22から供給される期待遷移時刻tiを用い、式(9)の前向き遷移確率qi(t)を求め、前向き状態確率算出部24Fに供給する。なお、式(9)の前向き遷移確率qi(t)の分散σ2としては、例えば、あらかじめ定められた固定値を採用することもできるし、後述するようにして求められる値を採用することもできる。
後ろ向き遷移確率決定部23Bは、期待遷移時刻算出部22から供給される逆期待遷移時刻ti'を用い、式(10)の後ろ向き遷移確率ri(t)を求め、後ろ向き状態確率算出部24Bに供給する。なお、式(10)の後ろ向き遷移確率ri(t)の分散σ'2としては、例えば、あらかじめ定められた固定値を採用することもできるし、後述するようにして求められる値を採用することもできる。
前向き状態確率算出部24Fは、前向き遷移確率決定部23Fから供給される式(9)の前向き遷移確率qi(t)を用いて、式(13)の漸化式を計算することにより前向き状態確率Pfi(t)を求め、状態確率算出部25に供給する。
後ろ向き状態確率算出部24Bは、後ろ向き遷移確率決定部23Bから供給される式(10)の後ろ向き遷移確率ri(t)を用いて、式(17)の漸化式を計算することにより後ろ向き状態確率Pbi(t)を求め、状態確率算出部25に供給する。
状態確率算出部25は、前向き状態確率算出部24Fから供給される前向き状態確率Pfi(t)と、後ろ向き状態確率算出部24Bから供給される後ろ向き状態確率Pbi(t)とを用いて、式(19)の状態確率Pi(t)を求め、後段のベクトル時系列生成部4(図1)に供給する。
次に、図12のフローチャートを参照して、図11の状態確率推定部3が図3のステップS2で行う状態確率推定処理について説明する。
継続時間長算出部21は、選択部2(図1)からHMMの供給を受け、ステップS21において、選択部2からのHMMの状態遷移確率aijを用いて、式(7)で表されるHMMの各状態Siの継続時間nの期待値di(=E[n])を算出し、期待遷移時刻算出部22に供給して、ステップS22に進む。
ステップS22では、期待遷移時刻算出部22は、継続時間長算出部21からの継続時間の期待値d1,d2,・・・,dNを用いて、期待遷移時刻tiと、逆期待遷移時刻ti'とを求め、期待遷移時刻tiを、前向き遷移確率決定部23Fに供給するとともに、逆期待遷移時刻ti'を、後ろ向き遷移確率決定部23Bに供給して、ステップS23に進む。
ステップS23では、前向き遷移確率決定部23Fが、期待遷移時刻算出部22からの期待遷移時刻tiを用い、式(9)の前向き遷移確率qi(t)を求め、前向き状態確率算出部24Fに供給するとともに、後ろ向き遷移確率決定部23Bが、期待遷移時刻算出部22からの逆期待遷移時刻ti'を用い、式(10)の後ろ向き遷移確率ri(t)を求め、後ろ向き状態確率算出部24Bに供給して、ステップS24に進む。
ステップS24では、前向き状態確率算出部24Fが、前向き遷移確率決定部23Fからの前向き遷移確率qi(t)を用い、式(13)の前向き状態確率Pfi(t)を求めて、状態確率算出部25に供給するとともに、後ろ向き状態確率算出部24Bが、後ろ向き遷移確率決定部23Bからの後ろ向き遷移確率ri(t)を用いて、式(17)の後ろ向き状態確率Pbi(t)を求めて、状態確率算出部25に供給して、ステップS25に進む。
ステップS25では、状態確率算出部25が、前向き状態確率算出部24Fからの前向き状態確率Pfi(t)と、後ろ向き状態確率算出部24Bからの後ろ向き状態確率Pbi(t)とを用いて、式(19)の状態確率Pi(t)を求め、後段のベクトル時系列生成部4(図1)に供給して、状態確率推定処理を終了する。
次に、図1のベクトル時系列生成部4が図3のステップS3で行うベクトル時系列生成処理について説明する。
ベクトル時系列生成処理では、状態確率推定部3で得られる状態確率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)は、式(20)で与えられる。
Figure 2007011203
・・・(20)
ここで、出力確率密度関数bi(x)が、式(4)に示した正規分布で与えられ、状態確率Pi(t)が、式(5)を満たす確率であることを考慮すれば、確率密度関数Ft(x)は、複数の正規分布(ガウシアン)を混合して得られる混合正規分布にしたがう。
即ち、式(20)の確率密度関数Ft(x)における状態確率Pi(t)は、式(4)に示した正規分布(出力確率密度関数bi(x))に対して与えられる混合重みに相当する。但し、式(20)において、混合重みである状態確率Pi(t)は、時刻tとともに変化する。
式(20)の確率密度関数Ft(x)によって、時刻tにHMMからベクトルxが出力される確率密度が与えられる場合、時刻tにHMMから出力されるベクトルxの期待値E[x]は、式(21)で与えられる。
Figure 2007011203
・・・(21)
式(21)に、式(20)を代入することにより、時刻tにHMMから出力されるベクトルxの期待値E[x]は、式(22)で求めることができる。
Figure 2007011203
・・・(22)
ここで、式(22)の上から2行目におけるbi(x)・xの、ベクトルxに関する-∞から+∞に亘る積分∫(bi(x)・x)dxは、出力確率密度関数bi(x)で確率密度が与えられるベクトルxの代表的なベクトルとしての、ベクトルxの期待値となるが、出力確率密度関数bi(x)が式(4)に示した正規分布で与えられる場合には、式(22)の上から3行目に示すように、式(4)の正規分布を規定する平均ベクトルμiとなる。
式(22)によれば、時刻tに出力されるベクトルxの期待値E[x]は、HMMの各状態S1,S2,・・・,SNにおいて定義される出力確率密度関数b1(x),b2(x),・・・,bN(x)がしたがう正規分布を規定する平均ベクトルμ1,μ2,・・・,μNを、混合重みP1(t),P2(t),・・・,PN(t)で線形結合することで計算されることになる。
ベクトル時系列生成処理では、式(22)により求められるベクトルxの期待値E[x]が、時刻t=1,2,・・・,Tについてそれぞれ求められ、ベクトル時系列x1,x2,・・・,xTとして出力される。
次に、図13は、以上のようにして、所定の間隔の時刻t=1,2,・・・,Tごとのベクトルを求め、ベクトル時系列x1,x2,・・・,xTとして出力するベクトル時系列生成処理を行う図1のベクトル時系列生成部4の構成例を示している。
ベクトル時系列生成部4は、期待値取得部31と期待値算出部32とから構成される。
期待値取得部31には、選択部2(図1)からHMM(の出力確率密度関数bi(x))が供給される。期待値取得部31は、選択部2から供給されるHMMの出力確率密度関数bi(x)から、その出力確率密度関数bi(x)が表す確率分布にしたがうベクトルxの期待値を求め、即ち、式(22)の上から2行目におけるbi(x)・xの、ベクトルxに関する-∞から+∞に亘る積分∫(bi(x)・x)dxの演算結果を求め、期待値算出部32に供給する。
ここでは、上述したように、出力確率密度関数bi(x)は正規分布であるため、期待値取得部31では、その正規分布を規定する平均ベクトルμiが、ベクトルxの期待値として求められる。
期待値算出部32には、期待値取得部31からベクトルxの期待値としての平均ベクトルμiが供給される他、状態確率推定部3(図1)から状態確率Pi(t)が供給される。期待値算出部32は、期待値取得部31から供給される平均ベクトルμiと、状態確率推定部3から供給される状態確率Pi(t)とを用いて、式(22)の上から3行目の演算を行うことにより、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を出力する。
次に、図14のフローチャートを参照して、図13のベクトル時系列生成部4が行う図3のステップS3のベクトル時系列生成処理について説明する。
期待値取得部31は、選択部2(図1)からHMMの供給を受け、ステップS31において、選択部2から供給されるHMMの出力確率密度関数bi(x)から、その出力確率密度関数bi(x)が表す確率分布にしたがうベクトルxの期待値を、選択部2からのHMMにおいて出力確率密度関数b1(x),b2(x),・・・,bN(x)が定義されている各状態S1,S2,・・・,SNについて求め、期待値算出部32に供給する。
即ち、期待値取得部31は、選択部2からのHMMにおいて出力確率密度関数b1(x),b2(x),・・・,bN(x)が定義されている各状態S1,S2,・・・,SNについて、出力確率密度関数b1(x),b2(x),・・・,bN(x)が表す正規分布を規定する平均ベクトルμ1,μ2,・・・,μNを求め(取得し)、期待値算出部32に供給する。
そして、ステップS31からステップS32に進み、期待値算出部32は、期待値取得部31から供給される平均ベクトルμ1,μ2,・・・,μNと、状態確率推定部3から供給される時刻tについての状態確率P1(t),P2(t),・・・,PN(t)との積和演算を行い、その積和演算結果ΣPi(t)・μiを、時刻tにHMMから出力されるベクトルxの期待値xt(=E[x])として求める。
期待値算出部32は、ステップS32において、時刻t=1,2,・・・,Tごとに、HMMから出力されるベクトルxの期待値x1,x2,・・・,xTを求めて、ステップS33に進み、そのベクトル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において、ある1つの状態の状態確率Pi(t)だけが1となり、その他の状態の状態確率Pi(t)が0となるとすると、各時刻tにおいてベクトルxを出力する状態が1つの状態に固定(確定)され、その結果、ベクトル時系列が出力されるときの状態遷移系列が固定される。この場合、その固定された状態遷移系列の各状態から出力される平均ベクトルを並べたベクトル時系列が得られる。
なお、上述の場合には、HMMの各状態Siにおいて定義される出力確率密度関数bi(x)が正規分布にしたがうこととしたが、出力確率密度関数bi(x)としては、正規分布以外の、例えば、混合正規分布などの、平均ベクトルを計算することができる確率分布を表す関数を採用することができる。
さらに、出力確率密度関数bi(x)としては、平均ベクトルを厳密(正確に)に求めることができない確率分布であっても、平均ベクトルを近似的に求めることができる確率分布を表す関数を採用することが可能である。
即ち、出力確率密度関数bi(x)としては、式(22)の上から2行目におけるbi(x)・xの、ベクトルxに関する-∞から+∞に亘る積分∫(bi(x)・x)dxの演算、つまり、状態Siから出力される尤度が最大のベクトルx(状態Siから出力されるベクトルxの期待値E[x])を求める演算を、厳密にまたは近似的に行うことができる関数を採用することができる。
なお、式(22)の上から2行目における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)アルゴリズムなどが利用される。ここで、ベイジアンネットワークの詳細については、例えば、本村陽一、「不確実性モデリングのための情報表現:ベイジアンネット」、2001年、ベイジアンネットチュートリアルなどに記載されている。
また、上述したように、状態確率Pi(t)が時刻tに応じて変化することが、最終的に得られるベクトル時系列x1,x2,・・・,xTの時間的な変化の特性を大きく左右することから、ベクトル時系列x1,x2,・・・,xTの特性は、状態確率Pi(t)、ひいては、状態確率Pi(t)を求めるのに用いられる式(9)の前向き遷移確率qi(t)の分散σ2や、式(10)の後ろ向き遷移確率ri(t)の分散σ'2を調整することにより変化させることが可能である。
例えば、分散σ2やσ'2を小さくすると、状態Si-1から状態Siに遷移する時刻が確定的な値に近づき、その結果、HMMがベクトル時系列を出力するときの状態の遷移の仕方、つまり、状態遷移系列も確定的になっていくので、そのような確定的な状態遷移系列の各状態から、各状態に定義されている出力確率密度関数bi(x)の平均ベクトルを順に出力したようなベクトル時系列が得られる。
一方、分散σ2やσ'2を大きくすると、状態確率Pi(t)が高くなる状態Siが、時刻tの進行に伴い、状態S1から状態SNへと移行するように、状態確率pi(t)が滑らかに変化し、この状態確率Pi(t)の滑らかな変化に応じて、滑らかに変化するベクトル時系列が得られる。
図15および図16は、分散σ2およびσ'2を変えて、ベクトル時系列を求めたシミュレーションの内容を説明する図である。
即ち、図15は、HMMの学習に用いた学習データを示している。
シミュレーションでは、長さ(全体継続時間)Tが100の1次元のベクトルの時系列、つまり、長さTが100の、スカラーのデータの時系列を、HMMの学習データとして用いた。
図15においては、横軸を時刻tとするとともに、縦軸をデータの値として、学習データが示されている。
図15の学習データは、時刻t=0において、0であり、時刻tの進行とともに滑らかに減少して、時刻t=50付近で最小値となっている。さらに、図15の学習データは、最小値となった後、時刻tの進行とともに滑らかに増加して、時刻t=100において、再び0となっている。
HMMの学習は、図15の学習データを用いて、Baum-Welch法により行った。また、HMMとしては、状態数が10のleft-to-right型のHMMを用い、出力確率密度関数は正規分布に従うものとして学習を行った。
図16は、ベクトル時系列出力部10(図1)において、上述のような学習によって得られたHMMから生成された1次元のベクトル(スカラーのデータ)の時系列を示している。
図16においては、図15と同様に、横軸は時刻tを表し、縦軸はデータの値を表す。
なお、HMMから1次元のベクトルの時系列を生成するシミュレーションでは、状態確率Pi(t)を求めるのに用いられる式(9)の前向き遷移確率qi(t)の分散σ2と、式(10)の後ろ向き遷移確率ri(t)の分散σ'2とを、HMMのすべての状態で同一の値に固定した。そして、その固定の分散σ2およびσ'2の値としては、0.0001,36.0,400の3種類の値を用いた。
図16は、分散σ2およびσ'2の値として、0.0001,36.0,400の3種類の値を用いた場合のそれぞれにおいて得られたベクトル時系列を示している。
図16によれば、分散σ2およびσ'2の値として、0.0001という非常に小さな値を採用した場合には、上述したように、HMMがベクトル時系列を出力するときの状態遷移系列が確定的になり、その確定的な状態遷移系列の各状態から出力確率密度関数を表す正規分布を規定する平均ベクトル(平均値)が並んだような、いわば変化が段階的なベクトル時系列が出力されることを確認することができる。
また、図16によれば、分散σ2およびσ'2の値として、36.0という大きな値を採用した場合には、滑らかに変化するベクトル時系列が出力されることを確認することができる。さらに、図16によれば、分散σ2およびσ'2の値として、400というより大きな値を採用した場合には、ベクトル時系列を時間に応じて変化する波形として見たときに、その波形が、いわば怠けたベクトル時系列が出力されることを確認することができる。
以上のように、分散σ2およびσ'2の値を調整することにより、HMMから出力されるベクトル時系列の特性を変化させることができる。
なお、図16においては、分散σ2およびσ'2の値を36.0にした場合に得られるベクトル時系列が、図15の学習データに近いものとなっている。このことから、分散σ2およびσ'2の値を適切に調整することで、学習データと近い特性のベクトル時系列を生成することができることが分かる。
また、分散σ2およびσ'2(の値)の調整は、例えば、ユーザによる、図示せぬ操作部の操作や、図1の状態確率推定部3およびベクトル時系列生成部4から構成されるベクトル時系列出力部10を使用するアプリケーション(図1では、音声合成装置)からの要求などに応じて行うことができる。
さらに、分散σ2およびσ'2(の値)の調整(決定)は、その他、例えば、式(7)で求められる各状態Siの継続時間の期待値di(=E[n])に基づいて行うこともできる。
即ち、式(9)の前向き遷移確率qi(t)の分散σ2は、時刻tに状態Si-1から状態Siへの遷移(前向きの遷移)が行われる直前の、状態Si-1での自己遷移が連続する継続時間の期待値di-1に基づいて、例えば、式(23)により決定することができる。
Figure 2007011203
・・・(23)
式(23)において、cfは定数であり、例えばcf=0.5が用いられる。
式(23)によれば、式(9)の前向き遷移確率qi(t)の分散σ2が、状態Siに前向きの遷移が行われる直前の状態Si-1の継続時間の期待値di-1に基づき、その継続時間の期待値di-1が長ければ大きな値に決定され、継続時間の期待値di-1が短ければ小さな値に決定される。
同様に、式(10)の後ろ向き遷移確率ri(t)の分散σ'2は、時刻tに状態Si+1から状態Siに遡る遷移(後ろ向きの遷移)が行われる直前の、状態Si+1での自己遷移が連続する継続時間の期待値di+1に基づいて、例えば、式(24)により決定することができる。
Figure 2007011203
・・・(24)
式(24)において、cbは定数であり、例えばcb=0.5が用いられる。
式(24)によれば、式(10)の後ろ向き遷移確率ri(t)の分散σ'2が、状態Siに後ろ向きの遷移が行われる直前の状態Si+1の継続時間の期待値di+1に基づき、その継続時間の期待値di+1が長ければ大きな値に決定され、継続時間の期待値di+1が短ければ小さな値に決定される。
次に、上述の場合には、式(7)の継続時間の期待値di(=E[n])を、例えば、小数点以下を切り上げるなどして、整数化して用いることとしたが、この整数化に起因して、HMMから出力されるベクトル時系列には、整数化をしない場合に対して誤差が生じる。
この誤差は、継続時間の期待値diとして、小数点以下を含む値を用いるようにすることで低減することができる。
即ち、上述の場合には、明示的な説明は省略したが、HMMの学習に用いられる学習データの時間間隔が1であることを前提として、HMMからは、時間幅が1の時間間隔の各時刻tでベクトルxが出力されることとしたため、時刻tは整数値のみをとり、従って、継続時間の期待値diも整数値のみをとることとしたが、HMMからベクトルxが出力される時刻として、小数点以下を含む値を想定することにより、継続時間の期待値diも、小数点以下を含む値を用いることができ、これにより、HMMから出力されるベクトル時系列に生じる誤差を低減することができる。
即ち、状態確率推定部3(図1)において、式(7)の継続時間の期待値diを、例えば、小数点以下第2位以下を切り上げるなどして、小数第1位まで求める。さらに、状態確率推定部3において、小数第1位まで求めた継続時間の期待値diを用いて、式(9)の前向き遷移確率qi(t)と、式(10)の後ろ向き遷移確率ri(t)とを求め、さらには、式(9)の前向き遷移確率qi(t)を用いて、式(13)の漸化式で表される前向き状態確率Pfi(t)を求めるとともに、式(10)の後ろ向き遷移確率ri(t)を用いて、式(17)の漸化式で表される後ろ向き状態確率Pbi(t)を求める。
但し、式(13)の漸化式で表される前向き状態確率Pfi(t)と、式(17)の漸化式で表される後ろ向き状態確率Pbi(t)とは、時刻tの刻み幅(時間間隔)を0.1として求める。
そして、状態確率推定部3では、時刻tの刻み幅を0.1として求められた前向き状態確率Pfi(t)と後ろ向き状態確率Pbi(t)とを用い、時刻tの刻み幅を0.1とする式(19)の状態確率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)を求める。
ここで、図17は、時刻tの刻み幅を1として求められる状態確率Pi(t)(図17上側)と、時刻tの刻み幅を0.1として求められる状態確率Pi(t)(図17下側)とを示している。
時刻tの刻み幅が0.1の状態確率Pi(t)が求められた後は、ベクトル時系列生成部4(図1)において、時刻tの刻み幅を0.1とする状態確率Pi(t)のうちの、時刻t=1,2,3,・・・,Tにおける値を用い、式(22)の演算を行うことにより、時刻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から出力されるベクトル時系列の時間間隔の調整は、例えば、ユーザによる、図示せぬ操作部の操作や、図1のベクトル時系列出力部10を使用するアプリケーションからの要求などに応じて行うことができる。
次に、上述の場合には、1つのHMMからベクトル時系列を生成したが、ベクトル時系列は、複数のHMMを結合して得られるHMM(以下、適宜、結合HMMという)から生成することも可能である。
図18は、left-to-right型の2つのHMM#1と#2とを結合した結合HMMを示している。
図18では、状態S0乃至SN1+1を有するleft-to-right型のHMM#1と、状態S'0乃至S'N2+1を有するleft-to-right型のHMM#2とが、その順番で結合され、1つの結合HMMとなっている。
即ち、図18では、HMM#1の終了状態SN1+1と、HMM#2の初期状態S'0とが削除され、HMM#1の状態SN1と、HMM#2の状態S'1とが接続されることにより、HMM#1と#2とが結合されている。
結合HMMも、1つのHMMと同様に扱うことができ、従って、ベクトル時系列出力部10は、上述した、1つのHMMからベクトル時系列を生成する場合と同様に、結合HMMからベクトル時系列を生成することができる。
なお、結合HMMでは、HMM#1の状態SN1から、HMM#1の終了状態SN1+1に代えて、HMM#2の状態S'1に遷移するようになっており、結合HMMにおいて、HMM#1の状態SN1からHMM#2の状態S'1に遷移するときも、滑らかに変化するベクトル時系列を得ることができる。
また、上述の場合には、2つのHMM#1と#2を結合したが、3以上のHMMを結合することも可能である。
次に、図19のフローチャートを参照して、上述のように、HMMを結合して、ベクトル時系列を生成する場合の図1の音声合成装置の処理について説明する。
ステップS51において、図1の選択部2は、HMM記憶部1に記憶されたHMMの中から、音声合成に用いる複数のHMMを選択して、ステップS52に進み、その複数のHMMを、図18で説明したように結合して、結合HMMを得る。そして、選択部2は、結合HMMを、状態確率推定部3とベクトル時系列生成部4に供給して、ステップS52からステップS53に進む。
ステップS53では、状態確率推定部3は、選択部2から供給される結合HMMの各状態Siについて、所定の間隔の時刻tごとの状態確率Pi(t)を推定する状態確率推定処理を行い、その結果得られる状態確率Pi(t)を、ベクトル時系列生成部4に供給して、ステップS54に進む。
ステップS54では、ベクトル時系列生成部4は、状態確率推定部3から供給される状態確率Pi(t)と、選択部2から供給される結合HMMの状態Siが出力する代表的なベクトルとしての、例えば平均ベクトルμiとに基づいて、所定の間隔の時刻tごとのベクトルを求めるベクトル時系列生成処理を行い、その結果得られるベクトル時系列を出力して、ステップS55に進む。
ステップS55では、逆フィルタ5が、ベクトル時系列生成部4が出力するベクトル時系列をフィルタリングすることにより、音声信号を得て出力し、処理を終了する。
次に、図2に示したようなleft-to-right型のHMMは、ベクトル時系列のあるパターン(時系列パターン)を表現する(モデル化する)のに適している。
従って、図20に示すような、left-to-right型のHMMに対して、その終了状態SN+1の直前の状態SNから、初期状態S0の直後の状態S1に戻るような遷移を与えたHMMを考えた場合、状態SNから状態S1への遷移が行われることによって、元のHMMが表現する時系列パターンが繰り返されるような、いわば周期的な軌道のベクトル時系列(波形が周期的なベクトル時系列)を生成することが可能となる。
図20に示した、状態SNから状態S1への遷移が与えられたHMMから出力される周期的な軌道のベクトル時系列は、上述した結合HMMを利用することにより生成することができる。
即ち、周期的な軌道のベクトル時系列の、例えば、1周期分のベクトル時系列に対応する時系列パターンを表現するHMMをコピーして3つ用意する。ここで、この3つのHMMを、HMM#1,#2,#3と呼ぶこととする。
そして、図21に示すように、同一の3つのHMM#1,#2,#3を、その順で、図18の場合と同様に結合して、結合HMMとする。いま、同一の3つのHMM#1,#2,#3の1つが、状態S0乃至SN+1を有する場合、結合HMMは、図21に示すように、HMM#1の状態SNに、HMM#2の状態S1が接続され、さらに、HMM#2の状態SNに、HMM#3の状態S1が接続された、状態S1乃至SNが3回繰り返して並ぶHMMとなる。そして、この結合HMMは、周期的な軌道のベクトル時系列の、3周期分のベクトル時系列に対応する時系列パターンを表現する。
以上のような、同一の3つのHMM#1,#2,#3が結合された結合HMMも、図18の場合と同様に、1つのHMMと同様に扱うことができ、従って、ベクトル時系列出力部10は、上述した、1つのHMMからベクトル時系列を生成する場合と同様に、結合HMMからベクトル時系列を生成することができる。
図21の結合HMMからベクトル時系列を生成した場合、周期的な軌道のベクトル時系列の、3周期分のベクトル時系列が得られることとなるが、以下のようにすることで、任意の周期分のベクトル時系列を得ることが可能となる。
即ち、状態確率推定部3(図3)において、図21の結合HMMについて、状態確率Pi(t)を求めた後、その状態確率Pi(t)の中で、HMM#2の状態S1乃至SNに対応する分の状態確率Pi'(t)だけを取り出す。そして、ベクトル時系列生成部4において、その状態確率Pi'(t)から求まるベクトル時系列を1周期分として出力し、これを繰り返すことで周期的な軌道のベクトル時系列を生成することが可能となる。
ここで、図21の結合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)から求まるベクトル時系列を1周期分として出力することを繰り返すことで得られるベクトル時系列においても、HMM#2の状態SNから状態S1に亘って得られる部分は滑らかに変化することになる。
次に、図22のフローチャートを参照して、上述のように、HMMを結合して、周期的な軌道のベクトル時系列を生成する場合の図1の音声合成装置の処理について説明する。
ステップS61において、図1の選択部2は、HMM記憶部1に記憶されたHMMの中から、音声合成に用いる1つのHMMを選択して、ステップS62に進み、その1つのHMMをコピーし、同一の3つのHMM#1,#2,#3を得る。さらに、選択部2は、3つのHMM#1,#2,#3をその順に結合し、これにより、図21に示した結合HMMを得る。そして、選択部2は、結合HMMを、状態確率推定部3とベクトル時系列生成部4に供給して、ステップS62からステップS63に進む。
ステップS63では、状態確率推定部3は、選択部2から供給される結合HMMの各状態Siについて、所定の間隔の時刻tごとの状態確率Pi(t)を推定する状態確率推定処理を行って、ステップS64に進み、状態確率推定処理の結果得られる状態確率Pi(t)から、HMM#2の状態S1乃至SNに対応する分の状態確率Pi'(t)だけを取り出し、ベクトル時系列生成部4に供給して、ステップS65に進む。
ステップS65では、ベクトル時系列生成部4は、ベクトル時系列生成処理を、状態確率推定部3からの状態確率Pi'(t)と、選択部2から供給される結合HMMのうちのHMM#2の部分とを用いて行い、その結果得られる1周期分のベクトル時系列を出力して、ステップS66に進む。
ステップS66では、逆フィルタ5が、ベクトル時系列生成部4が出力するベクトル時系列をフィルタリングすることにより、音声信号を得て出力し、ステップS67に進む。
ステップS67では、ベクトル時系列生成部4が、ベクトル時系列の出力を、例えば、あらかじめ定められた回数などの所定の回数だけ繰り返して行ったかどうかを判定し、まだ、所定の回数だけ繰り返し行っていないと判定した場合、ステップS65に戻り、以下、同様の処理が繰り返される。なお、2回目以降のステップS65では、ベクトル時系列生成処理を再度行っても良いが、ベクトル時系列生成処理を行わずに、1回目のステップS65で出力したベクトル時系列を記憶しておき、そのベクトル時系列を出力しても良い。
一方、ステップS67において、ベクトル時系列の出力を所定の回数だけ繰り返し行ったと判定された場合、処理を終了する。
なお、図21では、同一の3つのHMM#1,#2,#3を結合するようにしたが、同一の4以上のHMMを結合しても良い。この場合、その4以上のHMMを結合した結合HMMから得られる状態確率Pi(t)から、先頭のHMMと最後のHMMとを除く1以上のHMMに対応する分の状態確率Pi'(t)だけを取り出し(抽出し)、その状態確率Pi'(t)を用いて、ベクトル時系列を生成すれば良い。
次に、上述の場合には、HMMの各状態Siの継続時間の期待値diの総和である式(8)の全体継続時間Tを、HMMから出力されるベクトル時系列の長さ(ベクトル時系列のベクトルの個数)としたが、HMMから出力されるベクトル時系列の長さは、例えば、ユーザによる、図示せぬ操作部の操作や、図1のベクトル時系列出力部10を使用するアプリケーションからの要求などに応じて調整することができる。
HMMから出力されるベクトル時系列の長さの調整は、例えば、期待遷移時刻ti(および逆期待遷移時刻ti')を求めるときに用いられる継続時間の期待値diを、例えば、式(25)にしたがって調整することによって行うことができる。
Figure 2007011203
・・・(25)
式(25)において、係数αを1.0とした場合、継続時間の期待値diは、式(7)で求められる値(E[n])のままとなる。また、式(25)において、係数αを1.0よりも大の値とした場合、継続時間の期待値diは、式(7)で求められる値よりも大となり、逆に、係数αを1.0よりも小の値とした場合、継続時間の期待値diは、式(7)で求められる値よりも小となる。
継続時間の期待値diを、例えば、式(25)にしたがって調整することにより、式(8)で求められる全体継続時間T、つまり、HMMから出力されるベクトル時系列の長さは、調整をしない場合(αが1.0の場合)のα倍となる。
なお、式(25)における係数αは、HMMの状態Siすべてについて同一の値とすることもできるし、状態Siごとに変えることもできる。即ち、状態S1の継続時間の期待値d1の調整には、例えば、α=0.7を用い、状態SNの継続時間の期待値dNの調整には、例えば、α=1.5を用いること等が可能である。式(25)における係数αを、HMMの状態Siごとに変えた場合、HMMから出力されるベクトル時系列の長さを部分的に調整することが可能となる。
次に、以上においては、図1のベクトル時系列出力部10において、1つのHMM(結合HMMを含む)を用いて、そのHMMから出力されるベクトル時系列を生成するようにしたが、その他、例えば、複数のHMMを用いて、その複数のHMMそれぞれから出力されるベクトル時系列を混合(合成)したベクトル時系列、即ち、複数のHMMそれぞれから出力されるベクトル時系列の、いわば中間的なベクトル時系列を生成することが可能である。
ここで、複数のHMMそれぞれから出力されるベクトル時系列を混合したベクトル時系列は、その複数のHMMを、1つのHMMに混合(合成)し、そのHMM(以下、適宜、合成HMMという)から出力されるベクトル時系列であると考えることができる。
なお、合成HMMは、結合HMMのような、単純に、複数のHMMの状態どうしを接続(結合)したHMMとは異なる。即ち、仮に、HMMを、xy座標系上の点で表すことができるとすると、合成HMMは、直感的には、例えば、xy座標系上の2点が与えられたときに、その2点を使って、その2点を通る直線上の任意の点を表現することができるが如く、2つのHMMを表す2点を通る直線上の任意の点で表されるHMMである。
図23は、2つのHMM#1と#2を用いて、そのHMM#1から出力されるベクトル時系列とHMM#2から出力されるベクトル時系列とを混合した中間的なベクトル時系列を生成する方法を説明する図である。
図23において、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(から出力されるベクトル時系列)とを、β:1−βの比率で混合することとする。
ここで、以下、適宜、βを、混合係数という。また、混合係数βは、0.0<=β<=1.0の範囲の値であるとする。
混合係数β=1.0の場合には、HMM#1だけを用いて生成されるベクトル時系列と同一のベクトル時系列が生成されなければならず、混合係数β=0.0の場合、HMM#2だけを用いて生成されるベクトル時系列と同一のベクトル時系列が生成されなければならない。そして、混合係数βが、0より大で1より小さい値である場合、その混合係数βの値に応じて、HMM#1を用いて生成されるベクトル時系列とHMM#2を用いて生成されるベクトル時系列とを混合した中間的なベクトル時系列が生成されなければならない。
そこで、まず、HMM#1の各状態Siの継続時間の期待値d1,d2,・・・,dNを、式(7)により求めるとともに、HMM#2の各状態S'jの継続時間の期待値d'1,d'2,・・・,dMを、式(7)により求める。
HMM#1の全体継続時間(HMM#1を用いて生成されるベクトル時系列の長さ)Tは、式(26)に示すように、HMM#1の各状態Siの継続時間の期待値d1,d2,・・・,dNの総和となる。
Figure 2007011203
・・・(26)
同様に、HMM#2の全体継続時間(HMM#2を用いて生成されるベクトル時系列の長さ)T'は、式(27)に示すように、HMM#2の各状態S'jの継続時間の期待値d'1,d'2,・・・,dMの総和となる。
Figure 2007011203
・・・(27)
式(26)のHMM#1の全体継続時間Tと、式(27)のHMM#2の全体継続時間T'とは、必ずしも一致するとは限らない。そこで、HMM#1を用いて生成される長さがTのベクトル時系列と、HMM#2を用いて生成される長さがT'のベクトル時系列とを混合した中間的なベクトル時系列(以下、適宜、混合ベクトル時系列という)の長さT''を、どのようにするかが問題となるが、例えば、混合係数βに基づき、式(28)にしたがって決定することとする。
Figure 2007011203
・・・(28)
HMM#1を用いて生成される長さがTのベクトル時系列と、HMM#2を用いて生成される長さがT'のベクトル時系列との長さを、式(28)で求められる混合ベクトル時系列の長さT''に調整する(一致させる)ため、HMM#1を用いて生成されるベクトル時系列の長さを調整する係数γと、HMM#2を用いて生成されるベクトル時系列の長さを調整する係数γ'とを、それぞれ、式(29)と式(30)とにより求める。
Figure 2007011203
・・・(29)
Figure 2007011203
・・・(30)
そして、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'')となって、いずれも、式(28)の混合ベクトル時系列の長さT''となる。
以上のように、HMM#1の全体継続時間と、HMM#2の全体継続時間とが、式(28)の混合ベクトル時系列の長さ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から出力されるベクトルとを、混合係数βにしたがった比率β:1−βで混合したベクトルであり、式(31)で与えられる。
Figure 2007011203
・・・(31)
ここで、式(31)において、μiは、HMM#1の状態Siに定義された出力確率密度関数から求められる平均ベクトルであり、μ'jは、HMM#2の状態S'jに定義された出力確率密度関数から求められる平均ベクトルである。
式(31)にしたがい、ベクトルxtを、時刻t=1,2,・・・.,T''それぞれに対して求めることにより、長さがT''のベクトル時系列x1,x2,・・・,xT''を得ることができる。
なお、式(5)から、HMM#1の状態S1乃至SNに亘る状態確率Pi(t)のサメーションΣPi(t)と、HMM#2の状態S1乃至SMに亘る状態確率P'j(t)のサメーションΣP'j(t)とは、いずれも1であり、従って、式(31)の混合係数β、状態確率Pi(t)、P'j(t)については、式(32)が成立する。
Figure 2007011203
・・・(32)
式(31)および式(32)によれば、混合ベクトル時系列の時刻tのベクトルxtは、HMM#1とHMM#2のすべての状態から出力される平均ベクトルを線形結合したベクトルとなっており、その線形結合に用いられる重みが混合係数β、状態確率Pi(t)、および状態確率P'j(t)によって調整されることになる。
また、上述の場合には、混合係数βが、式0.0<=β<=1.0を満たすものとして説明を行ったが、混合係数βの値が負の場合であっても、1.0より大きい場合であっても、式(32)は成立する。従って、任意の値の混合係数βを採用して、式(31)によりベクトル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が一致する場合であっても、一致しない場合であっても行うことができる。
また、上述の場合には、継続時間の期待値をそのまま用いて求められる式(26)のHMM#1の全体継続時間Tと、式(27)のHMM#2の全体継続時間T'とを用い、式(28)にしたがって、混合ベクトル時系列の長さT"を決定するようにしたが、混合ベクトル時系列の長さT"は、その他、例えば、式(25)によって、HMM#1や#2の継続時間の期待値を調整し、その調整後の継続時間の期待値を用いて求められるHMM#1と#2の全体継続時間を用いて決定することも可能である。
また、上述の場合には、2つのHMM#1と#2を混合するようにしたが(HMM#1から出力されるベクトル時系列とHMM#2から出力されるベクトル時系列とを混合するようにしたが)、その他、3以上のHMMを混合することも可能である。
次に、図24のフローチャートを参照して、上述のように、HMMを混合する場合に、図11の状態確率推定部3で行われる状態確率推定処理について説明する。なお、ここでは、2つのHMM#1と#2を混合することとし、その2つのHMM#1と#2が、選択部2(図1)によって、HMM記憶部1から読み出され、状態確率推定部3に供給されることとする。
継続時間長算出部21は、選択部2(図1)からHMM#1と#2の供給を受け、ステップS71において、選択部2からのHMM#1の状態遷移確率aijを用いて、式(7)で表されるHMM#1の各状態Siの継続時間nの期待値di(=E[n])を算出するとともに、選択部2からのHMM#2の状態遷移確率a'ijを用いて、式(7)で表されるHMM#2の各状態S'jの継続時間nの期待値d'j(=E[n])を算出して、ステップS72に進む。
ステップS72では、継続時間長算出部21は、HMM#1の各状態Siの継続時間nの期待値diと、HMM#2の各状態S'jの継続時間nの期待値d'jとを調整する。
即ち、継続時間長算出部21は、HMM#1の全体継続時間(HMM#1を用いて生成されるベクトル時系列の長さ)Tを、式(26)にしたがい、HMM#1の各状態Siの継続時間の期待値d1,d2,・・・,dNの総和をとることによって求めるとともに、HMM#2の全体継続時間(HMM#2を用いて生成されるベクトル時系列の長さ)T'を、式(27)にしたがい、HMM#2の各状態S'jの継続時間の期待値d'1,d'2,・・・,dMの総和をとることによって求める。
さらに、継続時間長算出部21は、HMM#1の全体継続時間T、HMM#2の全体継続時間T'、および混合係数βを用い、式(28)にしたがって、HMM#1と#2とを混合した合成HMMから出力される混合ベクトル時系列の長さT''を求める。
ここで、混合係数βは、例えば、あらかじめ設定しておくことができる。また、混合係数βは、例えば、ユーザが、図示せぬ操作部を操作することにより、あるいは、図1の状態確率推定部3およびベクトル時系列生成部4から構成されるベクトル時系列出力部10を使用するアプリケーションから与えることができる。
継続時間長算出部21は、混合ベクトル時系列の長さT''を求めると、その長さT''に基づき、HMM#1を用いて生成されるベクトル時系列の長さを調整する係数γを、式(29)にしたがって求めるとともに、HMM#2を用いて生成されるベクトル時系列の長さを調整する係数γ'を、式(30)にしたがって求める。
そして、継続時間長算出部21は、HMM#1の各状態Siの継続時間の期待値d1,d2,・・・,dNを、係数γを用いて、γ×d1,γ×d2,・・・,γ×dNに調整するとともに、HMM#2の各状態S'jの継続時間の期待値d'1,d'2,・・・,dMも、係数γ'を用いて、γ'×d'1,γ'×d'2,・・・,γ'×d'Mに調整する。
その後、継続時間長算出部21は、HMM#1の各状態Siの継続時間の期待値の調整後の値γ×d1,γ×d2,・・・,γ×dNと、HMM#2の各状態S'jの継続時間の期待値の調整後の値γ'×d'1,γ'×d'2,・・・,γ'×d'Mを、期待遷移時刻算出部22に供給して、ステップS72からステップS73に進む。
ステップS73では、期待遷移時刻算出部22は、継続時間長算出部21からのHMM#1の各状態Siの継続時間の期待値の調整後の値γ×d1,γ×d2,・・・,γ×dNを用いて、期待遷移時刻tiと、逆期待遷移時刻ti'とを求め、期待遷移時刻tiを、前向き遷移確率決定部23Fに供給するとともに、逆期待遷移時刻ti'を、後ろ向き遷移確率決定部23Bに供給して、ステップS74に進む。
ステップS74では、前向き遷移確率決定部23Fが、期待遷移時刻算出部22からの期待遷移時刻tiを用い、式(9)の前向き遷移確率qi(t)を求め、前向き状態確率算出部24Fに供給するとともに、後ろ向き遷移確率決定部23Bが、期待遷移時刻算出部22からの逆期待遷移時刻ti'を用い、式(10)の後ろ向き遷移確率ri(t)を求め、後ろ向き状態確率算出部24Bに供給して、ステップS75に進む。
ステップS75では、前向き状態確率算出部24Fが、前向き遷移確率決定部23Fからの前向き遷移確率qi(t)を用い、式(13)の前向き状態確率Pfi(t)を求めて、状態確率算出部25に供給するとともに、後ろ向き状態確率算出部24Bが、後ろ向き遷移確率決定部23Bからの後ろ向き遷移確率ri(t)を用いて、式(17)の後ろ向き状態確率Pbi(t)を求めて、状態確率算出部25に供給して、ステップS76に進む。
ステップS76では、状態確率算出部25が、前向き状態確率算出部24Fからの前向き状態確率Pfi(t)と、後ろ向き状態確率算出部24Bからの後ろ向き状態確率Pbi(t)とを用いて、式(19)の状態確率Pi(t)、即ち、HMM#1の各状態Si(i=1,2,・・・,N)が各時刻t(=1,2,・・・,T''(=γ×T))においてベクトルを出力する確率である状態確率Pi(t)を求める。
ステップS73乃至S76の処理は、HMM#2についても同様にして行われ、これにより、状態確率算出部25では、HMM#2についての式(19)の状態確率Pi(t)、即ち、HMM#2の各状態Sj(j=1,2,・・・,N)が各時刻t(=1,2,・・・,T''(=γ'×T'))においてベクトルを出力する確率である状態確率P'j(t)も求められる。
そして、状態確率算出部25は、HMM#1についての状態確率Pi(t)と、HMM#2についての状態確率P'j(t)とを、後段のベクトル時系列生成部4(図1)に供給して、状態確率推定処理を終了する。
次に、図25のフローチャートを参照して、上述のように、HMMを混合する場合に、図13のベクトル時系列生成部4で行われるベクトル時系列生成処理について説明する。なお、ここでは、図24の場合と同様に、2つのHMM#1と#2を混合することとし、その2つのHMM#1と#2が、選択部2(図1)によって、HMM記憶部1から読み出され、ベクトル時系列生成部4に供給されることとする。
ベクトル時系列生成部4には、選択部2(図1)からHMM#1と#2が供給されるとともに、状態確率推定部3(図1)から、図24の状態確率推定処理が行われることにより得られるHMM#1についての状態確率Pi(t)と、HMM#2についての状態確率P'j(t)とが供給される。
期待値取得部31は、選択部2(図1)からHMM#1と#2の供給を受け、ステップS81において、選択部2から供給されるHMM#1の出力確率密度関数bi(x)から、その出力確率密度関数bi(x)が表す確率分布にしたがうベクトルxの期待値を、選択部2からのHMM#1において出力確率密度関数b1(x),b2(x),・・・,bN(x)が定義されている各状態S1,S2,・・・,SNについて求め、期待値算出部32に供給する。
即ち、期待値取得部31は、選択部2からのHMM#1において出力確率密度関数b1(x),b2(x),・・・,bN(x)が定義されている各状態S1,S2,・・・,SNについて、出力確率密度関数b1(x),b2(x),・・・,bN(x)が表す正規分布を規定する平均ベクトルμ1,μ2,・・・,μNを求め、期待値算出部32に供給する。
同様に、期待値取得部31は、選択部2からの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を求め、期待値算出部32に供給する。
そして、ステップS81からステップS82に進み、期待値算出部32は、状態確率推定部3(図1)からのHMM#1についての状態確率Pi(t)と、HMM#2についての状態確率P'j(t)との供給を受け、期待値取得部31から供給されるHMM#1についての平均ベクトルμ1,μ2,・・・,μNと、状態確率推定部3から供給される時刻tについてのHMM#1の状態確率P1(t),P2(t),・・・,PN(t)との積和演算、つまり、式(31)の右辺第1項の括弧内のサメーションの演算を行い、その積和演算結果ΣPi(t)・μiを、時刻tにHMM#1から出力されるベクトルの期待値として求める。
同様に、期待値算出部32は、期待値取得部31から供給されるHMM#2についての平均ベクトルμ'1,μ'2,・・・,μ'Mと、状態確率推定部3から供給される時刻tについてのHMM#2の状態確率P'1(t),P'2(t),・・・,P'M(t)との積和演算、つまり、式(31)の右辺第2項の括弧内のサメーションの演算を行い、その積和演算結果ΣP'j(t)・μ'jを、時刻tにHMM#2から出力されるベクトルの期待値として求める。
期待値算出部32は、ステップS82において、時刻t=1,2,・・・,T''ごとの、HMM#1から出力されるベクトルxの期待値ΣPi(t)・μiと、HMM#2から出力されるベクトルxの期待値ΣP'j(t)・μ'jとを求めると、ステップS83に進み、式(31)にしたがい、時刻tごとに、HMM#1から出力されるベクトルxの期待値ΣPi(t)・μiと、HMM#2から出力されるベクトルxの期待値ΣP'j(t)・μ'jとを、混合係数βに基づく比率β:1-βで混合し、全体継続時間がT''の混合ベクトル時系列x1,x2,・・・,xTを求める。そして、期待値算出部32は、ステップS83からステップS84に進み、混合ベクトル時系列x1,x2,・・・,xTを出力して、ベクトル時系列生成処理を終了する。
以上のように、各時刻tにおいて、HMMの各状態Siがベクトルを出力する確率である状態確率Pi(t)を導入し、その状態確率Pi(t)に基づき、HMMが出力するベクトルxの期待値を解析的に計算することで、ベクトル時系列x1,x2,・・・,xTを生成するようにしたので、滑らかに変化する時系列データを容易に得ることができる他、状態確率Pi(t)を求める時刻tの時間間隔の調整等によって、HMMから出力されるベクトル時系列の長さや時間間隔その他の特性の調整を容易に行うことが可能となる。
また、複数のHMMどうしを結合した結合HMMからのベクトル時系列の生成や、周期的なベクトル時系列の生成、さらには、複数のHMMを混合した合成HMMからのベクトル時系列(混合ベクトル時系列)の生成なども容易に行うことが可能となる。
即ち、例えば、1の状態から他の1の状態に遷移する時刻(期待遷移時刻ti、逆期待遷移時刻t'i)が所定の確率分布としての、例えば、正規分布にしたがうこととして、状態確率Pi(t)が推定されるが、その正規分布の分散(式(9)の分散σ2や式(10)の分散σ'2)を調整可能としたので、その調整によって、HMMから出力されるベクトル時系列の特性を、容易に調整することができる。
さらに、例えば、状態確率Pi(t)を推定する時刻の間隔も、1だけでなく、0.1等に調整可能としたので、その調整によって、HMMから出力されるベクトル時系列のベクトル間の時間間隔を、容易に調整することができる。
また、例えば、複数のHMMを結合することにより得られる新たな状態遷移確率モデルとしての結合HMMの各状態について、状態確率Pi(t)を推定することにより、複数のHMMそれぞれから出力されるベクトル時系列を並べたベクトル時系列であって、滑らかに変化するベクトル時系列を、容易に生成することができる。
さらに、例えば、同一の3つの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が出力するベクトル時系列を、容易に得ることができる。
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図26は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体111に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部108で受信し、内蔵するハードディスク105にインストールすることができる。
コンピュータは、CPU(Central Processing Unit)102を内蔵している。CPU102には、バス101を介して、入出力インタフェース110が接続されており、CPU102は、入出力インタフェース110を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部107が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、また、CPU102は、ハードディスク105に格納されているプログラム、衛星若しくはネットワークから転送され、通信部108で受信されてハードディスク105にインストールされたプログラム、またはドライブ109に装着されたリムーバブル記録媒体111から読み出されてハードディスク105にインストールされたプログラムを、RAM(Random Access Memory)104にロードして実行する。これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
なお、本実施の形態では、ベクトル時系列を出力するベクトル時系列出力部10を、音声合成装置に適用した場合について説明したが、ベクトル時系列出力部10は、音声合成装置の他、ベクトル時系列、つまり、時系列の信号を入力として、その時系列の信号にしたがって処理を行う各種のシステム、即ち、例えば、時系列の信号であるモータ信号にしたがってアクチュエータ(モータ)を駆動することにより、腕や脚に対応する部分を動かすロボットなどに適用することができる。
また、本実施の形態における「ベクトル」には、1次元のベクトル、つまり、スカラー量も含まれる。
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
本発明を適用した音声合成装置の一実施の形態の構成例を示すブロック図である。 left-to-right型のHMMの例を示す図である。 音声合成装置の処理を説明するフローチャートである。 left-to-right型のHMMにおける状態遷移の仕方の例を示す図である。 遷移時刻tがしたがう、平均値が期待遷移時刻tiで、分散がσ2の正規分布を示す図である。 前向き遷移確率qi(t)とHMMの状態との関係を示す図である。 後ろ向き遷移確率ri(t)とHMMの状態との関係を示す図である。 前向き状態確率Pfi(t)を模式的に示した図である。 後ろ向き状態確率Pbi(t)を模式的に示した図である。 状態確率Pi(t)を模式的に示した図である。 状態確率推定部3の構成例を示すブロック図である。 状態確率推定処理を説明するフローチャートである。 ベクトル時系列生成部4の構成例を示すブロック図である。 ベクトル時系列生成処理を説明するフローチャートである。 シミュレーションでのHMMの学習に用いた学習データを示す図である。 シミュレーションによってHMMから生成された1次元のベクトル時系列を示す図である。 時刻tの刻み幅を1として求められる状態確率Pi(t)と、時刻tの刻み幅を0.1として求められる状態確率Pi(t)とを示す図である。 2つのHMM#1と#2とを結合した結合HMMを示す図である。 HMMを結合して、ベクトル時系列を生成する場合の音声合成装置の処理を説明するフローチャートである。 終了状態SN+1の直前の状態SNから、初期状態S0の直後の状態S1に戻る遷移を与えたHMMを示す図である。 同一の3つのHMM#1,#2,#3を、その順で結合した結合HMMを示す図である。 周期的な軌道のベクトル時系列を生成する場合の音声合成装置の処理を説明するフローチャートである。 HMM#1から出力されるベクトル時系列とHMM#2から出力されるベクトル時系列とを混合した中間的なベクトル時系列を生成する方法を説明する図である。 HMMを混合する場合の、状態確率推定部3で行われる状態確率推定処理を説明するフローチャートである。 HMMを混合する場合の、ベクトル時系列生成部4で行われるベクトル時系列生成処理を説明するフローチャートである。 本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
符号の説明
1 HMM記憶部, 2 選択部, 3 状態確率推定部, 4 ベクトル時系列生成部, 5 逆フィルタ, 10 ベクトル時系列出力部, 21 継続時間長算出部, 22 期待遷移時刻算出部, 23F 前向き遷移確率決定部, 23B 後ろ向き遷移確率決定部, 24F 前向き状態確率算出部, 24B 後ろ向き状態確率算出部, 25 状態確率算出部, 31 期待値取得部, 32 期待値算出部, 101 バス, 102 CPU, 103 ROM, 104 RAM, 105 ハードディスク, 106 出力部, 107 入力部, 108 通信部, 109 ドライブ, 110 入出力インタフェース, 111 リムーバブル記録媒体

Claims (17)

  1. 時系列のデータを出力するデータ出力装置において、
    状態の遷移に応じてデータが出力される状態遷移確率モデルの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率を推定する状態確率推定手段と、
    前記状態確率と、状態が出力する代表的なデータとに基づいて、状態遷移確率モデルが出力する所定の間隔の時刻ごとのデータを求め、時系列のデータとして出力する時系列データ生成手段と
    を備えるデータ出力装置。
  2. 請求項1に記載のデータ出力装置において、
    前記状態遷移確率モデルは、HMM(Hidden Markov Model)である
    データ出力装置。
  3. 請求項1に記載のデータ出力装置において、
    前記状態確率推定手段は、1の状態から他の1の状態に遷移する時刻が所定の確率分布にしたがうこととして、前記状態確率を推定する
    データ出力装置。
  4. 請求項3に記載のデータ出力装置において、
    前記所定の確率分布は、正規分布である
    データ出力装置。
  5. 請求項4に記載のデータ出力装置において、
    前記所定の確率分布である正規分布の平均値は、同一の状態への遷移が継続する継続時間の期待値に基づいて決定される
    データ出力装置。
  6. 請求項4に記載のデータ出力装置において、
    前記所定の確率分布である正規分布の分散は、同一の状態への遷移が継続する継続時間の期待値に基づいて決定される
    データ出力装置。
  7. 請求項4に記載のデータ出力装置において、
    前記所定の確率分布である正規分布の分散は、調整可能である
    データ出力装置。
  8. 請求項1に記載のデータ出力装置において、
    状態が出力する代表的なデータは、前記状態が出力するデータの確率分布から求められる、前記状態が出力するデータの平均である
    データ出力装置。
  9. 請求項1に記載のデータ出力装置において、
    前記時系列データ生成手段は、各状態についての前記状態確率を重みとして、状態が出力する代表的なデータを線形結合することにより、状態が遷移する時刻ごとのデータを求める
    データ出力装置。
  10. 請求項1に記載のデータ出力装置において、
    前記状態確率推定手段が前記状態確率を推定する時刻の間隔は、調整可能である
    データ出力装置。
  11. 請求項1に記載のデータ出力装置において、
    前記状態確率推定手段は、複数の状態遷移確率モデルを結合することにより得られる新たな状態遷移確率モデルの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率を推定する
    データ出力装置。
  12. 請求項1に記載のデータ出力装置において、
    前記状態確率推定手段は、3つの同一の状態遷移確率モデルである第1、第2、および第3の状態遷移確率モデルを結合することにより得られる新たな状態遷移確率モデルの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率を推定し、
    前記時系列データ生成手段は、前記状態確率推定手段において推定された前記状態確率のうちの、前記第2の状態遷移確率モデルの各状態についての状態確率と、状態が出力する代表的なデータとに基づいて、状態遷移確率モデルが出力する所定の間隔の時刻ごとのデータを求める
    データ出力装置。
  13. 請求項1に記載のデータ出力装置において、
    前記状態確率推定手段は、第1の状態遷移確率モデルの前記状態確率と、第2の状態遷移確率モデルの前記状態確率とを、第1の状態遷移確率モデルが出力する時系列のデータの長さと、第2の状態遷移確率モデルが出力する時系列のデータの長さとが同一になるように調整をして推定し、
    前記時系列データ生成手段は、前記第1の状態遷移確率モデルの前記状態確率と前記第1の状態遷移確率モデルの状態が出力する代表的なデータ、および、第2の状態遷移確率モデルの前記状態確率と前記第2の状態遷移確率モデルの状態が出力する代表的なデータに基づいて、状態遷移確率モデルが出力する所定の間隔の時刻ごとのデータを求める
    データ出力装置。
  14. 請求項13に記載のデータ出力装置において、
    前記状態確率推定手段は、前記第1と第2の状態遷移確率モデルを混合する比率に基づいて、第1の状態遷移確率モデルが出力する時系列のデータの長さと、第2の状態遷移確率モデルが出力する時系列のデータの長さとを調整する
    データ出力装置。
  15. 請求項1に記載のデータ出力装置において、
    前記時系列のデータは、時系列のベクトルである
    データ出力装置。
  16. 時系列のデータを出力するデータ出力方法において、
    状態の遷移に応じてデータが出力される状態遷移確率モデルの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率を推定する状態確率推定ステップと、
    前記状態確率と、状態が出力する代表的なデータとに基づいて、状態遷移確率モデルが出力する所定の間隔の時刻ごとのデータを求め、時系列のデータとして出力する時系列データ出力ステップと
    を含むデータ出力方法。
  17. 時系列のデータを出力するデータ出力処理を、コンピュータに実行させるプログラムにおいて、
    状態の遷移に応じてデータが出力される状態遷移確率モデルの各状態について、所定の間隔の時刻ごとの、状態がデータを出力する状態確率を推定する状態確率推定ステップと、
    前記状態確率と、状態が出力する代表的なデータとに基づいて、状態遷移確率モデルが出力する所定の間隔の時刻ごとのデータを求め、時系列のデータとして出力する時系列データ出力ステップと
    を含むデータ出力処理をコンピュータに実行させるプログラム。
JP2005194907A 2005-07-04 2005-07-04 データ出力装置、データ出力方法、およびプログラム Expired - Fee Related JP4662139B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005194907A JP4662139B2 (ja) 2005-07-04 2005-07-04 データ出力装置、データ出力方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005194907A JP4662139B2 (ja) 2005-07-04 2005-07-04 データ出力装置、データ出力方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2007011203A true JP2007011203A (ja) 2007-01-18
JP4662139B2 JP4662139B2 (ja) 2011-03-30

Family

ID=37749768

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005194907A Expired - Fee Related JP4662139B2 (ja) 2005-07-04 2005-07-04 データ出力装置、データ出力方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP4662139B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1947292A2 (en) 2007-01-22 2008-07-23 Mitsubishi Heavy Industries, Ltd. Crankshaft
WO2012063424A1 (ja) * 2010-11-08 2012-05-18 日本電気株式会社 特徴量系列生成装置、特徴量系列生成方法および特徴量系列生成プログラム
WO2013014858A1 (ja) * 2011-07-25 2013-01-31 日本電気株式会社 ピッチパタン生成方法、ピッチパタン生成装置、音声合成装置およびピッチパタン生成プログラム
JP2013539558A (ja) * 2011-08-10 2013-10-24 ゴーアテック インコーポレイテッド パラメータ音声の合成方法及びシステム
JP2014174278A (ja) * 2013-03-07 2014-09-22 Toshiba Corp 音声合成辞書編集装置、音声合成辞書編集方法及び音声合成辞書編集プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002062890A (ja) * 2000-08-18 2002-02-28 Seiko Epson Corp 音声合成方法および音声合成装置ならびに音声合成処理プログラムを記録した記録媒体
JP2002244689A (ja) * 2001-02-22 2002-08-30 Rikogaku Shinkokai 平均声の合成方法及び平均声からの任意話者音声の合成方法
JP2004012584A (ja) * 2002-06-04 2004-01-15 Nippon Telegr & Teleph Corp <Ntt> 音声認識用情報作成方法、音響モデル作成方法、音声認識方法、音声合成用情報作成方法、音声合成方法及びそれらの装置、並びにプログラム及びそのプログラムを記録した記録媒体
JP2004233774A (ja) * 2003-01-31 2004-08-19 Nippon Telegr & Teleph Corp <Ntt> 音声合成方法及び装置、並びに音声合成プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002062890A (ja) * 2000-08-18 2002-02-28 Seiko Epson Corp 音声合成方法および音声合成装置ならびに音声合成処理プログラムを記録した記録媒体
JP2002244689A (ja) * 2001-02-22 2002-08-30 Rikogaku Shinkokai 平均声の合成方法及び平均声からの任意話者音声の合成方法
JP2004012584A (ja) * 2002-06-04 2004-01-15 Nippon Telegr & Teleph Corp <Ntt> 音声認識用情報作成方法、音響モデル作成方法、音声認識方法、音声合成用情報作成方法、音声合成方法及びそれらの装置、並びにプログラム及びそのプログラムを記録した記録媒体
JP2004233774A (ja) * 2003-01-31 2004-08-19 Nippon Telegr & Teleph Corp <Ntt> 音声合成方法及び装置、並びに音声合成プログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1947292A2 (en) 2007-01-22 2008-07-23 Mitsubishi Heavy Industries, Ltd. Crankshaft
WO2012063424A1 (ja) * 2010-11-08 2012-05-18 日本電気株式会社 特徴量系列生成装置、特徴量系列生成方法および特徴量系列生成プログラム
JPWO2012063424A1 (ja) * 2010-11-08 2014-05-12 日本電気株式会社 特徴量系列生成装置、特徴量系列生成方法および特徴量系列生成プログラム
US9299338B2 (en) 2010-11-08 2016-03-29 Nec Corporation Feature sequence generating device, feature sequence generating method, and feature sequence generating program
WO2013014858A1 (ja) * 2011-07-25 2013-01-31 日本電気株式会社 ピッチパタン生成方法、ピッチパタン生成装置、音声合成装置およびピッチパタン生成プログラム
JP2013539558A (ja) * 2011-08-10 2013-10-24 ゴーアテック インコーポレイテッド パラメータ音声の合成方法及びシステム
JP2014174278A (ja) * 2013-03-07 2014-09-22 Toshiba Corp 音声合成辞書編集装置、音声合成辞書編集方法及び音声合成辞書編集プログラム

Also Published As

Publication number Publication date
JP4662139B2 (ja) 2011-03-30

Similar Documents

Publication Publication Date Title
Howard et al. Searching for mobilenetv3
JP6736786B2 (ja) エンドツーエンドのテキスト音声変換
JP6628350B2 (ja) リカレント型ニューラルネットワークの学習方法及びそのためのコンピュータプログラム、並びに音声認識装置
Bilmes Buried Markov models for speech recognition
JP4662139B2 (ja) データ出力装置、データ出力方法、およびプログラム
US20080215299A1 (en) Asynchronous Hidden Markov Model Method and System
CN105719643A (zh) 声音检索装置、声音检索方法
CN113744755A (zh) 一种从音频信号生成语音动画的装置及方法
JP2006309162A (ja) ピッチパターン生成方法、ピッチパターン生成装置及びプログラム
CN110825854A (zh) 响应推断方法和设备
Shahshahani A Markov random field approach to Bayesian speaker adaptation
JP4069715B2 (ja) 音響モデル作成方法および音声認識装置
JP5474713B2 (ja) 音声合成装置、音声合成方法および音声合成プログラム
JP7109071B2 (ja) 学習装置、学習方法、音声合成装置、音声合成方法及びプログラム
JP4442211B2 (ja) 音響モデル作成方法
JP4950600B2 (ja) 音響モデル作成装置、その装置を用いた音声認識装置、これらの方法、これらのプログラム、およびこれらの記録媒体
Koloydenko et al. On adjusted Viterbi training
Zeng et al. Interval type-2 fuzzy hidden Markov models
JP2010054588A (ja) 音響モデル作成装置、その装置を用いた音声認識装置、これらの方法、これらのプログラム、およびこれらの記録媒体
US11443748B2 (en) Metric learning of speaker diarization
JP2005156593A (ja) 音響モデル作成方法、音響モデル作成装置、音響モデル作成プログラムおよび音声認識装置
JP5763414B2 (ja) 特徴パラメータ生成装置、特徴パラメータ生成方法および特徴パラメータ生成プログラム
Sung et al. Maximum conditional likelihood linear regression and maximum a posteriori for hidden conditional random fields speaker adaptation
JP2009104275A (ja) 情報処理装置、情報処理方法、およびプログラム
JP2009223437A (ja) 新規信号生成装置、新規信号生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080627

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101209

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101222

R151 Written notification of patent or utility model registration

Ref document number: 4662139

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140114

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees