説明

クラスタリング計算装置、クラスタリング計算方法、クラスタリング計算プログラム並びにそのプログラムを記録したコンピュータ読み取り可能な記録媒体

【課題】ダイアライゼーションにおいて、話者数と各話者を特徴づけるパラメータを正確に推定するクラスタリング技術を提供する。
【解決手段】クラスタリング計算装置3は、録音された会話データから抽出されたパワーベクトルを読み込んでdHDP近似モデルに対応したベクトルの観測量に変換する観測量生成部26と、変換された観測量の集合データを蓄積記憶する記憶手段10と、観測量の集合データから複数のクラスタをdHDP近似モデルにより生成するときの複数のパラメータの事後分布の値をEMアルゴリズムによりそれぞれ推定し、記憶手段10に順次蓄積および更新する変分事後分布推論部30と、事前に設定された終了条件が成立したときに、記憶手段10に記憶されている複数のパラメータの事後分布の最新の推定値を出力する出力制御部28とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、話者数が未知である会話の録音データから話者数を推定する技術に関する。
【背景技術】
【0002】
従来、複数話者の会話からなる録音データから、その会話に参加した話者数とさらに各話者の発話したタイミングを推定する問題が知られている。この問題やこの問題を解決する技術は、ダイアライゼーション(diarization)と呼ばれている。ダイアライゼーションは、簡単には「いつ、誰が発話したか」を自動推定する技術といえる。この技術の応用としては、会議データへのアノテーション(annotation)やそれを用いた検索、音声強調など幅広い用途が期待されている。
【0003】
既存のダイアライゼーションの解法は、大きく2つに分けることができる。第1の方法は、話者固有の声質を推定して話者を区別する方法であり、第2の方法は、話者の位置を推定する方法である。このうち、第1の方法(話者声質を利用する方法)では、各話者の声の特徴を抽出することで現在発話している話者を識別する。この第1の方法では、話者が移動したとしても話者を識別できるという利点があるが、複数の話者が同時に発話した場合には話者の識別が困難となるという欠点がある。
【0004】
第2の方法(話者位置に関する情報を利用する方法)は、話者の位置を推定することで話者数とその位置を推定する方法である(例えば、非特許文献1〜3参照)。非特許文献1〜3の手法では、マイクロホンアレーを用いて各話者の位置を推定することで話者の識別を行う。従って、非特許文献1〜3の手法は、話者が移動すると同一話者として識別することができないという欠点があるが、複数話者が同時に発話する場合でも各話者の発話行動を識別することができるという利点がある。
【0005】
ダイアライゼーションでは、一般に、録音された音声データ中の発話者数は未知であり、推定しなければならない。また、第1の方法(話者声質を利用する方法)によるもの、第2の方法(話者位置に関する情報を利用する方法)によるものに関わらず、各話者を識別するためには、各話者を特徴づける量(パラメータ)を推定する必要がある。これは、いわゆるクラスタリングの問題に相当する。クラスタリングの問題とは、観測されたデータを適切な数のクラスタに分割し、各クラスタのパラメータを推定する問題である。ダイアライゼーションを単純にクラスタリングの問題に置き換えようとしても、そのクラスタ数とデータの分割は未知なので、パラメータと共に学習する必要がある。ダイアライゼーションの問題では、クラスタ数は「話者数」を表し、各クラスタのパラメータは「話者の特徴量」を表し、結果得られるデータの分割結果から「各話者の発話タイミング」が示唆されることになる。
【0006】
非特許文献1ではleader-followerアルゴリズムと呼ばれるクラスタリング手法を用いている。これは、逐次的なクラスタリング手法であり、少しずつサンプルを入力していきながらクラスタリングを行うものである。このクラスタリング手法では、クラスタリングの際に、新しく入力されたサンプルが既存のどのクラスタからも一定距離以上離れていた場合に、そのサンプルを中心として新しいクラスタを生成する。なお、leader-followerアルゴリズムについては、「R. O. Duda, P. E. Hart and D. G. Stork, “Pattern Classification”, John Wiley & Sons, 2001.」に記載されている。
【0007】
また、非特許文献3では、BIC基準と呼ばれる評価値を最大化するようなクラスタ数を選択する方法を提案している。この方法では、クラスタ数をKに設定してから実際にクラスタリングを行って評価値を計算し、次はクラスタ数をK+1に設定して評価値を計算する、ということを繰り返えして評価値を最大化するクラスタ数を探索する。
【0008】
ところで、クラスタ数未知のデータに対するクラスタリングモデルとして、ノンパラメトリックベイズモデルが、近年、多くの場面で利用されるようになってきた。例えば、ノンパラメトリックベイズモデルの1種であるDirichlet Process Mixture(DPM)は、クラスタ数と各サンプルのクラスタリングを確率的に同時に最適化することができる。従って、DPMは、既存のクラスタリングモデルのように、クラスタ数の最適化を簡単に実現できる点が大きな特徴である。このDPMにおいて、確率分布の連続的な時間変化をモデル化した拡張モデルとしては、dynamic Hierarchical Dirichlet Process(dHDP)と呼ばれるモデルが知られている(非特許文献4参照)。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】S. Araki, M. Fujimoto, K. Ishizuka, H. Sawada and S. Makino, ”A DOA Based Speaker Diarization System for Real Meetings”, Proceedings of the Joint Workshop on Hands-Free Speech Communication and Microphone Arrays, p.29-32, 2008.
【非特許文献2】荒木章子、藤本雅清、石塚健太郎、澤田宏、牧野昭二、“音声区間検出と方向情報を用いた会議音声話者識別システムとその評価”、日本音響学会講演論文集、春季、vol. 1-10-1, p. 1-4, 2008.
【非特許文献3】J. M. Pardo, X. Anguera and C. Wooters, “Speaker Diarization for Multi-Microphone Meetings Using Only Between-Channel Differences”, Proceedings of the Third Joint Workshop on Multimodal Interaction and Related machine Learning Algorithms”, p. 257-264, 2008.
【非特許文献4】L. Ren, D. B. Dunson and L. Carin, “The Dynamic Hierarchical Dirichlet process”, Proceedings of International Conference on Machine Learning, p. 824-831, 2008.
【発明の概要】
【発明が解決しようとする課題】
【0010】
従来のダイアライゼーションの研究において、例えば、非特許文献1に記載の手法は、計算が簡単で高速に実行できるが、新しいクラスタを生成するための距離閾値の設定が必要である。この閾値の設定によって、最終的に得られるクラスタリングとクラスタ数が決定される。一方で、クラスタ数やクラスタリング結果の推定値を真の値に近づけるという意味で、この閾値を最適化することは困難である。
【0011】
また、例えば、非特許文献3に記載の方法は、実際には不適切なクラスタ数のもとでもクラスタリングを行う必要があり、処理の過程において、計算量や時間の観点からは大きな無駄が発生する。
【0012】
したがって、従来のダイアライゼーションの研究では、話者数と話者の特徴を推定する部分、つまりクラスタリングの問題に改良の余地があった。また、ダイアライゼーションに対して、処理負荷の低減や処理の高速化が要望されている。さらに、従来のダイアライゼーションの研究では、dHDPやDPMなどのノンパラメトリックベイズモデルは、クラスタリングモデルとして採用されておらず、その適用方法が知られていなかった。
【0013】
そこで、本発明では、前記した問題を解決し、ダイアライゼーションにおいて、話者数と各話者を特徴づけるパラメータを正確に推定するクラスタリング技術を提供することを目的とする。
【課題を解決するための手段】
【0014】
前記目的を達成するために、本願発明者らは、ダイアライゼーションにおいて、話者数と各話者を特徴づけるパラメータを推定するクラスタリングにおいて種々検討を行った。その結果、クラスタ数やデータの分割、そしてパラメータを事後確率最大化の意味で同時に最適化できるモデルとしてノンパラメトリックベイズモデルを採用したときに、話者数を正確に推定できることを見出した。
【0015】
そこで、本発明に係るクラスタリング計算装置は、話者数が未知である会話の録音データから前記会話の話者数を推定するために、各話者を特徴付ける特徴量を抽出する特徴量抽出手段と、前記抽出された特徴量から前記各話者に対応する複数のクラスタを生成するときの複数の未知パラメータの値をそれぞれ推定するクラスタリング計算装置と、前記推定された複数のパラメータ値により前記会話の各話者を識別する識別手段とを有したダイアライゼーションシステムの前記クラスタリング計算装置であって、前記抽出された特徴量を読み込む読込手段と、前記読み込んだ特徴量をノンパラメトリックベイズモデルに対応したベクトルの観測量に変換する観測量生成手段と、前記変換された観測量の集合データを蓄積記憶する観測量記憶手段と、前記観測量の集合データから複数のクラスタをノンパラメトリックベイズモデルにより生成するときの複数のパラメータの事後分布の値をEMアルゴリズムによりそれぞれ推定および更新する事後分布推論手段と、前記推定および更新された複数のパラメータの事後分布の値を蓄積記憶する推定値記憶手段と、事前に設定された終了条件が成立したときに前記推定値記憶手段に記憶されている前記複数のパラメータの事後分布の最新の推定値を出力する出力制御手段と、を備えることを特徴とする。
【0016】
かかる構成によれば、クラスタリング計算装置は、会話の録音データから抽出された特徴量をノンパラメトリックベイズモデルに適応できるようにベクトルの観測量に変換することで生成した観測量の集合データを用いて、ノンパラメトリックベイズモデルに従った演算により、クラスタ数やデータの分割、そしてパラメータを事後確率最大化の意味で同時に最適化する。そして、クラスタリング計算装置は、この最適化において、EMアルゴリズムにより事後分布の推定および更新を繰り返し、蓄積記憶する。ここで、EMアルゴリズムは、局所最適解の計算アルゴリズムであるため、計算を繰り返すことで、ある1つの解に収束させることができる。また、ノンパラメトリックベイズモデルでは、予め準備した最大クラスタ数の個数のクラスタが最適化処理の過程で、有効なクラスタ数の個数に収束し、他のクラスタは、クラスタの混合比がほぼ0となる。このクラスタリング結果が得られれば、各クラスタへ帰属するサンプル数(観測量の個数)が計算できる。また、この各クラスタへ帰属するサンプル数を用いて各クラスタの混合比を計算可能である。さらに、この混合比により、有効なクラスタ数を決定することができる。ここで、クラスタ数は、会話の録音データ中の話者に対応しているので、話者数が決定できるようになる。また、これらクラスタリング結果と共に、それを用いた各種変数の推定値も同様に蓄積記憶することができる。そして、クラスタリング計算装置は、終了条件が成立したときに蓄積記憶されている最新の推定値を出力する。
【0017】
また、本発明に係るクラスタリング計算装置は、前記事後分布推論手段が、前記EMアルゴリズムのEステップの処理として、dHDP(dynamic Hierarchical Dirichlet Process)モデルにおいて予め定められた事前分布、観測分布および最大クラスタ数と、ハイパーパラメータの設定値と、過去から推定対象の時刻までに変換された観測量の集合データと、過去から最新のMステップまでに推定された隠れ変数の事後分布の推定値とを読み込んで、過去分を含めた演算対象時刻ごと、かつ、クラスタごと、かつ、演算対象時刻別の全データごとに、前記クラスタと、混合比と、前記クラスタ分布の時間変化の程度を表す重みとに関するパラメータの事後分布の値を演算するEステップ用計算手段と、前記EMアルゴリズムのMステップの処理として、前記ハイパーパラメータの設定値と、過去から推定対象の時刻までに変換された観測量の集合データと、過去から最新のEステップまでに推定されたパラメータの事後分布の推定値とを読み込んで、過去分を含めた演算対象時刻ごと、かつ、演算対象時刻別の全データごとに、2種類の隠れ変数の事後分布の値を推定し、前記2種類の隠れ変数のうち、前記クラスタ分布の時間変化の程度を表す重みに関連付けられた第1隠れ変数の事後分布の値についてはクラスタごとに演算し、前記第1隠れ変数および前記混合比に関連付けられた第2隠れ変数の事後分布の値については、演算対象時刻から過去に遡及した時刻ごとに演算するMステップ用計算手段と、前記Eステップの処理と前記Mステップの処理とを交互に予め定められた回数だけ繰り返し実行させる制御を行う収束判定手段と、を備えることを特徴とする。
【0018】
かかる構成によれば、クラスタリング計算装置は、ノンパラメトリックベイズモデルのうちdHDPモデルに従った演算により、クラスタ数やデータの分割、そしてパラメータを事後確率最大化の意味で同時に最適化するためにEMアルゴリズムを用いる。また、dHDPモデルでは、ある時刻tにおけるパラメータ分布を、前の時刻t−1でのパラメータ分布と、当該時刻tでのパラメータ分布の変化量とを、時刻tにおける変化量の変化の割合(重み)で重ね合わせた分布として表現している。すなわち、dHDPでは、時刻に依存して分布が少しずつ変化するというモデルとなっている。クラスタリング計算装置のアルゴリズムは、ある時刻tにおけるパラメータ分布を、時刻tに実際に発話した発話者を構成しているものとして構築した。そのため、dHDPモデルは、話者の入れ替わり(turn-taking)によって観測量(サンプル)の分布が時間変化するダイアライゼーションのタスクにとって好都合の確率モデルとなった。したがって、話者の入れ替わりがある会話録音データから、未知の話者数と各話者を特徴づけるパラメータを正確に推定することができる。
【0019】
また、本発明に係るクラスタリング計算装置は、前記Eステップ用計算手段が、観測量の集合データと、隠れ変数の事後分布の推定値とについて、推定対象の時刻から事前に設定された定数または直前のMステップの推定値を反映した変動数分だけ過去に遡及した時刻のデータを読み込み、推定対象の時刻から事前に設定された設定値分だけ遡及した過去の時刻までを演算対象時刻として、前記クラスタと、前記混合比と、前記重みとに関するパラメータの事後分布の値を演算し、クラスタごとの演算のためにクラスタを更新する処理を実行するたびに、事前に設定された再推定すべきクラスタの判断基準に基づいて、推定処理対象のクラスタを再推定すべきか否か判別し、再推定すべきクラスタである場合に、前記混合比に関するパラメータの事後分布の値を演算し、前記Mステップ用計算手段が、観測量の集合データと、パラメータの事後分布の推定値とについて、推定対象の時刻から事前に設定された定数または直前のMステップの推定値を反映した変動数分だけ過去に遡及した時刻のデータを読み込み、推定対象の時刻から事前に設定された設定値分まで遡及した過去の時刻までを演算対象時刻として、前記第1隠れ変数および第2隠れ変数の事後分布の値を演算し、クラスタごとの演算のためにクラスタを更新する処理を実行するたびに、前記判断基準に基づいて、推定処理対象のクラスタを再推定すべきか否か判別し、再推定すべきクラスタである場合に、前記第1隠れ変数の事後分布の値を演算することを特徴とする。
【0020】
かかる構成によれば、クラスタリング計算装置は、EステップおよびMステップにおいて、推定対象の時刻から事前に定められた過去の一時点まで遡った観測量の集合データと、その演算に必要な推定値とを読み込み、当該推定対象の時刻から事前に定められた設定値分だけ過去に遡った過去の時刻までを演算対象時刻として、推定値を求める演算を行う。したがって、事前に過去の一時点や設定値を定めることなく、時間ステップの進展とともに推定すべき変数の個数が増加していくだけである場合と比べて、処理負荷の低減や処理の高速化を実現できる。また、クラスタリング計算装置は、EステップおよびMステップにおいて、クラスタごとの演算のためにクラスタを更新したときに、必要な場合にだけそのクラスタにおける推定値の再推定処理を行う。したがって、dHDPモデルにおいて予め設定される最大クラスタ数の個数のクラスタに関して、推定値の再推定処理を毎回実行する場合に比べて、処理負荷の低減や処理の高速化を実現できる。
【0021】
また、課題を解決するため、本発明に係るクラスタリング計算方法は、話者数が未知である会話の録音データから前記会話の話者数を推定するダイアライゼーションシステムにおいて、記憶手段と、読込手段と、観測量生成手段と、事後分布推論手段と、出力制御手段とを備えて、前記録音データから抽出された各話者を特徴付ける特徴量から前記各話者に対応する複数のクラスタを生成するときの複数の未知パラメータの値をそれぞれ推定するクラスタリング計算装置のクラスタリング計算方法であって、前記読込手段によって、前記抽出された特徴量を読み込む特徴量読込ステップと、前記観測量生成手段によって、前記読み込んだ特徴量をノンパラメトリックベイズモデルに対応したベクトルの観測量に変換し、前記変換された観測量の集合データを記憶手段に順次蓄積する観測量蓄積ステップと、前記事後分布推論手段によって、前記観測量の集合データから複数のクラスタをノンパラメトリックベイズモデルにより生成するときの複数のパラメータの事後分布の値をEMアルゴリズムによりそれぞれ推定し、当該推定値を前記記憶手段に順次格納および更新する事後分布推定ステップと、前記出力制御手段によって、事前に設定された終了条件が成立したときに前記記憶手段に記憶されている前記複数のパラメータの事後分布の最新の推定値を出力する推定値出力ステップと、を含んで実行することを特徴とする。
【0022】
かかる手順によれば、クラスタリング計算方法において、クラスタリング計算装置は、まず、会話の録音データから抽出された特徴量を読み込み、ノンパラメトリックベイズモデルに適応できるようにベクトルの観測量に変換し、蓄積する。そして、クラスタリング計算装置は、生成した観測量の集合データを用いて、ノンパラメトリックベイズモデルに従った演算により、クラスタ数やデータの分割、そしてパラメータを事後確率最大化の意味で同時に最適化する。そして、クラスタリング計算装置は、この最適化において、EMアルゴリズムにより事後分布の推定および更新を繰り返し、蓄積記憶する。そして、クラスタリング計算装置は、終了条件が成立したときに蓄積記憶されている最新の推定値を出力する。
【0023】
また、本発明に係るクラスタリング計算方法は、前記事後分布推論手段が、前記事後分布推定ステップにおいて、前記EMアルゴリズムのEステップの処理として、dHDPモデルにおいて予め定められた事前分布、観測分布および最大クラスタ数と、ハイパーパラメータの設定値と、過去から推定対象の時刻までに変換された観測量の集合データと、過去から最新のMステップまでに推定された隠れ変数の事後分布の推定値とを読み込んで、推定対象の時刻に過去分を含めた演算対象時刻ごと、かつ、クラスタごと、かつ、前記演算対象時刻別の全データごとに、前記クラスタと、混合比と、前記クラスタ分布の時間変化の程度を表す重みとに関するパラメータの事後分布の値を演算する段階と、前記EMアルゴリズムのMステップの処理として、前記ハイパーパラメータの設定値と、過去から推定対象の時刻までに変換された観測量の集合データと、過去から最新のEステップまでに推定されたパラメータの事後分布の推定値とを読み込んで、推定対象の時刻に過去分を含めた演算対象時刻ごと、かつ、前記演算対象時刻別の全データごとに、2種類の隠れ変数の事後分布の値を推定し、前記2種類の隠れ変数のうち、前記クラスタ分布の時間変化の程度を表す重みに関連付けられた第1隠れ変数の事後分布の値についてはクラスタごとに演算し、前記第1隠れ変数および前記混合比に関連付けられた第2隠れ変数の事後分布の値については、前記演算対象時刻から過去に遡及した時刻ごとに演算する段階とを含み、前記Eステップの処理と前記Mステップの処理とを交互に予め定められた回数だけ繰り返し実行することを特徴とする。
【0024】
かかる手順によれば、クラスタリング計算方法において、クラスタリング計算装置は、ノンパラメトリックベイズモデルのうちdHDPモデルに従った演算により、クラスタ数やデータの分割、そしてパラメータを事後確率最大化の意味で同時に最適化するためにEMアルゴリズムを用いる。ここで、dHDPでは、時刻に依存して分布が少しずつ変化するというモデルとなっているため、話者の入れ替わり(turn-taking)によって観測量(サンプル)の分布が時間変化するダイアライゼーションのタスクにとって恰好の確率モデルである。したがって、話者の入れ替わりがある会話録音データから、未知の話者数と各話者を特徴づけるパラメータを正確に推定することができる。
【0025】
また、本発明に係るクラスタリング計算方法は、前記事後分布推論手段が、前記Eステップにおいて、観測量の集合データと、隠れ変数の事後分布の推定値とについては、推定対象の時刻から事前に設定された定数または直前のMステップの推定値を反映した変動数分だけ過去に遡及した時刻のデータを読み込み、前記Mステップにおいて、観測量の集合データと、パラメータの事後分布の推定値とについては、推定対象の時刻から事前に設定された定数または直前のMステップの推定値を反映した変動数分だけ過去に遡及した時刻のデータを読み込むことを特徴とする。
【0026】
かかる手順によれば、クラスタリング計算方法において、EステップおよびMステップでは、当該推定対象の時刻から事前に定められた過去の一時点まで遡った観測量の集合データと、その演算に必要な推定値とを読みこむ。したがって、事前に過去の一時点を定めることなく、時間ステップの進展とともに推定すべき変数の個数が増加していくだけである場合と比べて、処理負荷の低減や処理の高速化を実現できる。
【0027】
また、本発明に係るクラスタリング計算方法は、前記事後分布推論手段が、前記Eステップにおいて、推定対象の時刻から事前に設定された設定値分だけ遡及した過去の時刻までを演算対象時刻として、前記クラスタと、前記混合比と、前記重みとに関するパラメータの事後分布の値を演算し、前記Mステップにおいて、推定対象の時刻から事前に設定された設定値分まで遡及した過去の時刻までを演算対象時刻として、前記第1隠れ変数および第2隠れ変数の事後分布の値を演算することを特徴とする。
【0028】
かかる手順によれば、クラスタリング計算方法において、EステップおよびMステップでは、当該推定対象の時刻から事前に定められた設定値分だけ過去に遡った過去の時刻までを演算対象時刻として、推定値を求める演算を行う。したがって、事前に設定値を定めることなく、時間ステップの進展とともに推定すべき変数の個数が増加していくだけである場合と比べて、処理負荷の低減や処理の高速化を実現できる。
【0029】
また、本発明に係るクラスタリング計算方法は、前記事後分布推論手段が、前記Eステップにおいて、クラスタごとの演算のためにクラスタを更新する処理を実行するたびに、事前に設定された再推定すべきクラスタの判断基準に基づいて、推定処理対象のクラスタを再推定すべきか否か判別し、再推定すべきクラスタである場合にだけ、前記混合比に関するパラメータの事後分布の値を演算し、前記Mステップにおいて、クラスタごとの演算のためにクラスタを更新する処理を実行するたびに、前記判断基準に基づいて、推定処理対象のクラスタを再推定すべきか否か判別し、再推定すべきクラスタである場合にだけ、前記第1隠れ変数の事後分布の値を演算することを特徴とする。
【0030】
かかる手順によれば、クラスタリング計算方法において、EステップおよびMステップでは、クラスタごとの演算のためにクラスタを更新したときに、必要な場合にだけそのクラスタにおける推定値の再推定処理を行う。したがって、dHDPモデルにおいて予め設定される最大クラスタ数の個数のクラスタに関して、推定値の再推定処理を毎回実行する場合に比べて、処理負荷の低減や処理の高速化を実現できる。
【0031】
また、本発明に係るクラスタリング計算プログラムは、前記いずれかのクラスタリング計算装置を構成する各手段としてコンピュータを機能させるためのプログラムである。このように構成されることにより、このプログラムをインストールされたコンピュータは、このプログラムに基づいた各機能を実現することができる。
【0032】
また、本発明に係るコンピュータ読み取り可能な記録媒体は、前記クラスタリング計算プログラムが記録されたことを特徴とする。このように構成されることにより、この記録媒体を装着されたコンピュータは、この記録媒体に記録されたプログラムに基づいた各機能を実現することができる。
【発明の効果】
【0033】
本発明によれば、ダイアライゼーションにおける話者クラスタリングの問題に対して、ノンパラメトリックベイズモデルを採用して、確率的なクラスタリングを用いることで、従来のようなパラメータの設定や探索によらずに容易に話者数を推定できる。また、本発明によれば、ノンパラメトリックベイズモデルを採用したので、クラスタ数やデータの分割、そしてパラメータを事後確率最大化の意味で同時に最適化できる。その結果、ダイアライゼーションにおいて、話者数と各話者を特徴づけるパラメータを正確に推定できる。
【図面の簡単な説明】
【0034】
【図1】本発明の実施形態に係るクラスタリング計算装置を含むダイアライゼーションシステムの概要を示す構成図である。
【図2】本発明の実施形態に係るクラスタリング計算方法の全体処理の流れを示すフローチャートである。
【図3】図2に示す変分事後分布推論手順を示すフローチャートである。
【図4】図3に示すEステップの計算手順の一例を示すフローチャートである。
【図5】図3に示すMステップの計算手順の一例を示すフローチャートである。
【図6】本発明の実施形態に係るクラスタリング計算方法におけるEステップの計算手順を示すフローチャートである。
【図7】本発明の実施形態に係るクラスタリング計算方法におけるMステップの計算手順を示すフローチャートである。
【図8】本発明の実施形態に係るクラスタリング計算装置の構成の一例を示す機能ブロック図である。
【図9】本発明の実施形態に係るクラスタリング計算装置のクラスタリング性能を評価するために用いた人工音声データの時間平均パワー分布を示すグラフである。
【図10】本発明の実施形態に係るクラスタリング計算装置のクラスタリング性能を評価するために用いた実音声データの時間平均パワー分布を示すグラフであって、(a)はCP1、(b)はCP2、(c)はDC、(d)はCNをそれぞれ示している。
【図11】本発明の実施形態に係るクラスタリング計算装置によって人工音声データをクラスタリングした結果を示すグラフであって、(a)はDPM、(b)はdHDPをそれぞれ示している。
【図12】本発明の実施形態に係るクラスタリング計算装置によってCP1の実音声データをクラスタリングした結果を示すグラフであって、(a)はDPM、(b)はdHDPをそれぞれ示している。
【図13】本発明の実施形態に係るクラスタリング計算装置によってDCの実音声データをクラスタリングした結果を示すグラフであって、(a)はDPM、(b)はdHDPをそれぞれ示している。
【発明を実施するための形態】
【0035】
図面を参照して本発明のクラスタリング計算装置およびクラスタリング計算方法を実施するための形態(以下「実施形態」という)について詳細に説明する。以下では、推論原理の概略、ダイアライゼーションシステムの概略、クラスタリング計算方法の概要、計算アルゴリズム、クラスタリング計算装置について順次説明する。
【0036】
[推論原理の概略]
本実施形態では、ノンパラメトリックベイズモデルの一種として、例えば、dHDPを用いることとする。ここでは、dHDPを簡単に説明する。dHDPの数学的なモデルを式(1)〜式(6)に示す。なお、DPM等の他のノンパラメトリックベイズモデルを用いてもよいことはもちろんである。DPMの詳細は、例えば、「上田修功、山田武士、“ノンパラメトリックベイズモデル”,応用数理,Vol. 17, No. 3, pp. 196-214, 2007.」に記載されている。
【0037】
【数1】

【0038】
ここで、〜は確率分布からのサンプリングを表す。また、DP(・)はDirichlet Process(無限次元分布)を表し、γ,α,a,bは事前に設定するハイパーパラメータである。
【0039】
dHDPでは、まず、式(1)で離散無限個のパラメータ分布(クラスタ)Gを生成する。ダイアライゼーションにおいて、この分布Gは、データ全体を見たときの各発話者の発話割合と構成に相当する。DPMに代表されるノンパラメトリックベイズモデルでは、推定された解が自動的に少数のパラメータ(話者)からなる分布に集約される。
【0040】
式(2)のHtは、時刻tでの話者分布の時間変化(分布変化)を表す。
式(3)のwtは、時刻tでの話者分布の時間変化の割合(程度)を表す。
式(5)のθt iは、時刻tでのクラスタのパラメータを表し、式(6)のxt iは、時刻tでのサンプル分布を表す。なお、iは、時刻tでのi番目のデータを示す。
【0041】
式(4)におけるGtは、時刻tにおけるパラメータ分布である。ダイアライゼーションにおいて、分布Gtは、時刻tに実際に発話した発話者の構成を表現している。式(4)は、このGtを、時刻t−1での分布Gt-1と、時刻tでの分布変化を表すHtとをwtで重ね合わせた分布として表現したものである。よって、dHDPでは、各時刻でのサンプル分布(xt iの分布)に変動が許される。一方で、時刻に不変な分布であるGも推定するため、全体を通した話者クラスタも学習されている。
【0042】
さらに、dHDPでは、変化の割合であるwtも動的に学習されるので、話者が交代するときには、劇的に分布が代わり、そうでないときには、ほとんど分布が変化しないというように、変化の割合が一定でないデータのモデル化にも対応できる。このように、dHDPでは、時刻に依存して分布が少しずつ変化するというモデルとなっているため、話者の入れ替わり(turn-taking)によって観測量(サンプル)の分布が時間変化するダイアライゼーションのタスクにとって恰好の確率モデルとなっている。
【0043】
[ダイアライゼーションシステムの概略]
図1は、本発明の実施形態に係るクラスタリング計算装置を含むダイアライゼーションシステムの概要を示す構成図である。本実施形態のダイアライゼーションは、前記した第2の方法(話者位置に関する情報を利用する方法)によるものとして説明する。予め、未知数話者による会話を録音し、ダイアライゼーションシステム1への入力とする。ここでは、室内101に3人の話者HA、HB、HCが図1のような定位置で会話したものとする。音声データ(会話の録音データ)102は時系列データとなる。
【0044】
ダイアライゼーションシステム1は、1つの大型コンピュータ、または、複数のコンピュータからなる。ここでは、ダイアライゼーションシステム1は、3つのコンピュータ、すなわち、特徴量抽出部2と、クラスタリング計算装置3と、識別部4とを備える。
【0045】
特徴量抽出部2は、ノイズ除去のような前処理を行うと共に、ダイアライゼーションに適した各種特徴量を抽出するものである。特徴量抽出部2は、例えば、マイクロホンアレーから取得した録音データから、DOA(direction of arrival:音声到来方向)情報を抽出し、クラスタリング計算装置3に出力する。DOA情報(音声の到達角度)は、マイクに対してどの方向からどの程度の強さの音声信号が観測されたかを推定した量になっている。
【0046】
クラスタリング計算装置3は、DOA情報に基づいてクラスタリング処理によって話者数と各話者を特徴づけるパラメータとを推定する。すなわち、クラスタリング計算装置3は、抽出した音声特徴量をクラスタリングし、クラスタ数と各クラスタのパラメータを推定する。クラスタリング計算装置3は、確率的なクラスタリングモデルを適用することで、クラスタ数やデータの分割、そしてパラメータを事後確率最大化の意味で同時に最適化する。
【0047】
識別部4は、クラスタリング計算装置3で得られたクラスタリング結果(クラスタリング推定値)により、各時刻における話者の発話状態を識別する。この識別部4は、クラスタリング推定値を解析して、クラスタ数と、その位置とを、ユーザが識別できるような画面表示で提示する。
【0048】
図1に例示したダイアライゼーション結果表示103のグラフでは、横軸が時刻(秒)、縦軸が方向(話者の位置)をそれぞれ示している。この例では、3人の話者HA、HB、HCに対応して、3つの方向に対して矩形波形が表示されている。各矩形波形の山となっている部分が各話者の発話(発言)を表している。まず話者HCが発言を終えると、次に話者HAが発言し、その発言途中に話者HCが再び発言し始めると、話者HAが黙り、話者HBが発言を開始する、というように、話者の入れ替わり(turn-taking)が生じていることがわかる。なお、2人の話者が同時に発話するタイミングも生じていることがわかる。
【0049】
[クラスタリング計算方法の概要]
ここでは、推論原理のダイアライゼーションへの導入と、クラスタリングモデルとについて説明する。
<推論原理のダイアライゼーションへの導入>
ここでは、クラスタリング計算装置3において、ノンパラメトリックベイズモデル(dHDP)を用いるため、その前段の特徴量抽出部2で抽出する特徴量を定式化する。時刻tにおいて、角度d(例えば、d=−180,−179,…,0,…,180)方向から聞こえてきた音声パワー(DOA情報)をft dとする。すなわち、各時刻tにおける音声パワーベクトルは

である。なお、d=−180の方向と、d=180の方向とは同じものである。
【0050】
このパワーベクトルを、本実施形態で用いるクラスタリングモデルに適合するように、1次元ベクトルxt iの集合へと変換する。ここでは、各ft dについて、閾値定数τとパラメータμとを用いて、値g(d)をもつnt d個のサンプル集合を生成することとした。ここで、関数g(・)は、実装の都合に合わせて選択された適切なスケール関数を示す。例えば、関数g(・)は、[−180:180]→[−0.5:0.5]に変換する関数を用いることができる。また、nt dは、式(7)で定義する。なお、1次元に限らず、例えば、3次元ベクトルxt iの集合へ変換するように構成してもよい。
【0051】
【数2】

【0052】
式(7)の関数h(・)は、パワーの値に応じて何らかの正整数を返す関数であり、定数でもよい。本実施形態では、例えば、h=1を用いる。以上の量子化変換を全ての角度dに関して行い、時刻tの観測量をサンプル集合に集約する。
【0053】
【数3】

【0054】
本実施形態で扱うクラスタリング問題は、サンプル集合Xt={x,…,xt}のクラスタリングと捉えることができる。人間の発話音声パワーは背景ノイズよりもはるかに大きいものとすれば、話者の位置を反映した値のサンプルが大量に観測されるため、主要なクラスタとして話者の位置が推定できるはずである。そこで、本実施形態のクラスタリング計算方法では、クラスタ数Kを推定しながら、同時に各サンプルxt iに対してどのクラスタに属するかを表す変数zt iの確率分布を求めること、さらにK個のクラスタに対応するパラメータΘ={θk}を求めることをそれぞれ行う。
【0055】
<クラスタリングモデル>
本実施形態では、計算量とアルゴリズムの簡易さとを考慮して、dHDP近似モデルを用いる。dHDP近似モデルの生成モデルは、以下の式(9)〜式(15)のようになる。なお、dHDP近似モデルについては、「I. Pruteanu-Malinici, L. Ren, J. Paisley, E. Wang and L. Carin, “Dynamic Hierarchical Dirichlet Process for Modeling Topics in Time-Stamped Documents”, IEEE Transactions on Pattern Analysis and Machine Intelligence, submitted, 2008.」に記載されている。
【0056】
【数4】

【0057】
dHDP近似モデルでは、まず、最大クラスタ数Kを固定しておく。最大クラスタ数Kは、推定しようとしている話者数よりも充分大きい値(例えば、数十〜100)であればよい。実際には、「有効な」クラスタ数Keff(<K)なる個数のクラスタが、推定しようとしている話者に対応することとなる。「有効な」クラスタ数Keffについては、学習の結果、話者に対応しないそれ以外のクラスタの重み(混合比)が自動的にほぼ0になることを利用して判断することができる。すなわち「有効な」クラスタ数Keffは、推定の過程で自動的に決定される。
【0058】
≪式(9)、式(10)≫
dHDP近似モデルでは、式(9)で、K個のクラスタに対応するパラメータをサンプリングする。式(10)では、有限次元のDirichlet分布よりinnovation measure Ht(後記する式(16c)参照)のサンプリングを行う。より具体的には混合比πtをサンプリングする。これは、前記した式(4)より、式(16a)およびその変形式である式(16b)が導かれるため、時刻tにおける話者分布Gtは、時刻tまでに生成したH1:lの重ね合わせだけで表現できるからである。ここで、「H1:l」は、H1〜Hlを表す。
【0059】
【数5】

【0060】
≪式(11)、式(12)≫
dHDP近似モデルでは、続いて、式(11)により、話者分布Gtの時間変化の程度を表すwtをサンプリングして、このwtを用いて、式(12)で定義されるvtl(l=1,…,t)を計算する。ここで、時刻lは、時刻tとそれよりも過去の時刻とを表す。
【0061】
≪式(13)≫
式(13)に示す隠れ変数dt iは、t次元の{0,1}ベクトルである(tは時刻、要素の値は0か1のみ)。隠れ変数dt iは、時刻tのときのt次元の要素のうち、l次元目の要素dt i lが1の値をもつものである(l≦t)。隠れ変数dt iのl次元目の要素dt i lは、時刻lでの分布変化Hlに対応する要素である。時刻lでの分布変化Hlは、時刻tのi番目のサンプルxt iをサンプルするための分布変化である。
【0062】
≪式(14)≫
式(14)に示す隠れ変数zt iは、同様に、K次元の{0,1}ベクトルである。
隠れ変数zt iは、実際にサンプルxt iをサンプリングするクラスタ(パラメータ)kに対応するk次元目の要素zt i kにのみ1の値を持つ。
【0063】
≪式(15)≫
式(15)に示す観測量xt iは、与えられたクラスタ番号(k)に対応するパラメータθから生成される。式(15)は、前記した式(6)、式(8)と同様であって、別の表式である。
【0064】
≪観測分布と事前分布≫
dHDP近似モデルでは、式(15)に示す観測分布Fと、パラメータの事前分布H(式(9)参照)とを事前に定めておく必要がある。本実施形態では、一例として、観測分布Fが正規分布であり、かつ、パラメータの事前分布Hが共役事前分布であるようなNormal−Gamma分布を用いることにした。なお、Normal−Gamma分布については、参考文献1「C. M. ビショップ、“パターン認識と機械学習”、シュプリンガー・ジャパン、2007.」に記載されている。
【0065】
本実施形態でNormal−Gamma分布を採用した理由は、これらの分布を利用したdHDPの近似モデル解法は、従来発表されていない上、多くの分野に応用可能なモデルであり、最も実用性が高いと考えたからである。ただし、目的や実際のデータに則して、これらを別の分布にすることも可能である。
【0066】
≪dHDP近似モデルのダイアライゼーションシステムへの適用≫
図1のダイアライゼーションシステム1では、式(9)〜式(15)に示すdHDP近似モデルにおいて、ダイアライゼーションの話者数(=クラスタ数)と各サンプルのクラスタリングを行い、各クラスタのパラメータ(=話者の位置)を推定することとした。
【0067】
このうち、各サンプルのクラスタリングは、式(14)に示す隠れ変数zt iの分布p(zt i)を求めることに等しい。隠れ変数zt iは、各サンプルxt iに対してどのクラスタに属するかを表す変数なので、このクラスタリング結果が得られれば、各クラスタへ帰属するサンプル数(あるいはその期待値)が計算できる。また、この各クラスタへ帰属するサンプル数(あるいはその期待値)を用いて各クラスタkの混合比(後記するβk^)を計算可能である。さらに、この混合比(後記するβk^)により、「有効な」クラスタ数Keff(=話者数Keff)を決定することができる。また、クラスタリング結果が求まれば、各クラスタのパラメータ{θk}も容易に求めることができる。なお、本実施形態では、クラスタリング計算装置3によって、「有効な」クラスタ数Keff(=話者数Keff)の決定まで行うこととするが、識別部4がこの処理を行ってもよい。つまり、クラスタリング計算装置3によって、クラスタリング結果を得て、各クラスタのパラメータ{θk}を得て、識別部4によって、混合比(後記するβk^)を求め、「有効な」クラスタ数Keff(=話者数Keff)を決定するようにしてもよい。
【0068】
[計算アルゴリズム]
計算アルゴリズムについては、以下、1)dHDPモデルのオンライン推定法、2)変分事後分布推論プロセス、3)観測モデルおよび事前分布の特定、4)推定結果とクラスタ数の決定方法、5)dHDPの高速化方法に分けて詳細に説明する。
【0069】
<1)dHDPモデルのオンライン推定法>
ここでは、具体的な推論アルゴリズムを示す。図2は、本発明の実施形態に係るクラスタリング計算方法の全体処理の流れを示すフローチャートである。図2は、クラスタリングの全体の推論プロセスを示したものである。ダイアライゼーションは、一般的にオンライン計算のプロセスである。しかしながら、dHDPモデルのオンライン推定方法は、従来研究されていない。本実施形態では、dHDPモデルのオンライン推定法を開発した。図2の符号201で示す推論プロセスは、そのオンライン推定法を示したものである。
【0070】
オンライン推定法は、時刻T(1≦T≦Ttotal)ごとに行うものである。ここで、刻々と進展する推定対象のある時点の時刻をT、それらのうち最終時刻をTtotalとした。なお、以下では、過去を含めた演算対象時刻をtとする。過去にどこまで遡及するかについては予め定めておく。例えば、推定対象時刻T=5のとき、演算対象時刻t=1,2,3,4,5としたり、t=3,4,5としたりすることができる。この例では、t=1まで考慮することとする。
【0071】
この推論プロセスでは、処理を開始すると、まず、Tを初期化する。すなわち、T=1とする(ステップS1)。そして、時刻1からTまでの隠れ変数およびパラメータ(隠れ変数・パラメータ)の推定値およびハイパーパラメータを入力する(ステップS2)。また、時刻1からT−1までの観測量(サンプル)を入力する(ステップS3)。また、時刻Tの音声パワーfTを入力する(ステップS4)。この時刻Tの音声パワーfTから、時刻Tの観測量{xT i}を生成して入力する(ステップS5)。また、時刻Tに対応する未知数(未知の隠れ変数・パラメータ)を初期化する(ステップS6)。
【0072】
そして、隠れ変数・パラメータの変分事後分布を推定する(ステップS7)。推定後、Tをインクリメントする。すなわち、T←T+1とする(ステップS8)。そして、入力が終了したか否かを判別する(ステップS9)。入力が終了していない場合(ステップS9:No)、ステップS2に戻る。一方、例えば、最終時刻Ttotalを超えたときに、入力が終了したと判定し(ステップS9:Yes)、推定結果を出力する(ステップS10)。なお、ステップS2〜ステップS4の処理順序は、任意であり、並列処理してもよい。
また、ステップS6の処理は、ステップS7の前に行うのであれば処理順序は問わない。
【0073】
オンライン推定法を繰り返すことで、時刻ステップの進展と共に観測サンプル{xt i}が蓄積され、その都度変数を再推定する。時刻T−1の時点での推定結果は、次の時刻Tでの推定の初期値として利用される。
【0074】
推論の目的は、全観測データが与えられた時に全未知変数({zt i},{dt i},w,{πt},{θk})の推定値を求めることである。これは、確率モデルの観点からは、全変数の事後分布を求めることに相当する。本実施形態では、dHDP近似モデルに対して変分ベイズ法による事後分布推定法(変分事後分布推定法)を示す。実際に求めたい事後分布は、式(17)であるが、変分法では、式(18)のように全変数が独立であると仮定した分布(変分事後分布)を推定する。
【0075】
【数6】

【0076】
式(18)に示すq(・)は変分事後分布を表す。ここで、時刻Tまでの観測量が得られたとする。このとき、現在の時刻Tからの過去を含む時刻t(≦T)に関する変数の変分事後分布推定値qは、式(19)〜式(23)のように表される。これら各変数の分布は、元の分布(式(9),式(10),式(11),式(13),式(14))からデータの情報が加わった分修正された形になる。ただし、式(19)は、観測モデルFやパラメータの事前分布Hに依存する。したがって、本実施形態では、式(19)に基づいて後記する式(36)を用いる。
【0077】
【数7】

【数8】

【0078】
ただし、式(19)〜式(23)を同時に最適化することは困難なので、変分法においてはEMアルゴリズム(Expectation−Maximization algorithm)という様式に従った繰り返し計算による推定で各変数を個別に最適化する。EMアルゴリズムとは、複数の変数を同時最大化する計算手法であり、Eステップ(Expectation step)とMステップ(Maximization step)からなる計算ステップを相互に繰り返し計算することで全体最適化を行うものである。なお、EMアルゴリズムについては、前記した参考文献1に記載されている。
【0079】
<2)変分事後分布推論プロセス>
図3は、図2に示す変分事後分布推論手順を示すフローチャートであって、EMアルゴリズムを含んだ推論プロセスを示す。図3に示す推論プロセスでは、まず、時刻1からTまでのサンプル{x1:T}を入力する(ステップS21)。また、時刻1からTまでの隠れ変数・パラメータの推定値およびハイパーパラメータを入力する(ステップS22)。なお、ステップS21,S22の処理順序は任意である。
【0080】
そして、EMステップの繰り返し回数を表す識別子jを初期化する。すなわち、j=1とする(ステップS23)。そして、Eステップを計算する(ステップS24)。Eステップでは、時刻1からTまでのパラメータの推定値を更新する。続いて、Mステップを計算する(ステップS25)Mステップでは、時刻1からTまでの隠れ変数の推定値を更新する。
【0081】
そして、EMステップの繰り返し回数jをインクリメントする。すなわち、j←j+1とする(ステップS26)。そして、現在の繰り返し回数jが事前に設定されたしきい値(jmax)を超えたか否かを判別する。すなわち、j>jmaxとなったか否かを判別する(ステップS27)。j≦jmaxである場合(ステップS27:No)、ステップS24に戻る。一方、j>jmaxとなった場合(ステップS27:Yes)、時刻Tが事前に設定された設定値(適切な正整数tupdateの倍数)を超えたか否かを判別する。すなわち、Tが「tupdateの倍数」となったか否かを判別する(ステップS28)。
【0082】
Tが「tupdateの倍数」となった場合(ステップS28:Yes)、ハイパーパラメータを更新し(ステップS29)、推定結果を保存する(ステップS30)。Tが「tupdateの倍数」ではない場合(ステップS28:No)、ステップS29をスキップして、推定結果を保存する(ステップS30)。
【0083】
このようにEステップ、Mステップをjmax回に渡って相互に繰り返し計算することで変分事後分布の式(19)〜式(23)を得ることができる。なお、これらは、Mステップにおいて演算される。
【0084】
本実施形態では、図3に示すようにステップS28〜S30の処理を行うことで、時間ステップTを適切な正整数tupdate回インクリメントするごとにハイパーパラメータを推定することとした。通常、ハイパーパラメータは事前に与える定数であるが、ステップS28〜S30の処理を実行することで、ハイパーパラメータが固定値である場合よりも精度を上げることができる。ハイパーパラメータの更新方法については、事後分布からのサンプリング方法など、様々な公知の手法を用いることができる。また、ハイパーパラメータ自身もEMアルゴリズムで推定することも可能である。
【0085】
≪Eステップ≫
Eステップの具体的な計算式は、以下の式(24)〜式(28)で表される。ここで、ψ(・)はプサイ関数(あるいはディガンマ関数)である。また、式(27)は、観測モデルFに依存する。したがって、本実施形態では、式(27)に基づいて後記する式(37)を用いる。
【0086】
【数9】

【0087】
Eステップでは、未知パラメータ(θ、π、w)に関わる推定値を再計算する。ここでEx[f(x)]は、変分分布上の期待値を示す。式(28)にその定義を示す。
【0088】
【数10】

【0089】
図4は、図3に示すEステップの計算手順の一例を示すフローチャートである。Eステップでは、時刻Tまでに関係する全変数について再計算を行う。具体的には、Eステップでは、まず、時刻1からTまでのサンプル{x1:T}を入力する(ステップS31)。また、時刻1からTまでの隠れ変数・パラメータの推定値とハイパーパラメータ、最新のMステップの演算結果を入力する(ステップS32)。なお、ステップS31,S32の処理順序は任意である。
【0090】
そして、過去を含む演算対象の時刻tを初期化する。すなわち、t=1とする(ステップS33)。そして、この演算対象の時刻tに対して、式(24)、式(25)を計算する(ステップS34)。次いで、クラスタの識別子kを初期化する。すなわち、k=1とする(ステップS35)。そして、この演算対象の時刻tおよびクラスタkに対して、式(26)を計算する(ステップS36)。さらに、時刻tにおけるデータの識別子iを初期化する。すなわち、i=1とする(ステップS37)。そして、時刻t、クラスタkのi番目のデータに対して、式(27)を計算する(ステップS38)。
【0091】
そして、時刻tにおけるデータの識別子iをインクリメントする。すなわち、i←i+1とする(ステップS39)。続いて、i>ntとなったか否かを判別する(ステップS40)。なお、ntは、式(8)に示した個数である。i≦ntである場合(ステップS40:No)、ステップS38に戻る。一方、i>ntとなった場合(ステップS40:Yes)、次のクラスタに更新する。すなわち、k←k+1とする(ステップS41)。そして、すべてのクラスタについて演算したか否かを判別する。すなわち、k>Kとなったか否かを判別する(ステップS42)。k≦Kである場合(ステップS42:No)、ステップS36に戻る。一方、k>Kとなった場合(ステップS42:Yes)、演算対象の時刻tを更新する。すなわち、t←t+1とする(ステップS41)。そして、演算対象の時刻tが推定対象の時刻Tとなったか否かを判別する。すなわち、t>Tとなったか否かを判別する(ステップS44)。t≦Tである場合(ステップS44:No)、ステップS34に戻る。一方、t>Tとなった場合(ステップS44:Yes)、推定対象の時刻TにおけるEステップの推定結果を保存する(ステップS45)。
【0092】
≪Mステップ≫
Mテップの具体的な計算式は、以下の式(29)〜式(32)で表される。Mステップでは、隠れ変数(zt,dt)に関わる推定値を再計算する。
【0093】
【数11】

【0094】
図5は、図3に示すMステップの計算手順の一例を示すフローチャートである。Mステップでも、Eステップと同様に、時刻Tまでに関係する全変数について再計算を行う。具体的には、Mステップでは、まず、時刻1からTまでのサンプル{x1:T}を入力する(ステップS51)。また、時刻1からTまでの隠れ変数・パラメータの推定値とハイパーパラメータ、最新のEステップの演算結果を入力する(ステップS52)。なお、ステップS51,S52の処理順序は任意である。
【0095】
以下、Eステップと同様な処理については、説明を適宜省略する。Mステップでは、まず、t=1(ステップS53)、i=1(ステップS54)、k=1(ステップS55)とした上で、前記した式(29)、式(30)を計算する(ステップS56)。その後、k←k+1として(ステップS57)、k>KとなるまでステップS56に戻る処理を繰り返す。k>Kとなった場合(ステップS58:Yes)、時刻の識別子lを初期化する。すなわち、l=1とする(ステップS59)。そして、時刻t、時刻l、クラスタkのi番目のデータに対して、式(31)、式(32)を計算する(ステップS60)。
【0096】
そして、時刻lをインクリメントする。すなわち、l←l+1とする(ステップS61)。過去から時刻tまでの時刻を示す時刻lについてのすべての演算が終わるまでステップS60に戻る処理を繰り返す。l>tとなった場合(ステップS62:Yes)、i←i+1とする(ステップS63)。そして、iについてのすべての演算が終わるまでステップS55に戻る処理を繰り返す。そして、i>ntとなった場合(ステップS64:Yes)、t←t+1とする(ステップS65)。さらに、tについてのすべての演算が終わるまでステップS54に戻る処理を繰り返す。そして、t>Tとなった場合(ステップS66:Yes)、推定結果を保存する(ステップS67)。
【0097】
<3)観測モデルおよび事前分布の特定>
図3〜図5および式(19)〜式(27)を参照して説明した変分事後分布推論プロセスでは、観測モデルおよび事前分布を一般化した説明を行った。つまり、前記した式(19)および式(27)は、観測モデルF=p(xt ik)およびパラメータθkの事前分布Hに依存する。本実施形態では、観測モデルFを正規分布と仮定し、事前分布HとしてNormal−Gamma分布を仮定する。Normal−Gamma分布は、式(33)〜式(35)で表されるモデルである。
【0098】
【数12】

【0099】
このモデルの場合において、前記した式(19)および式(27)は、式(36)、式(37)でそれぞれ表される。また、式(36)、式(37)中のハイパーパラメータは、式(38)〜式(41)で表される。さらに、式(38)〜式(41)中の変数は、式(42a)〜式(42c)で表される。式(38)〜式(42)の演算は、Eステップの中で完了する。
【0100】
【数13】

【0101】
【数14】

【0102】
【数15】

【0103】
<4)推定結果とクラスタ数の決定方法>
≪クラスタ数の決定方法≫
EMアルゴリズムでは、K個のクラスタを常に保持しているが、推定が進むと少数のクラスタのみに大きな混合比が付き、他のクラスタの大きさ(cluster size)はほぼ0となる。時刻tにおいてクラスタkへ振り分けられるサンプル数の期待値は、式(43)の定義により計算できる。
【0104】
【数16】

【0105】
本実施形態では、「有効な」クラスタ数Keffを、式(43)で定義した‖zt,k‖の時刻tに関する総和の比率で決定する。例えば、各クラスタkの混合比は、式(44a)で推定できる。このルールでは、式(44b)の条件が成立するならば、そのクラスタkが「有効な」クラスタであると判断することとする。
【0106】
【数17】

【0107】
このルールにおいて、そのようなクラスタkの総数を、「有効な」クラスタ数Keffとすることとする。このようにすれば、「有効な」クラスタ数が最大クラスタ数Kより小さくなること、すなわち、Keff<Kが保証される。
【0108】
≪保存すべき推定結果≫
保存すべき推定結果としては、第1に、EMアルゴリズムで推定された各変数によって定められる変分事後分布である。また、第2に、クラスタリング結果を用いて求められる、「有効な」クラスタ数Keff、式(43)に示す‖zt,k‖、式(44a)に示すβk^などである。ここで、^は、文字βの上に付される記号を意味する。
特に、保存すべき推定結果として2番目に挙げたクラスタリング結果を用いて求められる推定量“「有効な」クラスタ数Keff、式(43)に示す‖zt,k‖、式(44a)に示すβk^”は、図1における識別部4で利用することが可能な重要な推定量である。なお、式(43)、式(44a)、式(44b)の演算は、Mステップの中で行う。
【0109】
<5)dHDPの高速化方法>
本実施形態のクラスタリング計算方法におけるオンライン推定方法では、図4や図5の処理の流れからも明らかなように、時間ステップの進展とともに推定すべき変数の数が増えていくことが特徴である。そのため、実時間性などを考慮して、計算省力化の技法を開発した。本実施形態では、dHDPを用いたオンライン話者クラスタリングのための計算高速化法として、大別して3種類の高速化法(高速化1、高速化2、高速化3)を用いることとした。
【0110】
≪高速化1:データの忘却≫
前記した式(16a)が意味することは、時刻tにおける話者分布Gtを計算するためには、時刻1≦l≦tの分布変化Hが必要であるということである。従って、時刻1からの情報を保持し続ける必要があるので、時間ステップtが進むとともに推論の計算量が増大する。ここで、次の仮定を導入する。すなわち、時刻l<tで話者の入れ替わりが発生したとする。すると、この時点で話者分布Hが大きく変化することが予想される。これは、前記した式(4)において、wl≒1となってGl-1の影響がほぼ排除されることを意味する。このことと、前記した式(16a)および式(16b)とを照らし合わせると、vt1≒…≒vl(t-1)=0となる。従って、実際には、Gtの推論には、時刻lの分布変化Hl以降の分布のみしか関与しないことがわかる。このことから、分布選択を表す変数{dt i}の事後分布に相当するst i l(式(30)参照)も大部分が0となることが期待される。
【0111】
EMアルゴリズム中でsが存在する部分は、sと、定数あるいは別変数と、の掛け算となっているため、st i l=0となる部分については、計算する必要がない。従って、sに対応する変数にはアクセスしなくてよい。この考察より、ある適切な時間ステップ幅Wより過去の変数あるいは定数については、EM更新式中でアクセスしない(忘却する)ことによって計算時間を削減できる。
【0112】
この時間ステップ幅Wの決定方法としては、事前に適切な定数を決めておく方法が最も簡便である。あるいは、この考察からの示唆より、次のような方法も考えることができる。すなわち、各時刻でのst iの推定結果より、st i 1=…=st i l=0となるlを見つけて、W=t−lとする方法がある。そのようなlの見付け方としては、適切な閾値th(<1.0)に対して、式(45)の関係を満たす最大のlを探せばよい。この場合には、データを忘却する時間幅Wが推論結果に従って動的に変化することになる。
【0113】
【数18】

【0114】
≪高速化2:推定時間幅の制限≫
図2に示したオンライン推定法では、毎時刻Tにおいて全変数のEMアルゴリズム推定を行うものとして説明した。このことは、早い時刻ステップに関する変数については、何度もEM再推定を行っているということを意味する。EMアルゴリズムは、局所最適解の計算アルゴリズムであるため、計算を繰り返すと、ある1つの解に収束する。よって、早い時刻ステップに関わる変数については再推定をしなくとも、値が収束している可能性が高い。
【0115】
この考察より、EMアルゴリズムで再推定する変数を、適切な時間幅Wを使うことで、T−W≦t≦Tの範囲の変数に制限することが可能であることがわかる。このことで、推定する変数の個数が、時間ステップTに対する線形増加とならないように、その個数を定数に保つことが可能となる。時間幅Wの決定方法としては、事前に適切な定数を決めておく方法が最も簡便である。
【0116】
≪高速化3:クラスタ変数再推定の制限≫
dHDPは、ノンパラメトリックベイズモデルなので、最大クラスタ数(K)の個数のクラスタを予めモデルに準備していたとしても、実際には、「有効な」クラスタ数Keff(<K)の個数のクラスタだけが実質的なクラスタとなり、他のクラスタは、混合比がほぼ0となるために消去されたような形式となる。この消去されたような形式のクラスタには、有効な情報がないため、そのようなクラスタを用いてパラメータや混合比の推定計算を行っても無駄なだけである。
【0117】
このことから、前記した式(26)、式(27)、式(29)などクラスタごとの推定を行う変数(k)を用いて、実際にクラスタごとの変数再推定を行う演算処理では、その変数再推定の回数を確率的に(確率論に基づいて)低減することが考えられる。その方法は、例えば3種類挙げることができる。
【0118】
第1の低減法は、単純な方法として、全クラスタについて確率c(≦1.0)で毎回ランダムに、再推定するか否かを決定する方法である。
第2の低減法は、各クラスタkの混合比βk^(式(44)参照)に応じてEMアルゴリズムによる再推定を行う回数を増減する方法である。
第3の低減法は、前記した式(44b)の条件を満たす場合、つまり、対象のクラスタが「有効な」クラスタである場合には毎回再推定するが、それ以外の場合には、クラスタkを確率的に更新する方法である。
これらの低減法において、各クラスタkを更新する確率をpupdate(k)とおくと、第1〜第3の低減法は、それぞれ、式(46)〜式(48)のように表現できる。特に、第3の低減法は、推定精度をほとんど犠牲にせずに計算量をKeff/K程度に削減できる効果がある。
【0119】
【数19】

【0120】
前記した3つの高速化方法(高速化1、高速化2、高速化3)をすべて使う場合のEMアルゴリズムの一例を図6および図7にそれぞれ示す。なお、これら3つの方法は、それぞれ独立に利用可能である。
【0121】
図6は、本発明の実施形態に係るクラスタリング計算方法におけるEステップの計算手順を示すフローチャートである。なお、図4のフローチャートと比較して異なる部分を太線及び破線で示し、説明を適宜省略して異なる処理について説明する。図6において、高速化1は、符号301で示すように、ステップS31A,S32Aからなる。ここでは、時刻T−W1からTまでのサンプル{xT-W1:T}を入力する(ステップS31A)。また、時刻T−W1からTまでの隠れ変数・パラメータの推定値とハイパーパラメータ、最新のMステップの演算結果を入力する(ステップS32A)。次いで、高速化2は、符号302で示すように、ステップS33Aからなる。ここでは、tの初期値を1の代わりに、t=T−W2とする(ステップS33A)。
【0122】
さらに、高速化3は、ステップS35に続いて行う処理であり、符号303で示すように、ステップS71,S72からなる。ここでは、[0,1]の一様乱数uを生成し(ステップS71)、pupdate(k)>uであるか否かを判別することとした(ステップS72)。pupdate(k)>uである場合(ステップS72:Yes)、前記したステップS36〜ステップS45を実行する。つまり、前記した式(26)および式(27)の計算を行う。ただし、ステップS42において、k≦Kである場合(ステップS42:No)、ステップS71に戻る。一方、ステップS72において、pupdate(k)≦uである場合(ステップS72:No)、前記したステップS36〜ステップS40をスキップして、ステップS41に進む。つまり、前記した式(26)および式(27)の計算を行わない。
【0123】
図7は、本発明の実施形態に係るクラスタリング計算方法におけるMステップの計算手順を示すフローチャートである。なお、図5のフローチャートと比較して異なる部分を太線及び破線で示し、説明を適宜省略して異なる処理について説明する。図7において、高速化1は、符号401で示すように、ステップS51A,S52Aからなる。ここでは、時刻T−W1からTまでのサンプル{xT-W1:T}を入力する(ステップS51A)。また、時刻T−W1からTまでの隠れ変数・パラメータの推定値とハイパーパラメータ、最新のEステップの演算結果を入力する(ステップS52A)。次いで、高速化2は、符号402で示すように、ステップS53Aからなる。ここでは、tの初期値を1の代わりに、t=T−W2とする(ステップS53A)。
【0124】
さらに、高速化3は、ステップS55に続いて行う処理であり、符号403で示すように、ステップS81,S82からなる。ここでは、[0,1]の一様乱数uを生成し(ステップS81)、pupdate(k)>uであるか否かを判別することとした(ステップS82)。pupdate(k)>uである場合(ステップS82:Yes)、前記したステップS56〜ステップS67を実行する。つまり、前記した式(29)〜式(32)の計算を行う。ただし、ステップS58において、k≦Kである場合(ステップS58:No)、ステップS81に戻る。一方、ステップS82において、pupdate(k)≦uである場合(ステップS82:No)、前記したステップS56をスキップして、ステップS57に進む。つまり、前記した式(29)および式(30)の計算を行わない。
【0125】
[クラスタリング計算装置]
図8は、本発明の実施形態に係るクラスタリング計算装置の構成の一例を示す機能ブロック図である。このクラスタリング計算装置3は、例えば、図2の推論プロセス等を実現するものであり、CPU等の演算装置と、メモリ、ハードディスク等の記憶装置(記憶手段)と、マウスやキーボード等の外部から情報の入力を検出する入力装置と、外部との各種情報の送受信を行うインタフェース装置と、LCD(Liquid Crystal Display)等の表示装置を備えたコンピュータと、このコンピュータにインストールされたプログラムとから構成される。
【0126】
クラスタリング計算装置3は、ハードウェア装置とソフトウェアとが協働することによって、前記したハードウェア資源がプログラムによって制御されることにより実現され、図8に示すように、記憶手段10と、以下CPUの機能として、変分事後分布推論部30と、パワーベクトル読込部21と、入力制御部22と、割当部23と、未知数初期化部24と、パワーベクトル書込部25と、観測量生成部26と、終了判定部27と、出力制御部28とを備えることとした。
【0127】
<記憶手段>
記憶手段10は、ROM、RAM、HDD等からなる。記憶手段10は、プログラム記憶領域、設定データ記憶領域、演算データ一時記憶領域、推定結果記憶領域等に区分され、コマンド、データ、プログラム等各種情報を記憶する。例えば、推定結果記憶領域には、データとして、図9に示すように、未知数の事後分布推定値11、ハイパーパラメータ12、Eステップにおける推定値(まとめてEステップ13と表記した)、Mステップにおける推定値(まとめてMステップ14と表記した)、パワーベクトル15、観測量(サンプル)16が保存される。
【0128】
<変分事後分布推論部>
メインの変分事後分布推論部30は、例えば、図3、図6、図7の推論プロセスを実現するものであり、ここでは、Eステップ用計算部31と、Mステップ用計算部32と、EM収束判定部33と、パラメータ更新条件判定部34と、ハイパーパラメータ更新部35とを備えることとした。詳細は後記する。
【0129】
<パワーベクトル読込部>
パワーベクトル読込部21は、推定対象の時刻Tにしたがって、パワーベクトルfTを順次読み込み、入力制御部22に渡す。
【0130】
<入力制御部>
入力制御部22は、パワーベクトルfTを取得すると、パワーベクトル書込部25にそのまま送ると共に、割当部23、未知数初期化部24、観測量生成部26および終了判定部27に対しては、それぞれ必要なコマンドを出力する。
【0131】
<割当部>
割当部23は、入力制御部22からのコマンドにしたがって、そのときのT(=1,2,…)や、角度d(180,−179,…)に対応したiに応じて、前記した式(9)〜(14)の各未知数(パラメータ・隠れ変数)を順次生成し(初期値は例えば0)、記憶手段10において、未知数の事後分布推定値11として保存する。すなわち、割当部23は、推定すべき未知数にTとiとを割り当てる。この意味で、図9においては、Tとiの割当部23と表記した。なお、記憶手段10には、dHDP近似モデルで用いる各ハイパーパラメータ12の初期値が予め格納されている。
【0132】
<未知数初期化部>
未知数初期化部24は、入力制御部22からのコマンドにしたがって、そのときのTや角度dに対応したiに応じて、Eステップ演算に用いるための、前記した式(24)〜(26)、(37)の左辺パラメータを順次生成し(初期値は例えば0)、記憶手段10において、Eステップ13の初期値として保存する。また、未知数初期化部24は、Mステップ演算に用いるための、式(29)〜(32)の左辺パラメータを順次生成し(初期値は例えば0)、記憶手段10において、Mステップ14の初期値として保存する。さらに、未知数初期化部24は、EM推定値の演算に用いるための、式(36),(20)〜(23)の左辺パラメータを順次生成し(初期値は例えば0)、記憶手段10において、未知数の事後分布推定値11に上書き保存する(更新する)。
【0133】
<パワーベクトル書込部>
パワーベクトル書込部25は、入力制御部22から取得したパワーベクトルfTを、記憶手段10において、パワーベクトル15として順次保存する。
【0134】
<観測量生成部>
観測量生成部26は、入力制御部22からのコマンドにしたがって、そのときのTに応じて、記憶手段10から読み出したパワーベクトル15のデータの角度d毎のパワー値を、所定のルールに則って変換し、識別子i(個数n)のデータに変換することで、観測量(サンプル)を生成し、記憶手段10に、観測量16として順次保存する。なお、本実施形態では、所定のルールとしては、前記した式(7)、式(8)を用いる。
【0135】
<終了判定部>
終了判定部27は、入力制御部22からの入力信号(コマンド)が所定期間途絶えたときに、パワーベクトルfTの入力が終了したと判定し、出力制御部28に通知する。なお、本実施形態では、最終時刻Ttotalになったときに、入力が終了したと判定する。
【0136】
<出力制御部>
出力制御部28は、終了通知を受け取ると、記憶手段10から、最終的な推定値として、未知数の事後分布推定値11を取得し、識別部4に出力する。
【0137】
[変分事後分布推論部の詳細]
≪Eステップ用計算部≫
Eステップ用計算部31は、処理時点のTに応じて、記憶手段10から、サンプル、ハイパーパラメータ、Mステップの演算結果等を、過去を含めた演算対象時刻t(t≦T)に関して読み出す。そして、Eステップ用計算部31は、処理時点のTに応じて、過去を含むすべての演算対象時刻t(t≦T)に関して、式(24)〜(26)、(37)を演算し、その演算結果を、記憶手段10にEステップ13として保存する。
【0138】
≪Mステップ用計算部≫
Mステップ用計算部32は、処理時点のTに応じて、記憶手段10から、サンプル、ハイパーパラメータ、Eステップの演算結果等を、過去を含めた演算対象時刻t(t≦T)に関して読み出す。そして、Mステップ用計算部32は、処理時点のTに応じて、過去を含むすべての演算対象時刻t(t≦T)に関して、式(29)〜(32)を演算し、その演算結果を、記憶手段10にMステップ14として保存する。そして、Mステップ用計算部32は、記憶手段10に保存されたこれらの演算結果を合わせて用いて、処理時点のTに応じて、過去を含むすべての演算対象時刻t(1≦t≦T)に関して、式(20)〜(23)、(36)を演算し、その演算結果を、記憶手段10に、未知数の事後分布推定値11として上書き保存する(更新する)。
【0139】
≪EM収束判定部≫
EM収束判定部33は、EステップとMステップを合わせた1セットの処理の繰り返し回数jのしきい値(jmax)に達したか否かを判定することで、EMアルゴリズムが収束したか否かを判別する。しきい値(jmax)は、予め設定される。EMアルゴリズムが収束していない場合、EM収束判定部33は、EステップとMステップとを繰り返す制御を行う。EMアルゴリズムが収束した場合、EM収束判定部33は、EステップとMステップとの処理を停止する制御を行う。本実施形態では、EM収束判定部33は、収束の如何に関わらず、その時点のTの値をパラメータ更新条件判定部34に通知することとした。
【0140】
≪パラメータ更新条件判定部≫
パラメータ更新条件判定部34は、受け取った処理時点のTが、事前に設定された設定値(適切な正整数tupdateの倍数)と同じであるか否かを判別する。同じある場合には、パラメータ更新条件判定部34は、ハイパーパラメータ更新部35に通知する。
【0141】
≪ハイパーパラメータ更新部≫
ハイパーパラメータ更新部35は、通知を受けると、記憶手段10に保存されているハイパーパラメータ12を任意の方法で更新する。これにより、Eステップ用計算部31およびMステップ用計算部32は、処理時点のTが、予め設定された適切な正整数の倍数と同じである次のタイミングから、更新されたハイパーパラメータを用いることができる。なお、パラメータ更新条件判定部34およびハイパーパラメータ更新部35は、前記したステップS28〜S30の処理に対応している。ただし、これらの構成は、必ずしも備える必要はない。
【0142】
なお、クラスタリング計算装置3は、一般的なコンピュータを、クラスタリング計算装置3を構成する前記した各手段として機能させるプログラム(クラスタリング計算プログラム)により動作させることで実現することができる。このプログラムは、通信回線を介して提供することも可能であるし、CD−ROM等の記録媒体に書き込んで配布することも可能である。このプログラムをインストールされたコンピュータは、CPUが、ROM等に格納されたこのプログラムをRAMに展開することにより、クラスタリング計算装置3と同等の効果を奏することができる。
【0143】
本実施形態によれば、複数話者の会話からなる録音データから、その会話に参加した話者数、各話者の位置、さらに各話者の発話行動のタイミングを推定するダイアライゼーションにおける話者クラスタリングの問題に対して、確率的なクラスタリングを用いたので、従来のようなパラメータの設定や探索によらずに容易に話者数を推定できる。
また、本実施形態によれば、dHDP近似モデルを採用したことにより、時間ごとに発話に参加する話者が変化する状況も適切にモデリングできる。その結果、より精度の高い話者クラスタリングが実現できる。
さらに、本実施形態によれば、dHDPのオンライン推定法とその高速化法を用いることで、高速に推論を行うことが可能である。なお、精度と時間のトレードオフによって実時間推論も可能である。
【0144】
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。例えば、クラスタリング計算装置3は、dHDP近似モデルにおいて、Normal−Gamma分布を仮定したが、別の分布を仮定してもよい。この場合、前記した式(36)、式(37)および関連する関係式と同様な計算式を、仮定された別の分布で改めて導出すればよい。
【0145】
また、本実施形態では、クラスタリング計算装置3は、dHDP近似モデルにより推論するものとしたが、例えば、dHDPモデルや他のノンパラメトリックベイズモデルであってもよい。他のノンパラメトリックベイズモデルの場合、確率分布の連続的な時間変化をモデル化した分布であることが好ましい。
【0146】
また、本実施形態では、話者の位置に基づいたクラスタリングを行うために、特徴量抽出部2では、一例として、マイクロホンアレーを用いてDOA情報(音声の到達角度)を抽出するものとしたが、ダイアライゼーションに適していれば、それ以外の様々な特徴量を抽出することが可能である。例えば、話者ごとの声質の特徴に基づいたクラスタリングをする場合にはMFCC特徴量(Mel Frequency Cepstrum Coefficient)などを抽出することができる。そして、このような特徴量であっても前記したアルゴリズムに適用することが可能である。
【実施例】
【0147】
本発明の効果を確認するために本実施形態に係るクラスタリング計算装置の性能を測定した。まず、第1段階の実験として、設計されたとおりのクラスタ数と適切なパラメータとを持つクラスタリングが、dHDPによって実現できるか否かを検証する実験(クラスタリング検証実験)を行った。次に、第2段階の実験として、得られたクラスタ結果を用いたダイアライゼーション精度を評価する実験(DERによるダイアライゼーション精度の評価)を行った。前記2種類の実験では、人工音声データと実音声データとを用いてクラスタリング計算装置の性能を確認した。
【0148】
<実験データ>
≪人工音声データ≫
人工音声データは、3人の発話者が交代で発話・非発話を切り替える状況をシミュレートしたデータである。この人工音声データは、64[msec]の時間ステップで計算されたDOAデータ(音声の到達角度のデータ)と、VAD(音声区間検出器)による音声・非音声判定結果とからなる。また、人工音声データは、ノイズがほとんど重畳しないデータである。各実験では、VADによる判定結果を用いて非音声区間を閾値処理で除外して422ステップの連続シーケンスの人工音声データを作成した。また、時間ステップごとのサンプル分布をある程度安定させるため、422ステップを数ステップごとに重複なくまとめて1つの長いメタステップとした。各実験では、5ステップのデータをまとめて1メタステップとし、メタステップのステップ数をt,Tに対応させた。よって、ステップ数はTtotal=ceil(422/5)=85である。ここで、ceilは切り上げを示す。この人工音声データには、複数の話者が同時に喋る区間も存在している。
【0149】
人工音声データについての全時刻での平均パワーベクトルの分布を図9に示す。図9において、横軸は、DOAデータ、すなわち、音声到来方向角度[deg]を示し、縦軸は、時間平均パワー[dB]を示す。図9に示すように、各話者に対応するパワー分布の3つのピークを観察することができる。
【0150】
≪実音声データ≫
実音声データは、実際の複数話者の会話の様子を録音したデータである。実音声データとして、非特許文献1に記載されている4データを利用した。4データの詳細を表1に示す。表1において、CPはcrossword puzzleデータ、DCはdiscussionデータ、CNはconversationデータを表す。
【0151】
【表1】

【0152】
実音声データは、どのデータも300秒の音声データである。これらの実音声データについての平均パワーベクトルの分布を図10にそれぞれ示す。図10の横軸および縦軸は、図9のグラフと同様である。ただし、時間平均パワーのオーダーは低い。
【0153】
図10(a)に示すCP1と、図10(b)に示すCP2に関しては、表1に記載の発話者数「4」に対応するパワー分布のピークの個数も「4個」なので、比較的良好なクラスタリング結果が期待される。一方、図10(c)に示すDCと、図10(d)に示すCNに関しては、表1に記載の発話者数「3」に対応するパワー分布の3つのピークが明確には観察できないため、正しいクラスタ数の推定は困難を伴うことが予想される。
【0154】
[クラスタリング検証実験]
まず、第1段階として、クラスタリングの性能を確認した。ここでは、DPM(参考例1)とdHDP(実施例1)とによって、オンラインで話者クラスタの推定を行った。このクラスタリング検証実験では、最終時刻Ttotalにおいて、最終的な混合比が、チャンスレベル(1/K)を超えたクラスタのみを有効なクラスタとしてカウントすることで、最終的なクラスタリング結果を求めた。そして、得られたクラスタリング結果により、DPM(参考例1)とdHDP(実施例1)とを比較し、話者の分布と話者数に対応したクラスタリング結果が得られているか否かを判定した。なお、チャンスレベルは偶然の一致が起こる確率である。
【0155】
≪人工音声データの場合≫
図9に示す人工音声データに対して、オンラインで、DPM(参考例1)とdHDP(実施例1)とを適用した結果を図11に示す。図11において、横軸は、DOAデータを、[−180:180]→[−0.5:0.5]に変換する関数を用いて無次元量に正規化した角度、すなわち、正規化角度を示す。また、縦軸は、確率密度関数(probabilistic density function:p. d. f)の値(無次元数)を示す。
【0156】
図11(b)に示すdHDP(実施例1)の結果と、図9のグラフとの比較の結果、dHDPでは、正しいクラスタ数とパラメータを得ることができたことが分かる。一方、図11(a)に示すDPM(参考例1)の場合、クラスタ数が「1」となり、図9に示す人工音声データに対しては不適切な結果が得られたことを確認した。
【0157】
≪実音声データ(CP1、CP2)の場合≫
図10(a)に示す実音声データ(CP1)に対して、オンラインで、DPM(参考例2)とdHDP(実施例2)とを適用した結果を図12に示す。図12の各軸は、図11のグラフと同様である。図12(b)に示すdHDP(実施例2)の結果と、図10(a)のグラフとの比較の結果、dHDPでは、正しいクラスタ数とパラメータを得ることができたことが分かる。一方、図12(a)に示すDPM(参考例2)の場合、多数のクラスタに分かれてしまい、図10(a)に示すCP1に対しては不適切な結果が得られたことを確認した。なお、同様の傾向がCP2データに対しても確認された。このときのDPM(参考例3)とdHDP(実施例3)との結果の記述は省略した。
【0158】
≪実音声データ(DC)の場合≫
図10(c)に示す実音声データ(DC)に対して、オンラインで、DPM(参考例4)とdHDP(実施例4)とを適用した結果を図13に示す。図13の各軸は、図11のグラフと同様である。図13(b)に示すdHDP(実施例4)の結果と、図10(c)のグラフや表1における発話者数との比較の結果、dHDPでは、話者数である3クラスタを得ることはできなかった。しかしながら、各クラスタのうち、サイズ数(図中のcluster size)の上位3つである、「cluster 4」、「cluster 6」、「cluster 14」の正規化角度の位置は、DCデータにおける話者の位置に対応することができた。ここで、サイズ数(図中のcluster size)は、前記した式(44)の右辺の分母で示される数値で定義した。なお、サイズ数の下位2つは、ノイズクラスタとなった。
【0159】
一方、図13(a)に示すDPM(参考例4)の場合、より多くのクラスタに分かれてしまい、サイズ数上位3つのクラスタも話者の位置にそれぞれ対応することができなかった。この点からも、dHDP(実施例4)は、DPM(参考例4)によるクラスタリングに比してより正確なクラスタリングを実現できたと考えられる。なお、DPM(参考例4)の場合、各クラスタのうち、サイズ数の上位3つである、「cluster 2」、「cluster 4」、「cluster 5」の正規化角度の位置は、DCデータにおける話者の位置のうちの2つにしか対応できなかった。また、第4〜6位の位置でもあと1つの話者位置に対応できなかった。また、CNデータについては、DCデータと同様な傾向を有すると考えられる。
【0160】
[DERによるダイアライゼーション精度の評価]
第1段階のクラスタリング検証実験に続いて、第2段階では、ダイアライゼーションのためのクラスタリングとしての性能を評価するため、DER(diarization error ratio)による評価を試みた。DERとはNISTが提案した話者識別能力の指標である。具体的には、DERは、全音声区間長に対して、以下の(1)〜(3)の3種類の誤識別区間がどれだけあったかを百分率で示したものである。DER値が少ないほど良いダイアライゼーションができた、という評価になる。
【0161】
(1)false alarm speaker time:誰も話していないのに、誰かが話したと誤検出した区間長
(2)missed speaker time:誰かが話しているのに、誰も話していないと判断した区間長
(3)speaker error time:誰かが話していることは正しく検出したが、話者を誤った区間長
【0162】
なお、DERについての詳細は、下記URLに記載されている。
「NIST Speech group,”Spring2007(RT-07) Rich Transcription Meeting Recognition Evaluation Plan”,[online],[平成21年1月21日検索]、インターネット<URL:http://www.nist.gov/speech/tests/rt/2007/index.html>」
【0163】
第1段階のdHDPによるクラスタリングは、ダイアライゼーションのサブ問題でしかなく、そのままでは話者識別はできない。しかしながら、dHDPによるクラスタリングでは、各時刻におけるサンプル(=方向付きの音声パワーデータ)をクラスタリングしているため、各フレーム(時間ステップ)において各クラスタにアサインされたサンプル数を数えれば、所定の閾値を用いることで話者ごとの発声または非発声を決定することが可能である。そこで、前記した式(43)で定義した‖zt,k‖を用いて、各時刻における話者kの発話または非発話を、式(49)および式(50)に示すルールで決定した。なお、所定の閾値として式(49)に示したτDERは、適切な値に設定した。表1に示した各実音声データに対して、dHDP(実施例5、実施例6)について算出されたDERの結果を表2に示す。このDER値を非特許文献1における結果(比較例)と比較した。
【0164】
【数20】

【0165】
【表2】

【0166】
表2において、比較例は、既存手法である非特許文献1の中で報告された最良の結果を示す。本発明のdHDPクラスタリングの結果(実施例5、実施例6)のうち、実施例5(naive)は、式(49)および式(50)に示すルールのみでDERを算出したときの値を示す。また、実施例6(heuristic)は、式(49)および式(50)に示すルール(識別則)に加え、1フレーム内(1時間ステップ内)での同時発話人数に上限の仮定をおくことで、非発話区間のfalse alarmを低減した実施例である。実施例6で採用した方法は、非特許文献1で最良の方法が得られた識別則と共通点を持っている。すなわち、実施例6は、式(49)に示したサンプル数閾値τDERと、同時発話人数の上限の仮定とに基づいて探索を行った結果である。そのため、実施例6は実施例5よりも良好な結果となった。さらに、実施例6は、同時発話人数の上限の仮定をした比較例と比較しても、明らかに、DER値として良好な値を示すことがわかる。
【0167】
以上の検証実験および評価実験をまとめると、dHDPで解決されるのはサブ問題(第1段階)であるクラスタリングであるが、第2段階で、クラスタリングの過程で計算されるサンプルアサインメントzを用いることで、ダイアライゼーションの精度を示すDER指標の向上を実現可能である。すなわち、本発明によれば、dHDPでクラスタリングの問題を解決したことで、自然と良好なダイアライゼーションが可能となったと結論できる。
【符号の説明】
【0168】
1 ダイアライゼーションシステム
2 特徴量抽出部(特徴量抽出手段)
3 クラスタリング計算装置
4 識別部(識別手段)
10 記憶手段(推定値記憶手段、観測量記憶手段)
21 パワーベクトル読込部(読込手段)
22 入力制御部
23 割当部
24 未知数初期化部
25 パワーベクトル書込部
26 観測量生成部(観測量生成手段)
27 終了判定部
28 出力制御部(出力制御手段)
30 変分事後分布推論部(事後分布推論手段)
31 Eステップ用計算部(Eステップ用計算手段)
32 Mステップ用計算部(Mステップ用計算手段)
33 EM収束判定部(収束判定手段)
34 ハイパーパラメータ更新条件判定部
35 ハイパーパラメータ更新部

【特許請求の範囲】
【請求項1】
話者数が未知である会話の録音データから前記会話の話者数を推定するために、各話者を特徴付ける特徴量を抽出する特徴量抽出手段と、前記抽出された特徴量から前記各話者に対応する複数のクラスタを生成するときの複数の未知パラメータの値をそれぞれ推定するクラスタリング計算装置と、前記推定された複数のパラメータ値により前記会話の各話者を識別する識別手段とを有したダイアライゼーションシステムの前記クラスタリング計算装置であって、
前記抽出された特徴量を読み込む読込手段と、
前記読み込んだ特徴量をノンパラメトリックベイズモデルに対応したベクトルの観測量に変換する観測量生成手段と、
前記変換された観測量の集合データを蓄積記憶する観測量記憶手段と、
前記観測量の集合データから複数のクラスタをノンパラメトリックベイズモデルにより生成するときの複数のパラメータの事後分布の値をEMアルゴリズムによりそれぞれ推定および更新する事後分布推論手段と、
前記推定および更新された複数のパラメータの事後分布の値を蓄積記憶する推定値記憶手段と、
事前に設定された終了条件が成立したときに前記推定値記憶手段に記憶されている前記複数のパラメータの事後分布の最新の推定値を出力する出力制御手段と、
を備えることを特徴とするクラスタリング計算装置。
【請求項2】
前記事後分布推論手段は、
前記EMアルゴリズムのEステップの処理として、dHDP(dynamic Hierarchical Dirichlet Process)モデルにおいて予め定められた事前分布、観測分布および最大クラスタ数と、ハイパーパラメータの設定値と、過去から推定対象の時刻までに変換された観測量の集合データと、過去から最新のMステップまでに推定された隠れ変数の事後分布の推定値とを読み込んで、過去分を含めた演算対象時刻ごと、かつ、クラスタごと、かつ、演算対象時刻別の全データごとに、前記クラスタと、混合比と、前記クラスタ分布の時間変化の程度を表す重みとに関するパラメータの事後分布の値を演算するEステップ用計算手段と、
前記EMアルゴリズムのMステップの処理として、前記ハイパーパラメータの設定値と、過去から推定対象の時刻までに変換された観測量の集合データと、過去から最新のEステップまでに推定されたパラメータの事後分布の推定値とを読み込んで、過去分を含めた演算対象時刻ごと、かつ、演算対象時刻別の全データごとに、2種類の隠れ変数の事後分布の値を推定し、前記2種類の隠れ変数のうち、前記クラスタ分布の時間変化の程度を表す重みに関連付けられた第1隠れ変数の事後分布の値についてはクラスタごとに演算し、前記第1隠れ変数および前記混合比に関連付けられた第2隠れ変数の事後分布の値については、演算対象時刻から過去に遡及した時刻ごとに演算するMステップ用計算手段と、
前記Eステップの処理と前記Mステップの処理とを交互に予め定められた回数だけ繰り返し実行させる制御を行う収束判定手段と、
を備えることを特徴とする請求項1に記載のクラスタリング計算装置。
【請求項3】
前記Eステップ用計算手段は、
観測量の集合データと、隠れ変数の事後分布の推定値とについて、推定対象の時刻から事前に設定された定数または直前のMステップの推定値を反映した変動数分だけ過去に遡及した時刻のデータを読み込み、推定対象の時刻から事前に設定された設定値分だけ遡及した過去の時刻までを演算対象時刻として、前記クラスタと、前記混合比と、前記重みとに関するパラメータの事後分布の値を演算し、クラスタごとの演算のためにクラスタを更新する処理を実行するたびに、事前に設定された再推定すべきクラスタの判断基準に基づいて、推定処理対象のクラスタを再推定すべきか否か判別し、再推定すべきクラスタである場合に、前記混合比に関するパラメータの事後分布の値を演算し、
前記Mステップ用計算手段は、
観測量の集合データと、パラメータの事後分布の推定値とについて、推定対象の時刻から事前に設定された定数または直前のMステップの推定値を反映した変動数分だけ過去に遡及した時刻のデータを読み込み、推定対象の時刻から事前に設定された設定値分まで遡及した過去の時刻までを演算対象時刻として、前記第1隠れ変数および第2隠れ変数の事後分布の値を演算し、クラスタごとの演算のためにクラスタを更新する処理を実行するたびに、前記判断基準に基づいて、推定処理対象のクラスタを再推定すべきか否か判別し、再推定すべきクラスタである場合に、前記第1隠れ変数の事後分布の値を演算することを特徴とする請求項2に記載のクラスタリング計算装置。
【請求項4】
話者数が未知である会話の録音データから前記会話の話者数を推定するダイアライゼーションシステムにおいて、記憶手段と、読込手段と、観測量生成手段と、事後分布推論手段と、出力制御手段とを備えて、前記録音データから抽出された各話者を特徴付ける特徴量から前記各話者に対応する複数のクラスタを生成するときの複数の未知パラメータの値をそれぞれ推定するクラスタリング計算装置のクラスタリング計算方法であって、
前記読込手段によって、前記抽出された特徴量を読み込む特徴量読込ステップと、
前記観測量生成手段によって、前記読み込んだ特徴量をノンパラメトリックベイズモデルに対応したベクトルの観測量に変換し、前記変換された観測量の集合データを記憶手段に順次蓄積する観測量蓄積ステップと、
前記事後分布推論手段によって、前記観測量の集合データから複数のクラスタをノンパラメトリックベイズモデルにより生成するときの複数のパラメータの事後分布の値をEMアルゴリズムによりそれぞれ推定し、当該推定値を前記記憶手段に順次格納および更新する事後分布推定ステップと、
前記出力制御手段によって、事前に設定された終了条件が成立したときに前記記憶手段に記憶されている前記複数のパラメータの事後分布の最新の推定値を出力する推定値出力ステップと、
を含んで実行することを特徴とするクラスタリング計算方法。
【請求項5】
前記事後分布推論手段は、
前記事後分布推定ステップにおいて、
前記EMアルゴリズムのEステップの処理として、dHDPモデルにおいて予め定められた事前分布、観測分布および最大クラスタ数と、ハイパーパラメータの設定値と、過去から推定対象の時刻までに変換された観測量の集合データと、過去から最新のMステップまでに推定された隠れ変数の事後分布の推定値とを読み込んで、推定対象の時刻に過去分を含めた演算対象時刻ごと、かつ、クラスタごと、かつ、前記演算対象時刻別の全データごとに、前記クラスタと、混合比と、前記クラスタ分布の時間変化の程度を表す重みとに関するパラメータの事後分布の値を演算する段階と、
前記EMアルゴリズムのMステップの処理として、前記ハイパーパラメータの設定値と、過去から推定対象の時刻までに変換された観測量の集合データと、過去から最新のEステップまでに推定されたパラメータの事後分布の推定値とを読み込んで、推定対象の時刻に過去分を含めた演算対象時刻ごと、かつ、前記演算対象時刻別の全データごとに、2種類の隠れ変数の事後分布の値を推定し、前記2種類の隠れ変数のうち、前記クラスタ分布の時間変化の程度を表す重みに関連付けられた第1隠れ変数の事後分布の値についてはクラスタごとに演算し、前記第1隠れ変数および前記混合比に関連付けられた第2隠れ変数の事後分布の値については、前記演算対象時刻から過去に遡及した時刻ごとに演算する段階とを含み、
前記Eステップの処理と前記Mステップの処理とを交互に予め定められた回数だけ繰り返し実行することを特徴とする請求項4に記載のクラスタリング計算方法。
【請求項6】
前記事後分布推論手段は、
前記Eステップにおいて、観測量の集合データと、隠れ変数の事後分布の推定値とについては、推定対象の時刻から事前に設定された定数または直前のMステップの推定値を反映した変動数分だけ過去に遡及した時刻のデータを読み込み、
前記Mステップにおいて、観測量の集合データと、パラメータの事後分布の推定値とについては、推定対象の時刻から事前に設定された定数または直前のMステップの推定値を反映した変動数分だけ過去に遡及した時刻のデータを読み込むことを特徴とする請求項5に記載のクラスタリング計算方法。
【請求項7】
前記事後分布推論手段は、
前記Eステップにおいて、推定対象の時刻から事前に設定された設定値分だけ遡及した過去の時刻までを演算対象時刻として、前記クラスタと、前記混合比と、前記重みとに関するパラメータの事後分布の値を演算し、
前記Mステップにおいて、推定対象の時刻から事前に設定された設定値分まで遡及した過去の時刻までを演算対象時刻として、前記第1隠れ変数および第2隠れ変数の事後分布の値を演算することを特徴とする請求項5に記載のクラスタリング計算方法。
【請求項8】
前記事後分布推論手段は、
前記Eステップにおいて、クラスタごとの演算のためにクラスタを更新する処理を実行するたびに、事前に設定された再推定すべきクラスタの判断基準に基づいて、推定処理対象のクラスタを再推定すべきか否か判別し、再推定すべきクラスタである場合にだけ、前記混合比に関するパラメータの事後分布の値を演算し、
前記Mステップにおいて、クラスタごとの演算のためにクラスタを更新する処理を実行するたびに、前記判断基準に基づいて、推定処理対象のクラスタを再推定すべきか否か判別し、再推定すべきクラスタである場合にだけ、前記第1隠れ変数の事後分布の値を演算することを特徴とする請求項5に記載のクラスタリング計算方法。
【請求項9】
請求項1乃至請求項3のいずれか一項に記載のクラスタリング計算装置を構成する各手段としてコンピュータを機能させるためのクラスタリング計算プログラム。
【請求項10】
請求項9に記載のクラスタリング計算プログラムが記録されたことを特徴とするコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2010−175614(P2010−175614A)
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願番号】特願2009−15338(P2009−15338)
【出願日】平成21年1月27日(2009.1.27)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】