Upgrade to Pro — share decks privately, control downloads, hide ads and more …

音声処理ツールキットESPnetの現在と未来

 音声処理ツールキットESPnetの現在と未来

第151回音声言語情報処理研究発表会 招待講演発表資料

更新履歴
- 2024/03/01: 苅田さんの名前が間違っていたのを修正

Tomoki Hayashi

March 01, 2024
Tweet

Other Decks in Research

Transcript

  1. 1 音声処理ツールキットESPnetの 現在と未来 株式会社 Human Dataware Lab. COO / 情報科学博士

    林 知樹 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」
  2. 2 自己紹介 p 何者?: n 林 知樹 (情報科学博士/32歳/独身) n ESPnetの開発・メンテをしています

    p 仕事は?: n COO @ Human Dataware Lab. Co., Ltd. n Researcher @ TARVO Inc. n Collaborative researcher @ NU p 専門は?: n 音声・環境音処理全般 (VC, TTS, etc.) p 好きなモノは?: n Custom Keyboard (最近は60%) n (Neo) Vim 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 最近のお気に入り 60% (かわいい) カスタムキーボード沼の住人 My neovim startup
  3. 3 本発表を聞いて得られるもの 音声処理ツールキット ESPnet の全貌を理解すべく、 以下の3つの項目 (+苦労話) を紹介します! 1. ESPnetの歴史

    n 2017年のリリース以降の開発の歴史を振り返り 2. ESPnetで出来ること n 2024年のESPnetで出来ることを紹介 3. ESPnetの最近の開発アイテムと今後の計画 n OWSMやESPnetEzなどの最近の開発トピックを紹介 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 ESPnetのコンセプトや出来ることをなんとなく理解し、 叩き台として触ってみたくなっていただけたら幸いです!
  4. 5 そもそもESPnetって何ですか? ESPnet = Python Library + 実験レシピ p PytorchをベースとしたPythonライブラリ

    n End-to-End型のニューラルネットモジュール n Kaldiのデータ構造を利用した共通のTrainerモジュール n 任意の音声処理タスクが記述可能なTaskモジュール p Kaldi-styleを受け継いだ実験レシピ n 単一のシェルスクリプトの実行だけで再現実験が可能 n データの前処理・学習・評価などの全ての手順を内包 n 再現実験のハードルをできるだけガン下げ 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 高い拡張性から20個近い音声処理タスクをサポート 180以上のコーパスに対する250ものレシピが存在
  5. 6 ESPnetの誕生のきっかけ p 苦行過ぎるHybrid方式の音声認識 n デコーディング部分が特に複雑で職人芸 n Kaldiのコードを解読するのが辛すぎ n 表層上のPipe芸ですら辛い

    p End-to-End型音声認識モデルの登場 n 摩訶不思議なC++コードに頼らなくても良いシンプルさ n 系列から系列への変換として音声認識以外にも適応可 n なにより自分でスクラッチでモデルを作れる楽しさ! 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 の誕生 みんなにこの楽しさを共有しよう! ※ ちなみにこのESPnetのロゴはTakaaki Horiさん (現 Apple) の作
  6. 15 End-to-Endで何でも(?)作れる! p 様々な音声タスクを系列から系列への変換として表現 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 𝐗 = (𝐱!

    , 𝐱" , … , 𝐱# ) 𝐘 = (𝐲! , 𝐲" , … , 𝐲$ ) 𝑓(+) 入力系列 出力系列 End-to-Endネットワーク End-to-Endには 自分で作る楽しさが溢れている!
  7. 16 ESPnetの簡易年表 with レシピ数 1. 2017年: プライベート版の開発スタート l 渡部さんがMERL時代に作っていたモノをベースにスタート 2.

    2017年12月: OSS 版リリース l 最初はChainerがバックエンドだった 3. 2017年末: Pytorch backend 誕生 l 苅田さんがPytorchの方が早いと言って1週間で作った 4. 2018年8月: ASR 以外のサポート l ASR以外のモデルとしてTTSが学習できるように 5. 2019年: MT / ST / VC のサポート l 扱えるタスクが段々と増えてきた! 6. 2020年5月: ESPnet2 の誕生 l 加茂さんの尽力により脱Chainer+柔軟なタスク設計+大規模分散学習を実現 7. 2021年~2023年: ESPnet2 の機能拡充 l SE / BSS / SVS / AVSR / S2ST / SLU / SSL / Diarization の追加 l より複雑なタスクのサポート (Multi-speaker ASRなど) l ESPnet-ONNXの公開 (ONNX変換のサポート) 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 6 17 53 270 17 レシピ数 カウンター 6
  8. 17 ESPnetで大事にされていること p 簡単に再現実験できるようにしよう! n 各コーパス・各タスクごとにKaldi-styleのレシピを提供 n データの準備・前処理も全てレシピ内で実施 n とりあえずレシピを動かせば再現実験が可能

    p 各音声処理タスクで統一的な作りにしよう! n 実行方法やデータ構造を音声処理タスク間で統一化 n 普段はASRしかやらないけどな〜という人もサクッと 新しいタスクで実験することが可能 p やっぱり性能はSOTAを目指そう! n なんだかんだやっぱり性能が大事 n 目ぼしいモデル構造が出るたびに主要タスクで検証 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」
  9. 19 ESPnet2でサポートされているタスク 1. 音声認識 2. テキスト音声合成 3. (マルチチャネル) 音声強調 4.

    (マルチチャネル) 音源分離 5. 機械翻訳 6. 音声翻訳 7. S2ST 8. 歌声合成 9. 話者認識 10. 音響イベント検出 11. 意図推定 (+スロットフィリング) 12. 感情分類 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 13. 自己教師あり学習 14. ASVSpoof 15. 多話者音声認識 16. 音声強調+音声認識 17. 音声強調+音声翻訳 18. 音声強調+意図推定 19. Target Speaker Extraction とりあえずレシピを動かせば 全部自分で再現実験をできます! 学習済みモデルを 動かしたいだけなら 数行で実現できます!
  10. 20 ESPnet2でサポートされているレシピ p 2024年3月時点で 198 コーパス / 270 レシピ n

    研究ベンチマークとして使われるものは絶対あります! n なかったら Issue を立ててください! n 評価結果も学習済モデルも公開 p もちろん日本語データセットも豊富にサポート n ASR: CSJ / Reazonspeech / Laboro-TV / Jtubespeech n TTS: JSUT / JVS / つくよみちゃんコーパス n SVS: JUST song / きりたんコーパス / その他諸々 p 自前データセットのレシピ化ももちろん可能 n 各種タスク用のTEMPLATEレシピあり n Kaldi形式のデータディレクトリを整備するスクリプトを 書けば再現実験可能な自前レシピが完成! 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」
  11. 23 ASRベンチマーク p Librispeech 960h WER (追加学習データなし) 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」

    Toolkit dev_clean dev_other test_clean test_other Facebook wav2letter++ 3.1 10.1 3.4 11.2 RWTH RASR 2.9 8.8 3.1 9.8 Nvidia Jasper 2.6 7.6 2.8 7.8 Google SpecAug. N/A N/A 2.5 5.8 ESPnet Transformer 2.2 5.6 2.6 5.7 Google Conformer N/A N/A 1.9 3.9 ESPnet E-Branchformer N/A N/A 1.9 3.7 巨大テック企業たちに 対抗しうる性能を実現!
  12. 25 STベンチマーク 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 B. Yan, et al. “ESPnet-ST-v2:

    Multipurpose Spoken Language Translation Toolkit,” arXiv preprint arXiv:2304.04596, 2023 より引用 p ST / SST / S2ST のベンチマーク n Must-C (for ST & SST / English -> X) n CVSS-C (for S2ST / X -> English) FAIRと同等以上の性能を実現!
  13. 28 肥大化し続けるリポジトリ p 様々なタスクをサポートし続けた結果肥大化 n 全ての機能を詳細に把握している人ほぼいない説 n Main contributorたちも担当範囲は限定的 n

    ボスである渡部さんがふわっと大体把握ぐらい p 様々な問題の発生 n 修正or新機能の追加でコンフィグの互換性がなくなる n うっかりミスで他のタスクに影響してしまう n 依存パッケージが増える + バージョン互換性がなくなる 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 人間によるチェックの限界の訪れ
  14. 29 テストコードが命綱 p 新機能実装とテストコードはセット n モジュールに新オプションを追加 → ユニットテスト追加 n 新タスクを追加

    → 統合テスト追加 n バグ修正 → 再発チェックテスト追加 n テストカバレッジをモニタして抜け漏れがないかチェック 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 ESPnetのPythonライブラリのテストカバレッジ テストをサボっているやつが一発で可視化される
  15. 30 CIが命綱 p CI (Github Action) をとにかくフル活用 n Linter /

    Unit & Integration test / Configチェックを自動化 n GithubがOSSに対して大盤振る舞いなので使いまくる n プライベートで換算すると大変なお金がかかっている 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 ESPnetで毎回テストしている組み合わせ / 主要OS・バージョンはある程度網羅
  16. 33 ESPnetに対する不満 p レシピのシェルスクリプト複雑すぎ問題 n そもそもシェルスクリプト書ける人が減少 n シェルスクリプトというだけで敬遠されがち p Kaldi形式のデータに揃えるのめんどくさすぎ

    n Python上で整形してそのままフィードしたい n ちょこっとファインチューニングしたいだけなのに面倒 p Jupyter Notebookで作業したい n ターミナルでコマンドを叩くのだるい n ブラウザでNotebookをポチポチするだけが良い 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 Pythonネイティブにより優しい ESPnet-Easy (ESPnetEz) を作ろう!
  17. 34 ESPnetEz Pythonオンリーで完結するシンプルなESPnet p Jupyter Notebook上での動作を想定して設計 p シンプルにファインチューン・学習だけしたい人向け p シェルスクリプトフリーで初心者にも安心

    2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 どちらかの形式でPython上で データを用意できれば もう学習準備完了! espnet/egsez を要チェック!
  18. 35 データ駆動離散シンボル系列レシピ p SSL特徴量をクラスタリングして離散記号化 p 記号列を入力・出力系列としてモデルを学習 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 espnet/egs2/librispeech/asr2を要チェック!

    X. Chang, et al. “Exploration of Efficient End-to-End ASR using Discretized Input from Self-Supervised Learning,” arXiv preprint arXiv:2305.18108, 2023 より引用 重複記号の削除・サブワード化で爆速で学習が可能! (Librispeech 960hがシングルGPUで1日かからない!!)
  19. 36 Whisperを再現するプロジェクト OWSM スタート Whisperでいいじゃん問題 OpenAI Whisperの特徴 p 680k hoursもの多言語データセットで学習

    p 言語判定対応 p 発話レベルのタイムスタンプ対応 (≒ VAD) p 英語への翻訳対応 (X→English) p チャンクベースにより任意の長さの発話に対応 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 モデルしか公開されておらず1から再現することは不可能 l どんな学習データを使っているのか? l どうやって学習させているのか? l 潜在的なバイアスの問題があるのではないか?
  20. 37 OWSM (awesome!) OWSM = Open Whisper-style Speech Model p

    Whisperを全てOSSで再現するプロジェクト n ESPnetでWhisper-styleの学習ができるように拡張 n すべてをオープンソースでリリースして再現可能に p 大学レベルでは難しいレベルのGPUリソースを利用 n A100 を 120,000 時間分利用 n AWS (On-demand)換算で $400,000≒6,000万円 n リソースの兼ね合いから数回の試行のみ 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」
  21. 38 OWSMレシピ&モデル試せます p v1 / v2 / v3 / v3.1

    が公開中 n egs2/owsm_<version>/s2t1 を要チェック! 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 最新のOWSM v3.1はアジア圏の言語に対しては Whisper-mediumを上回る性能を発揮! (もちろんタイムスタンピング・チャンクデコーディング・翻訳も可能!)
  22. 40 今後の方針 p データ駆動型離散シンボル処理の強化 n 新しいレシピ asr2 / tts2 として開発を強化

    p 再現可能な音声基盤のモデルの提供 n 再現性・説明可能性を持った基盤モデルを作りたい p 基盤モデルをより使いまわしやすいような改良 n レシピはどちらかというとスクラッチ学習を前提 n ESPnet-Easyのような簡単に他のデータを使える形も模索 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」
  23. 41 まとめ 2024/03/01 音声言語情報処理合同研究発表会 「音声処理ツールキットESPnetの現在と未来」 音声処理ツールキット ESPnet の全貌を理解すべく、 以下の4つの項目 (+苦労話)

    を紹介しました! 1. ESPnetの歴史 n 2017年のリリース以降の開発の歴史を振り返り 2. ESPnetで出来ること n 2024年のESPnetで出来ることを紹介 (おまけ) ESPnetのメンテナンス n 肥大化するリポジトリのメンテナンスについて紹介 3. ESPnetの最近の開発アイテムと今後の計画 n OWSMやESPnetEzなどの最近の開発トピックを紹介 ESPnet触ってみたくなっていただけたら幸いです!