{"full_name":"OpenBMB/VoxCPM","owner":"OpenBMB","name":"VoxCPM","url":"https://github.com/OpenBMB/VoxCPM","description":"VoxCPM2: Tokenizer-Free TTS for Multilingual Speech Generation, Creative Voice Design, and True-to-Life Cloning","homepage":"https://voxcpm.com","topics":[],"language":"Python","license":"Apache-2.0","avatar":"https://avatars.githubusercontent.com/u/89920203?v=4","created_at":"2025-09-16T03:41:49Z","pushed_at":"2026-11-09T07:36:59Z","metrics":{"stars":42170,"forks":4803,"watchers":163,"issues":341,"prs":114,"releases":14,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":0},"growth":{"day":{"stars":198,"forks":21,"base_day":"2026-11-09"},"week":{"stars":1194,"forks":137,"base_day":"2026-11-03"},"month":{"stars":3842,"forks":469,"base_day":"2026-10-11"}},"history":{"dates":["2026-09-06","2026-09-07","2026-09-08","2026-09-09","2026-09-10","2026-09-11","2026-09-12","2026-09-13","2026-09-14","2026-09-15","2026-09-16","2026-09-17","2026-09-18","2026-09-19","2026-09-20","2026-09-21","2026-09-22","2026-09-23","2026-09-24","2026-09-25","2026-09-26","2026-09-27","2026-09-28","2026-09-29","2026-09-30","2026-10-01","2026-10-02","2026-10-03","2026-10-04","2026-10-05","2026-10-06","2026-10-07","2026-10-08","2026-10-09","2026-10-10","2026-10-11","2026-10-12","2026-10-13","2026-10-14","2026-10-15","2026-10-16","2026-10-17","2026-10-18","2026-10-19","2026-10-20","2026-10-21","2026-10-22","2026-10-23","2026-10-24","2026-10-25","2026-10-26","2026-10-27","2026-10-28","2026-10-29","2026-10-30","2026-10-31","2026-11-01","2026-11-02","2026-11-03","2026-11-04","2026-11-09","2026-11-10"],"stars":[36061,36111,36145,36180,36197,36217,36247,36488,36585,36644,36696,36739,36817,36858,36897,36928,36951,36973,37301,37564,37659,37708,37771,37801,37850,37886,37918,37948,37979,37993,38070,38137,38260,38262,38286,38328,38350,38383,38414,38449,38513,39160,39220,39301,39371,39429,39476,39588,39631,39663,39922,40158,40512,40663,40733,40781,40817,40852,40976,41000,41972,42170],"forks":[4120,4124,4132,4135,4139,4142,4146,4171,4178,4178,4179,4183,4195,4200,4197,4199,4199,4200,4238,4265,4273,4279,4289,4291,4300,4306,4311,4317,4315,4317,4321,4326,4333,4327,4328,4334,4334,4337,4343,4346,4351,4433,4443,4454,4464,4470,4477,4489,4500,4500,4545,4564,4601,4624,4634,4638,4641,4651,4666,4671,4782,4803],"watchers":[155,155,155,155,156,156,157,161,161,161,162,162,163,162,162,162,162,162,164,165,165,168,168,167,168,168,168,168,168,170,170,171,171,171,171,171,171,171,169,169,168,168,167,167,165,165,165,165,166,167,170,170,164,165,165,165,164,164,164,164,163,163],"issues_open":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"prs_open":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"boards":{"daily":180,"weekly":105,"monthly":142,"weekly_rate":149,"monthly_rate":147},"same_owner":[{"full_name":"OpenBMB/ChatDev","name":"ChatDev","boards":{}},{"full_name":"OpenBMB/MiniCPM-V","name":"MiniCPM-V","boards":{}},{"full_name":"OpenBMB/PilotDeck","name":"PilotDeck","boards":{}},{"full_name":"OpenBMB/ToolBench","name":"ToolBench","boards":{}},{"full_name":"OpenBMB/UltraRAG","name":"UltraRAG","boards":{}}],"issues":[{"number":213,"title":"Voice cutoff at the end of words — Polish language","comments":52,"created_at":"2026-04-08T16:41:44Z"},{"number":15,"title":"Finetune New Language?","comments":15,"created_at":"2025-09-19T03:21:40Z"},{"number":114,"title":"Info on finetune scripts","comments":14,"created_at":"2025-12-10T00:40:13Z"},{"number":357,"title":"Hallucination on very short standalone utterances (single-word Polish sentences: \"tak\"/\"nie\"/\"ja\")","comments":11,"created_at":"2026-07-13T13:02:52Z"},{"number":244,"title":"A Cut-off Result or Distortion Sound","comments":11,"created_at":"2026-04-11T00:58:06Z"},{"number":101,"title":"ADD A NEW LANGUAGE","comments":10,"created_at":"2025-12-07T10:45:24Z"},{"number":335,"title":"我这边是使用4张3090 24G显存共96G显存利用Voxcpm2进行微调，官方全参数微调硬件说明40G显存就能搞定，但是我这边完全无法进行，老是报显存溢出","comments":9,"created_at":"2026-06-08T02:34:33Z"},{"number":308,"title":"lora微调训练的时候指定了ref_audio，infer的时候怎么用这个ref_audio？","comments":9,"created_at":"2026-05-18T03:37:20Z"}],"discussions":[],"latest_release":{"name":"v2.0.3: fine-tuning validation, runtime stability, and streaming improvements","tag":"2.0.3","published_at":"2026-05-11T11:59:20Z","body":"## VoxCPM v2.0.3\n\nThis release focuses on fine-tuning usability, runtime stability, safer LoRA loading, and faster streaming inference.\n\n### Highlights\n\n- Added `voxcpm validate` for pre-flight JSONL training manifest validation.\n- Added optional `ref_audio` support in the fine-tuning data pipeline.\n- Improved runtime device handling with explicit `--device` support and safer MPS dtype behavior.\n- Improved VoxCPM2 streaming VAE decoding by avoiding redundant overlap decoding.\n- Hardened legacy LoRA checkpoint loading with `weights_only=True`.\n- Fixed LoRA rank mismatch handling in `lora_ft_webui.py`.\n\n### New Features\n\n- Add `voxcpm validate --manifest train.jsonl` to catch training data issues before fine-tuning.\n  - Validates JSONL format, required `text`/`audio` fields, audio existence/readability, sample rate, duration stats, text length stats, and optional `ref_audio`.\n- Add optional `ref_audio` support for fine-tuning manifests.\n  - Training packing now supports `[103, ref_audio, 104, text, 101, target_audio, 102]`.\n  - Loss is applied only to the target audio segment.\n- Add `--device` CLI argument for model inference commands.\n  - Supports `auto`, `cpu`, `mps`, `cuda`, and indexed CUDA devices such as `cuda:0`.\n\n### Performance\n\n- Improve VoxCPM2 streaming VAE decode with a stateful `StreamingVAEDecoder`.\n  - Streaming decode now processes only the newest latent patch and carries causal convolution state internally.\n  - This removes redundant overlap decoding and reduces streaming VAE decode overhead.\n\n### Fixes\n\n- Fix CUDA Graph dynamic-shape accumulation by using the uncompiled feature encoder for prefill.\n- Fix CPU SDPA attention mask broadcasting by using an explicit broadcastable mask shape.\n- Fix non-string text validation order to raise the intended `ValueError` instead of `AttributeError`.\n- Fix file descriptor leaks when loading `config.json` in local model loaders.\n- Fix MPS audio quality issues by promoting low-precision dtypes to `float32` on Apple Silicon by default.\n- Fix `VOXCPM_MPS_DTYPE` override validation to match supported dtype aliases.\n- Fix LoRA rank mismatch in `lora_ft_webui.py` by reloading the model when checkpoint rank differs.\n- Fix Web Demo control text handling by stripping parentheses before constructing the model prompt.\n\n### Security\n\n- Legacy LoRA `.ckpt` / `.pth` loading now uses `torch.load(..., weights_only=True)`.\n- This reduces the risk of arbitrary pickle payload execution while preserving tensor-only checkpoint compatibility.\n\n### Documentation\n\n- Document vLLM-Omni as a production serving option for VoxCPM2.\n- Update Web Demo usage to `python app.py --port 8808`.\n- Update ModelScope local download example.\n- Clarify Python requirement as `>=3.10,<3.13`.\n- Add ComfyUI_RH_VoxCPM to the ecosystem list.\n\n### Tests\n\n- Added coverage for training manifest validation, including sample-rate mismatch, missing audio, relative paths, `ref_audio`, and CLI exit codes.\n- Added runtime device selection tests.\n- Added LoRA checkpoint safety tests for tensor-only checkpoints and malicious pickle payloads.\n- Added CLI tests for `--device` defaults and argument forwarding.\n\n### Contributors\n\nThanks to the contributors included in this release:\n\n- @KevinAHM\n- @kuishou68\n- @sharziki\n- @SuperMarioYL\n- @Oumnya\n- @linyueqian\n- @shaun0927\n- @gluttony-10\n\n**Full Changelog**: https://github.com/OpenBMB/VoxCPM/compare/2.0.2...2.0.3"},"readme":true,"readme_zh":true,"news":[{"title":"VoxCPM: Tokenizer-Free TTS for Context-Aware Speech Generation and Voice Cloning","url":"https://github.com/OpenBMB/VoxCPM","hn":"https://news.ycombinator.com/item?id=46162654","source":"Hacker News","lang":"en","date":"2025-12-05","points":3,"comments":0},{"title":"VoxCPM: Speech Synthesis Without Tokenizers - The Technology of Designing and Cloning Voices and the Remaining Risks","url":"https://note.com/onigiri_t8y/n/n44c967ba1691?hl=en","source":"note","lang":"en","date":"2026-11-05"},{"title":"GitHub 开源项目解析：OpenBMB/VoxCPM —— Tokenizer-Free 多语言语音合成与声音克隆模型","url":"https://blog.csdn.net/Rthan/article/details/161615462","source":"blog.csdn","lang":"zh","date":"2026-06-02"},{"title":"VoxCPM 1.5正式开源，语音生成全面升级","url":"https://www.donews.com/news/detail/4/6301125.html","source":"DoNews","lang":"zh","date":"2025-12-11"},{"title":"面壁智能 VoxCPM 1.5 语音生成 AI 模型开源：高采样音频克隆，生成效率翻倍","url":"https://www.ithome.com/0/903/935.htm","source":"IT之家","lang":"zh","date":"2025-12-10"},{"title":"【GitHub项目推荐--VoxCPM：无分词器TTS与真实语音克隆完全指南】","url":"https://blog.csdn.net/j8267643/article/details/151927407","source":"blog.csdn","lang":"zh","date":"2025-09-20"},{"title":"面壁智能：發佈語音生成基座模型VoxCPM","url":"https://news.futunn.com/hk/flash/19394991/minimax-intelligence-launches-the-voice-generation-foundation-model-voxcpm","source":"news.futunn","lang":"zh","date":"2025-09-18"},{"title":"面壁智能发布语音生成基座模型VoxCPM：0.5B参数号称媲美真人","url":"https://news.qq.com/rain/a/20250918A06KJS00","source":"腾讯网","lang":"zh","date":"2025-09-18"},{"title":"面壁智能发布语音生成基座模型VoxCPM，称可媲美真人、能用方言","url":"https://news.qq.com/rain/a/20250918A07TI300","source":"腾讯网","lang":"zh","date":"2025-09-18"},{"title":"面壁智能：发布语音生成基座模型VoxCPM","url":"https://finance.eastmoney.com/a/202509183517402656.html","source":"东方财富网","lang":"zh","date":"2025-09-18"},{"title":"VoxCPM 2 Review + Tutorial - 2026 | Make Human AI Voice Cloning With Emotions","url":"https://news.google.com/rss/articles/CBMiY0FVX3lxTE5zc3pwaHpaT09KZUxPVjBUTWpiWWZBYW5ObkRNWXJydTJMenFhUWY3Nlp1aXoxR0YwU1NMQllZTVNjemh3bTNYQnVpd3puU0dVc2hmTkpQYlFBNHo0cTNQcjA5RQ?oc=5","source":"YouTube","lang":"en","date":"2026-05-06"},{"title":"VoxCPM2: The Open-Source Voice Model That Beats ElevenLabs on Similarity — But the Full Benchmark…","url":"https://news.google.com/rss/articles/CBMi0gFBVV95cUxQcDJlVG55SFFRSkZrN0F4NlVFUkFWM0hKeHUzbDJ5NVBqdkxQSFRiTGhOQlZXTmhlRTBObWI0cTJfakUwMTJUdWtkQk5Fa0s2RkRPYmFsMVdPVEVteGJONWpFSWdWVTFVUTdRM1RBcGNnWmNmYm1fVjZJSE9tVXhSeWczTTYzZUhRbkJ0cWpGa2czTVYwUnhGMjFseDVoRDNGMmpid3U2YUttWktDbEZuMWJJWjhSX2NmOG9uZjVXT05HYU11RF9zX0NKMlNrNkdpeUE?oc=5","source":"Medium","lang":"en","date":"2026-04-12"},{"title":"张雪机车燃爆封神！国产2B语音模型重磅开源，全网听完都起鸡皮疙瘩","url":"https://news.google.com/rss/articles/CBMiSEFVX3lxTE41NURoelphQnAwZ0kzQXI5Zkx1aU5TRS0zc2dUbzZ2TzZCeFM5ZEQ3NEdDeWNHQllkNUNkY1NpdUgyTjBtLVhVTg?oc=5","source":"智源社区","lang":"zh","date":"2026-04-09"},{"title":"AI 语音赛道的角逐，可能已经结束了","url":"https://news.google.com/rss/articles/CBMiVkFVX3lxTE1xYWV3a05QZzZfTlJhTjRHNnlIRXpVWUFBRkNIcFQ5LTIyVk1VekhVZEVDOXFhdmd3WThOTlJEQWJxM2otblA0R2dnV2QzZGgxclF1LUpB?oc=5","source":"腾讯新闻","lang":"zh","date":"2026-04-08"},{"title":"VoxCPM 1.5 正式开源，语音生成能力全面升级","url":"https://news.google.com/rss/articles/CBMiSEFVX3lxTE94X1hkOUVYTUptQzdPczR4dUYzM3VMdkpiajRObV9LSjZ1c2p4RWtEMUxiU2djc19zcFBMUk8tSkZlbDM0Nk9GcA?oc=5","source":"品玩","lang":"zh","date":"2025-12-11"},{"title":"面壁智能联合清华发布VoxCPM语音模型 性能达业界顶尖","url":"https://news.google.com/rss/articles/CBMiSEFVX3lxTE9YYUZIOFVGdkpnTWhtcmtaMnVJN2p4TV9QMlJOOVpxakRDTUdBZzdDNEQtUi1fcVZGY2tfd29lX1dTbFh0Vks1Rg?oc=5","source":"品玩","lang":"zh","date":"2025-09-19"}],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}