完全教師ありニューラルネットワークによる話者ダイアリゼーション (UIS-RNN)
Google とコロンビア大学が 2018 年 11 月に arXiv.org で発表し、ICASSP 2019 でも発表した論文。
- 出典: Fully Supervised Speaker Diarization
- Blog: Google AI Blog: Accurate Online Speaker Diarization with Supervised Learning
- プログラム: https://github.com/google/uis-rnn (pytorch で実装)
- 発表動画: https://www.youtube.com/watch?v=pGkqwRPzx9U
概要
完全教師ありのニューラルネットワークを用いて、話者ダイアリゼーション (話者の識別) を行う技術。このネットワークを unbounded interleaved-state recurrent neural networks (UIS-RNN) と呼んでいる。
入力発話話者を識別する特徴量 (d-vector など) から、parameter sharing RNN で話者を識別するモデルを作る。RNN の state は交互になされる発話区間となる。合計話者数が未知なため、ニューラルネットワークには ddCRP (distance-dependent Chinese restaurant process) の仕組みを取り込んでいる。
ダイアリゼーションの誤り率(DER)は、NIST SRE 2000 CALLHOME のベンチマークにおいて、7.6 % となった。また、既存の方式の多くがオフラインデコードであるのに対し、本方式はオンラインデコードが可能。
なお、本チームは、ICASSP 2018 で d-vector と LSTM を使った話者ダイアリゼーションも発表している。
本研究の概要
ダイアリゼーションは、通常以下の流れで行われる。
- 無音区間を取り除き、発話区間を抽出する (VAD)。そして、発話区間をいくつかのセグメントとして区切る。
- 上記で作成したセグメントから、i-vector, d-vector などで、特徴量を作成する。
- 上記で作成した特徴量を用いて各セグメントのクラスタリングを行い、話者を判別する。その過程で話者数の決定も行う。
- 追加で話者数などに制約がある場合に、再度セグメンテーションを行い、計算し直す。
上記の2の特徴量の作成には、d-vector のような、ニューラルネットワークを用いた方法で飛躍的に性能が向上している。また、3の、クラスタリングについては、GMM(混合ガウスモデル)、Mean shift法、agglomerative hierarchical clustering、K-Means、スペクトラルクラスタリングで教師無しで行う方法が主流となっていた。
しかしながら、これまでのダイアリゼーションの手法の多くが教師なし学習であったのに対し、実際にユーザが利用するアプリケーションによっては、タイムスタンプ付の話者ラベルが取得できる場合もある。 (Google MeetやHangoutのようなオンライン会議のケース?)
本手法 (UIS-RNN) では、以下に基づいて構築されている。
- 各話者は RNN のインスタンスとしてモデル化される。そしてそれら RNN はパラメータを共有する
- 上記の RNN インスタンスは、無制限に作成される
- RNN インスタンスは時系列にしたがって交互に並べられる
つまり本手法の利点をまとめると以下。
- 交互に配置されるRNNを無限に用いて、セグメント化とクラスタリングを行う訓練可能なモデル
- 完全教師ありの話者ダイアリゼーションのフレームワーク
- NIST SRE 2000 CALLHOME のベンチマークにおいて、State of Art
- オフラインと同じ品質でオンラインデコードが可能
ベースラインとなったシステム
Wang et al [3] の方法を参考に構築。この方法は、240ms (50%のオーバラップを持つ) のウインドウで特徴量を抽出し、VAD(発話区間抽出)は、2つのガウス分布の共分散のみで行うシンプルなもので、発話を400msの区間に区切っているもの。そして、以下の図のようにそのウインドウからセグメントごとの特徴量 (d-vector) を計算している。

本手法の概要
与えられた発話から、特徴量抽出モジュールで、observation sequence “X”を作る。そして、真の値(話者のラベル)を”Y”として以下の同時確率で示す。

また、話者が変わったかどうかを示すラベル “Z” を含めることもできる。

ZはYによって決まること、YとZが未知でXが既知であることから、以下のように3つのパート(Sentence generation、Speaker assignment、Speaker Change)に分けて説明できる。

Speaker Change (話者の入れ替わり)
話者が替わらない=0 / 話者がSpeaker Change (話者の入れ替わり)=1を、RNNで予測する。
Speaker Assignment (話者の割当て)
最も大きな課題は、クラスタ数を決定する仕組みだが、本手法では、ベイジアンノンパラメトリックモデルの一つであるddCRP (distance-dependent Chinese restaurant process、中華料理店課程の一種) を用いる。これは中華レストランのように円卓に客が並んでいるイメージで、距離が一定となるようにクラスタを生成する方法を取っている。
確率分布は、Z (話者が変わったかどうかを示すラベル)を用いることができ、p(Y|Z) の条件付き確率になる。

- N: ブロック数(ブロックとは、1人の話者が連続して話したセグメント数の最大数)
- k: 話者
- α: 定数
Sequence Generation (シーケンス生成)
本研究において、観測されたシーケンスは特徴量Xは、RNNの出力から生成されると仮定し、RNNの一種であるGRUを用いて推定する。
生成されたモデル

色が各話者を示しており、各RNNインスタンスが共通のパラメータを用いて話者推定を行っている事がわかります。
(続きは後日)
Leave a comment