👏

【Nishika 論文サク読み 第9回】WhisperDiari

に公開

こんにちは。Nishika AIエンジニアの松田です。

Whisperで文字起こしするだけでなく「誰が話したか」まで扱いたいケースが業務でも増えているので、関連する論文をpickしてみました。

論文

WhisperDiari: A Whisper-Based Speaker Diarization Framework in Token Space Leveraging Semantic and Speaker Information for Better Text Adaptability

目的

複数話者の音声から「誰が・いつ・何を話したか」を推定するSpeaker Diarizationは、会議録やインタビュー文字起こしで重要。一方で、従来の多くの手法は話者分離とASRを別々に行い、後からtimestampで対応付けるため、話者境界のずれや発話分割ミスによって文の意味的なまとまりが崩れやすい。この問題を、Whisperベースの統合モデルとして解決したい。

手法

WhisperDiariでは、WhisperのEncoder/Decoder構造を拡張し、音声認識用のSemantic Decoderとは別にSpeaker Decoderを追加する。Whisper Encoderの中間層から話者情報を取り出し、Speaker Adapterで話者表現を強化したうえで、semantic token列に対して話者ラベルを直接予測する。さらに、事前学習済み話者埋め込みモデルから作った類似度行列を教師信号にするSpeaker Similarity Matrix Supervisionにより、話者表現の識別性を高める。

結果

LibriSpeechから構築した多話者データセットLibriDiariと、実会議データのAMI Corpusで評価。LibriDiariのn-speaker設定では、WhisperDiariはtDER 8.9を達成し、Pyannote-audioの15.9、3D-Speakerの12.2を上回った。AMI CorpusでもtDER 19.5で既存OSS手法を上回り、逐次的にDiarization→ASRを行うパイプラインと比べてもWERが低く、話者ラベルと文字起こしの整合性が改善した。

感想

WhisperのEncoderからsemantic featureとspeaker featureを分けて取り出し、Speaker AdapterとSpeaker Decoderでtoken単位の話者ラベルを出す全体構成

この論文の重要な工夫は、Diarizationを「音声フレームに話者ラベルを付ける問題」としてではなく、「Whisperが生成するtoken列に話者ラベルを付ける問題」として扱っている点だと思いました。文字起こしの単位に話者推定を寄せることで、通常出力される秒単位の話者情報ではなく、会議録で本当に欲しい「この発話は誰が話したものか」という粒度に近づけています。

また、Whisperの中間層に含まれる話者情報をそのまま使うのではなく、Speaker Adapterで話者を特定しやすい特徴量に変換し、さらに既存の話者埋め込みモデルによって得られる類似度行列を教師信号として使うことで、話者表現を整えている点も実用的です。ASRモデルを話者認識に流用するだけだと話者識別には弱いですが、既存の話者埋め込みモデルを補助教師として使うことで、Whisperの汎用性を活かしつつDiarization向けにチューニングしているのが面白いです。

おわりに

Nishikaエンジニアチームでは、毎週の「AIよもやま研究定例」をはじめ日々気になったニュースや論文を気軽にpickして話し合っています。
ただ話すだけでなく、Nishikaの由来である自分たち「にしか」できないことは何か、ユーザーに提供できる価値は何かを考えながら、AIの未来、エンジニアリングの未来を考えています。
こんな未来を一緒に考え・作っていく仲間を募集しています。興味を持っていただけた方はぜひお声がけください。

https://note.com/nishika_inc/n/n61a98ca22bfd

https://hrmos.co/pages/nishika/jobs

Nishika Tech Blog

Discussion