
最近语音合成领域也是又热闹起来了,小米、面壁智能等都有新的语音模型开源。
自从 ChatTTS 引爆中文 TTS 后,各种开源模型层出不穷,但大多都集中在中文或少数几个主流语言上。
毕竟现在全球化趋势下,很多应用场景都需要支持多种语言,但现有的模型要么语言覆盖少,要么质量一般,要么推理速度慢得让人抓狂。
这时候如果有一个真正能覆盖多语言、同时质量又过硬的开源TTS模型出来就更好了!
结果话音未落,小米就直接扔出了一个王炸——OmniVoice。

一个支持 600+ 语种的零样本语音克隆TTS模型,而且性能指标全面超越 ElevenLabs v2 和 MiniMax 等行业标杆。
OmniVoice 是小米 k2-fsa 团队最新开源的一个大规模多语言零样本TTS模型。

它最大的特点就是支持超过600种语言,这个数字在开源领域里可以说是相当牛了!
更重要的是,它在中英文和多语言benchmark上的关键指标都达到了SOTA水平:
它采用了全新的扩散语言模型风格架构,能够直接从文本生成语音,跳过了传统TTS模型中常见的中间语义token阶段,实现了"一步到位"的高效合成。
1、600+语种覆盖
第一个必须要说的就是它的语言覆盖范围——600+种语言。
现有的主流多语言TTS模型,能覆盖几十种语言就已经很不错了,上百种的都很少见。而OmniVoice直接干到了600+,这意味着世界上绝大多数的语言都能被支持。
2、性能超越 ElevenLabs 和 MiniMax
在多语言benchmark上,OmniVoice的SIM-o(说话人相似度)和WER指标直接超过了ElevenLabs v2和MiniMax。
要知道 ElevenLabs 可是目前商业TTS领域的标杆,能在开源模型上做到这一点,实力可见一斑。
你现在可以用一个开源模型,获得媲美甚至超越商业服务的质量,而且完全免费,想怎么用就怎么用。
3、40倍实时,快到飞起
除了质量,速度也是OmniVoice的一大亮点。它的RTF(实时率)低至0.025,什么概念?就是说生成1秒的语音只需要0.025秒,比实时快了40倍。
4、3-10秒就能克隆声音
语音克隆是很多人关心的功能,OmniVoice在这方面做得也非常出色。
只需要3-10秒的参考音频,就能克隆出几乎以假乱真的声音。
而且这个参考音频的质量要求不高,不需要特别专业的录音设备,手机录的都能用。
5、声音设计
除了语音克隆,OmniVoice还支持声音设计。
也就是说,你不需要任何参考音频,只需要通过描述属性就能生成想要的声音。
支持的属性包括:
这些属性可以自由组合,比如你可以生成"女性、低音调、英式口音"的声音,也可以生成"男性、高音调、四川话"的声音,可玩性非常高。
6、细粒度控制:笑声、拼音纠正都支持
OmniVoice的控制精细程度也让人惊喜。它支持在文本中插入非语言符号,比如[laughter]笑声、[sigh]叹气等,让生成的语音更有感情。
首先你需要安装PyTorch,然后再安装OmniVoice。
NVIDIA GPU用户
# 安装PyTorch(根据你的CUDA版本选择)
pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 --extra-index-url https://download.pytorch.org/whl/cu128
# 安装OmniVoice
pip install omnivoiceApple Silicon用户
# 安装PyTorch
pip install torch==2.8.0 torchaudio==2.8.0
# 安装OmniVoice
pip install omnivoice除了pip,你也可以从GitHub安装最新版本:
pip install git+https://github.com/k2-fsa/OmniVoice.git三种使用方式
OmniVoice支持三种生成模式,我们一个个来看。
① 语音克隆
from omnivoice import OmniVoice
import torch
import torchaudio
# 加载模型
model = OmniVoice.from_pretrained(
"k2-fsa/OmniVoice",
device_map="cuda:0", # NVIDIA GPU用这个
# device_map="mps", # Apple Silicon用这个
dtype=torch.float16
)
# 生成语音
audio = model.generate(
text="你好,这是一个零样本语音克隆的测试。",
ref_audio="ref.wav", # 参考音频(3-10秒)
ref_text="参考音频的文本", # 可选,不填会自动用Whisper转录
)
# 保存音频
torchaudio.save("out.wav", audio[0], 24000)② 声音设计
# 不需要参考音频,直接描述属性
audio = model.generate(
text="你好,这是一个零样本声音设计的测试。",
instruct="female, low pitch, british accent",
)
torchaudio.save("out.wav", audio[0], 24000)③ 自动选择声音
# 什么都不用填,让模型自己选
audio = model.generate(text="你好,这是一个自动选择声音的测试。")
torchaudio.save("out.wav", audio[0], 24000)用Web界面更简单
如果你不想写代码,OmniVoice还提供了一个Gradio Web界面,一键启动:
omnivoice-demo --ip 0.0.0.0 --port 8001然后在浏览器打开 http://localhost:8001 就能用了,界面直观,操作简单。
命令行工具
除了Python API和Web界面,OmniVoice还提供了命令行工具,适合批量处理:
# 语音克隆
omnivoice-infer \
--model k2-fsa/OmniVoice \
--text "这是一个文本转语音的测试。" \
--ref_audio ref.wav \
--ref_text "参考音频的文本" \
--output hello.wav
# 声音设计
omnivoice-infer \
--model k2-fsa/OmniVoice \
--text "这是一个文本转语音的测试。" \
--instruct "male, British accent" \
--output hello.wav
# 批量推理
omnivoice-infer-batch \
--model k2-fsa/OmniVoice \
--test_list test.jsonl \
--res_dir results/OmniVoice 这次开源,可以说是给整个TTS领域投下了一颗重磅炸弹。
600+语种覆盖、SOTA级别的质量、40倍实时的速度、简单易用的API,每一点都能打。
对于开发者来说,这意味着你可以用一个开源模型解决几乎所有的TTS需求,不用再为了支持多种语言而折腾多个模型。对于研究人员来说,这个模型的架构设计和训练方法也有很多值得学习的地方。
当然,更重要的是,它让高质量的TTS技术变得触手可及,任何人都能用它来做一些有意思的事情。如果你对语音合成感兴趣,一定不要错过这个项目。
GitHub:
https://github.com/k2-fsa/OmniVoice
如果本文对您有帮助,也请帮忙点个 赞👍 + 在看 哈!❤️
在看你就赞赞我!