今天,我们决定将 Navoiy TTS 开源。我们以 CosyVoice2-0.5B 为基础,把它放到 GPU 上,加入充足的乌兹别克语音频“食材”进行烹制,最终得到了一个能流畅说乌兹别克语的文字转语音模型。
该模型能将乌兹别克语文本转换为中性或富有表现力的语音,还包含一个规范化工具,在合成前处理数字、日期、时间、撇号和西里尔字母形式的乌兹别克语文本。
没有什么是完美的,这个模型也有局限。关键在于食材,也就是数据。优质食材越丰富,结果就越好。
为什么向所有人开放模型?
日常语言不只是简单的单词。因此,我们训练模型来实现以下功能:
- 正确读出数字、日期和时间;
- 正确发音人名和地名;
- 理解拉丁字母和西里尔字母;
- 使用自然的停顿;
- 支持不同的说话风格;
- 读出句子中出现的俄语和英语单词。
我们也尝试考虑您可能遇到的其他情况,并解决其中的难题。
感谢我们最简单的方式,就是把项目分享给朋友。如果模型能为您的项目提供帮助,我们会非常高兴。
我们很高兴看到您使用我们的模型。感谢您使用我们的语音转文字和文字转语音模型。
如何使用?
按照以下步骤安装、配置并运行模型。检查点无法独立运行,还需要上游 CosyVoice 代码和 CosyVoice2-0.5B 基础模型。
1. 先安装 CosyVoice
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git
cd CosyVoice
git checkout 074ca6dc9e80a2f424f1f74b48bdd7d3fea531cc
git submodule update --init --recursive
pip install -r requirements.txt
cd ..2. 下载 Navoiy TTS
git clone https://huggingface.co/aisha-org/navoiy-tts
pip install -r navoiy-tts/requirements.txt请按模型卡片中指定的修订版本下载 CosyVoice2-0.5B 基础模型。
3. 生成语音
python navoiy-tts/inference.py \
--cosyvoice-dir CosyVoice \
--base-model-dir CosyVoice/pretrained_models/CosyVoice2-0.5B \
--checkpoint navoiy-tts/emotion_600h_joint.pt \
--reference reference.wav \
--text "Bugun siz bilan muhim bir xabarni baham ko'rmoqchiman." \
--emotion warm \
--output output.wav脚本需要 CUDA 计算支持,生成的音频采样率为 24 kHz。使用 --list-emotions 查看所有可用情绪。
情绪
模型支持 calm、happy、sad、angry、nervous、surprised、whisper、warm、tired 和 sarcastic 情绪。
这些设置不保证特定结果。最终声音取决于文本、参考音频、模型检查点和随机种子。建议在投入生产环境前,用自己的文本进行测试。
规范化
数字和日期可能难以被文字转语音模型准确读出。Navoiy TTS 还提供了规范化模块:
from uztts.normalize import normalize
print(normalize('Bugun 16.07.2026, soat 14:30 da uchrashamiz.'))它将西里尔字母文本转换为拉丁字母,统一撇号,并规范化常见数字、日期、时间、序数等内容。
局限
模型可能读错人名、外来词、缩写和不常见的数字,也可能重复、遗漏或更改单词。我们尚未全面评估方言及多语言文本。
克隆声音之前,必须获得声音所有者的明确同意。请勿将模型用于冒充他人、欺骗、欺诈、骚扰或绕过语音身份验证系统。如果听众可能误以为声音来自真人,应明确告知其为合成语音。
总结
Navoiy TTS 不保证每句话都能获得完美结果。它是一个开放的基础,开发者和研究人员可以测试、改进,并用它构建新产品。
在 Hugging Face 上探索模型,聆听演示并分享您的体验。
