以下に、本願の開示する話者判別装置、話者判別プログラム及び話者判別方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
まず、本実施例に係る話者判別装置を含む会話分析装置の機能的構成について説明する。図1は、実施例1に係る会話分析装置の機能的構成を示すブロック図である。図1に示す会話分析装置10は、話者Aおよび話者Bにそれぞれ対応して設けられた接話マイク30A及び30Bを介して集音した2つの音声データから、話者Aおよび話者Bの会話に関する特性を抽出して会話スタイルを分析するものである。
この会話分析装置10には、接話マイク30A及び30Bの2つのマイクが接続される。これら接話マイク30A及び30Bは、話者によって装着される接話型マイクロホン(close‐talking microphone)である。かかる接話マイクの一態様としては、ラペルマイクやヘッドセットマイクなどが挙げられる。以下では、接話マイク30A及び30Bのことを区別なく総称する場合には「接話マイク30」と記載する場合がある。
なお、図1の例では、接話型マイクロホンを用いる場合を例示したが、必ずしもマイクを装着する話者以外の他の話者をマイクから遠ざける必要はない。例えば、指向性を持つマイクを適用することができる。この場合には、話者Aが発話する方向の感度が他の方向の感度よりも強くなるように指向性マイクを配置し、また、話者Bについても同様にして指向性マイクを用いればよい。
登録部31は、接話マイク30によって集音された音声信号を会話分析装置10の音声記憶部11へ登録する処理部である。一態様としては、登録部31は、接話マイク30から音声入力されたアナログ信号にA/D(Analog/Digital)変換を実行することによりデジタル信号に変換した上で音声記憶部11へ登録する。なお、以下では、接話マイク30Aから音声入力されたアナログ信号がA/D変換されたデジタル信号のことを「第1の音声データ」と記載する場合がある。また、接話マイク30Bから音声入力されたアナログ信号がA/D変換されたデジタル信号のことを「第2の音声データ」と記載する場合がある。
図1に示すように、会話分析装置10は、音声記憶部11と、抽出部13と、分析部14とを有する。なお、会話分析装置10は、図1に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどを始め、他の装置との通信を制御する通信インターフェースなどの機能部を有することとしてもかまわない。
音声記憶部11は、音声データを記憶する記憶部である。この音声記憶部11は、第1の音声データ12Aと、第2の音声データ12Bとを記憶する。なお、上記の音声記憶部11などの記憶部には、半導体メモリ素子や記憶装置を採用できる。例えば、半導体メモリ素子としては、VRAM(Video Random Access Memory)、RAM(Random Access Memory)、ROM(Read Only Memory)やフラッシュメモリ(flash memory)などが挙げられる。また、記憶装置としては、ハードディスク、光ディスクなどの記憶装置が挙げられる。
これら第1の音声データ12A及び第2の音声データ12Bは、話者A及び話者Bが装着する接話マイク30によって集音された音声信号がA/D変換されたデジタルデータである。このうち、第1の音声データ12Aには、話者Aの音声だけでなく、話者Bの音声も含み得るが、話者Aから接話マイク30Aまでの距離が話者Bや話者Cに比べて接近している。よって、第1の音声データ12Aに含まれる音声は、話者Aと話者Bとの間で同時に発話がなされていた場合でも、話者Aによって発話された音声のエネルギーが最も高くなる。同様に、第2の音声データ12Bに含まれる音声は、話者Bによって発話された音声のエネルギーが最も高くなる。
ここで、話者によって発話される有声音および無声音について説明する。図2は、有声音および無声音の一例を示す図である。図2の例では、サンプリング周波数が16kHzである接話マイクを用いて集音した場合の音声データが示されている。図2の例では、横軸は時間を示し、縦軸は周波数を示し、図中の濃淡はスペクトルエントロピーの大小を表す。
図2に示すように、有声音V(Voiced)は、スペクトルエントロピーの変化が大きく、無声音U(Unvoiced)よりも低い周波数の音である。有声音の一例としては、母音「a」、「i」、「u」、「e」、「o」などが挙げられる。また、無声音Uは、有声音Vよりも高い周波数の音である。無声音の一例としては、母音以外の音、例えば「s」、「p」、「h」などが挙げられる。これら有声音および無声音の特徴は、話者によって発話される言語に依存せず、日本語、英語や中国語などの任意の言語において共通する。
次に、有声音および無声音と発話領域および沈黙領域との関係について説明する。ここで言う「発話領域」は、話者によって発話がなされている領域を指し、無声音領域および有声音領域を含む。また、「沈黙領域」は、話者によって発話がなされていない領域を指し、音声データにおいて発話領域以外の領域に相当する。
図3は、発話領域および沈黙領域の一例を示す図である。この図3の例では、話者によって「WaTaShiWa Chou DeSu」と発話された場合を示す。図3に示す例では、「WaTaShiWa」の発話領域40と、「Chou」の発話領域41と、「DeSu」の発話領域42との間に、沈黙領域43および沈黙領域44が存在することを示す。このうち、発話領域40には、無声音「W」、有声音「a」、無声音「T」、有声音「a」、無声音「Sh」、有声音「i」、無声音「W」、有声音「a」が含まれる。また、発話領域41には、無声音「Ch」、有声音「ou」が含まれる。さらに、発話領域42には、無声音「D」、有声音「e」、無声音「S」、有声音「u」が含まれる。
図1の説明に戻り、会話分析装置10は、複数の話者によってなされる会話の各場面において各話者のうち誰が発話しているのかを判別する話者判別装置50を有する。この話者判別装置50は、図1に示すように、取得部51と、フレーム化部52と、第1の識別部53と、決定部54と、第2の識別部55とを有する。
取得部51は、第1の音声データおよび第2の音声データを取得する処理部である。一態様としては、取得部51は、音声記憶部11に記憶された第1の音声データ12Aおよび第2の音声データ12Bを読み出す。他の一態様としては、取得部51は、登録部31によってA/D変換された第1の音声データおよび第2の音声データをストリームデータとして取得することもできる。更なる一態様としては、取得部51は、ネットワークを介して図示しない外部装置から第1の音声データおよび第2の音声データを取得することもできる。
フレーム化部52は、取得部51によって取得された第1の音声データ12Aおよび第2の音声データ12Bを所定の区間のフレームにフレーム化する処理部である。一態様としては、フレーム化部52は、第1の音声データ12Aおよび第2の音声データ12Bそれぞれの長さを比較する。このとき、フレーム化部52は、第1の音声データ12Aおよび第2の音声データ12Bの長さの差が許容誤差範囲内でない場合には、図示しない表示部等にエラーメッセージを出力し、以降の処理を中止する。一方、フレーム化部52は、第1の音声データ12Aおよび第2の音声データ12Bの長さが同一であるか、あるいは許容誤差範囲内である場合には、次のような処理を実行する。すなわち、フレーム化部52は、第1の音声データ12Aおよび第2の音声データ12Bをフレーム化する。
一例を挙げれば、フレーム化部52は、下記の式A、式Bを用いて、各々の音声データを、長さを256msとするフレーム化を実行する。このとき、フレーム化部52は、前後のフレームの重複部分の長さが128msとなるようにする。なお、上記のフレームの長さ、前後のフレームの重複部分の長さは、あくまでも一例であり、任意の値を採用できる。
S=floor(Y/X)・・・・・・・・・・・・・・・・式A
m=floor((S−256)/128)+1・・・・・・・・式B
なお、「floor(x)」は、x以下の最大の整数を算出するための関数であり、Yは、第1の音声データ12Aおよび第2の音声データ12Bそれぞれのデータ量(byte)であり、Xは、1(byte)のデータに対応する長さ(ms)である。
このような処理によって、第1の音声データ12Aおよび第2の音声データ12BそれぞれについてN個のフレームが得られたものとして以下の説明を行う。なお、以下では、第1の音声データ12Aから得られたN個のフレームの各々を、「第1フレーム(1)」、「第1フレーム(2)」・・・「第1フレーム(N)」と記載する場合がある。同様に、第2の音声データ12Bから得られたN個のフレームの各々を、「第2フレーム(1)」、「第2フレーム(2)」・・・「第2フレーム(N)」と記載する場合がある。
第1の識別部53は、第1の確率モデルに基づいて、フレーム化部52によってフレーム化されたフレームが有声音領域または無声音領域のいずれであるかを識別する処理部である。一態様としては、第1の識別部53は、第1フレーム(1)〜第1フレーム(N)、第2フレーム(1)〜第2フレーム(N)の各々の音声データごとに、下記の処理を実行する。すなわち、第1の識別部53は、自己相関係数のピークの数、自己相関係数のピークの最大値及びスペクトルエントロピーの3つの特徴量を抽出する。さらに、第1の識別部53は、先に抽出した3つの特徴量それぞれの平均値および標準偏差を各々の音声データごとに算出する。その上で、第1の識別部53は、確率モデルである隠れマルコフモデル(Hidden Markov Model;HMM)を用いて、有声音領域および無声音領域を各々の音声データのフレームごとに識別する。
ここで、有声音領域および無声音領域の識別方法について説明する。図4は、隠れマルコフモデルにおける状態遷移図の一例を示す図である。図4に示すように、第1の識別部53は、上記の3つの特徴量、並びに、各特徴量の平均値および標準偏差を観測結果(observation)とし、EM法(Expectation-Maximization algorithm)を用いて、状態遷移確率(transition possibility)Ptを算出する。
かかる状態遷移確率Ptは、例えば、有声音の状態のままでいる確率、有声音の状態から無声音の状態に遷移する確率、無声音の状態のままでいる確率、無声音の状態から有声音の状態に遷移する確率を指す。図4に示す例で言えば、発話は、有声音および無声音の両方とも同一の確率で開始すると仮定して、発話の開始における有声音および無声音の状態の確率がいずれも「0.5」に設定されている。さらに、初期の状態遷移確率Ptとして、有声音の状態のままでいる確率が「0.95」に設定されるとともに、有声音の状態から無声音の状態に遷移する確率が「0.05」に設定されている。さらに、初期の状態遷移確率Ptとして、無声音の状態のままでいる確率が「0.95」に設定されるとともに、無声音の状態から有声音の状態に遷移する確率が「0.05」に設定されている。このような設定の下、第1の識別部53は、状態遷移確率Ptを算出することを所定回数にわたって繰り返す。これによって、状態遷移確率Ptを精度よく算出することができる。
さらに、第1の識別部53は、上記の3つの特徴量、並びに、各特徴量の平均値および標準偏差を観測結果とし、ビタビアルゴリズム(Viterbi algorithm)により、観測確率(observation possibility)Poを各々の音声データごとに算出する。ここで、観測確率Poは、例えば、有声音の状態から観測(observed)を出力する確率、有声音の状態から非観測(not observed)を出力する確率、無声音の状態から観測を出力する確率および無声音の状態から非観測を出力する確率である。なお、観測確率は、出力確率(emission possibility)とも称される。
これら状態遷移確率Ptおよび観測確率Poを算出した後に、第1の識別部53は、上記の3つの特徴量に基づいて、ビタビアルゴリズムを用いて、各フレームにおいて発話されている場合にその音が有声音Vであるか、あるいは無声音Uであるかを識別する。その上で、第1の識別部53は、有声音と識別された領域を有声音領域とし、無声音と識別された領域を無声音領域とする。
このように、第1の識別部53は、自己相関係数のピークの数、自己相関係数のピークの最大値及びスペクトルエントロピーなどの特徴量を用いて、有声音領域および無声音領域を識別する。したがって、第1の識別部53では、周囲のノイズの影響によって有声音領域および無声音領域を識別する精度が低下することを抑制できる。また、第1の識別部53は、周囲のノイズに強い特徴量を用いるため、第1の音声データ12Aおよび第2の音声データ12Bをフレーム化する場合に、フレームの個数をより少なくすることもできる。それゆえ、第1の識別部53では、より簡易な処理で有声音領域および無声音領域を識別できる。
決定部54は、第1の識別部53によって有声音領域であると識別されたフレームの識別結果を有効または無効とするかを決定する処理部である。一態様としては、決定部54は、2つの音声データのエネルギー比を複数の確率分布が混合するモデルにモデル化した上で、フレーム間のエネルギー比が複数の確率分布のうちいずれの確率分布に属するかに応じてフレームの識別結果を有効化または無効化する。
すなわち、本実施例に係る話者判別装置50では、2つの音声データから得られるエネルギー比の大きさに応じて3つのガウス分布の混合が仮定される。ここでは、一例として、第2の音声データ12Bに対する第1の音声データ12Aのエネルギー比、すなわち話者Bに対する話者Aのエネルギー比を用いる場合を例示するが、第1の音声データ12Aに対する第2の音声データ12Bを用いることとしてもよい。この場合には、話者Bに対する話者Aのエネルギー比を用いる場合とは逆の仮定がなされる。なお、上記の3つのガウス分布は、第1の音声データ12Aに含まれる音声のうち話者Aによって発話された音声のエネルギーが話者Bのものよりも高いという前提の下に仮定される。
かかる混合ガウス分布の一態様としては、話者Bが発話している「第1の分布」、話者Aおよび話者Bの両者が発話している「第2の分布」、話者Aが発話している「第3の分布」の3つにモデル化する態様が挙げられる。このうち、話者Bが発話している場合には、話者Aの音声のエネルギーは話者Bの音声のエネルギーよりも低いと推定できる。このため、「第1の分布」には、エネルギー比が低い帯域に確率分布が割り当てられる。また、話者Aおよび話者Bの両者が発話している場合には、両者の音声のエネルギー比はほぼ同等であると推定できる。よって、「第2の分布」には、エネルギー比が中間である帯域に確率分布が割り当てられる。また、話者Aが発話している場合には、話者Aの音声のエネルギーは話者Bの音声のエネルギーよりも高いと推定できる。したがって、「第3の分布」には、エネルギー比が高い帯域に確率分布が割り当てられる。
このような仮定の下、決定部54は、既存の期待値最大化法、いわゆるEM法を用いて、各フレーム間のエネルギー比が「第1の分布」、「第2の分布」または「第3の分布」に属している確率をそれぞれ推定する。
かかるEM法の一態様としては、決定部54は、第1の音声データ12Aおよび第2の音声データ12Bのフレーム間のエネルギー比を計算する。このとき、話者Aおよび話者Bがともに沈黙している場合には、両者の音声のエネルギー比はほぼ同等となり、誤って第2の分布に属すると推定されるおそれもある。それゆえ、決定部54は、発話領域と推定される可能性が高い有声音領域だけを推定に使用する観点から、2つの音声データの各フレーム間で少なくともいずれか一方が有声音Vと識別されたフレームを対象に、エネルギー比を算出する。なお、上記のエネルギーは、各々の音声データのフレームに高速フーリエ変換、いわゆるFFT(Fast Fourier Transform)を実行して周波数解析を行った上で周波数成分ごとの振幅値を平均化することにより算出できる。さらに、上記のエネルギー比は、第1フレーム(j)のエネルギーを第2フレーム(j)のエネルギーで除算することによって算出できる。なお、ここで言う「j」は、1〜Nの自然数であり、N個のフレームのうちj番目のフレームであることを示す。
そして、決定部54は、下記の式(1)に示すように、先に算出したエネルギー比の対数Xjをさらに計算する。このようにエネルギー比の対数を取るのは、割合そのままでは逆数となるエネルギー比を正負の符号を反対に対称にできるからである。
さらに、決定部54は、EM法に用いる各種の項目の初期値を設定する。例えば、決定部54は、上記のようにフレームごとに算出したエネルギー比の対数Xjを昇順に並べ替える。これによって並べ替え後のエネルギー比の対数Xj_sortedを得る。さらに、決定部54は、並べ替え後のエネルギー比の対数Xj_sortedからマトリクスを生成することによって事後確率ρijの初期値を得る。かかる事後確率ρijは、後述の最大化ステップ、すなわちM(Maximization)ステップおよび期待値ステップ、すなわちE(Expectation)ステップの繰り返し演算によって最尤推定される。このため、必ずしも昇順に並べ替えられたエネルギー比の対数Xj_sortedを使用せずともランダムな値を使用することとしてもかまわない。ここで言う「i」は、第1の分布〜第3の分布を指し、例えば、ρijは、j番目のフレームのエネルギー比がi番目の分布に含まれる確率を指す。このようにして設定された並べ替え後のエネルギー比の対数Xj_sortedおよび事後確率ρijの初期値が後述のMステップに供給される。
その後、決定部54は、上記の第1の分布、第2の分布および第3の分布を含んでなるモデルを計算するMステップを実行する。一態様としては、決定部54は、下記の式(2)〜式(4)を用いて、第1の分布、第2の分布または第3の分布を定義するパラメータρi、μiおよびσiを計算することによってパラメータρi、μiおよびσiをアップデートする。このとき、初期値が算出された初回には、並べ替え後のエネルギー比の対数Xj_sortedおよび事後確率ρijの初期値が計算に用いられる。一方、Eステップの実行後には、後述のEステップでアップデートされた事後確率ρij及びエネルギー比の対数Xjが用いられる。
続いて、決定部54は、Mステップで算出されたモデルを用いて、モデルの尤度の期待値を計算するEステップを実行する。一態様としては、決定部54は、Mステップで算出されたパラメータρi、μiおよびσiを下記の式(5)〜式(7)へ代入することによって、確率密度N(xj:μi,σi)、事後混合物の尤度f(xj)および事後確率ρijを算出する。そして、決定部54は、Mステップ及びEステップを所定の回数、例えば5回にわたって繰り返し実行する。
このようにしてMステップ及びEステップを所定の回数実行後に、決定部54は、EM法によって算出された事後確率ρijを用いて、第1の識別部53によって有声音Vであると識別されたフレームの識別結果を有効または無効とするかを決定する。
かかる識別結果の有効化または無効化の一態様としては、決定部54は、EM法によって算出されたρ1jとρ2j及びρ3jとを比較し、ρ2j>ρ1jまたはρ3j>ρ1jであるか否かを判定する。このとき、ρ2j>ρ1jである場合には、j番目のフレームのエネルギー比が第1の分布よりも第2の分布に属している可能性が高いので、話者Bが単独で発話している可能性よりも話者Aおよび話者Bの両者が発話している可能性の方が高いと推定できる。また、ρ3j>ρ1jである場合には、j番目のフレームのエネルギー比が第1の分布よりも第3の分布に属している可能性が高いので、話者Bが単独で発話している可能性よりも話者Aが単独で発話している可能性の方が高いと推定できる。このため、決定部54は、第1フレーム(j)及び第2フレーム(j)の識別結果がともに有声音Vである場合に、第2フレーム(j)の識別結果を有声音Vから無声音Uに置換する。これによって、第1の識別部53によって有声音Vと識別された第2フレームの識別結果を無効化する。
一方、ρ2j>ρ1jまたはρ3j>ρ1jでない場合、すなわちρ2j<ρ1jかつρ3j<ρ1jである場合には、j番目のフレームのエネルギー比が第2の分布及び第3の分布よりも第1の分布に属している可能性が高い。この場合には、話者Aが単独で発話している可能性並びに話者Aおよび話者Bの両者が発話している可能性よりも話者Bが単独で発話している可能性の方が高いと推定できる。よって、決定部54は、第1フレーム(j)及び第2フレーム(j)の識別結果がともに有声音Vである場合に、第1フレーム(j)の識別結果を有声音Vから無声音Uに置換する。これによって、第1の識別部53によって有声音Vと識別された第1フレームの識別結果を無効化する。
ここで、図5A〜図5Eを用いて、識別結果の有効化または無効化の一例を説明する。図5Aは、音声データ別のエネルギーの一例を示す図である。図5Bは、音声データ別の有声音Vまたは無声音Uの識別結果の一例を示す図である。図5Cは、フレーム間のエネルギー比の一例を示す図である。図5Dは、フレーム間のエネルギー比が所属する分布を示す図である。図5Eは、置換後の音声データ別の有声音Vまたは無声音Uの識別結果の一例を示す図である。
一例として、各音声データにおける同一区間のフレームのエネルギーがそれぞれ図5Aに示す値を取り、第1フレームおよび第2フレームの識別結果がそれぞれ図5Bに示す識別結果を取る場合を想定する。この場合には、決定部54によってフレーム間のエネルギー比が算出される。このとき、図5Cに示すように、第1フレームまたは第2フレームのうち少なくともいずれか1つの識別結果が有声音Vと識別されたフレーム、すなわち図中の値がブランクであるフレームを除くフレームを対象にフレーム間のエネルギー比が算出される。
その後、フレーム間のエネルギーの比が第1の分布、第2の分布または第3の分布のうちいずれの分布に属するかがEM法を用いて算出される。図5Dの例では、第1の分布に属するフレームが濃い塗りつぶしによって図示され、第2の分布に属するフレームが薄い塗りつぶしによって図示され、さらに、第3の分布に属するフレームが斜線の塗りつぶしによって図示されている。この場合には、図5Eに示すように、有声音Vと識別されている第2フレームのうち第3の分布に属すると推定された第2フレーム(2)、第2フレーム(6)及び第2フレーム(8)の識別結果が無声音Uに置換される。さらに、有声音Vと識別されている第1フレームのうち第1の分布に属すると推定された第1フレーム(13)、第1フレーム(15)、第1フレーム(16)、第1フレーム(18)及び第1フレーム(20)の識別結果が無声音Uに置換される。
このように、決定部54では、2人の話者の音声データのエネルギー比を混合ガウス分布でモデル化した上でフレーム間のエネルギー比が属する分布に応じて有声音Vの識別結果を有効又は無効とする。その上で、後段の第2の識別部55によって各々の音声データの発話領域および沈黙領域が識別される。このため、各音声データを構成する同一区間のフレーム間で閾値を用いて判定せずとも、話者を判別することができる。また、上記の従来技術のように、事前に学習を行う必要もなく、話者の判別に複雑なアルゴリズムを用いる必要もない。
さらに、決定部54では、フレーム間のエネルギー比が第2の分布に属すると推定された場合に、有声音Vと識別されたフレームの識別結果を維持する。例えば、図5Eの例で言えば、仮に話者Bの発話の音量が話者Aの発話の音量よりも低かったとしても、10番目〜12番目のフレームまでの第1フレーム及び第2フレームの識別結果は有声音Vのまま維持される。それゆえ、2人の話者が発話する音量に開きがある場合でも、同時発話を判別することもできる。
なお、ここでは、フレームごとの話者Bに対する話者Aのエネルギー比を用いる場合を説明したが、フレームごとの話者Bに対する話者Aのエネルギー比を併せて用いることとしてもよい。例えば、話者Bに対する話者Aのエネルギー比を用いて事後確率ρijを算出した場合には、ρ2j>ρ1jまたはρ3j>ρ1jであるならば決定部54に第2フレーム(j)の識別結果を有声音Vから無声音Uに置換させる。さらに、話者Aに対する話者Bのエネルギー比を用いて事後確率ρijを算出した場合には、ρ2j>ρ1jまたはρ3j>ρ1jであるならば決定部54によって第1フレーム(j)の識別結果を有声音Vから無声音Uに置換させればよい。このとき、初期値として与えられる事後確率ρijが話者Bに対する話者Aのエネルギー比を用いる場合と話者Aに対する話者Bのエネルギー比を用いる場合とで異なると、EM法によって算出された事後確率ρijも変わる。この場合には、事後確率ρijを用いた話者の推定結果も変わってくる。
図6は、事後確率ρijを用いた話者の推定結果の一例を示す図である。図6の例では、話者Aによって発話されていると推定されたフレームが濃い塗りつぶしによって図示され、話者Bによって発話されていると推定されたフレームが斜線の塗りつぶしによって図示されている。また、図6の例では、発話されていると推定されたフレームが薄い塗りつぶしによって図示されている。この場合にも、図5Eに示す例と同様に、有声音Vと識別されている第2フレームのうち第3の分布に属すると推定された第2フレーム(2)、第2フレーム(6)及び第2フレーム(8)の識別結果が無声音Uに置換される。さらに、有声音Vと識別されている第1フレームのうち第1の分布に属すると推定された第1フレーム(13)、第1フレーム(15)、第1フレーム(16)、第1フレーム(18)及び第1フレーム(20)の識別結果が無声音Uに置換される。
このように、話者Bに対する話者Aのエネルギー比および話者Bに対する話者Aのエネルギー比の両方を用いて識別結果の有効化または無効化を実行した場合にも、図5Eに示した場合と同様の結果を得ることができる。
第2の識別部55は、第2の確率モデルに基づいて、決定部54によって有効または無効が決定された後のフレームの識別結果から2つの音声データにおける発話領域および沈黙領域を識別する処理部である。
ここで、発話領域および沈黙領域の識別方法について説明する。図7は、隠れマルコフモデルにおける状態遷移図の一例を示す図である。図7に示す状態遷移確率Ptおよび観測確率Poは、予め定められた値である。かかる状態遷移確率Ptは、例えば、沈黙の状態である沈黙状態のままでいる確率、沈黙状態から発話の状態である発話状態に遷移する確率、発話状態のままでいる確率および発話状態から沈黙状態に遷移する確率を示す。図7に示す例で言えば、発話は、有声音および無声音の両方とも同一の確率で開始すると仮定して、発話の開始における沈黙状態および発話状態の確率がいずれも「0.5」に設定されている。また、状態遷移確率Ptとして、沈黙状態のままでいる確率が「0.999」に設定されるとともに、沈黙状態から発話状態に遷移する確率が「0.001」に設定されている。さらに、状態遷移確率Ptとして、発話状態のままでいる確率が「0.999」に設定されるとともに、発話状態から沈黙状態に遷移する確率が「0.001」に設定されている。
また、観測確率Poは、例えば、沈黙状態において無声音が検出される確率、沈黙状態において有声音が検出される確率、発話状態において無声音が検出される確率、および発話状態において有声音が検出される確率を指す。図7の例で言えば、観測確率Poとして、沈黙状態において無声音が検出される確率が「0.99」に設定されるとともに、沈黙状態において有声音が検出される確率が「0.01」に設定されている。また、観測確率Poとして、発話状態において無声音が検出される確率が「0.5」に設定されるとともに、発話状態において有声音が検出される確率が「0.5」に設定されている。
なお、図7の例では、発話状態において無声音が検出される確率および発話状態において有声音が検出される確率をともに「0.5」に設定する場合を例示したが、同時発話の場合には他の話者よりも音量が小さい発話を行う話者の無声音が増加することも想定される。よって、発話状態において無声音が検出される確率を「0.5」よりも大きく設定することにより、他の話者よりも音量が小さい発話を行う話者の無声音の増加を抑制することもできる。
このような設定の下、第2の識別部55は、ビタビアルゴリズムを用いて、決定部54による有効化または無効化がなされた後の有声音および無声音から、各々の音声データにおける沈黙領域および発話領域であるかを識別する。これによって、第1の音声データにおける話者Aの発話領域および沈黙領域、第2の音声データにおける話者Bの発話領域および沈黙領域が識別される。
会話分析装置10の説明に戻り、抽出部13は、各々の音声データから会話特性を抽出する処理部である。一態様としては、抽出部13は、第2の識別部55によって識別された第1の音声データにおける話者Aの発話領域をもとに有声音領域の数、有声音領域の長さの平均値および有声音領域の長さの標準偏差を算出する。また、抽出部13は、第2の識別部55によって識別された第1の音声データにおける話者Aの発話領域をもとに発話領域の数、発話領域の長さの平均値および発話領域の長さの標準偏差を算出する。さらに、抽出部13は、第2の識別部55によって識別された第1の音声データにおける話者Aの沈黙領域をもとに、沈黙領域の数、沈黙領域の長さの平均値および沈黙領域の長さの標準偏差を算出する。
また、抽出部13は、会話全体の時間の長さに対する話者Aの発話時間の長さの割合を算出する。このとき、抽出部13は、話者Aの発話領域の長さの合計を、話者Aの発話時間の長さとして、上記の割合を算出する。また、抽出部13は、話者Bの発話時間に対する話者Aの発話時間の割合を算出する。さらに、抽出部13は、話者Cの発話時間に対する話者Aの発話時間の割合も算出する。また、抽出部13は、話者Aの発話領域をもとに、音量の標準偏差およびスペクトルエントロピーの標準偏差を算出する。さらに、抽出部13は、話者Aの発話領域をもとに算出した音量の標準偏差と、スペクトルエントロピーの標準偏差との和を、変化の度合いとして算出する。なお、ここでは、話者Aの会話特性を抽出する場合を例示したが、話者Bについても、上記の話者Aと同様にして、会話特性を抽出する。
このようにして算出された有声音領域の数、有声音領域の長さの平均値および有声音領域の長さの標準偏差の各会話特性は、有声音の長さがどの位長いのかを示す指標となる。また、発話領域の数、発話領域の長さの平均値、および発話領域の長さの標準偏差の各会話特性は、対応する人物が、常に会話において長く続けて話すのか、あるいは少ししか話さないのかを示す指標となる。また、沈黙領域の数、沈黙領域の長さの平均値および沈黙領域の長さの標準偏差の各会話特性は、話者の話し方が、長く続けて話すのか、あるいは中断(沈黙)を多くはさみながら話すのかを示す指標となる。また、会話全体の時間の長さに対するある人物の発話時間の長さの割合および他の人物の発話時間に対するある人物の発話時間の割合Rtの各会話特性は、会話の参加状態を示す指標となる。また、音量の標準偏差、スペクトルエントロピーの標準偏差および変化の度合いの各会話特性は、感情の変化が激しい情熱的な話者であるのか、あるいは感情の変化が小さい静かな話者であるのかを示す指標となる。
分析部14は、抽出部13によって抽出された会話特性に基づいて、会話スタイルを分析する処理部である。一態様としては、分析部14は、他の人物の発話時間に対するある人物の発話時間の割合Rtが、所定値、例えば1.5以上である場合には、この「ある人物」は、会話においてよく話す人物であると分析する。また、分析部14は、割合Rtが所定値、例えば0.66以下である場合には、この「ある人物」は、会話においてあまり話さない、いわゆる聞き役の人物であると分析する。なお、分析部14は、割合Rtが、所定値、例えば0.66より大きく、1.5未満である場合には、会話に対する参加状況において両者は対等であると分析する。
他の一態様としては、分析部14は、ある人物の発話領域の数に対する有声音領域の数の割合および発話領域の長さの平均値が、他の人物の発話領域の数に対する有声音領域の数の割合および発話領域の長さの平均値よりも大きい場合には、次のように分析する。すなわち、分析部14は、「ある人物」は会話において長く続けて話しがちな人物であると分析する。また、分析部14は、ある人物の沈黙領域の長さの平均値が他の人物の沈黙領域の長さの平均値よりも大きく、かつある人物の沈黙領域の長さの標準偏差が所定値、例えば、6.0以上である場合には、次のように分析する。すなわち、分析部14は、「ある人物」は、相手の話を聞いて、相手の内容に合わせて自分の発話を中断するため、発話の長さが一定しない人物であると分析する。
更なる一態様としては、分析部14は、ある人物の音量の標準偏差、スペクトルエントロピーの標準偏差または変化の度合いが、それぞれに対応する基準値以上である場合には、「ある人物」は感情の変化が激しい情熱的な話者であると分析する。また、分析部14は、ある人物の音量の標準偏差、スペクトルエントロピーの標準偏差または変化の度合いが、それぞれに対応する基準値未満である場合には、「ある人物」は感情の変化が小さい静かな話者であると分析する。
他の一態様としては、分析部14は、ある人物と他の人物との関係を分析することもできる。例えば、分析部14は、他の人物の発話時間に対するある人物の発話時間の割合Rtが所定値、例えば1.0以上である場合には、「ある人物」は「他の人物」に対してよく話しかけているため、ある人物と他の人物との関係が友達や家族であると分析できる。一方、割合Rtが所定値、例えば1.0未満である場合には、この「ある人物」は「他の人物」の話を聞こうとしているため、ある人物と他の人物との関係が会社の同僚やビジネスパートナーであると分析できる。
更なる一態様としては、分析部14は、ある人物と他の人物との会話においてある人物の発話領域の長さの平均値が所定値、例えば、1.85(s)以上である場合には、ある人物と他の人物との関係が友達や家族であると分析できる。これは、「ある人物」が「他の人物」に対してよく話しかけているためである。一方、分析部14は、ある人物と他の人物との会話においてある人物の発話領域の長さの平均値が所定値、例えば、1.85(s)未満である場合には、ある人物と他の人物との関係が会社の同僚やビジネスパートナーであると分析できる。
他の一態様としては、分析部14は、ある人物と他の人物との会話においてある人物の沈黙領域の長さの平均値が所定値、例えば、3.00(s)以下である場合には、同様の理由で、ある人物と他の人物との関係が友達や家族であると分析できる。一方、分析部14は、ある人物の沈黙領域の長さの平均値が所定値、例えば、3.00(s)より大きい場合には、ある人物と他の人物との関係が会社の同僚やビジネスパートナーであると分析できる。
更なる一態様としては、分析部14は、ある人物と他の人物との会話においてある人物の変化の度合いが所定値、例えば、0.33以上である場合には、同様の理由で、ある人物と他の人物との関係が友達や家族であると分析できる。一方、分析部14は、ある人物の変化の度合いが所定値、例えば、0.33未満である場合には、ある人物と他の人物との関係が会社の同僚やビジネスパートナーであると分析できる。
これらの分析を行った後に、分析部14は、分析結果を所定の出力先の装置、例えば会話分析装置10が有する表示部や話者Aおよび話者Bが利用する情報処理装置などに出力することができる。
なお、話者判別装置50、抽出部13及び分析部14には、各種の集積回路や電子回路を採用できる。また、話者判別装置50に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
続いて、本実施例に係る会話分析装置の処理の流れについて説明する。なお、ここでは、会話分析装置10によって実行される(1)会話分析処理を説明した後に、話者判別装置50によって実行される(2)実行処理を説明する。
(1)会話分析処理
図8及び図9は、実施例1に係る会話分析処理の手順を示すフローチャートである。この会話分析処理は、一例として、図示しない入力部から会話分析処理を実行する指示を受け付けた場合に処理が起動する。
図8に示すように、取得部51は、第1の音声データ12Aおよび第2の音声データ12Bを取得する(ステップS101)。そして、フレーム化部52は、第1の音声データ12Aおよび第2の音声データ12Bそれぞれの長さが同一であるか否かを判定する(ステップS102)。なお、ここで言う「同一」は、長さの差が許容誤差範囲内である場合も含む。
このとき、各々の音声データの長さが同一でない場合(ステップS102否定)には、フレーム化部52は、エラーメッセージを図示しない表示部に出力し(ステップS103)、処理を終了する。
一方、各々の音声データの長さが同一である場合(ステップS102肯定)には、フレーム化部52は、第1の音声データ12Aおよび第2の音声データ12Bをフレーム化する(ステップS104)。
その後、第1の識別部53は、自己相関係数のピークの数、自己相関係数のピークの最大値およびスペクトルエントロピーの3つの特徴量を各々の音声データごとに抽出する(ステップS105)。そして、第1の識別部53は、各々の音声データごとに抽出した3つの特徴量それぞれの平均値および標準偏差を算出する(ステップS106)。
続いて、第1の識別部53は、変数Nに0を設定し(ステップS107)、隠れマルコフモデルにおける有声音および無声音の状態遷移について初期の状態遷移確率Ptを設定する(ステップS108)。
そして、第1の識別部53は、変数Nの値を1つインクリメントする(ステップS109)。このとき、変数Nの値が5以上でない場合(ステップS110否定)には、第1の識別部53は、各々の音声データごとに抽出した上記の3つの特徴量、並びに、各特徴量の平均値および標準偏差を観測結果とし、EM法を用いて、状態遷移確率Ptを算出し(ステップS111)、変数Nの値をさらに1つインクリメントする。
一方、変数Nの値が5以上である場合(ステップS110肯定)には、第1の識別部53は、次のような処理を実行する。すなわち、第1の識別部53は、各々の音声データごとに抽出した上記の3つの特徴量、並びに、各特徴量の平均値および標準偏差を観測結果とし、EM法を用いて、状態遷移確率Ptを算出する(ステップS112)。
そして、第1の識別部53は、各々の音声データごとに抽出した上記の3つの特徴量、並びに、各特徴量の平均値および標準偏差を観測結果とし、ビタビアルゴリズムを用いて、観測確率Poを算出する(ステップS113)。
その後、第1の識別部53は、各々の音声データごとに抽出した上記の3つの特徴量に基づいて、ビタビアルゴリズムを用いて、次のような処理を行う。すなわち、第1の識別部53は、発話が行われている各フレームにおいて、発話されている音が有声音であるか、あるいは無声音であるかを識別する。そして、第1の識別部53は、有声音が検出された領域を有声音領域とし、無声音が検出された領域を無声音領域とする(ステップS114)。
ここで、決定部54は、2人の話者の音声データのエネルギー比を混合ガウス分布でモデル化した上でフレーム間のエネルギー比が属する分布に応じて有声音Vの識別結果を有効または無効とするかを決定する「決定処理」を実行する(ステップS115)。
その後、第2の識別部55は、ビタビアルゴリズムを用いて、決定部54による有効化または無効化がなされた有声音および無声音の識別結果から、沈黙状態または発話状態であるかを検出することにより沈黙領域および発話領域を識別する(ステップS116)。
続いて、抽出部13は、図9に示すように、ある話者が発話したと特定されたフレームから、有声音領域の数、有声音領域の長さの平均値および有声音領域の長さの標準偏差を算出する(ステップS117)。
さらに、抽出部13は、ある話者が発話したと特定されたフレームから、発話領域の数、発話領域の長さの平均値および発話領域の長さの標準偏差を算出する(ステップS118)。その後、抽出部13は、ある話者の沈黙領域のフレームから、沈黙領域の数、沈黙領域の長さの平均値および沈黙領域の長さの標準偏差を算出する(ステップS119)。
そして、抽出部13は、会話全体の時間の長さに対するある話者の発話時間の長さの割合を算出する(ステップS120)。さらに、抽出部13は、他の話者の発話時間に対するある話者の発話時間の割合を算出する(ステップS121)。
続いて、抽出部13は、ある話者が発話したと特定されたフレームから、音量の標準偏差およびスペクトルエントロピーの標準偏差を算出する(ステップS122)。抽出部13は、ある話者が発話したと特定されたフレームから算出した音量の標準偏差と、スペクトルエントロピーの標準偏差との和を、変化の度合いとして算出する(ステップS123)。
そして、全ての話者、すなわち話者Aおよび話者Bの会話特性を抽出するまで(ステップS124否定)、上記のステップS117〜ステップS123までの処理を繰り返し実行する。その後、全ての話者の会話特性を抽出すると(ステップS124肯定)、分析部14は、抽出部13によって抽出された会話特性に基づいて、会話スタイルを分析する(ステップS125)。最後に、分析部14は、分析結果を所定の出力先の装置へ出力し(ステップS126)、処理を終了する。
(2)決定処理
図10は、実施例1に係る決定処理の手順を示すフローチャートである。この決定処理は、図8に示したステップS115に対応する処理であり、有声音領域および無声音領域が識別された後に処理が起動する。
図10に示すように、決定部54は、2つの音声データの各フレーム間で少なくともいずれか一方が有声音Vと識別されたフレームを対象に、第1の音声データ12Aおよび第2の音声データ12Bのフレーム間のエネルギー比を計算する(ステップS301)。続いて、決定部54は、ステップS301で算出したエネルギー比の対数Xjをさらに計算する(ステップS302)。
そして、決定部54は、EM法に用いる各種の項目の初期値を設定する(ステップS303)。例えば、決定部54は、上記のようにフレームごとに算出したエネルギー比の対数Xjを昇順に並べ替える。これによって並べ替え後のエネルギー比の対数Xj_sortedを得る。さらに、決定部54は、並べ替え後のエネルギー比の対数Xj_sortedからマトリクスを生成することによって事後確率ρijの初期値を得る。
続いて、決定部54は、ステップS303で設定された並べ替え後のエネルギー比の対数Xj_sortedおよび事後確率ρijの初期値を後述のMステップに供給する(ステップS304)。
そして、決定部54は、上記の式(2)〜式(4)を用いて、第1の分布、第2の分布または第3の分布を定義するパラメータρi、μi及びσiを計算することによってパラメータρi、μi及びσiをアップデートするMステップを実行する(ステップS305)。このとき、初期値が算出された初回には、並べ替え後のエネルギー比の対数Xj_sortedおよび事後確率ρijの初期値が計算に用いられる。
続いて、決定部54は、Mステップで算出されたパラメータρi、μi及びσiを上記の式(5)〜式(7)へ代入することで、確率密度N(xj:μi,σi)、事後混合物の尤度f(xj)及び事後確率ρijを算出するEステップを実行する(ステップS306)。
そして、Mステップ及びEステップを所定の回数にわたって繰り返し実行するまで(ステップS307否定)、決定部54は、次のような処理を実行する。すなわち、決定部54は、後述のEステップでアップデートされた事後確率ρij及びエネルギー比の対数XjをMステップへ供給した上で(ステップS308)、上記のMステップ及びEステップを実行する。
その後、Mステップ及びEステップを所定の回数実行した場合(ステップS307肯定)に、決定部54は、次のような処理を実行する。すなわち、決定部54は、EM法によって算出された事後確率ρijを用いて、第1の識別部53によって有声音Vであると識別されたフレームの識別結果を有効または無効とするかを決定し(ステップS309)、処理を終了する。
上述してきたように、本実施例に係る話者判別装置50では、2人の話者の音声データのエネルギー比を混合ガウス分布でモデル化した上でフレーム間のエネルギー比が属する分布に応じて有声音Vの識別結果を有効又は無効とする。その上で、本実施例に係る話者判別装置50では、有効化または無効化が実行されたフレームの識別結果から2つの音声データの発話領域および沈黙領域を識別する。このため、本実施例に係る話者判別装置50では、各音声データを構成する同一区間のフレーム間で閾値を用いて判定せずとも、話者を判別することができる。また、本実施例に係る話者判別装置50では、上記の従来技術のように、事前に学習を行う必要もなく、話者の判別に複雑なアルゴリズムを用いる必要もない。したがって、本実施例に係る話者判別装置50によれば、話者の判別を簡易かつ正確に行うことが可能である。
さらに、本実施例に係る話者判別装置50では、フレーム間のエネルギー比が第2の分布に属すると推定された場合に、有声音Vと識別されたフレームの識別結果を維持する。それゆえ、本実施例に係る話者判別装置50によれば、2人の話者が発話する音量に開きがある場合でも、同時発話を判別することもできる。