学習済みspeaker embeddingの性能比較をしてみた

はじめに

皆さんは声優の声を分類したり比較したりしてみたいと思ったことはありませんか? 関連する技術として、話者認証(speaker verification)などの分野で、人の声が似ているかどうかを判断するためのベクトル表現としてspeaker embeddingを計算するモデルがいろいろと研究されているようです。

しかし一からモデルを学習するのはデータも計算リソースも時間も必要なので大変です。 そこで、今回は事前学習済みモデルを公開してくださっている研究を探して、実際に日本語のデータで声優の声を区別する性能を比較してみることにしました。

実験コードは公開しています。この記事に含まれていない事前学習済みモデルなどをご存じの場合はコメントなどで教えていただければ幸いです!

学習済みspeaker embeddingモデルの比較実験

比較方法

比較実験には公開されている事前学習済みモデルをそのまま利用しました。特にfine-tuningなどは行っていません。

データ

テストデータには、100人の声優が日本語テキストを読み上げた音声データを収録しているJVS (Japanese versatile speech)コーパスを利用しました。

評価指標

得られたspeaker embeddingを用いて与えられた音声ペアが同じ声優の音声かどうかを分類し、性能を比較しました。

具体的には、以下のようなpositive, negative音声ペアを各クラス10000個ずつランダムに作成し、ペアごとの類似度を分類に用いるスコアとして利用しました。(当然各比較実験で利用されるペアは手法が違っても同一としました。)

  • positive
    • 話者が同じ2つの音声のペア
  • negative
    • 話者が異なる2つの音声のペア

以下の結果ではこのスコアの評価指標としてEERを示しています。

話者認証の研究では複数のenroll voiceを利用した認証の性能をEERで示しているようですが、今回は実装の簡便さのために上記のような方法を取っています。

実装コード

評価の際に利用したGoogle colaboratoryのコードを公開しています。

JVSコーパスのデータセットのzipファイルをGoogle driveresearch/jvs_ver1.zipとして配置してある前提です。(Google driveのマウントが必要です。)

結果

評価の結果は以下のようになりました。

juanmc2005/SpeakerEmbeddingLossComparisonにおいて公開されている事前学習済みのモデルが最も性能が良い結果になっています。

実装 EER Google colaboratory 動作例 Note 
Jungjee/RawNet [Jung+20] 23.5% サンプル 固定長への切り取りをランダムに15回行い平均。
CorentinJ/Real-Time-Voice-Cloning [Jia+18] 20.6% サンプル
philipperemy/deep-speaker [Li+17] 18.0% サンプル
juanmc2005/SpeakerEmbeddingLossComparison [Coria+20] 16.8% サンプル 論文によると、SincNet [Ravanelli+18] による特徴量抽出とx-vector [Snyder+18]をend-to-endにadditive angular margin lossで学習しています。

おわりに

今回は事前学習済みモデルが公開されているspeaker embeddingモデルを比較してみました。 今後はこれらのモデルを利用していろいろと遊んでいければと思っています。

参考文献

  • [Coria+20]
    • Coria, Juan M., et al. "A Comparison of Metric Learning Loss Functions for End-To-End Speaker Verification." arXiv preprint arXiv:2003.14021 (2020).
  • [Jia+18]
    • Jia, Ye, et al. "Transfer learning from speaker verification to multispeaker text-to-speech synthesis." Advances in neural information processing systems 31 (2018): 4480-4490.
  • [Jung+20]
    • Jung, Jee-weon, et al. "Improved RawNet with Feature Map Scaling for Text-independent Speaker Verification using Raw Waveforms." Proc. Interspeech 2020 (2020): 1496-1500.
  • [Li+17]
    • Li, Chao, et al. "Deep Speaker: an End-to-End Neural Speaker Embedding System." arXiv (2017): arXiv-1705.
  • [Ravanelli+18]
    • Mirco Ravanelli and Yoshua Bengio. Speaker Recognition from Raw Waveform with SincNet. 2018 IEEE Spoken Language Technology Workshop (SLT), pages 1021–1028,
  • .
  • [Snyder+18]
    • David Snyder, Daniel Garcia-Romero, Gregory Sell, Daniel Povey, and Sanjeev Khudanpur. X-Vectors: Robust DNN Embeddings for Speaker Recognition. 2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pages 5329–5333, 2018.