🎵

超低遅延AIボイスチェンジャーが開く世界

2024/06/24に公開

Parakeet株式会社でResearcherをしている金子(nadare)です。CPUで動く軽量AIボイスチェンジャーParavoの研究開発をしております。

本記事ではParavoのアピールポイントである0.06秒の遅延へのこだわりとそれを実現するための技術について解説したいと思います。
https://www.youtube.com/watch?v=eWqX1maQ24o

ボイスチェンジャーの歴史

従来型ボイスチェンジャー

従来のボイスチェンジャーは主にピッチ(声の高低)やフォルマント(声道の性質)を変え、それに様々なエフェクトをかけることで音声の変換を行っていました。これの実現にはハードウェアを使う方法、ソフトウェアを使う方法など様々ありますが、声に関する専門知識と入力する声を人力で調整するテクニックが必要でした。

疑似リアルタイムAIボイスチェンジャー

近年ではAI技術の発達により、ピッチやフォルマントを信号処理的に変えるのではなく、ディープラーニングの力によって特定の話者の声に模倣して変換することができるようになりました。また、技術の進化によって変換先の音声のみを用意すれば十分な学習できるようになりました。

現在最も有名なのが2023年に出たAIボイスチェンジャー、RVC[1]です。これは様々な用途のために長時間学習された音声の基盤モデルHuBERT[2]から抽出した特徴量を使って音声変換を行うことで、変換先の音声さえあれば音声変換モデルを作れるようになりました。また、RVCは一文変換のアーキテクチャでしたが、VCClient[3]や公式のリアルタイム音声変換インターフェースを用いることによってリアルタイムの音声変換を行うことができるようになりました。

リアルタイムAIボイスチェンジャー

RVCの登場から1年たち、2024年現在ではリアルタイム音声変換に特化して設計されたAIボイスチェンジャーが登場するようになりました。弊社のParavoもその一つで、最先端のAI技術によって変換元の音声で数秒チューニングするだけで、スマートフォンやノートPCといったデバイスでも0.1秒ほどの遅延で様々なキャラクターの声に変換できるようになりました。

音声遅延によるコミュニケーションの変化

リアルタイムAIボイスチェンジャーといっても、AIでは大量の計算を行うため従来型のボイスチェンジャーに比べて発話から変換しその声を聞くまでのラグが大きくなる傾向にあります。おおよその音声遅延によるコミュニケーションの変化をまとめてみます。

1秒以上の遅延😱

1秒以上の遅延となると、会話のキャッチボールが困難になります。TV中継などで遠くのアナウンサーと会話するシーンなどを思い浮かべてください。発言の区切りがどこで終わったのかがわからないため、例えば交信が終わった際に「over」とつけるなどの工夫が必要となります。

0.25秒以上の遅延😣

このくらいの遅延ではある程度スムーズに会話できるようになりますが、相槌や応答が難しく、複数人の会話で発言タイミングが被ってしまうということがあります。

0.1秒以上の遅延🤔

この程度の遅延になればスムーズに会話することができるようになります。一方で自身の変換した音声を聞きながら喋るには難しいラインで、集中力が削がれてしまいます。

0.06秒の遅延😊

この遅延になると、普通の会話では変換された音声と自身の音声のズレにおおよそ違和感を感じなくなってくるため、変換音声をチェックしながら会話に集中し楽しむことができるようになります。ただし、カラオケなどで伴奏に合わせて歌うことなどはまだ難しく、さらなる改善が必要です。

Paravoにおける低遅延化の工夫

(この章については技術的興味のある方だけ読んでいただければ幸いです)

モデル構造の工夫

RVCはHuBERTを用いて音声から特徴を抽出していますが、このHuBERTは様々な汎用性のためリアルタイム音声変換に特化しては設計されていません。そのため、RVCをリアルタイム変換で用いる際は、0.1秒の音声を変換する際は前の0.9秒の音声をつなげることでHuBERTが解釈できる一定の長さの音声にして繰り返し入力しています。前項で「疑似」リアルタイムAIボイスチェンジャーとしたのはこのような理由からです。Paravoは、リアルタイム変換に適したモデル構造に設計することで、CPUでも低遅延で変換できるように計算コストを下げています。

また、モデルの構造も最先端のAIアーキテクチャを調査し検証しながら取り入れています。よく機械学習のモデルではFLOPSという計算回数によってモデルが比較されるのですが、これは実際の計算時間(レイテンシ)とは比例しません。そのため、エッジデバイス向け深層学習では実デバイスでの計算時間を考慮したアーキテクチャの研究がされています。音声に限らず様々な分野の深層学習の研究から、CNN、RNN、Transformer、最近ではSSMといったそれぞれの構造について計算時間あたりの性能を調査・実験することでコストパフォーマンスを上げています。

ライブラリ選定

同じモデル構造でもライブラリの種類やバージョンによってパフォーマンスが変わります。ParavoではPyTorchで学習しONNXに変換してONNX Runtimeによる推論を行っています。PyTorchはTensorFlowに比べ音声系に必要なエコシステムが充実している点が特徴です。このPyTorchのモデルをRustで動かせるようONNXファイルに変換する際、計算グラフの構造から最適化を行い一部の連続した計算を一括にまとめるなどをして高速化を行っています。これらのライブラリについて仕様やアップデートを調べ、それに適したモデル構造を逆算することも高速化の秘訣です。

アプリの実装にはtauriというRustを用いたフレームワークを用いています。Rustは速度面で優秀な言語で、パフォーマンスを要求するアプリケーションに適しています。Rustで使えるONNX Runtimeのラッパーも複数あるので、その中から技術選定を行った結果、現在はortを採用しています。

自前実装

Rustは高速な言語ですが、一方で音声関連のライブラリがまだ充実しているとは限りません。前回のRustでリバーブを実装するではRustで使えるエフェクトのライブラリがなかったので自前で実装しました。

他にも様々な面から自前実装で改善を行った例として、Paravoのv1.0.8アップデートにおけるリサンプリング(機器やモデルに合わせたサンプリングレートの変更)の高品質化があります。Rustでリサンプリングの実装を見直して高品質化を検証した際、RustとPythonのリサンプリング品質に差があったため、Rust側の高品質化がかえって変換に悪影響を及ぼしました。そこで学習時のPythonでのリサンプリングも高品質化を実装して推論環境に合わせることで全体的な改善を行いました。かつ、それでも悪影響が発生しうるケースににおいてはUIで警告を表示するような実装も行っています。

まとめ

Paravoでは最先端のAI研究とプログラミング実装の開発を組み合わせることで、スムーズに変換された音声で会話する楽しさを作り出しています。現在も様々なアプローチにより改良を続けていて、昨年末のα版リリース時より低遅延かつ高品質化を達成しています。現在の製品版Paravoでも、ずんだもん、つくよみちゃん、小春音アミを含む5キャラクターは無料で使えて品質をチェックすることが可能です。この機会に是非最新版のParavoをDLして音声変換の進化を体感してみてください。公式DLページ

脚注
  1. Retrieval-based-Voice-Conversionの略、公式リポジトリ ↩︎

  2. BERTを元にした音声のSSLモデルの一種、論文(arXiv) ↩︎

  3. w-okada氏の開発するリアルタイム音声変換を行うためのクライアントソフトウェア、公式リポジトリ ↩︎

Parakeet 株式会社

Discussion