(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023032356
(43)【公開日】2023-03-09
(54)【発明の名称】話者分離装置、話者分離方法及び話者分離プログラム
(51)【国際特許分類】
G10L 21/028 20130101AFI20230302BHJP
G10L 21/0308 20130101ALI20230302BHJP
【FI】
G10L21/028 B
G10L21/0308 Z
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021138433
(22)【出願日】2021-08-26
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り https://arxiv.org/ https://arxiv.org/abs/2107.14446 ウェブサイト掲載日 2021年7月30日
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】509011329
【氏名又は名称】ウニヴェルジテート・パーダーボルン
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】木下 慶介
(72)【発明者】
【氏名】デルクロア マーク
(72)【発明者】
【氏名】ティロ フォンノイマン
(72)【発明者】
【氏名】クリストフ ベデッカー
(72)【発明者】
【氏名】ラインホールド ヘブウンバッハ
(57)【要約】
【課題】会話における複数の話者を高速かつ適切に分離すること。
【解決手段】話者分離装置は、取得部、分離部および生成部を含む。取得部は、会話の音声と、会話における複数の話者にそれぞれ対応する複数の単一話者音声であって、それぞれの単一話者音声が対応する話者の発話を含む複数の単一話者音声とを取得する。分離部は、複数の単一話者音声に含まれる複数の発話から、複数の単一話者音声の間で時間的に重なる複数の発話を、重畳する複数の発話として特定し、特定された重畳する複数の発話を、音声分離モデルの複数の異なる出力チャネルに分離する。生成部は、会話の音声と、複数の異なる出力チャネルにそれぞれ対応する複数の分離音声であって、それぞれの分離音声が対応する出力チャネルに分離された発話を含む複数の分離音声とに基づいて、与えられた音声に含まれる重畳する複数の発話を複数の異なる音声に分離する音声分離モデルを生成する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
会話の音声と、前記会話における複数の話者にそれぞれ対応する複数の単一話者音声であって、それぞれの単一話者音声が対応する話者の発話を含む複数の単一話者音声とを取得する取得部と、
前記複数の単一話者音声に含まれる複数の発話から、前記複数の単一話者音声の間で時間的に重なる複数の発話を、重畳する複数の発話として特定し、特定された重畳する複数の発話を、音声分離モデルの複数の異なる出力チャネルに分離する分離部と、
前記会話の音声と、前記複数の異なる出力チャネルにそれぞれ対応する複数の分離音声であって、それぞれの分離音声が対応する出力チャネルに分離された発話を含む複数の分離音声とに基づいて、与えられた音声に含まれる重畳する複数の発話を複数の異なる音声に分離する音声分離モデルを生成する生成部と
を備える話者分離装置。
【請求項2】
前記分離部は、前記重畳する複数の発話として、前記複数の単一話者音声の特定の時間区分に出現し、かつ時間的に重なる複数の発話を特定する
請求項1に記載の話者分離装置。
【請求項3】
前記分離部は、前記重畳する複数の発話の数が前記複数の異なる出力チャネルの数を超えないように、前記重畳する複数の発話を特定する
請求項1又は2に記載の話者分離装置。
【請求項4】
前記分離部は、前記重畳する複数の発話にそれぞれ対応する複数の頂点と、前記重畳する複数の発話を接続する辺とを含む会話グラフを生成し、生成された会話グラフの頂点彩色問題の解を使用して、前記重畳する複数の発話を前記複数の異なる出力チャネルに分離する
請求項1~3のうちいずれか1つに記載の話者分離装置。
【請求項5】
前記分離部は、前記会話グラフの頂点彩色問題の複数の解を特定し、前記会話グラフの頂点彩色問題の解ごとに、前記重畳する複数の発話を前記複数の異なる出力チャネルに分離し、
前記生成部は、前記会話の音声と、前記会話グラフの頂点彩色問題の解ごとの前記複数の分離音声とを使用して、前記会話グラフの頂点彩色問題の解ごとに、前記音声分離モデルの性能を評価し、最も高い性能を有する前記音声分離モデルの性能が向上するように、前記音声分離モデルを訓練することによって、前記音声分離モデルを生成する
請求項4に記載の話者分離装置。
【請求項6】
コンピュータが実行する話者分離方法であって、
会話の音声と、前記会話における複数の話者にそれぞれ対応する複数の単一話者音声であって、それぞれの単一話者音声が対応する話者の発話を含む複数の単一話者音声とを取得する取得工程と、
前記複数の単一話者音声に含まれる複数の発話から、前記複数の単一話者音声の間で時間的に重なる複数の発話を、重畳する複数の発話として特定し、特定された重畳する複数の発話を、音声分離モデルの複数の異なる出力チャネルに分離する分離工程と、
前記会話の音声と、前記複数の異なる出力チャネルにそれぞれ対応する複数の分離音声であって、それぞれの分離音声が対応する出力チャネルに分離された発話を含む複数の分離音声とに基づいて、与えられた音声に含まれる重畳する複数の発話を複数の異なる音声に分離する音声分離モデルを生成する生成工程と
を含む話者分離方法。
【請求項7】
コンピュータを、請求項1~5のうちいずれか1つに記載の話者分離装置として機能させるための話者分離プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、話者分離装置、話者分離方法及び話者分離プログラムに関する。
【背景技術】
【0002】
ニューラルネットワークを使った音声認識には、会話の入力音を、話者ごとの音声に分離する様々な方法がある。音声分離の方法の例としては、複数の話者の発話が混ざった入力音声と、複数の話者の発話が混ざる前の発話である正解音声とを含む音声データを用意する方法が挙げられる。
【0003】
コンピュータ等の機械は、用意された音声データを使用して、話者分離のためのニューラルネットワークを学習することができる。このような機械学習は、ニューラルネットワークの複数のチャネルの出力を、正解音声に照らし合わせることによって行われる。照合の結果に基づいて、ニューラルネットワークのパラメータが更新される。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Dong Yu、他3名、“PERMUTATION INVARIANT TRAINING OF DEEP MODELS FOR SPEAKER-INDEPENDENT MULTI-TALKER SPEECH SEPARATION”、arXiv, 1607.00325v2, 2017.
【非特許文献2】Takuya Yoshioka、他4名、“Recognizing Overlapped Speech in Meetings: A Multichannel Separation Approach Using Neural Networks”、arXiv, 1810.03655v1, 2018.
【発明の概要】
【発明が解決しようとする課題】
【0005】
話者分離のためのニューラルネットワークは、発話の話者が誰であれ、音声を発話に分離しさえすればよい。このため、上記の先行技術は、ニューラルネットワークの学習を適切に行うために、どの正解音声がニューラルネットワークの各チャネルに照らし合わされるのか、を決定する。照合のパターンは、この照合が学習の基準のために最適化されるように、決定される。このことは、ニューラルネットワークの出力チャネルの順番に依存しないニューラルネットワークの学習を可能にする。このようなニューラルネットワークの訓練は、PIT(Permutation Invariant Training)と呼ばれる。
【0006】
しかしながら、上記の先行技術では、会話における複数の話者を高速かつ適切に分離することが難しい場合がある。
【0007】
例えば、上記の先行技術は、ニューラルネットワークのに入力される入力音声の区間に含まれ話者の最大の人数は、ニューラルネットワークの出力チャネルの数であることを仮定している。上記の先行技術は、出力チャネルに含まれる話者に関してこのような厳しい仮定をしている。
【0008】
もし、出力チャネルに含まれる話者の数が出力チャネルの数を超える場合には、上記の先行技術は、話者を適切に分離することができない。このため、上記の先行技術は、話者の数がニューラルネットワークの出力チャネルの数を超えないように、入力音を、短い区間に区切る。そして、話者分離は、それぞれの区間で行われる。
【0009】
しかしながら、このような話者分離が行われた場合には、stitching処理等の追加の処理が、入力音の複数の区間における分離音の繋がりの整合性を確保するために、必要とされる場合がある。この追加の処理は、演算量の増加や処理遅延につながる。
【0010】
そこで、本開示は、会話における複数の話者を高速かつ適切に分離することができる話者分離装置、話者分離方法及び話者分離プログラムを提案する。
【課題を解決するための手段】
【0011】
本開示の一態様では、話者分離装置は、会話の音声と、前記会話における複数の話者にそれぞれ対応する複数の単一話者音声であって、それぞれの単一話者音声が対応する話者の発話を含む複数の単一話者音声とを取得する取得部と、前記複数の単一話者音声に含まれる複数の発話から、前記複数の単一話者音声の間で時間的に重なる複数の発話を、複数の発話として特定し、特定された重畳する複数の発話を、音声分離モデルの複数の異なる出力チャネルに分離する分離部と、前記会話の音声と、前記複数の異なる出力チャネルにそれぞれ対応する複数の分離音声であって、それぞれの分離音声が対応する出力チャネルに分離された発話を含む複数の分離音声とに基づいて、与えられた音声に含まれる重畳する複数の発話を複数の異なる音声に分離する音声分離モデルを生成する生成部とを備える。
【発明の効果】
【0012】
本開示の1つまたは複数の実施形態に係る話者分離装置は、会話における複数の話者を高速かつ適切に分離することができる。
【図面の簡単な説明】
【0013】
【
図2】
図2は、オーバーラップした発話を認識するための音源分離器の例を示す。
【
図3】
図3は、PITベースの音源分離器の例を示す。
【
図4】
図4は、長時間会話音声を分離するためのスティッチング処理の例を示す。
【
図5】
図5は、話者分離のための環境の例のブロック図である。
【
図6】
図6は、本開示に係る話者分離装置の構成の例のブロック図である。
【
図8】
図8は、本開示に係る音源分離器の学習の例を示す。
【
図10】
図10は、音源分離器そ生成するための処理の例を示すフローチャートである。
【
図11】
図11は、コンピュータのハードウェア構成の例を示す。
【発明を実施するための形態】
【0014】
複数の実施形態を、図面を参照して、以下で詳細に説明する。なお、本発明は、これらの複数の実施形態によって限定されるものではない。様々な実施形態の複数の特徴は、これらの複数の特徴が互いに矛盾しないという条件で、様々なやり方で組み合わされ得る。。同一の要素は、同一の符号で示され、重複する説明は、省略される。
【0015】
〔1.はじめに〕
会話音声認識は、自然な会話の音声を認識するものである。自然な会話は、複数の発話者を含む。自然な会話は、例えば、遠隔マイクによって収録される。
【0016】
図1は、会話音声認識の例である会話音声認識10を示す。会話音声認識10では、第1の話者が「Hi, there!」と発言し、第2の話者が「Hi, how are you?」と発言し、第3の話者が「Long time no see!」と発言する。遠隔マイクが、これらの発話を収録する。そして、会話音声認識が、収録された発話を含む音声に対して行われる。会話音声認識の結果は、各発話の内容や、各発話のタイミングを示す。
【0017】
しかしながら、これらの発話同士が重畳する(オーバーラップする)ことがある。発話の重畳(オーバーラップ)は、音声認識の性能を低下させる複数の要因のうちの1つである。このため、音源分離器が、重畳する発話(オーバーラップした発話)を適切に認識するために使用される。
【0018】
図2は、オーバーラップした発話を認識するための音源分離器の例である音源分離器20を示す。音源分離器20は、2人の話者の声が混ざっている収録音声を、各話者の声に分離する。音源分離器20は、ニューラルネットワークによって実装される。このニューラルネットワークの構造は、ニューラルネットワークの出力チャネルと話者との間の対応を、明確に設けている。音源分離器20の学習は、話者が出力チャネル内で他の話者と入れ替わらないように、行われる。例えば、出力チャネル(すなわち、出力ノード)の数が2Nである場合には、最初のN個の出力チャネルは、第1の話者の出力に対応し、残りのN個の出力チャネルは、第2の話者の出力に対応する。
【0019】
図2の例では、ニューラルネットワークは、第1および第2の話者にそれぞれ対応する第1および第2の出力チャネルを有する。第1の出力チャネルは、第1の話者に対応する分離音声の推定値を出力し、第2の出力チャネルは、第2の話者に対応する分離音声の推定値を出力する。そして、分離音声の推定値と分離音声の正解値との間の距離が、算出される。ニューラルネットワークの学習は、この距離を最小化するように行われる。その結果、ニューラルネットワークは、音源分離器20として実装される。
【0020】
しかしながら、
図2に示されるように、どの出力チャネルがどの話者の声を出力するのか、が事前に固定され、それからニューラルネットワークの学習が行われた場合には、このような学習は、一般的にはうまくいかない。なぜなら、ニューラルネットワークが正しく音声を分離したとしても、分離音声は、出力チャネルによっては間違った結果(すなわち、推定値と正解値との間の距離が大きい)として処理される場合があるからである。
【0021】
例えば、ある混合音については、特定の話者の出力は、第1の出力チャネルから強制的に出力される。一方、別の混合音については、この特定の話者の出力が、第2の出力チャネルから強制的に出力される。この場合、学習データにこのような出力の挙動を合理的に説明する偏りが存在しない限り、ニューラルネットワークは、このような出力の挙動を学習することができない。しかしながら、学習データは、一般的に、このような偏りを持たない。
【0022】
上で述べた問題を解決するために、PITベースの音源分離が提案されている。PIT(Permutation Invariant Training)は、
図3を参照して説明される。
【0023】
図3は、PITベースの音源分離器の例である音源分離器30を示す。音源分離器30は、PITベースの音源分離を行う。PITは、ラベルが曖昧さを持つニューラルネットワークを学習する方法である。例えば、
図3の例では、分離音声の正解値が、インスタンスである。インスタンスに関連付けられたラベルは、第1または第2の出力チャネルという曖昧さを持つ。各混合音に関して、PITでは、話者の声は、音源分離が達成されている限り、複数の出力チャネルのうちのどの出力チャネルに出力されてもよい。PITは、このような出力を許容する損失関数を使用する。
【0024】
図3の例では、音源分離器30は、ニューラルネットワークによって実装される。ニューラルネットワークは、第1および第2の出力チャネルを有し、各出力チャネルは、分離音声の推定値を出力する。
図3に示されるように、分離音声の正解値は、チャネルの入れ替えの下で不変である。このため、PITでは、ラベルの曖昧さは、対称な正解値を用意することによって取り除かれている。損失関数による損失値は、分離音声の正解値ごとに計算される。そして、値の小さい損失値が、ニューラルネットワークの学習に用いられる。
【0025】
しかしながら、上述のPITベースの音源分離では、メモリにとって、長時間会話音声に対応する長いデータをバッチで処理することが難しい場合がある。このため、スティッチング(Stitching)処理が、長時間会話音声を分離するために使用されている。スティッチング処理は、長いデータを細かい区間に区切り、各区間の音源分離結果をつなぎ合わせる処理である。
【0026】
図4は、長時間会話音声を分離するためのスティッチング処理の例であるスティッチング処理40を示す。スティッチングベースの処理は、長時間会話音声を分離することができる。スティッチングは、ある区間のどの分離結果が、他の区間のどの分離結果とつながれるべきか、を重複区間の相関などを使って推定することができる。各区間の話者の数がK人(出力チャネルの数)以下であれば、スティッチング処理40は、会話全体に出現する話者の数が何人であれ、長時間会話音声を分離することができる。
【0027】
図3を参照して上述したPITベースの音源分離は、上述のスティッチングに関連して以下の課題を抱えている。PITベースの音源分離の課題は、PITベースの音源分離が、区分区間に出現する話者の数に硬い制約を課していることである。具体的には、硬い制約は、区分区間内に出現してもよい話者の数はニューラルネットの出力チャネルの数以下である、というものである。言い換えると、1つの出力チャネルは、1人の話者の分離音声しか出力することができない。実際のデータにおいてこのような制約を満たすためには、PITベースの音源分離は、区分区間長を数秒に限ることを必要とされる。
【0028】
しかしながら、区分区間長を数秒に限るスティッチングは、音源分離性能を低下させる要因を潜在的にはらむ。例えば、区分区間ごとのモデル化では、スティッチング処理を用いても、長時間のコンテクスト情報を使うことができない。また、音源分離に有用な情報が現在フレームの隣接フレームにある場合でも、現在フレームを処理するニューラルネットワークやスティッチング処理が、この有用な情報を使うことができない。さらに、スティッチング処理を用いた長時間データの処理においては、余分な計算が、スティッチング処理によって生じる。余分な計算は、区分区間長分の処理遅延を生じさせる。
【0029】
上記の課題を解決するために、本開示の1つまたは複数の実施形態に係る話者分離装置は、以下に説明される1つまたは複数の話者分離処理を行う。
【0030】
〔2.話者分離のための環境〕
まず、
図5を参照して、本開示に係る話者分離のための環境について説明する。
【0031】
図5は、話者分離のための環境の例である環境1のブロック図である。
図5に示されるように、環境1は、話者分離装置100と、ネットワーク200と、ユーザ装置300とを含む。
【0032】
話者分離装置100は、1つまたは複数の話者分離処理を行う装置である。1つまたは複数の話者分離処理は、会話における複数の話者を分離する処理を含む。例えば、話者分離処理は、会話の音声を、複数の話者の発話が混じっていない複数の音声に分離することを含む。本開示に係る話者分離処理の例は、4節で説明される。
【0033】
話者分離装置100は、サーバ等のデータ処理装置である。である。話者分離装置100の構成の例は、3節で説明される。
【0034】
ネットワーク200は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット等のネットワークである。ネットワーク200は、話者分離装置100およびユーザ装置300を接続する。
【0035】
ユーザ装置300は、ユーザによって使用される装置である。ユーザ装置300は、例えば、クライアント装置である。
【0036】
ユーザ装置300は、各種音声データを、話者分離装置100に送信する。そして、ユーザ装置300は、分離音声のデータを、話者分離装置100から受信する。例えば、ユーザは、ミーティングの音声を送信する。この場合、話者分離装置100は、ミーティング中の重畳する(オーバーラップした)発話が分離された複数の分離音声を、ユーザに提供する。
【0037】
〔3.話者分離装置の構成〕
次に、
図6を参照して、話者分離装置100の構成の例について説明する。
【0038】
図6は、本開示に係る話者分離装置の構成の例である話者分離装置100のブロック図である。
図6に示されるように、話者分離装置100は、通信部110、制御部120および記憶部130とを含む。話者分離装置100は、話者分離装置100の管理者から入力を受け付ける入力部(例えば、キーボード、マウス)を含んでもよい。また、話者分離装置100は、話者分離装置100の管理者に情報を表示する出力部(例えば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ)を含んでもよい。
【0039】
〔3-1.通信部110〕
通信部110は、例えば、NIC(Network Interface Card)によって実装される。通信部110は、有線または無線によりネットワーク200と接続される。通信部110は、ネットワーク200を介して、ユーザ装置300との間で、情報の送受信を行うことができる。
【0040】
〔3-2.制御部120〕
制御部120は、コントローラ(controller)である。制御部120は、RAM(Random Access Memory)を作業領域として使用し、話者分離装置100の記憶装置に記憶された各種プログラムを実行する1つまたは複数のプロセッサ(例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit))によって実装される。また、制御部120は、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、GPGPU(General Purpose Graphic Processing Unit)等の、集積回路により実装されてもよい。
【0041】
図6に示されるように、制御部120は、受信部121、取得部122、分離部123、生成部124および提供部125を含む。話者分離装置100の1つまたは複数のプロセッサは、話者分離装置100の1つまたは複数のメモリに記憶された命令を実行することによって、各制御部を実装することができる。各制御部によって行われるデータ処理は例であり、各制御部(例えば、分離部123)は、他の制御部(例えば、分離部123)に関連して説明されるデータ処理を行ってもよい。
【0042】
〔3-2-1.受信部121〕
受信部121は、ユーザ装置300から、各種音声を受信する。各種音声は、会話の音声や、会話における複数の話者にそれぞれ対応する複数の単一話者音声を含む。各単一話者音声は、対応する話者の発話を含む。受信部121は、各種音声を、記憶部130に格納する。
【0043】
〔3-2-2.取得部122〕
取得部122は、記憶部130から各種音声を取得する。取得部122は、会話の音声を取得する。また、取得部122は、会話における複数の話者にそれぞれ対応する複数の単一話者音声を取得する。
【0044】
〔3-2-3.分離部123〕
分離部123は、重畳する複数の発話を分離する。例えば、分離部123は、取得部122によって取得された複数の単一話者音声に含まれる複数の発話から、重畳する複数の発話を特定する。重畳する複数の発話は、複数の単一話者音声の間で時間的に重なる複数の発話である。例えば、複数の単一話者音声は、複数の異なる話者が同時に発話を行う時間帯を有する。そして、分離部123は、特定された重畳する複数の発話を、音声分離モデルの複数の異なる出力チャネルに分離する。重畳する複数の発話を異なる出力チャネルに分離するために、分離部123は、会話グラフの頂点彩色問題の解を使用することができる。音声分離モデルは、例えば、ニューラルネットワークによって実装される。
【0045】
上記の重畳する複数の発話は、例えば、複数の単一話者音声の特定の時間区分に出現し、かつ時間的に重なる複数の発話である。重畳する複数の発話は、
図8を参照して以下でより詳細に説明される。
【0046】
〔3-2-4.生成部124〕
生成部124は、分離部123によって分離された発話を含む分離音声に基づいて、与えられた音声に含まれる重畳する複数の発話を複数の異なる音声に分離する音声分離モデルを生成する。生成部124は、会話の音声を、訓練データの入力として使用する。生成部124は、複数の異なる出力チャネルにそれぞれ対応する複数の分離音声を、訓練データの出力として使用する。生成部124は、訓練データを使用して、機械学習アルゴリズムを訓練することができる。その結果、生成部124は、ニューラルネットワーク等によって実装される音声分離モデルを生成することができる。生成部124は、音声分離モデルを記憶部130に格納することができる。
【0047】
〔3-2-5.提供部125〕
提供部125は、生成部124によって生成された音声分離モデルを使用して、ユーザ装置300から受信された各種音声データから、複数の分離音声を生成する。提供部125は、記憶部130から音声分離モデルを取得することができる。提供部125は、複数の分離音声を、ユーザ装置300に提供する。例えば、提供部125は、ミーティング中の重畳する発話が分離された複数の分離音声を、ユーザ装置300に提供する。
【0048】
〔3-3.記憶部130〕
記憶部130は、例えば、RAM、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実装される。記憶部130は、各種音声や音声分離モデルを記憶する。
【0049】
〔4.話者分離処理の例〕
次に、
図7および
図8を参照して、本開示に係る話者分離処理の概要について説明する。
【0050】
図7は、本開示に係る音源分離の例である音源分離50を示す。本明細書では、音源分離50は、Graph-PITベースの音源分離と呼ばれる。長時間会話音声の中に出現する話者の数がニューラルネットワークの出力チャネルの数以上である場合にも、音源分離50は、スティッチング処理を用いずに、音源分離を行うことができる。また、Stitching処理が用いられ、K人以上の話者が各区分区間内に出現する場合でも、音源分離50は、音源分離を行うことができる。このため、音源分離50は、音源分離器の設計者が区分区間長を任意の長さに設定することを可能にする。
【0051】
図7に示されるように、Graph-PITベースの音源分離器は、ニューラルネットワークによって実装される。Graph-PITベースの音源分離器ニューラルネットワークは、音源分離が達成できている限り、ある話者が出力チャネル内で他の話者と入れ替わる分離音声を許容する。
図7の例では、第1の出力チャネルに対応する分離音声は、話者Aの発話および話者Cの発話を含む。第2の出力チャネルに対応する分離音声は、話者Aの発話および話者Bの発話を含む。
【0052】
話者分離装置100は、ニューラルネットワーク音源分離の最適化問題を、グラフ彩色問題として捉える。後述するように、話者分離装置100は、PIT損失関数を拡張する
。PIT損失関数の拡張の例は、
図8を参照して以下で説明される。
【0053】
図8は、本開示に係る音源分離器の学習の例である学習60を示す。Graph-PITは、有効な音声分離の結果を与えるニューラルネットワークを学習するための方法である。Graph-PITの制約は、瞬時的に重畳する話者の最大数はニューラルネットの出力チャネルの数以下である、というものである。この制約は、
図3を参照して上述したPITベースの音源分離の制約よりも緩和されている。話者分離装置100の分離部123は、重畳する複数の発話の数が複数の出力チャネルの数を超えないという条件の元で、重畳する複数の発話を特定する。
【0054】
図8に示されるように、はじめに、話者分離装置100の分離部123は、オーバーラップした発話同士を接続し、会話グラフを構築する(ステップS1)。各発話は、会話グラフの頂点(vertex)に設定される。オーバーラップした複数の発話は、辺(edge)によって接続される。
【0055】
次いで、分離部123は、会話グラフの頂点彩色問題の解を、分離音声の正解値として列挙する(ステップS2)。音源分離を実現した有効な解は、グラフの頂点彩色問題の解の数だけ存在する。各頂点の色は、出力チャネルの番号に対応する。分離部123は、全ての解を列挙する。
【0056】
次いで、話者分離装置100の生成部124は、全ての解のパターンについて損失関数を計算し、計算された損失関数における最小の損失値を小さくするように、Graph-PITベースの音源分離ニューラルネットワークを学習する(ステップS3)。生成部124は、このようにして、最も高い性能を有する音声分離器の性能が向上するように、音源分離器を学習することができる。
【0057】
〔5.話者分離処理の技術的詳細〕
この節では、本開示に係る話者分離処理の技術的詳細を説明する。
【0058】
話者分離装置100は、連続的な音声分離を行う。話者分離装置100は、ミーティングの入力音声信号yを1つまたは複数の重複していない(overlap-free)信号(下記の数式1)に分離する。話者分離装置100は、下記の数式2によって表されるように、ミーティングの入力音声信号yを、K人の異なる話者によって生成されたU個の発話信号の和としてモデル化する。複数の異なる話者の発話の重畳(オーバーラップ)は、下記の数式2で与えられる。
【0059】
【0060】
【0061】
ここで、信号suは、該当発話の発話開始時刻をミーティングにおける同発話の発話開始時刻までシフトさせ、全信号長が全ミーティングの長さと同じなるようゼロパディングされた(shifted and zero-padded)、u番目の発話である。Kは、区分(セグメント)内の話者の数を表す。
【0062】
話者分離装置100は、
図3を参照して上述したPITの制約を緩和するために、上述のPITを、上述のGraph-PITに置き換えるものである。なお、上述のPITは、uPIT(utterance-level PIT)とも呼ばれる。上述のように、Graph-PITは、同時に発話する話者の数が出力チャネル数以下であることをのみを要求する。
【0063】
図3を参照して上述したPITは、各話者を各出力チャネルに割り当てる。すなわち、話者の数Nは、出力チャネルの数Kに等しい。上述のPITは、上述のラベルの曖昧に関連する、対象(ターゲット)と推定音声ストリームとの間のパーミュテーション問題(permutation problem)を、以下の方法で解決する。上述したPITでは、パーミュテーション問題は、下記の数式3によって表され、下記の数式4の損失関数(loss function)を最小化する話者と出力チャネルとの間の全単射のマッピングを見つけることによって解決される。
【0064】
【0065】
【0066】
【0067】
【0068】
ここで、損失関数(上記の数式4)は、信号レベルの損失関数である。上記の数式5は、長さNの全てのパーミュテーションのセットである。上記の数式6は、K番目の話者の全ての発話の和である。
【0069】
話者分離装置100(例えば、分離部123)は、「話者の数Nは出力チャネルの数Kに等しい」というPITの制約(K=N)を、「N≦K」に緩和する。すなわち、本開示に係る話者分離処理では、出力チャネルの数は、もはや話者の数と結びつかない。したがって、本開示に係る話者分離処理では、上述の全単射のマッピング(上記の数式3)は存在しない。
【0070】
話者分離装置100(例えば、分離部123)は、重畳する複数の発話が分離されるように、下記の数式7によって表される、出力チャネルに対する対象の複数の発話(target utterances)の非全単射のマッピングを見つける。
【0071】
【0072】
上記の数式7のようなマッピングを見つけることは、グラフ彩色問題と等価である。もし、各発話が頂点としてモデル化され、複数の辺が重畳する複数の発話の間に引かれれば、このグラフの全ての適切なN個の頂点彩色のセットは、複数の発話から複数の出力チャネルへの複数のマッピングのセットと等価である。N個の頂点彩色は、接続された複数の頂点が色分けされるように、N色のセットから1つの色を各頂点に割り当てる。
【0073】
グラフG=(V,E)は、無向グラフであり、下記の数式8および下記の数式9で定義される。
【0074】
【0075】
【0076】
ここで、Vは、U個の頂点の集合すなわちU個の発話の集合である。Eは、重畳する複数の発話間に存在する辺の集合である。
【0077】
図9は、本開示に係る発話分離の例である発話分離70を示す。発話分離70の上部は、グラフGの例を示す。適切なN個の頂点彩色のグラフは、下記の数式10のマッピングとして定義される。
【0078】
【0079】
なお、π(Graph-PIT)は、全射である必要はない。すなわち、上記の数式10のマッピングは、全ての出力チャネルを使用することを、必要としない。CG,Nを、グラフGの全ての適切なN個の頂点彩色のセットとする。すると、Graph-PITの目的は、下記の数式11で定式化される。
【0080】
【0081】
正解信号(intermediate target signal)は、下記の数式12で与えられる。
【0082】
【0083】
CG,Nのセットは、全てのグラフ彩色可能パタンを列挙することによって計算される。
【0084】
接続された部分(component)に2人の話者しか存在しない場合には、Graph-PITは、上述のPITと等価である。このケースは、発話分離70では、(a)を付されている。もし、接続された部分にN人以上の話者が存在する場合には、Graph-PITは、上述のPITが解くことができない解(solution)を提供することができる。このケースは、発話分離70では、網掛けを付されている。
【0085】
なお、頂点彩色問題は、一般的には、NP困難である。計算量に関しては、NおよびUは、通常は、訓練に使用される区分において小さい。したがって、計算量の増加は、通常のニューラルネットワーク計算と比べて無視できる量である。
【0086】
訓練の方法すなわち損失関数としては、SDRベースの損失関数(Signal-to-Distortion-based loss)が、ニューラルネットワークの訓練に使用される場合がある。しかし、ミーティングのデータは、多くの沈黙区間を含むため、SDRベースの損失関数を使用すると問題が起こる。第1の問題は、SDRベースの損失関数は損失値のレンジに関する制限がなく、学習が不安定になること。第2の問題は、SDRベースの損失関数は、沈黙区間を正解信号とした場合、すなわちsilent target(s=0)に対して定義されていない、というものである。第3の問題は第2の問題とも関連し、π(Graph-PIT)が上記の数式11において全射でない場合、すなわち、N個中のN’個(N>N’)の出力チャネルのみを使用すれば音源分離を達成できる場合は、残りのN-N’個のチャネルには、疑似的に生成したsilent target(s=0)を挿入しなければならない点である。第1の問題は、SDR損失関数に閾値を設けたtSDR(Threshold SDR)を用いることで解決され、第2および第3の問題は、このtSDRに小さな定数εを追加することによって解決される(下記の数式13)。
【0087】
【0088】
【数14】
ここで、上記の数式14は、SDR
maxにソフトな閾値を導入するものである。定数εは、s=0でも損失が定義されることを保証するものである。
【0089】
〔6.話者分離処理のフローチャート〕
次に、
図10を参照して、本開示に係る話者分離処理の例のフローチャートについて説明する。話者分離処理の例は、音源分離器を生成するための処理を含む。音源分離器を生成するための処理は、例えば、
図5の話者分離装置100によって行われる。
【0090】
図10は、音源分離器を生成するための処理の例である処理P100を示すフローチャートである。
【0091】
図10に示されるように、はじめに、話者分離装置100の取得部122は、音声データを取得する(ステップS101)。音声データは、会話の音声と、複数の単一話者にそれぞれ対応する複数の単一話者音声とを含む。
【0092】
次いで、話者分離装置100の分離部123は、音声データを使用して、会話グラフを構築する(ステップS102)。会話グラフは、発話を頂点で表す。会話グラフでは、重畳する複数の発話は、辺で接続される。
【0093】
次いで、分離部123は、会話グラフの頂点彩色問題の解を列挙する(ステップS103)。
【0094】
次いで、話者分離装置100の生成部124は、頂点彩色問題の解のパターンに基づいて、会話の音声を重畳する複数の発話を含まない音声に分離する音源分離器を生成する(ステップS104)。例えば、音源分離器は、ニューラルネットワークによって実装され、頂点彩色問題の解のパターンは、ニューラルネットワークの正解値の複数の組み合わせを示す。生成部124は、音源分離器の精度が向上するように、これらの複数の組み合わせの中から、特定の組み合わせを選択することができる。
【0095】
〔7.効果〕
上述のように、話者分離装置100は、複数の話者の自然な会話を収録した入力音を取得する。入力音は、重畳する複数の発話を含む。話者分離装置100は、入力音を、複数の発話が重畳していない複数の音声信号に分離する。
【0096】
話者分離装置100は、ニューラルネットワークの出力チャネルの順番に依存しない学習(具体的には、
図3を参照して上述したPITベースの音源分離器の学習)を行う代わりに、どの出力チャネルが入力音声の区間内のどの話者の発話を出力するのかの割り当てに依存しない学習を行う。PITベースの音源分離は、1人の話者の発話が1つの出力チャネルに割り当てられるように、音源分離器の学習を行う。それに対して、複数の発話が1つの出力チャネルの中で重畳しなければ、話者分離装置100は、複数の異なる話者の発話が1つの出力チャネルの中に含まれてもよいように、音源分離器の学習を行う。
【0097】
図8を参照して上述したように、話者分離装置100は、「複数の発話が重畳しているかを表す会話グラフの頂点彩色問題の解」を利用して、どの出力チャネルが入力音声区間内の各話者の発話を出力するのかの割り当てに依存しない学習を行う。
【0098】
ニューラルネットワークの入力に関しては、瞬時に重畳する話者の最大数がニューラルネットワークの出力チャネルの数以下であれば、話者分離装置100は、何名の話者が入力音声の区間内で発話を行っていたとしても、入力音声を正常に分離することができる。このため、話者分離装置100は、スティッチング処理等の追加の処理に伴う演算量の増加や処理遅延を防止することができる。
【0099】
〔8.その他〕
自動的に行われる処理として述べられた処理の一部は、手動的に行われ得る。あるいは、手動的に行われる処理として述べられた処理の全部または一部は、公知の方法で、自動的に行われ得る。さらに、本明細書や図面中で示された処理の手順、具体的名称、各種のデータやパラメータを含む情報は、特に明記しない限り、任意に変更され得る。例えば、各図に示された各種情報は、図示された情報に限られない。
【0100】
図示された装置の構成要素は、装置の機能を、概念的に示すものである。構成要素は、必ずしも、図面に示されたように物理的に構成されているとは限らない。言い換えると、分散または統合された装置の具体的形態は、図面に示されたシステムおよび装置の形態に限られない。装置の全部または一部は、各種の負荷や使用状況に応じて、機能的または物理的に分散または統合され得る。
【0101】
〔9.ハードウェア構成〕
図11は、コンピュータのハードウェア構成の例であるコンピュータ1000を示す図である。本明細書で説明されたシステムや方法は、例えば、
図11に示されたコンピュータ1000よって実装される。
【0102】
図11は、プログラムが実行されることにより、話者分離装置100が実装されるコンピュータの一例を示している。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0103】
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0104】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、話者分離装置100の各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、話者分離装置100における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0105】
ハードディスクドライブ1090は、話者分離処理のための話者分離プログラムを記憶することができる。また、話者分離プログラムは、プログラムプロダクトとして作成され得る。プログラムプロダクトは、実行された場合に、上述したような、1つまたは複数の方法を実行する。
【0106】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0107】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0108】
〔10.実施形態のまとめ〕
上述のように、本開示に係る話者分離装置100は、取得部122、分離部123および生成部124を含む。少なくとも1つの実施形態では、取得部122は、会話の音声と、会話における複数の話者にそれぞれ対応する複数の単一話者音声であって、それぞれの単一話者音声が対応する話者の発話を含む複数の単一話者音声とを取得する。少なくとも1つの実施形態では、分離部123は、複数の単一話者音声に含まれる複数の発話から、複数の単一話者音声の間で時間的に重なる複数の発話を、重畳する複数の発話として特定し、特定された重畳する複数の発話を、音声分離モデルの複数の異なる出力チャネルに分離する。少なくとも1つの実施形態では、生成部124は、会話の音声と、複数の異なる出力チャネルにそれぞれ対応する複数の分離音声であって、それぞれの分離音声が対応する出力チャネルに分離された発話を含む複数の分離音声とに基づいて、与えられた音声に含まれる重畳する複数の発話を複数の異なる音声に分離する音声分離モデルを生成する。
【0109】
いくつかの実施形態では、分離部123は、重畳する複数の発話として、複数の単一話者音声の特定の時間区分に出現し、かつ時間的に重なる複数の発話を特定する。
【0110】
いくつかの実施形態では、分離部123は、重畳する複数の発話の数が複数の異なる出力チャネルの数を超えないように、重畳する複数の発話を特定する。
【0111】
いくつかの実施形態では、分離部123は、重畳する複数の発話にそれぞれ対応する複数の頂点と、重畳する複数の発話を接続する辺とを含む会話グラフを生成し、生成された会話グラフの頂点彩色問題の解を使用して、重畳する複数の発話を複数の異なる出力チャネルに分離する。
【0112】
いくつかの実施形態では、分離部123は、会話グラフの頂点彩色問題の複数の解を特定し、会話グラフの頂点彩色問題の解ごとに、重畳する複数の発話を複数の異なる出力チャネルに分離する。いくつかの実施形態では、生成部124は、会話の音声と、会話グラフの頂点彩色問題の解ごとの複数の分離音声とを使用して、会話グラフの頂点彩色問題の解ごとに、音声分離モデルの性能を評価し、最も高い性能を有する音声分離モデルの性能が向上するように、音声分離モデルを訓練することによって、音声分離モデルを生成する。
【0113】
様々な実施形態を、図面を参照して、本明細書で詳細に説明したが、これらの複数の実施形態は例であり、本発明をこれらの複数の実施形態に限定することを意図するものではない。本明細書に記載された特徴は、当業者の知識に基づく様々な変形や改良を含む、様々な方法によって実現され得る。
【0114】
また、上述した「部(module、-er接尾辞、-or接尾辞)」は、ユニット、手段、回路などに読み替えることができる。例えば、通信部(communication module)、制御部(control module)および記憶部(storage module)は、それぞれ、通信ユニット、制御ユニットおよび記憶ユニットに読み替えることができる。また、制御部120内の各制御部(例えば、分離部(separator))も、分離ユニットに読み替えることができる。
【符号の説明】
【0115】
1 環境
100 話者分離装置
110 通信部
120 制御部
121 受信部
122 取得部
123 分離部
124 生成部
125 提供部
130 記憶部
200 ネットワーク
300 ユーザ装置