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

理想の声を目指して 〜七声ニーナの音声変換技術からライブ配信応用へ〜【DeNA TechCon 2022】

理想の声を目指して 〜七声ニーナの音声変換技術からライブ配信応用へ〜【DeNA TechCon 2022】

本発表では、AI研究開発部音声チームが開発している音声変換技術について紹介します。音声変換とは自分の声を別人の声に変える技術です。近年、VTuber、ライブ配信、ボイスチャット、メタバースなどの盛り上がりにともない、自分の声を好みの声やお気に入りのキャラクターの声に変えたいという需要が高まっており、我々はその実現に向けて取り組んでいます。

現在開発中の音声変換技術は「VOICE AVATAR 七声ニーナ」というWebサービスで使われています。七声ニーナは、「AIを用いた完全なキャラクター声の再現」を目指して、従来では難しかった誰の声からでもキャラクターの声へと変換できる音声変換を、洗練されたUIと親しみ易いキャラクターと共にお届けしました。

その七声ニーナの立ち上げと運用を経て受け止めた皆様の熱い想いを振り返るとともに、今後どのような形で昇華していくか?音声変換技術のライブ配信アプリへの導入を見据えた、リアルタイム化に関する取り組みを、研究開発の最前線からお伝えします。

資料内でのリンク集:
p30, https://dena.ai/story/nanakoe-nina/
p33, https://engineering.dena.com/blog/2021/04/voice-avatar-backend/
p34-1, https://fastapi.tiangolo.com/
p34-2, https://pgjones.gitlab.io/hypercorn/
p36-1.2, https://design.dena.com/design/nanakoe-nina2
p37, https://design.dena.com/design/nanakoe-nina
p44, https://github.com/aiortc/aiortc
p45-1, https://www.jstage.jst.go.jp/article/jasj/73/7/73_404/_pdf
p45-2, https://caniuse.com/?search=webassembly
p47, https://superpowered.com/webbrowserlatency
p48-1.2, https://android-developers.googleblog.com/2021/03/an-update-on-androids-audio-latency.html
p52, https://ai.googleblog.com/2019/03/an-all-neural-on-device-speech.html
p54-1, https://github.com/KinWaiCheuk/nnAudio
p54-2, https://github.com/keunwoochoi/kapre
p55-1, https://github.com/open-mmlab/mmdeploy
p55-2, https://openmmlab.com/
p55-3, https://mmdeploy.readthedocs.io/en/latest/tutorials/how_to_support_new_models.html?highlight=Function#function-rewriter
p55-4, https://github.com/open-mmlab/mmdeploy
p57, https://dena.ai/

◆ You Tube
https://youtu.be/97Shx8I4KI8

◆ You Tube チャンネル登録はこちら↓
https://youtube.com/c/denatech?sub_confirmation=1

◆ Twitter
https://twitter.com/DeNAxTech

◆ DeNA Engineering
https://engineering.dena.com/

◆ DeNA Engineer Blog
https://engineering.dena.com/blog/

◆ DeNA TechCon 2022 公式サイト
https://techcon2022.dena.dev/spring/

DeNA_Tech

March 17, 2022
Tweet

More Decks by DeNA_Tech

Other Decks in Technology

Transcript

  1. 自己紹介 森 紘一郎 2005年〜2017年 株式会社東芝 • 機械学習、音声合成の研究開発・事業化に従事 2017年〜 株式会社ディー・エヌ・エー •

    データ統括部 AI研究開発部 音声チーム • 音声感情認識、音声合成、音声変換 など音声 x AIの研究開発に従事
  2. 1. 音声変換とは 2. VOICE AVATAR 七声ニーナ 音声変換とはどのような技術か? 最先端の音声変換研究の動向 音声変換Webサービス七声ニーナの紹介 七声ニーナで使っている音声変換技術

    3. リアルタイム音声変換 リアルタイム音声変換に向けた取り組み アジェンダ 4. 七声ニーナの立ち上げと振り返り 5. 七声ニーナで魅せたかった未来 七声ニーナの立ち上げを経て ユーザの想いを受け止めての振り返り WebRTC、そしてWebAssemblyという技術的選択肢 Webサービスとして低遅延音声変換を扱うことの難しさ 6. Webからネイティブへの挑戦 AIの進歩と端末性能の向上が、新たなUXを切り開く モデルのポータビリティを高めネイティブに挑む
  3. 音声変換の処理フロー Content Encoder Decoder 発話内容 Speaker Encoder 入力音声から発話内容を 抽出する 発話内容と話者性から

    変換音声を生成する 話者性 話者性を抽出する こんにちは ソース話者 ターゲット話者
  4. あ 主なアプローチ 音声認識ベース • PPG-VC • ConVoice 音声合成ベース • Voice

    Transformer Net • TTL-VC Autoencoderベース • VQ-VAE-VC • AutoVC GANベース • CycleGAN-VC • StarGAN-VC 詳細を知りたい方は こちらの記事がおすすめ
  5. アジェンダ 4. 七声ニーナの立ち上げと振り返り 七声ニーナの立ち上げを経て ユーザの想いを受け止めての振り返り 5. 七声ニーナで魅せたかった未来 WebRTC、そしてWebAssemblyという技術的選択肢 Webサービスとして低遅延音声変換を扱うことの難しさ 6.

    Webからネイティブへの挑戦 AIの進歩と端末性能の向上が、新たなUXを切り開く モデルのポータビリティを高めネイティブに挑む 1. 音声変換とは 2. VOICE AVATAR 七声ニーナ 音声変換とはどのような技術か? 最先端の音声変換研究の動向 音声変換Webサービス七声ニーナの紹介 七声ニーナで使っている音声変換技術 3. リアルタイム音声変換 リアルタイム音声変換に向けた取り組み
  6. イントネーション情報の注入 音素認識 モデル 音声生成 モデル k o n n i

    ch i w a こんにちは こんにちは 音素表現 イントネーション • 音素認識モデルにイントネーションを予測するモジュールを新たに追加 • 入力音声のイントネーションを変換音声に反映させることができた
  7. アジェンダ 4. 七声ニーナの立ち上げと振り返り 七声ニーナの立ち上げを経て ユーザの想いを受け止めての振り返り 5. 七声ニーナで魅せたかった未来 WebRTC、そしてWebAssemblyという技術的選択肢 Webサービスとして低遅延音声変換を扱うことの難しさ 6.

    Webからネイティブへの挑戦 AIの進歩と端末性能の向上が、新たなUXを切り開く モデルのポータビリティを高めネイティブに挑む 1. 音声変換とは 2. VOICE AVATAR 七声ニーナ 音声変換とはどのような技術か? 最先端の音声変換研究の動向 音声変換Webサービス七声ニーナの紹介 七声ニーナで使っている音声変換技術 3. リアルタイム音声変換 リアルタイム音声変換に向けた取り組み
  8. 1. 音声変換とは 2. VOICE AVATAR 七声ニーナ 音声変換とはどのような技術か? 最先端の音声変換研究の動向 音声変換Webサービス七声ニーナの紹介 七声ニーナで使っている音声変換技術

    3. リアルタイム音声変換 リアルタイム音声変換に向けた取り組み 実装編 アジェンダ 4. 七声ニーナの立ち上げと振り返り 5. 七声ニーナで魅せたかった未来 七声ニーナの立ち上げを経て ユーザの想いを受け止めての振り返り WebRTC、そしてWebAssemblyという技術的選択肢 Webサービスとして低遅延音声変換を扱うことの難しさ 6. Webからネイティブへの挑戦 AIの進歩と端末性能の向上が、新たなUXを切り開く モデルのポータビリティを高めネイティブに挑む
  9. 自己紹介 竹村 伸太郎 2007年〜2019年 株式会社バンダイナムコゲームス/スタジオ • リアルタイムCGの研究やデータ分析基盤の構築などに従事 • CEDEC 2011/2015/2017/2019,

    Microsoft de:code 2019 で登壇 2020年〜 株式会社ディー・エヌ・エー • データ統括部AI基盤部所属 MLエンジニア • クラウドからエッジまでAI技術の実用化を様々な領域で担当 • VOICE AVATAR 七声ニーナの開発・運用 詳しくは DeNA×AI 対談記事をご覧ください • CEDEC 2021 にて下記テーマで登壇 「エンタメから社会課題、チームで乗り越えた音声AIの研究 開発と実用化」
  10. 1. 音声変換とは 2. VOICE AVATAR 七声ニーナ 音声変換とはどのような技術か? 最先端の音声変換研究の動向 音声変換Webサービス七声ニーナの紹介 七声ニーナで使っている音声変換技術

    3. リアルタイム音声変換 リアルタイム音声変換に向けた取り組み 実装編 アジェンダ 4. 七声ニーナの立ち上げと振り返り 5. 七声ニーナで魅せたかった未来 七声ニーナの立ち上げを経て ユーザの想いを受け止めての振り返り WebRTC、そしてWebAssemblyという技術的選択肢 Webサービスとして低遅延音声変換を扱うことの難しさ 6. Webからネイティブへの挑戦 AIの進歩と端末性能の向上が、新たなUXを切り開く モデルのポータビリティを高めネイティブに挑む
  11. 七声ニーナの立ち上げと振り返り • 七声ニーナの立ち上げを経て ◦ リリース直後、想定を遥かに上回る反響を頂いた ◦ 同時公開の DeNA Engineering Blogが想定外のバズり方をした

    ◦ スケーラビリティ最優先の実装で安定運用を実現 ◦ タイトな開発スケジュールをチーム間連携で克服 • ユーザーの想いを受け止めての振り返り ◦ 音声変換品質を100%保証できないことは想定していた ◦ 社内レビューでは、変換音声の品質が相対的に低い結果に ◦ それでも、幸いにして好感度高くユーザーに受け入れられた
  12. リリース直後、想定を遥かに上回る反響を頂いた • 当初 10万回/年 の音声変換利用数を見込んでいた • 実際には、1日を経たずして 10万回の利用を達成 • その後も継続的なアクセスが続き、最終的に

    77万回以上利用された 同時公開の DeNA Engineering のBlogが想定外のバズり方をした • 七声ニーナは 40を超えるメディアに掲載され、Engineering Blogの引用も多数あった • ”幸運にも、百戦錬磨のプロジェクトメンバーに助けられ” と釘は指したが… • 入社1年目の部署横断企画が社内投票で採択、という点がクローズアップされ過ぎた 竹村 伸太郎, 七声ニーナを支えるバックエンド技術, DeNA Engineering, 2021
  13. スケーラビリティ最優先の設計で安定運用を実現 • トラフィックのピークはYahoo News掲載の 深夜23時頃! ◦ サーバレス主体のシステム構成で難なく乗り切る • 以下の工夫でスケーラビリティとレスポンス速度が向上 ◦

    I/O boundな音声ファイルCRUD API ▪ FastAPIによる非同期処理主体の軽量なAPI実装 ▪ 並列度を上げることでCold Startの影響を最小化 ▪ HypercornのHTT` P/2でレスポンス全般を高速化 ◦ CPU boundな音声変換API ▪ 高負荷な計算を伴うため、並列度は上られない ▪ 代わりに録音前の暖機運転で、Cold Startの影響を最小化 ◦ API間のリアルタイム連携 ▪ Cloud Firestoreのリアルタイムリスナー機能の活用 I/O bound API (Cloud Run) CPU bound API (Cloud Run) Realtime Listener (Cloud Firestore)
  14. 音声変換品質を100%保証できないことは想定していた • 誰の声でも、どんな雑音が入っても、100%音声認識に成功するシステムなんて世の中にない • それは音声認識ベースのアプローチを採用する七声ニーナでも同じ • AIあるあるの不確実性を想定した上での取り組みだった それは DeNA Design「VOICE

    AVATAR 七声ニーナ キャラデザ編」キャラクター設定資料内の “自分がまだWIP(作り途中)であるポンコツっぷりはわかっているが” といったワードから察して頂ければ幸い 岩朝 暁彦, VOICE AVATAR 七声ニーナ キャラデザ編, DeNA Design, 2021
  15. まとめ • 七声ニーナをリリースしてよかったこと ◦ リリース直後の突発的なトラフィック増にも耐え、打ち上げ成功 ◦ 反響から、音声変換という技術に関心やニーズがあることを示せた ◦ アンケート結果から、好感度高く受け止められたことが伺えた •

    七声ニーナの開発で工夫したこと ◦ サーバレス主体の設計で、安定かつ低コストな運用を実現した ◦ フロントエンドチームと円滑に連携できるよう、管理ツールや資料を整備 • 七声ニーナのユーザーから求められたもの ◦ 長時間利用できる、リアルタイム音声変換
  16. 1. 音声変換とは 2. VOICE AVATAR 七声ニーナ 音声変換とはどのような技術か? 最先端の音声変換研究の動向 音声変換Webサービス七声ニーナの紹介 七声ニーナで使っている音声変換技術

    3. リアルタイム音声変換 リアルタイム音声変換に向けた取り組み アジェンダ 4. 七声ニーナの立ち上げと振り返り 5. 七声ニーナで魅せたかった未来 七声ニーナの立ち上げを経て ユーザの想いを受け止めての振り返り WebRTC、そしてWebAssemblyという技術的選択肢 Webサービスとして低遅延音声変換を扱うことの難しさ 6. Webからネイティブへの挑戦 AIの進歩と端末性能の向上が、新たなUXを切り開く モデルのポータビリティを高めネイティブに挑む
  17. 七声ニーナで魅せたかった未来 • WebRTC、そしてWebAssemblyという技術的選択肢 ◦ ゼロからの再実装を意味するリアルタイム対応 ◦ 最速でPoCを終えるためのWebRTCという選択 ◦ 究極の低遅延を求め、WebAssemblyへと模索は続く •

    Webサービスとして低遅延音声変換を扱うことの難しさ ◦ そして気づいたWeb Audio自体の遅延の大きさ ◦ Webサービスとネイティブアプリの埋まらない溝
  18. ゼロからの再実装を意味するリアルタイム対応 REST APIは双方向のリアルタイム通信に適さない。再実装を覚悟で、以下の選択肢を検討した。 • WebSocket ◦ 最も歴史が古く、対応ブラウザが多いというメリットあり ◦ ただしTCPベースで、Head of

    Line Blocking問題を抱えるため低遅延の維持が困難 • WebRTC ◦ 動画や音声の通信に用途が限定されるが、フロントエンド側の実装(JS)は容易 ◦ P2Pを想定しており、Server-Client型よりバックエンドのインフラ構築・運用が難しい • WebTransport + WebCodecs API ◦ 柔軟性の高い低レベルAPIを持ち、TCP/UDP両方が扱える万能手法 ◦ だが標準サポートしているブラウザが著しく限られる ▪ WebCodecs API → 2021年9月リリースのChrome 94以降 ▪ WebTransport → 2022年1月リリースのChrome 97以降
  19. 最速でPoCを終えるためのWebRTCという選択 • WebRTCを選択した主な理由 ◦ 低遅延維持や暗号化といった雑多な処理を、すべてブラウザ任せにできる ◦ 一方WebSocket単体では、エンコードなど多くの追加実装を求め、PoC向けではない ◦ WebTransportの機能は魅力的だが、ユーザーにブラウザを指定するのは非現実的と判断 •

    バックエンド実装には aiortc を用いた ◦ Pythonで書けるのでPoCに適している • PoCの結果、意図通りに動作するリアルタイム音声変換Webサービスが出来た ◦ 求められるインフラやクラウド費用が見えた点で、意義はあった ◦ ただ遅延や安定性は、ネットワーク環境に大きく依存する現実に直面 ◦ 可能性は示せたところで、もう1つの選択肢の検討を優先した
  20. 究極の低遅延を求め、WebAssemblyへと模索は続く • どうせやるなら、究極の低遅延音声変換に挑戦してみたい ◦ 遅延聴覚フィードバックによる発話への悪影響は 200 ms がピークという調査結果あり • 理論上、最も低遅延な音声変換はブラウザ上で計算を完結させることである

    ◦ エッジAI型なので、性能がネットワーク環境に依存しないというメリットがある ▪ エッジAI = サーバーを使わずユーザ端末上で計算するAIのこと ◦ ユーザー端末に一定の計算性能を要求する といった制約はここでは目をつぶる • 計算負荷の高い処理をブラウザ上で扱う手段として WebAssembly がある ◦ 対応ブラウザのシェアは caniuse.com 2022/2調べで 94.7% • ではWebAssemblyならどれだけ遅延を抑えられるのか?
  21. そして気づいたWeb Audio自体の遅延の大きさ • 結論から言うと、Web Audio自体の遅延が激しいことがわかりPoCは見送った • Superpowered社の資料によると、Web AudioのRound Trip遅延として以下の値が計測されている ◦

    Chrome 96, Audio Worklet, 48000 Hz, 128 frm ▪ Android 11 → 112 ~ 599 ms ▪ Windows 10 → 34 ~ 542 ms ▪ macOS 10.15.7 → 20 ~ 336 ms ◦ Chrome 87, ScriptProcessor, 48000 Hz, 512 frm ▪ iOS 14.3 → 46 ~ 53 ms ◦ Safari 14, ScriptProcessor, 48000 Hz, 512 frm ▪ iOS 14.1 → 45 ~ 53 ms ▪ macOS 10.15.6 → 54 ~ 362 ms ◦ iOS以外はブレが大きく、上限300msすら担保できないことがわかる
  22. Webサービスとネイティブアプリの埋まらない溝 Googleによれば、Androidネイティブアプリ上での昔と今で平均遅延が 109 → 39 ms に短縮とのこと • 前述のWeb Audioの遅延(112

    ~ 599 ms)と比較するとその差はあまりにも大きい • この性能差が、今後ネイティブアプリで勝負したい理由の1つになっている An update on Android's audio latency, Android Developers Blog, 2021 Portions of this page are reproduced from work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
  23. まとめ • 七声ニーナを超えるための挑戦 ◦ WebRTCを用いたリアルタイム音声変換サービスのPoC ◦ WebAssemblyに絡む技術調査 • 七声ニーナをクローズした背景 ◦

    高品質なリアルタイム音声変換で、デライトを届けたかったが… ◦ 乗り越えるべき技術課題が多く、クローズへの合意形成へ • プロジェクト起案者として皆様へ ◦ 今後に期待して頂いていた方、本当に申し訳ございません! ◦ サービス自体は終了しますが、二次創作可能なIPとして存続します ◦ 末長くニーナを愛していただけると幸いです
  24. 1. 音声変換とは 2. VOICE AVATAR 七声ニーナ 音声変換とはどのような技術か? 最先端の音声変換研究の動向 音声変換Webサービス七声ニーナの紹介 七声ニーナで使っている音声変換技術

    3. リアルタイム音声変換 リアルタイム音声変換に向けた取り組み アジェンダ 4. 七声ニーナの立ち上げと振り返り 5. 七声ニーナで魅せたかった未来 七声ニーナの立ち上げを経て ユーザの想いを受け止めての振り返り WebRTC、そしてWebAssemblyという技術的選択肢 Webサービスとして低遅延音声変換を扱うことの難しさ 6. Webからネイティブへの挑戦 AIの進歩と端末性能の向上が、新たなUXを切り開く モデルのポータビリティを高めネイティブに挑む
  25. MLエンジニア視点で注目した、iPhoneとGoogle Pixelの進化 • iPhoneの顔認証 ◦ カメラとプロセッサの進化により、指紋認証から顔認証へ ◦ iPhone12以降では、iOS 15.4 よりマスク姿でのロック解除に対応

    • Google Pixelの音声認識 ◦ Pixel 4以降、音声認識がエッジAIとして動くことで、処理速度が大きく向上 An All-Neural On-Device Speech Recognizer, Google AI Blog, 2019 左が従来の音声認識、右が新しい音声認識 Video credit: Akshay Kannan and Elnaz Sarbar
  26. エッジAIを取り巻くエコシステム • エッジAIの進歩と端末性能の向上がアプリのUXを変え、差別化要素となっている ◦ 動画SNSや写真加工アプリのAI補正で、見た目は簡単に盛れる時代 ◦ では、声質はどうか?ゲームチェンジャーが現れるのはこれから • プラットフォームによって、OS標準でサポートされる推論バックエンドは異なる ◦

    Android → Tensorflow Lite/NNAPI ◦ macOS/iOS → CoreML ◦ Windows → DirectML • 一方で推論バックエンドの差異を吸収するエコシステムは急速に発展している ◦ ONNX ◦ OpenVINO IR • 最後に、これらエコシステムの利用を前提に、より発展的な話題を扱いたい
  27. Calculate the STFT magnitude using a convolutional neural network nnAudio:

    STFTを用いた信号処理を、様々な推論バックエンドで動かす 音声信号処理ではSTFTを多用するが、多くの推論バックエンドは対応する演算子を持たない • 具体的には、波形からSpectrogramを抽出する過程で使う torch.stft が問題になる • PyTorchの場合、nnAudioを組み込むことで下図のようにConv1D主体のモデルが構築可能 • これにより様々な推論バックエンドで動くようになる。なおTensorflowの場合はkapreが有用。 conv1D conv1D pow(2) pow(2) DFT kernels add pad sqrt STFT magnitude
  28. MMDeploy: モデル定義コードを解析し、問題箇所を差し替え • MMDeploy は OpenMMLabというCV系フレームワークにおけるデプロイツールという位置付け ◦ ONNX Runtime, TensorRT,

    ncnn, OpenVINO といった推論バックエンドを想定 • 重要なのが Function Rewriter と Custom Symbolic いうドメインを問わないモデル修正機能 ◦ フォーマット変換やランタイム実行に失敗するケースで役立つ実装例がある ◦ 修正対象となる具体的な演算子と処理内容は以下の通り ▪ 制御フローを静的に展開 • torch.Tensor.repeat ▪ より一般的な演算子で再構成 • torch.topk • torch.Tensor.size • torch.nn.functional.linear/interpolate/group_norm • torch.onnx.symbolic_opset9._generic_rnn