OpenSource-Hub

VoxCPM

ライブラリ

OpenBMB/VoxCPM

无分词器的多语言语音合成系统,支持语音设计与克隆。

概要

VoxCPM2 是无分词器的文本转语音系统,采用扩散自回归架构。支持30种语言、语音设计、可控语音克隆及48kHz音频输出。基于MiniCPM骨干网络,20亿参数在200万小时数据上训练。

README プレビュー

VoxCPM2: Tokenizer-Free TTS for Multilingual Speech Generation, Creative Voice Design, and True-to-Life Cloning\n\n\n  English | 中文\n\n\n\n  \n  \n  \n  \n  \n  \n  \n\n\n\n  \n  \n  \n\n\n\n\n\n  👋 Join our community for discussion and support!\n  \n  \n     Feishu\n  \n   | \n  \n     Discord\n  \n\n\nVoxCPM is a **tokenizer-free** Text-to-Speech system that directly generates continuous speech representations via an end-to-end **diffusion autoregressive architecture**, bypassing discrete tokenization to achieve highly natural and expressive synthesis.\n\n**VoxCPM2** is the latest major release — a **2B** parameter model trained on **over 2 million hours** of multilingual speech data, now supporting **30 languages**, **Voice Design**, **Controllable Voice Cloning**, and **48kHz** studio-quality audio output. Built on a [MiniCPM-4](https://github.com/OpenBMB/MiniCPM) backbone.\n\n### ✨ Highlights\n\n- 🌍 **30-Language Multilingual** — Input text in any of the 30 supported languages and synthesize directly, no language tag needed\n- 🎨 **Voice Design** — Create a brand-new voice from a natural-language description alone (gender, age, tone, emotion, pace …), no reference audio required\n- 🎛️ **Controllable Cloning** — Clone any voice from a short reference clip, with optional style guidance to steer emotion, pace, and expression while preserving the original timbre\n- 🎙️ **Ultimate Cloning** — Reproduce every vocal nuance: provide both reference audio and its transcript, and the model continues seamlessly from the reference, faithfully preserving every vocal detail — timbre, rhythm, emotion, and style (same as VoxCPM1.5)\n- 🔊 **48kHz High-Quality Audio** — Accepts 16kHz reference audio and directly outputs 48kHz studio-quality audio via AudioVAE V2's asymmetric encode/decode design, with built-in super-resolution — no external upsampler needed\n- 🧠 **Context-Aware Synthesis** — Automatically infers appropriate prosody and expressiveness from text conte

FAQ (5)

トラブル対応
PyTorch 2.11でCPU上でVoxCPMを実行する際の'Dimension out of range'エラーを修正する方法

これはPyTorch 2.11.0+における既知のバグで、CPU上でscaled_dot_product_attentionが「Dimension out of range (expected to be in range of [-1, 0], but got -2)」で失敗する原因となります。回避策: PyTorchを2.11未満のバージョン(例: 2.5.1)にダウングレードしてください。CPUのみの場合、pipを使用してtorch==2.5.1をインストールしてください(例: pip install torch==2.5.1)。GPU(CUDA 12.1)の場合、torch==2.5.1+cu121を使用してください。詳細はPyTorch issue #163597を参照してください。

参照 Issue #286
トラブル対応
VoxCPM2が同じGPU上で複数のサブプロセスワーカーを使用すると、なぜCUDAエラー(例:「Offset increment outside graph capture」)でクラッシュするのですか?

これは、torch.compileのCUDAグラフ最適化によって、複数プロセスがGPUメモリプールを共有する際に発生する既知の不安定性です。推奨される回避策は、nano-vllm-voxcpm (https://github.com/a710128/nanovllm-voxcpm) や vllm-omni (https://github.com/OpenBMB/VoxCPM#-production-serving-vllm-omni) のようなシングルプロセスサーバーアーキテクチャを使用することです。これにより、マルチプロセスでのCUDAグラフ競合を回避できます。nano-vllm-voxcpm向けのプロダクション対応FastAPIラッパーは、https://github.com/uttera/uttera-tts-vllm で入手可能です。

参照 Issue #269
トラブル対応
なぜBlackwell (RTX 5090) GPU上でnano-vllmを用いたLoRAファインチューニングを使用した場合に、音質が徐々に劣化するのか?

これは、Blackwell (sm_120) アーキテクチャ上で、CUDAグラフメモリプールとLoRAの競合、およびnano-vllmのスケジューラにおけるオブジェクトリークによって発生する既知の問題です。唯一効果的な回避策は、推論プロセスを2~3時間ごとに定期的に再起動することです。これにより、リークしたオブジェクトがリセットされ、GPUメモリがデフラグされます。恒久的な修正については、issue #326 および nano-vllm-voxcpm #61 を追跡してください。

参照 Issue #326
トラブル対応
voxcpm2 ボイスクローンが歪んで悪魔のような出力を生成し、オーディオの長さが正しくないのはなぜですか?

これはvoxcpm2およびvoxcpm1.5における既知の不安定性です。一時的な回避策として、同じ入力で正しく動作するvoxcpm0.5bに切り替えてください。まだ恒久的な修正はありません。更新についてはGitHub issueを監視してください。

参照 Issue #309
トラブル対応
torch.compileを使用する際の「triton is not installed」という警告を修正する方法は?

使用しているPyTorchに対応したtritonバージョンをインストールしてください。torch==2.5.1の場合は、triton==3.1.0(NVIDIA GPU搭載のLinux)を使用します。ハードウェアがtritonをサポートしているか確認してください(compute capability 7.0以上)。Windowsのサポートは限定的です。機能に影響がない場合は警告を無視してください。修正方法:pip install triton==3.1.0。誤ったバージョン(例:2.1.0でエラーが発生した場合)をインストールした場合は、アンインストールして正しいバージョンをインストールしてください:pip uninstall triton、その後pip installで正しいバージョンをインストール。

参照 Issue #36