(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-01
(45)【発行日】2023-11-10
(54)【発明の名称】オンライン話者逐次区別方法、オンライン話者逐次区別装置及びオンライン話者逐次区別システム
(51)【国際特許分類】
G10L 17/02 20130101AFI20231102BHJP
G10L 17/18 20130101ALI20231102BHJP
【FI】
G10L17/02
G10L17/18
(21)【出願番号】P 2020028305
(22)【出願日】2020-02-21
【審査請求日】2022-06-24
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000062
【氏名又は名称】弁理士法人第一国際特許事務所
(72)【発明者】
【氏名】薛 雅文
(72)【発明者】
【氏名】孫 慶華
(72)【発明者】
【氏名】堀口 翔太
【審査官】中村 天真
(56)【参考文献】
【文献】特開2011-191542(JP,A)
【文献】国際公開第2008/126627(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 13/00-25/93
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
オンライン話者逐次区別方法であって、
ユーザ対話に対応する第1の音声データセグメントと、前記ユーザ対話の話者数を示す話者数データを受け付ける工程と、
前記第1の音声データセグメントと前記話者数データとに基づいて、前記第1の音声データセグメントにおける第1の時間位置のセットについて、特定の話者が特定の時間位置において発話中である確率を示す第1の確率値のセットを計算する工程と、
前記第1の時間位置のセットの少なくとも一部である第1の時間位置のサブセットと、前記第1の確率値のセットの少なくとも一部であり、前記第1の時間位置のサブセットに対応する第1の確率値のサブセットとを所定の選択手法に基づいて選択し、発話情報バッファーに格納する工程と、
前記ユーザ対話に対応する第2の音声データセグメントを受け付ける工程と、
前記発話情報バッファーに格納されている前記第1の時間位置のサブセットに対応する音声特徴を前記第1の音声データセグメントから抽出し、前記第2の音声データセグメントに結合し、結合音声データセグメントを生成する工程と、
前記結合音声データセグメントと前記話者数データとに基づいて、前記結合音声データセグメントにおける第2の時間位置のセットについて、特定の話者が特定の時間位置において発話中である確率を示す第2の確率値のセットを計算する工程と、
前記第1の確率値のサブセットと前記第2の確率値のセットとに基づいて、前記ユーザ対話の話者のそれぞれを識別する話者逐次区別結果を生成する工程と、
を含むことを特徴とするオンライン話者逐次区別方法。
【請求項2】
前記第2の確率値のセットは、前記第1の音声データセグメントから抽出した前記音声特徴に対応する第1の確率値のグループと、前記第2の音声データセグメントに対応する第2の確率値のグループとを含み、
前記話者逐次区別結果を生成する工程は、
前記発話情報バッファーに格納されている前記第1の確率値のサブセットと前記第2の確率値のセットとの順列を生成し、前記順列のそれぞれについて、前記第1の確率値のサブセットと前記第1の確率値のグループの相関スコアを計算し、
所定の相関スコア基準を満たす順列に基づいて、前記話者逐次区別結果を生成する、
ことを特徴とする、請求項1に記載のオンライン話者逐次区別方法。
【請求項3】
前記所定の選択手法は、
前記第1の時間位置のセットにおける時間位置のそれぞれについて、話者間の確率の差の絶対値を計算し、前記絶対値が所定の基準を満たす確率値を前記第1の確率値のサブセットとして選択することを含む、
ことを特徴とする、請求項1に記載のオンライン話者逐次区別方法。
【請求項4】
前記所定の選択手法は、
前記第1の時間位置のセットにおける時間位置のそれぞれについて、Attention Weightの値を計算し、所定のAttention Weight基準を満たす時間位置を前記第1の時間位置のサブセットとして選択することを含むことを特徴とする、
請求項1に記載のオンライン話者逐次区別方法。
【請求項5】
前記所定の選択手法は、
前記第1の時間位置のセットの中から、ランダムな時間位置を前記第1の時間位置のサブセットとして選択する
ことを含むことを特徴とする、請求項1に記載のオンライン話者逐次区別方法。
【請求項6】
前記発話情報バッファーに対して新たなデータを書き込む要求があった場合、
前記発話情報バッファーに既に格納されているデータは、書き込んだ時刻が古い順で前記新たなデータに上書きされる、
ことを含むことを特徴とする、請求項1に記載のオンライン話者逐次区別方法。
【請求項7】
前記発話情報バッファーに対して新たなデータを書き込む要求があった場合、
前記発話情報バッファーに既に格納されているデータは、Attention Weightが低い順で前記新たなデータに上書きされる、
ことを含むことを特徴とする、請求項1に記載のオンライン話者逐次区別方法。
【請求項8】
オンライン話者逐次区別装置であって、
ユーザ対話に対応する第1の音声データセグメントと、前記ユーザ対話の話者数を示す話者数データを受け付ける第1のデータ入力部と、
前記第1の音声データセグメントと前記話者数データとに基づいて、前記第1の音声データセグメントにおける第1の時間位置のセットについて、特定の話者が特定の時間位置において発話中である確率を示す第1の確率値のセットを計算する第1の話者確率判定部と、
前記第1の時間位置のセットの少なくとも一部である第1の時間位置のサブセットと、前記第1の確率値のセットの少なくとも一部であり、前記第1の時間位置のサブセットに対応する第1の確率値のサブセットとを所定の選択手法に基づいて選択し、発話情報バッファーに格納する発話情報バッファー管理部と、
前記ユーザ対話に対応する第2の音声データセグメントを受け付ける第2のデータ入力部と、
前記発話情報バッファーに格納されている前記第1の時間位置のサブセットに対応する音声特徴を前記第1の音声データセグメントから抽出し、前記第2の音声データセグメントに結合し、結合音声データセグメントを生成する音声データ結合部と、
前記結合音声データセグメントと前記話者数データとに基づいて、前記結合音声データセグメントにおける第2の時間位置のセットについて、特定の話者が特定の時間位置において発話中である確率を示す第2の確率値のセットを計算する第2の話者確率判定部と、
前記第1の確率値のサブセットと前記第2の確率値のセットとに基づいて、前記ユーザ対話の話者のそれぞれを識別する話者逐次区別結果を生成する話者逐次区別部と、
を含むことを特徴とするオンライン話者逐次区別装置。
【請求項9】
オンライン話者逐次区別システムであって、
前記オンライン話者逐次区別システムにおいて、
ユーザ対話に対応する音声データセグメントと、前記ユーザ対話の話者数を示す話者数データを取得するためのクライアント端末と、前記ユーザ対話の話者のそれぞれを識別する話者逐次区別結果を生成するためのオンライン話者逐次区別装置とが通信ネットワークを介して接続されており、
前記オンライン話者逐次区別装置は、
前記クライアント端末から、前記ユーザ対話に対応する第1の音声データセグメントと、前記ユーザ対話の話者数を示す話者数データを受け付ける第1のデータ入力部
と、
前記第1の音声データセグメントと前記話者数データとに基づいて、前記第1の音声データセグメントにおける第1の時間位置のセットについて、特定の話者が特定の時間位置において発話中である確率を示す第1の確率値のセットを計算する第1の話者確率判定部と、
前記第1の時間位置のセットの少なくとも一部である第1の時間位置のサブセットと、前記第1の確率値のセットの少なくとも一部であり、前記第1の時間位置のサブセットに対応する第1の確率値のサブセットとを所定の選択手法に基づいて選択し、発話情報バッファーに格納する発話情報バッファー管理部と、
前記ユーザ対話に対応する第2の音声データセグメントを受け付ける第2のデータ入力部と、
前記発話情報バッファーに格納されている前記第1の時間位置のサブセットに対応する音声特徴を前記第1の音声データセグメントから抽出し、前記第2の音声データセグメントに結合し、結合音声データセグメントを生成する音声データ結合部と、
前記結合音声データセグメントと前記話者数データとに基づいて、前記結合音声データセグメントにおける第2の時間位置のセットについて、特定の話者が特定の時間位置において発話中である確率を示す第2の確率値のセットを計算する第2の話者確率判定部と、
前記第1の確率値のサブセットと前記第2の確率値のセットとに基づいて、前記ユーザ対話の話者のそれぞれを識別する話者逐次区別結果を生成し、前記クライアント端末に送信する話者逐次区別部と、
を含むことを特徴とするオンライン話者逐次区別システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オンライン話者逐次区別方法、オンライン話者逐次区別装置及びオンライン話者逐次区別システムに関する。
【背景技術】
【0002】
近年、放送、ボイスメール、コールセンターの通話、会議等の発話記録が増大しつつある。このような状況において、効率的かつ効果的に自動で索引を作成し、検索タスクを実行するためには、発話内容を単に文書化するのみならず、様々な種類の非言語情報を抽出できるように準備することが重要である。このような非言語情報としては、例えば、メタデータがある。そして、メタデータには、話者の順番、特徴(性別、年齢)、音源の変更等の情報が含まれている。
【0003】
発話文書内の音源を識別し、メタデータを定義するためのラベル付けを行うためには、音声逐次区別の処理が用いられる。この音声逐次区別処理においては、音声セグメント内の同質な領域を見出し、それらを、話者、性別、音楽、ノイズ等について一貫してラベル付けをする。音声話者逐次区別処理の主な部分は、話者の逐次区別、すなわち、話者のセグメント化及びクラスタリングである。言い換えれば、この処理は、「誰がいつ話したか」を見出す作業である。
【0004】
従来、音声逐次区別手段の多くは、分析の対象となる対話(会議、通話等)が既に完結しており、音声データの全体を分析のために利用可能であることを前提としている。そして、このような音声逐次区別システムを「オフライン音声逐次区別システム」と称する。しかし、斯かるオフライン音声逐次区別システムでは、音声データをリアルタイムで分析し、低遅延(Low Latency)で音声区別結果を提供することができない。
【0005】
そこで、近年では、音声データをリアルタイムで分析し、低遅延で音声区別結果を提供することができるオンライン音声逐次区別手段が提案されている。このオンライン音声逐次区別手段の一例として、例えば、特許文献1がある。
特許文献1には「話者区別システム30は、話者GMM74-78を記憶する記憶部42と、音声データをセグメント化する音声活動検出部30と、現セグメントが話者GMM74-78のいずれにも属していないかを判定する新規性判定部34と、現セグメントが話者GMM74-78のいずれにも属していないときに、新たな話者GMMを生成し、現セグメントを新たな話者GMMでラベル付けする新モデル生成部40と、現セグメントが話者GMM74-78の1つに属しているときに、話者を識別し、現セグメントをその話者でラベル付けする話者識別部44と、現セグメントを利用して話者GMMをトレーニングするトレーニング部48と、音声活動検出部30が出力したセグメントのシーケンスに従ってセグメントラベルをマージするマージ部46とを含む」技術が記載されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記の特許文献1には、次のような技術が開示されている。まず入力される音声データセグメントについてGMM(Gaussian Mixture Model)が生成され、記憶される。次に、音声データセグメントが入力されると、当該セグメントが記憶されているGMMに比較される。当該セグメントが既に記憶されているGMMに属する(つまり、話者が同一人物である)場合には、話者が識別される。当該セグメントが既に記憶されているGMMに属していない(つまり、話者が同一人物でない)場合には、新たなGMMが生成される。
これにより、音声データをリアルタイムで分析し、低遅延で音声区別結果を提供することができる。
【0008】
しかし、特許文献1に記載の手段では、1つの音声データセグメントが一人の話者に対応することを前提としており、複数の話者が同時に話すことが想定されていないため、複数の異なるユーザの発話が重なった音声データセグメントについては正確な音声逐次区別結果を提供することができない。
【0009】
そこで、本発明は、以前の音声データセグメントから抽出した重要な情報(誰が、いつ話したかを判定するのに有用な情報)を格納する発話情報バッファーを用いることにより、複数の異なるユーザの発話が重なった音声データについても、正確な音声逐次区別結果をリアルタイムで生成することができるオンライン話者逐次区別方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記の課題を解決するために、代表的な本発明のオンライン話者逐次区別方法の一つは、ユーザ対話に対応する第1の音声データセグメントと、前記ユーザ対話の話者数を示す話者数データを受け付ける工程と、前記第1の音声データセグメントと前記話者数データとに基づいて、前記第1の音声データセグメントにおける第1の時間位置のセットについて、特定の話者が特定の時間位置において発話中である確率を示す第1の確率値のセットを計算する工程と、前記第1の時間位置のセットの少なくとも一部である第1の時間位置のサブセットと、前記第1の確率値のセットの少なくとも一部であり、前記第1の時間位置のサブセットに対応する第1の確率値のサブセットとを所定の選択手法に基づいて選択し、発話情報バッファーに格納する工程と、前記ユーザ対話に対応する第2の音声データセグメントを受け付ける工程と、前記発話情報バッファーに格納されている前記第1の時間位置のサブセットに対応する音声特徴を前記第1の音声データセグメントから抽出し、前記第2の音声データセグメントに結合し、結合音声データセグメントを生成する工程と、前記結合音声データセグメントと前記話者数データとに基づいて、前記結合音声データセグメントにおける第2の時間位置のセットについて、特定の話者が特定の時間位置において発話中である確率を示す第2の確率値のセットを計算する工程と、前記第1の確率値のサブセットと前記第2の確率値のセットとに基づいて、前記ユーザ対話の話者のそれぞれを識別する話者逐次区別結果を生成する工程とを含む。
【発明の効果】
【0011】
本発明によれば、以前の音声データセグメントから抽出した重要な情報(誰がいつ話したかを判定するのに有用な情報)を格納する発話情報バッファーを用いることにより、複数の異なるユーザの発話が重なった音声データについても、正確な音声逐次区別結果をリアルタイムで生成することができるオンライン話者逐次区別方法を提供することができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、本発明の実施形態を実施するためのコンピュータシステムを示す図である。
【
図2】
図2は、本発明の実施形態に係るオンライン話者逐次区別システムの構成の一例を示す図である。
【
図3】
図3は、本発明の実施形態に係るオンライン話者逐次区別方法の概要を示す図である。
【
図4】
図4は、オンライン話者逐次区別方法の流れを示すフローチャートである。
【
図5】
図5は、本発明の実施形態に係る第1の音声データセグメントを示す図である。
【
図6】
図6は、本発明の実施形態に係る結合音声データセグメントを示す図である。
【
図7】
図7は、本発明の実施形態に係るオンライン話者逐次区別方法の流れの一例を示す図である。
【
図8】
図8は、
図7に続いて本発明の実施形態に係るオンライン話者逐次区別方法の流れの一例を示す図である。
【
図9】
図9は、本発明の実施形態に係る発話情報バッファーを更新する方法の一例を示す図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して、本発明の前提となる背景及び本発明の実施形態について説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0014】
(背景)
従来の話者逐次区別システムのほとんどは、いくつかの鍵となるサブタスクを行なっており、それには、発話検出、話者変化の検出、性別による分類、及び話者のクラスタリングが含まれる。性能を向上させるために、場合によってはクラスタの再結合及び再分離もまた用いられる。
【0015】
発話検出は、音声のうち、発話のみからなる領域を見出すことを目的とする。このタスクを行うための最も一般的な技術は、音響ガウス混合モデル(Gaussian mixutre models:GMM)を用いた最尤度分類である。モデルは通常、いくつかのラベル付けされたデータを用いてトレーニングされており、最も単純な場合には、発話データと非発話データの2つのモデルを有する。システムによっては、話者の性別とチャンネルの種類とに依存したいくつかのモデルを用いるものもある。別の方法では、音声ストリームの単一パス又はマルチパスビタビセグメンテーションを行なうことがある。ニュース放送のデータでは、その発話検出の典型的な誤り率は2%から3%である。
【0016】
発話セグメントが識別された後、話者変化検出を用いて、各セグメントで起こりうる何らかの話者の変化を見出すことができる。もしこの話者の変化が検出されれば、セグメントはさらに、各々が一人の話者に属する、より小さいセグメントに分割される。
【0017】
変化検出には2つの主な技術がある。第1のものでは、ベイズ情報量基準(Bayesian infomration criterion:BIC)を用いて、1つの分布より2つとしたほうがよりよくモデル化できるか否かを判定することによって、ウィンドウ内の潜在的な変化点を発見する。第2のものは、最も多くの場合、単一ガウス関数で表される2個の固定長ウィンドウ間の距離、ガウス発散又は一般化尤度比、を測定するように構成されている。この場合、あるしきい値を超えた距離のピークが変化点と考えられる。
【0018】
性別による分類は、セグメントを2つのグループ(男性と女性)に分割するために用いられ、これによって次のクラスタリングの負荷を減じるとともに、話者についてより多くの情報を与える。通常、性別毎に1つの、2つのGMMが前もってトレーニングされ、最尤度が決定基準として用いられる。報告されている性別による分類の誤り率は1%から2%である。
【0019】
最後のサブタスクである話者のクラスタリングは、各セグメントにその正しい話者ラベルを割当てることである。これは、セグメントを話者に対応する組へクラスタリングすることによって行われる。最も広く行なわれている方策は、BIC終了基準を用いた階層的凝集型クラスタリングである。
【0020】
クラスタの各々は単一ガウス関数で表され、一般化尤度比(Generalized likelihood ratio:GLR)がクラスタ間距離測定に慣用される。この方法の変形も提案されているが、これらもまた、依然として同様のボトムアップ型クラスタリング技術に基づいている。
【0021】
本発明の実施形態では、エンドツーエンド話者逐次区別ネットワーク(End to End Neural Diarization Network;EEND)を用いることがある。このエンドツーエンド話者逐次区別ネットワークは、話者埋め込み(Speaker Embedding)を用いずに、特定の話者が特定の時間位置において発話中である確率(誰がいつ話したか)を判定するように構成されたニューラルネットワークである。
【0022】
このエンドツーエンド話者逐次区別ネットワークは、話者の発話が重なった音声データセグメントが発生する場合であっても、良好な話者逐次区別結果を生成することができる。音声データセグメントxtが入力された場合、エンドツーエンド話者逐次区別ネットワークはそれぞれの時間位置tについて、所定の話者数の話者毎に、当該話者が話した確率yを計算する。例えば、二人の話者c1、c2がいる場合、このエンドツーエンド話者逐次区別ネットワークは、話者逐次区別結果として、yt,c1=1、yt,c2=0を出力したとする。これは、時間位置tにおいて、一人の話者c1が発話中であって、もう一人の話者c2が時間位置tにおいて発話中でないことを意味する。また、yt,c1=0、yt,c2=0が話者逐次区別結果として出力された場合には、これは、時間位置tにおいて、話者c1、c2が両者とも発話中でないことを意味する。また、yt,c1=1、yt,c2=1が話者逐次区別結果として出力された場合には、これは、時間位置tにおいて、話者c1、c2が両者とも発話中であることを意味する。
このように、エンドツーエンド話者逐次区別ネットワークはユーザ対話の話者のそれぞれを識別する話者逐次区別結果を生成することができる。
【0023】
しかし、上述したエンドツーエンド話者逐次区別ネットワークは、特定の音声データセグメントに関する話者逐次区別結果を生成するためには、当該音声データセグメントだけでなく、当該音声データセグメントの前後の音声データセグメントも必要とするため、ユーザ対話が既に完結しており、音声データの全体が始めから利用可能であるオフライン音声逐次区別システムのみに用いられ、オンライン(リアルタイム)での利用が想定されてない。
従って、本発明では、話者逐次区別判定に有用な情報を格納するための発話情報バッファーを用いることで、エンドツーエンド話者逐次区別ネットワークをオンラインの状況に適用させ、リアルタイムで良好な話者逐次区別結果を生成することが可能となる。
【0024】
(ハードウエア構成)
次に、
図1を参照して、本開示の実施形態を実施するためのコンピュータシステム300について説明する。本明細書で開示される様々な実施形態の機構及び装置は、任意の適切なコンピューティングシステムに適用されてもよい。コンピュータシステム300の主要コンポーネントは、1つ以上のプロセッサ302、メモリ304、端末インターフェース312、ストレージインタフェース314、I/O(入出力)デバイスインタフェース316、及びネットワークインターフェース318を含む。これらのコンポーネントは、メモリバス306、I/Oバス308、バスインターフェースユニット309、及びI/Oバスインターフェースユニット310を介して、相互的に接続されてもよい。
【0025】
コンピュータシステム300は、プロセッサ302と総称される1つ又は複数の汎用プログラマブル中央処理装置(CPU)302A及び302Bを含んでもよい。ある実施形態では、コンピュータシステム300は複数のプロセッサを備えてもよく、また別の実施形態では、コンピュータシステム300は単一のCPUシステムであってもよい。各プロセッサ302は、メモリ304に格納された命令を実行し、オンボードキャッシュを含んでもよい。
【0026】
ある実施形態では、メモリ304は、データ及びプログラムを記憶するためのランダムアクセス半導体メモリ、記憶装置、又は記憶媒体(揮発性又は不揮発性のいずれか)を含んでもよい。メモリ304は、本明細書で説明する機能を実施するプログラム、モジュール、及びデータ構造のすべて又は一部を格納してもよい。例えば、メモリ304は、話者逐次区別アプリケーション350を格納していてもよい。ある実施形態では、話者逐次区別アプリケーション350は、後述する機能をプロセッサ302上で実行する命令又は記述を含んでもよい。
【0027】
ある実施形態では、話者逐次区別アプリケーション350は、プロセッサベースのシステムの代わりに、またはプロセッサベースのシステムに加えて、半導体デバイス、チップ、論理ゲート、回路、回路カード、および/または他の物理ハードウェアデバイスを介してハードウェアで実施されてもよい。ある実施形態では、話者逐次区別アプリケーション350は、命令又は記述以外のデータを含んでもよい。ある実施形態では、カメラ、センサ、または他のデータ入力デバイス(図示せず)が、バスインターフェースユニット309、プロセッサ302、またはコンピュータシステム300の他のハードウェアと直接通信するように提供されてもよい。
【0028】
コンピュータシステム300は、プロセッサ302、メモリ304、表示システム324、及びI/Oバスインターフェースユニット310間の通信を行うバスインターフェースユニット309を含んでもよい。I/Oバスインターフェースユニット310は、様々なI/Oユニットとの間でデータを転送するためのI/Oバス308と連結していてもよい。I/Oバスインターフェースユニット310は、I/Oバス308を介して、I/Oプロセッサ(IOP)又はI/Oアダプタ(IOA)としても知られる複数のI/Oインタフェースユニット312,314,316、及び318と通信してもよい。
【0029】
表示システム324は、表示コントローラ、表示メモリ、又はその両方を含んでもよい。表示コントローラは、ビデオ、オーディオ、又はその両方のデータを表示装置326に提供することができる。また、コンピュータシステム300は、データを収集し、プロセッサ302に当該データを提供するように構成された1つまたは複数のセンサ等のデバイスを含んでもよい。
【0030】
例えば、コンピュータシステム300は、心拍数データやストレスレベルデータ等を収集するバイオメトリックセンサ、湿度データ、温度データ、圧力データ等を収集する環境センサ、及び加速度データ、運動データ等を収集するモーションセンサ等を含んでもよい。これ以外のタイプのセンサも使用可能である。表示システム324は、単独のディスプレイ画面、テレビ、タブレット、又は携帯型デバイスなどの表示装置326に接続されてもよい。
【0031】
I/Oインタフェースユニットは、様々なストレージ又はI/Oデバイスと通信する機能を備える。例えば、端末インタフェースユニット312は、ビデオ表示装置、スピーカテレビ等のユーザ出力デバイスや、キーボード、マウス、キーパッド、タッチパッド、トラックボール、ボタン、ライトペン、又は他のポインティングデバイス等のユーザ入力デバイスのようなユーザI/Oデバイス320の取り付けが可能である。ユーザは、ユーザインターフェースを使用して、ユーザ入力デバイスを操作することで、ユーザI/Oデバイス320及びコンピュータシステム300に対して入力データや指示を入力し、コンピュータシステム300からの出力データを受け取ってもよい。ユーザインターフェースは例えば、ユーザI/Oデバイス320を介して、表示装置に表示されたり、スピーカによって再生されたり、プリンタを介して印刷されたりしてもよい。
【0032】
ストレージインタフェース314は、1つ又は複数のディスクドライブや直接アクセスストレージ装置322(通常は磁気ディスクドライブストレージ装置であるが、単一のディスクドライブとして見えるように構成されたディスクドライブのアレイ又は他のストレージ装置であってもよい)の取り付けが可能である。ある実施形態では、ストレージ装置322は、任意の二次記憶装置として実装されてもよい。メモリ304の内容は、ストレージ装置322に記憶され、必要に応じてストレージ装置322から読み出されてもよい。I/Oデバイスインタフェース316は、プリンタ、ファックスマシン等の他のI/Oデバイスに対するインターフェースを提供してもよい。ネットワークインターフェース318は、コンピュータシステム300と他のデバイスが相互的に通信できるように、通信経路を提供してもよい。この通信経路は、例えば、ネットワーク330であってもよい。
【0033】
ある実施形態では、コンピュータシステム300は、マルチユーザメインフレームコンピュータシステム、シングルユーザシステム、又はサーバコンピュータ等の、直接的ユーザインターフェースを有しない、他のコンピュータシステム(クライアント)からの要求を受信するデバイスであってもよい。他の実施形態では、コンピュータシステム300は、デスクトップコンピュータ、携帯型コンピュータ、ノートパソコン、タブレットコンピュータ、ポケットコンピュータ、電話、スマートフォン、又は任意の他の適切な電子機器であってもよい。
【0034】
次に、
図2を参照して、本発明の実施形態に係るオンライン話者逐次区別システムの構成の一例について説明する
【0035】
図2は、本発明の実施形態に係るオンライン話者逐次区別システム360の構成の一例を示す図である。
図2に示すように、オンライン話者逐次区別システム360は、主にクライアント端末375、通信ネットワーク370、音声データ取得装置365、及び話者逐次区別装置380からなる。クライアント端末375、音声データ取得装置365、及び話者逐次区別装置380は、通信ネットワーク370を介して互いに接続されている。
通信ネットワーク370は、例えばローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、衛星ネットワーク、ケーブルネットワーク、WiFiネットワーク、またはそれらの任意の組み合わせを含むものであってもよい。また、クライアント端末375、音声データ取得装置365、及び話者逐次区別装置の接続は、有線であってもよく、無線であってもよい。
【0036】
音声データ取得装置365は、後述する話者逐次区別方法の処理の対象となる音声データセグメントを取得するための装置である。この音声データ取得装置365は、例えば、スマートフォンやパソコン等のマイクロフォンを備えたコンピューティングデバイスや録音機等であってもよい。
【0037】
クライアント端末375は、上述した音声データ取得装置365によって取得された音声データセグメントや、ユーザ対話の話者数を示す話者数データを、通信ネットワーク370を介して話者逐次区別装置に送信する端末である。このクライアント端末375は、個人に利用される端末であってもよく、民間企業等の組織における共有の端末であってもよい。また、このクライアント端末375は、例えば、デスクトップパソコン、ノートパソコン、タブレット、スマートフォン等、任意のデバイスであってもよい。
【0038】
データ記憶部372は、通信ネットワーク370を介してクライアント端末375から送信された、話者逐次区別方法の処理の対象となる音声データセグメント及び話者数データを記憶するためのストレージ部である。このデータ記憶部は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等のローカルストレージであってもよく、話者逐次区別装置380にアクセス可能なクラウド型ストレージ領域であってもよい。
【0039】
話者逐次区別装置380は、本発明に実施形態に係る、話者逐次区別方法における処理を実施するための装置である。話者逐次区別装置380は、データ記憶部372に記憶されている音声データセグメント及び話者数データを処理することにより、ユーザ対話の話者のそれぞれを識別する話者逐次区別結果を生成するための装置である。
【0040】
また、
図2に示すように、話者逐次区別装置380は、本発明の実施形態に係る話者逐次区別方法を実施するために、データ入力部382、話者確率判定部384、発話情報バッファー管理部386、音声データ結合部388、及び話者逐次区別部390とを含む。
【0041】
データ入力部382は、クライアント端末375(又は音声データ取得装置365)から入力された音声データセグメント(例えば、第1の音声データセグメント、第2の音声データセグメント等)及びユーザ対話の話者数を示す話者数データを受け付ける機能部である。
【0042】
話者確率判定部384は、入力された音声データセグメント及び話者数データに基づいて、音声データセグメントにおける時間位置(第1の時間位置のセット)について、特定の話者が特定の時間位置において発話中である確率(例えば、第1の確率値のセット、第2の確率値のセット)を計算する機能部である。この話者確率判定部は、例えば、Self Attention法を用いた、エンドツーエンド話者逐次区別ネットワーク(End to End Neural Diarization Network;EEND)であってもよい。
【0043】
発話情報バッファー管理部386は、本発明の実施形態に係る発話情報バッファーに格納する情報(第1の時間位置のサブセット及び第1の時間位置のサブセットに対応する第1の確率値のサブセット)を決定し、発話情報バッファーに格納するための機能部である。ここで、発話情報バッファーに格納する情報は所定の選択手法に基づいて決定されてもよい。
なお、これらの選択手法の詳細については後述する。
【0044】
音声データ結合部388は、第1の音声データセグメントから抽出した音声特徴と第2の音声データセグメントとを結合した結合音声データセグメントを生成する機能部である。ここでは、第1の音声データセグメントから抽出した音声特徴は、発話情報バッファーに格納されている時間位置に基づいて抽出されてもよい。
【0045】
話者逐次区別部は、話者確率判定部384によって計算された確率値(例えば、第1の確率値のサブセットと第2の確率値のセット)に基づいて、ユーザ対話の話者のそれぞれを識別する話者逐次区別結果を生成する機能部である。
【0046】
なお、オンライン話者逐次区別システム360に含まれるそれぞれの機能部は、
図1に示す話者逐次区別アプリケーション350を構成するソフトウエアモジュールであってもよく、独立した専用ハードウェアデバイスであってもよい。また、上記の機能部は、同一のコンピューティング環境に実施されてもよく、分散されたコンピューティング環境に実施されてもよい。例えば、話者確率判定部384を遠隔のサーバやクライアント端末375に実装し、それ以外の機能部を話者逐次区別装置380に実装する構成であってもよい。
【0047】
また、本発明の実施形態は、
図2を参照して説明したオンライン話者逐次区別システム360の構成に限定されない。例えば、音声データ取得装置365がクライアント端末375を介さずに音声データセグメントを話者逐次区別装置380に直接に送信する構成や、音声データ取得装置365及びクライアント端末375が一体型となる構成等、適宜に変更された構成も可能である。
【0048】
次に、
図3を参照して、本発明の実施形態に係るオンライン話者逐次区別方法の概要について説明する。
【0049】
図3は、本発明の実施形態に係るオンライン話者逐次区別方法の概要を示す図である。
図3に示すように、複数の話者391、392が対話しており、この対話は、それぞれの話者391、392の発話391a、392bを含む。一般的には、本発明の実施形態に係る対話とは、一人又は複数の話者から発される少なくとも1つの発話を含むものであり、例えば、電話での通話、会議室での話し合い、放送されている音声等を含んでもよいが、
図3では、二人の話者391、392を含む対話を一例として説明する。
上述したように、本発明の実施形態に係るオンライン話者逐次区別方法は、重なった音声データセグメント(つまり、各話者391、392が同時に話し、声が重なる音声を含むデータ)についても良好な話者逐次区別を生成することができるため、この対話には、各話者391、392の発話391a、392bが重複することがあってもよい。
【0050】
対話を構成する話者の発話391a、392bが(例えば
図2に示す音声データ取得装置365により)録音され、一定時間(10ミリ秒、1秒等)の音声データセグメントのシリーズとして、リアルタイムで話者逐次区別装置380に送信される。この話者逐次区別装置380は、
図2を参照して説明したデータ入力部382、話者確率判定部384、発話情報バッファー管理部386、音声データ結合部388、及び話者逐次区別部390によって入力される音声データセグメントを処理することで、低遅延(Low Latency)で対話の話者のそれぞれを識別する話者逐次区別結果を生成することができる。
【0051】
次に、
図4を参照して、本発明の実施形態に係るオンライン話者逐次区別方法の流れについて説明する。
【0052】
図4は、本発明の実施形態に係るオンライン話者逐次区別方法400の流れを示すフローチャートである。
図4に示すオンライン話者逐次区別方法400では、音声データセグメントかる抽出した重要な情報(誰がいつ話したかを判定するのに有用な情報)を格納する発話情報バッファーを用いることにより、複数の異なるユーザの発話が重なった音声データセグメントが対話において発生する場合であっても、正確な音声逐次区別結果をリアルタイムで生成することができる方法であり、例えば
図2を参照して説明した話者逐次区別装置380によって実行される方法であってもよい。
【0053】
まず、ステップS410では、ユーザ対話に対応する第1の音声データセグメントと、当該ユーザ対話の話者数を示す話者数データが受け付けられる。ここでの音声データセグメントとは、所定の時間で記録(録音)されているユーザ対話の一部を意味する。例えば、この第1の音声データセグメントは、リアルタイムで行われている対話を一秒(又は10ミリ秒、2秒、10秒、1分等)録音した音声データであってもよい。また、ここでの話者数データとは、当該ユーザ対話に参加している話者の人数(以下、「話者数」)を示す情報である。
【0054】
第1の音声データセグメントは、例えば、
図2を参照して説明した音声データ取得装置365によって録音され、直接又はクライアント端末375を介して話者逐次区別装置380に送信され、データ入力部382に入力されてもよい。また、話者数データは、例えば第1の音声データセグメントが録音された際に、第1の音声データセグメントにメタデータとして付されてもよく、クライアント端末375によって行われる前処理によって作成され、話者逐次区別装置380に送信されてもよい。
【0055】
次に、ステップS420では、ステップS410で入力された第1の音声データセグメントと話者数データとに基づいて、当該第1の音声データセグメントにおける第1の時間位置のセットについて、特定の話者が特定の時間位置において発話中である確率を示す第1の確率値のセットが計算される。
ここでの時間位置のセットとは、音声データセグメントを任意の時間単位(1ミリ秒、10ミリ秒1秒等)のサブセグメントに分割した場合、特定の時間(時刻)のサブセグメントを指定するラベルである。例えば、1秒の音声データセグメントを100ミリ秒のサブセグメントに分割した場合、10個の100ミリ秒間のサブセグメントが得られ、それぞれのサブセグメントは異なる時間位置(1、2、3…10)に対応する。
【0056】
次に、第1の音声データセグメントを構成するそれぞれの時間位置に対応するサブセグメントについて、特定の話者が発話中(すなわち、話しているか否か)である確率を示す第1の確率値のセットが計算される。この確率の計算は、例えば、入力された第1の音声データセグメントと話者数データとに基づいて、上述したEENDネットワークによって行われてもよい。ここで用いられるEENDネットワークは、訓練済みであってもよい。
第1の確率値のセットは、第1の音声データセグメントを構成するそれぞれの時間位置に対応するサブセグメント毎に、上述した話者数データに指定されている話者数の数だけの任意の話者について、当該話者が喋っている確率を表す。この確率は、例えば0~1の値で表されてもよい。
図5は、本発明の実施形態に係る第1の音声データセグメント500を示す図である。
図5に示されるように、第1の音声データセグメント500は、10個のサブセグメントに分割され、それぞれのサブセグメントは、第1の時間位置のセット510を構成する異なる時間位置に指定されている。第1の時間位置のセット510のそれぞれの時間位置毎に、二人の話者(c1、c2)520が話した確率を示す第1の確率値のセット530が計算されている。また、
図5に示すように、第1の時間位置のセット510に含まれる10個の時間位置のそれぞれについて、各話者(c1、c2)520が話した確率が0~1の値で記録されている。
【0057】
次に、ステップS430では、第1の時間位置のセットの少なくとも一部である第1の時間位置のサブセットと、第1の確率値のセットの少なくとも一部であり、第1の時間位置のサブセットに対応する第1の確率値のサブセットとが所定の選択手法に基づいて選択され、発話情報バッファーに格納される。ここでの発話情報バッファーとは、以前(過去)の音声データセグメントに含まれる、話者逐次区別処理に有用な情報を一時的に記憶する記憶領域である。より具体的には、発話情報バッファーに格納されている情報は、音声データセグメント(例えば、第1の音声データセグメント)に関する時間位置の情報と、当該時間位置について計算した確率の情報である。
ただし、発話情報バッファーのサイズが限られているため、当該バッファーに記憶する情報量を抑えるためには、音声データセグメントに関する全ての時間位置及び確率の情報ではなく、所定の選択手法によって選択された一部の情報(すなわち、第1の時間位置のセットの少なくとも一部である第1の時間位置のサブセットと、第1の確率値のセットの少なくとも一部であり、第1の時間位置のサブセットに対応する第1の確率値のサブセット)のみを格納することが望ましい。これにより、発話情報バッファーのサイズを抑えつつ、良好な話者逐次区別結果を生成することができる。
【0058】
ここでの所定の選択手法とは、音声データセグメントについての時間位置及び確率の情報の中から、発話情報バッファーに格納する情報の一部(例えば、上述したEENDネットワークによる話者逐次区別処理に有用な情報)を選択するための手法である。ここでの選択手法は特に限定されないが、以下では、選択手法の例のいくつかについて説明する。
【0059】
発話情報バッファーに格納する情報を選択するための選択手法の1つでは、第1の確率値のセットの中から、所定の確率基準を満たす確率値(第1の確率値のサブセット)と、当該所定の確率基準を満たす確率値に対応する時間位置(第1の確率値のサブセット)とが発話情報バッファーに格納される情報として選択される。この所定の基準は、例えば「0.8以上の確率値」や「最も高い3個の確率値」等であってもよい。
また、一つの実施形態では、第1の時間位置のセットのそれぞれについて、当該時間位置における話者間の確率の差の絶対値を計算し、絶対値が最も高い確率値を有するn個の時間位置と当該時間位置に対応する確率値を発話情報バッファーに格納する構成も可能である。
なお、この話者間の確率の差の絶対値aは、以下の数式1から求められる。
【数1】
ここでは、y_{t、c}は、任意の話者cが特定の時間位置tに話した確率を表し、y_{t、c1}は、異なる話者c2が同じ時間位置tに話した確率を表す。
【0060】
発話情報バッファーに格納する情報を選択するもう一つの選択手法では、第1の確率値のセットの中から、所定のAttention Weight基準を満たす確率値(第1の確率値のサブセット)と、当該Attention Weight基準を満たす確率値に対応する時間位置(第1の確率値のサブセット)とが発話情報バッファーに格納される情報として選択される。ここでのAttention Weightとは、ニューラルネットワークにおいて、特定の入力が最終的な出力に与える影響力を定量的に表すものである。
第1の確率値のセットのそれぞれについて、ニューラルネットワークにおいて与えらえるAttention Weightを計算し、所定のAttention Weight基準(上の10%、上の20%等)を満たす確率値及び当該確率値に対応する時間位置を発話情報バッファーに格納される情報として選択し、発話情報バッファーに格納することで、良好な話者逐次区別結果をより効率的に生成することができる。
なお、ここでのAttention Weightの計算方法は特に限定されず、ニューラルネットワークの構造に応じて適切な計算法は用いられてもよい。
【0061】
発話情報バッファーに格納する情報を選択するもう一つの選択手法では、第1の時間位置のセットの中から、ランダムな時間位置及び当該時間位置に対応する確率値が選択され、発話情報バッファーに格納されてもよい。例えば、第1の時間位置のセットの中から、どの時間位置(及び当該時間位置に対応する確率値)を発話情報バッファーに入れるかを任意の手法で生成した疑似乱数に基づいて決定してもよい。
【0062】
なお、本発明の実施形態に係る示す発話情報バッファーは、複数のバッファーに分割されてもよく、単一のバッファーであってもよい。例えば、本発明の実施形態の1つでは、発話情報バッファーは、話者の数nによって複数のバッファーに分割されてもよい。この場合には、バッファーの数は以下の数式2から求められる。
【数2】
また、この場合、発話情報バッファーは、格納される情報に応じて、異なる種類に分けられてもよい。例えば、発話情報バッファーは、それぞれの話者の情報を格納する話者バッファー、重複している音声データセグメントに関する情報を格納するための重複バッファー、又は話者が話していない時間位置に該当する沈黙バッファー等を含んでもよい。
【0063】
次に、ステップS440では、ユーザ対話に対応する第2の音声データセグメントが受け付けられる。ここでの第2の音声データセグメントは、上述した第1の音声データセグメントと同様に、
図2を参照して説明した音声データ取得装置365によって録音され、直接又はクライアント端末375を介して話者逐次区別装置380に送信され、データ入力部382に入力される、ユーザ対話における音声データである。また、第2の音声データセグメントは、例えば、ユーザ対話において、ステップS410で入力した第1の音声データセグメントに続く、後続のの音声データセグメントであってもよい。
【0064】
次に、ステップS450では、発話情報バッファーに格納されている第1の時間位置のサブセットに対応する音声特徴を第1の音声データセグメントから抽出し、第2の音声データセグメントに結合することで、結合音声データセグメントが生成される。この結合音声データセグメントは、発話情報バッファーに格納されている第1の時間位置のサブセット(つまり、話者逐次区別処理に有用な時間位置)に対応する音声情報と、ステップS440で入力された第2の音声データセグメントを1つの音声データファイルに組み合わせたものである。また、ここでの音声特徴は、例えば、メル周波数ケプストラム係数(Mel-frequency cepstral coefficient;MFCC)であってもよいが、特に限定されない。
【0065】
メル周波数ケプストラム係数は、周波数の非線形メルスケールでの対数パワースペクトルの線形コサイン変換に基づいた、音のパワースペクトルの表現である。
なお、ここでの音声特徴の抽出と、当該音声特徴と第2の音声データセグメントの結合は、任意の既存の手段によって行われてもよい。
【0066】
次に、ステップS460では、ステップS450で生成した結合音声データセグメントと、ステップS410で入力された話者数データとに基づいて、結合音声データセグメントにおける第2の時間位置のセットについて、特定の話者が特定の時間位置において発話中である確率を示す第2の確率値のセットが計算される。この確率の計算は、上述した第1の確率値のセットと同様に、上述したEENDネットワークによって行われてもよい。
図6は、本発明の実施形態に係る結合音声データセグメント600を示す図である。
図6に示されるように、結合音声データセグメント600は、15個のサブセグメントに分割され、それぞれのサブセグメントは、第2の時間位置のセット610を構成する異なる時間位置に指定されている。第2の時間位置のセット610のそれぞれの時間位置毎に、二人の話者(c3、c4)620が話した確率を示す第2の確率値のセット630が計算されている。また、
図6に示すように、第2の時間位置のセット610に含まれる15個の時間位置のそれぞれについて、各話者(c3、c4)620が話した確率が0~1の値で記録されている。
【0067】
ステップS460で生成される第2の確率値のセット630は、発話情報バッファーに格納されている第1の時間位置のサブセットに基づいて第1の音声データセグメントから抽出した音声特徴と第2の音声データセグメントとを結合した結合音声データセグメントに基づいて計算されるため、この第1の音声データセグメントの音声特徴に対応する確率値である第1の確率値のグループ622と、第2の音声データセグメントに対応する確率値である第2の確率値のグループ624とを含む。
なお、発話情報バッファーに格納されている第1の確率値のサブセットと、ステップS460で計算される第1の確率値のグループ622は両方とも、同一の音声に基づいて同一のEENDネットワークによって計算されるため、実質的に同様の(類似性が高い)値となることに留意されたい。
【0068】
次に、ステップS470では、第1の確率値のサブセット(つまり、上述したステップS430で発話情報バッファーに格納した確率値)とステップS460で計算した第2の確率値のセットとに基づいて、ユーザ対話の話者のそれぞれを識別する話者逐次区別結果が生成される。この話者逐次区別結果は、結合音声データセグメントにおける第2の時間位置のセットのそれぞれについて、どの話者が話したかを示すものである。また、上述したS450~S470の内容を、新たな音声データセグメントが受け付けられるたびに繰り返すことにより、ユーザ対話を構成する全ての音声データセグメントについても話者逐次区別結果を生成することができる。
なお、この話者逐次区別結果を生成する処理の詳細については後述する。
【0069】
以上説明した本発明の実施形態に係るオンライン話者逐次区別方法により、以前の音声データセグメントかる抽出した重要な情報(上述した、所定の選択手法によって選択された時間位置及び当該時間位置に対応する確率値)を格納する発話情報バッファーを用いることで、複数の異なるユーザの発話が重なった音声データセグメントが対話において発生する場合であっても、正確な音声逐次区別結果をリアルタイムで生成することができる。
【0070】
次に、
図7~8を参照して、本発明の実施形態に係るオンライン話者逐次区別方法の流れの一例について説明する。
【0071】
図7は、本発明の実施形態に係るオンライン話者逐次区別方法の流れの一例を示す図である。
上述したように、第1の音声データセグメント500が話者確率判定部に入力されると、当該第1の音声データセグメント500と上述した話者数データとに基づいて、当該第1の音声データセグメント500における第1の時間位置のセットについて、特定の話者520が特定の時間位置において発話中である確率を示す第1の確率値のセット530が計算される。
【0072】
第1の確率値のセット530が計算された後、上述した選択手法(絶対値の基準、Attention Weightの基準、ランダム選択等)により、第1の確率値のセット530及び第1の時間位置のセット510の中から、発話情報バッファー750に格納される第1の時間位置のサブセット752及び第1の確率値のサブセット754が選択され、発話情報バッファー750に格納される。
【0073】
次に、話者確率判定部によって計算された第1の確率値のセットに基づいて、第1の音声データセグメント500における第1の時間位置のセットのそれぞれについて、どの話者が話したかを示す第1の話者逐次区別結果770を生成する。
なお、この第1の話者逐次区別結果700は、第1の音声データセグメントに対応する第1の確率値のセットに基づいて計算されるため、ここでは発話情報バッファーに格納されている情報が用いられないが、発話情報バッファーに格納されている情報は、第1の音声データセグメントに続く第2の音声データセグメントに関する第2の話者逐次区別結果を生成する際に用いられる。
【0074】
図8は、
図7に続いて本発明の実施形態に係るオンライン話者逐次区別方法の流れの一例を示す図である。
【0075】
まず、上述したように、
図7に示す発話情報バッファー750に格納されている第1の時間位置のサブセット752に基づいて第1の音声データセグメント500から抽出した音声特徴と、第2の音声データセグメントとを結合した結合音声データセグメント600が生成される。この結合音声データセグメント600が話者確率判定部に入力されると、当該結合音声データセグメント600と上述した話者数データとに基づいて、当該結合音声データセグメント600における第2の時間位置のセット610について、特定の話者620が特定の時間位置において発話中である確率を示す第2の確率値のセット630が計算される。
【0076】
上述したように、ここで計算される第2の確率値のセット630は、発話情報バッファー750に格納されている第1の時間位置のサブセット750に基づいて第1の音声データセグメント500から抽出した音声特徴と第2の音声データセグメントとを結合した結合音声データセグメント600に基づいて計算されるため、この第1の音声データセグメント500の音声特徴に対応する確率値である第1の確率値のグループ622と、第2の音声データセグメントに対応する確率値である第2の確率値のグループ624とを含む。
ただし、ここでの第2の確率値のセット630は、上述した第1の確率値のセット530と独立して生成されるため、
図8に示す話者620と、
図7を参照して説明した話者520との対応性が不明である。つまり、結合音声データセグメント600の話者c3が、第1の音声データセグメント500のc1に該当するか、c2に該当するかが不明である。同様に、結合音声データセグメント600の話者c4が、第1の音声データセグメント500の話者c1に該当するか、c2に該当するかが不明である。
これは、ニューラルネットワークにおけるいわゆる「順列問題」(permutation problem)として知られている。
【0077】
従って、上述した第1の話者逐次区別結果770に一貫した話者逐次区別結果を生成するためには、結合音声データセグメント600の話者を、第1の音声データセグメント500の話者に対応付ける必要がある。そこで、結合音声データセグメント600の話者を、第1の音声データセグメント500の話者に対応付けて、上述した順列問題を解決するためには、本発明の実施形態に係る発話情報バッファーが用いられる。発話情報バッファーに格納されている以前の音声データセグメントについて計算された確率値と、以前の音声データセグメントの一部と新たな音声データセグメントとを結合した音声データセグメントにについて計算された確率値とを比較することで、話者を対応付けることが可能となる。
【0078】
より具体的には、第2の確率値のセット630が計算された後、結合音声データセグメント600のそれぞれの話者c3,c4について計算された第2の確率値のセットと、発話情報バッファー750に格納されている、第1の音声データセグメント500のそれぞれの話者c1,c2について計算された第1の確率値のサブセットの順列が生成される(c1×c3、c1×c4、c2×c3、c2×c4)。
その後、生成したそれぞれの順列について、発話情報バッファー750に格納されている第1の確率値のサブセットと、第1の確率値のグループ622との類似性を示す相関スコアが計算される。ここでの相関スコア計算は、例えば既存の相関係数や類似性計算の手法によって行われてもよく、特に限定されない。
【0079】
全ての順列についての相関スコアが計算された後、所定の相関スコア基準(例えば、最も高い相関スコア等)を満たす順列の話者は同一人物とみなされる。例えば、一例として、話者c3について計算された第1の確率値のグループ622(
図8参照)の確率値が発話情報バッファー750に格納されている、話者c1について計算された第1の確率値のサブセット(
図7参照)に一致し、話者c4について計算された第1の確率値のグループ622(
図8参照)の確率値が発話情報バッファー750に格納されている、話者c2について計算された第1の確率値のサブセット(
図7参照)に一致するため、話者c1と話者c3は同一人物とみなされ、話者c2と話者c4は同一人物とみなされる。
このように、結合音声データセグメント600の話者を、第1の音声データセグメント500の話者に対応付けることにより、上述した第1の話者逐次区別結果770に一貫し、結合音声データセグメント600における第2の時間位置のセットのそれぞれについて、どの話者が話したかを示す第2の話者逐次区別結果870を生成することができる。
【0080】
また、第2の確率値のセット630が計算された後、上述した選択手法(絶対値の基準、Attention Weightの基準、ランダム選択等)により、第2の確率値のセット630及び第2の時間位置のセット610の中から、発話情報バッファー850に格納される第2の時間位置のサブセット852及び第2の確率値のサブセット854が選択され、発話情報バッファー850に格納される。
なお、
図8を参照して、説明した処理を、新たな音声データセグメントが受け付けられるたびに繰り返すことにより、ユーザ対話を構成する全ての音声データセグメントについて話者逐次区別結果を生成することができる。
また、
図7に示す発話情報バッファー750と、
図8に示す発話情報バッファー850は、同一の記憶領域であってもよく、(つまり、共通のバッファー)異なる記憶領域(つまり、独立したバッファー)であってもよい。バッファーの構成は、例えば利用可能な計算資源に基づいて適宜に定められてもよい。
【0081】
次に、
図9を参照して、本発明の実施形態に係る発話情報バッファーを更新する方法について説明する。
【0082】
図9は、本発明の実施形態に係る発話情報バッファーを更新する方法の一例を示す図である。
上述したように、本発明の実施形態に係る発話情報バッファーは、話者逐次区別処理に有用な情報を一時的に記憶する記憶領域であり、サイズが限られている。そのため、新たな情報をバッファーに格納するためには、既にバッファーに格納されている情報を削除する必要があり、この処理はバッファー更新と呼ばれている。
【0083】
バッファーを更新する方法の一つとしては、いわゆる先入れ先出し(First In, First Out;FIFO)方法が用いられてもよい。より具体的には、例えば、発話情報バッファーに対して新たなデータを書き込む要求があった場合、当該発話情報バッファーに既に格納されているデータは、書き込んだ時刻が古い順で前記新たなデータに上書きされる。これにより、より古い音声データセグメントに関する情報が削除され、より新しい音声データセグメントに関する情報が格納される。
【0084】
バッファーを更新する方法の一つとしては、Attention Weightに基づいたバッファー更新の手法も可能である。上述したように、Attention Weightとは、ニューラルネットワークにおいて、特定の入力が最終的な出力に与える影響力を定量的に表すものである。ある音声データセグメントにおけるそれぞれの時間位置に指定されるサブセグメント(つまり、入力値)について、Attention Weightを計算することで、それぞれのサブセグメントがニューラルネットワークの出力に及ぼす影響力を定量的に示すAttention Weightを得ることができる。
例えば、
図9に示すように、入力値910及び出力値920からなるAttention Weight Matrix900を生成し、所定のAttention Weight計算を行うことにより、それぞれの出力値920に対して、それぞれの入力値の影響力を表すAttention Weight930が得られる。このAttention Weight930は、Attention Weight Matrix900の各要素の値に表されている。Attention Weightが高ければ高いほど、当該Attention Weightの入力値が、対応する出力値に対してより高い影響力を有することを意味する。
【0085】
それぞれの入力値についてAttention Weightを計算した後、発話情報バッファーに既に格納されているデータについて、所定のAttention Weight基準(例えば、0.7等)を満たさないものが削除され、所定のAttention Weight基準を満たす新たなデータが格納されるようにしてもよい。
このように、より高いAttention Weightを有する情報を優先的に発話情報バッファーに格納することにより、より良好な話者逐次区別結果を得ることができる。
【0086】
以上、本発明の実施の形態について説明したが、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0087】
360 オンライン話者逐次区別システム
365 音声データ取得装置
370 通信ネットワーク
372 データ記憶部
375 クライアント端末
380 話者逐次区別装置
382 データ入力部
384 話者確率判定部
386 発話情報バッファー管理部
388 音声データ結合部
390 話者逐次区別部