Navoiy TTS 现已向所有人开放

Navoiy TTS 开源乌兹别克语语音合成模型

今天,我们决定将 Navoiy TTS 开源。我们以 CosyVoice2-0.5B 为基础,把它放到 GPU 上,加入充足的乌兹别克语音频“食材”进行烹制,最终得到了一个能流畅说乌兹别克语的文字转语音模型。

该模型能将乌兹别克语文本转换为中性或富有表现力的语音,还包含一个规范化工具,在合成前处理数字、日期、时间、撇号和西里尔字母形式的乌兹别克语文本。

没有什么是完美的,这个模型也有局限。关键在于食材,也就是数据。优质食材越丰富,结果就越好。

为什么向所有人开放模型?

日常语言不只是简单的单词。因此,我们训练模型来实现以下功能:

  • 正确读出数字、日期和时间;
  • 正确发音人名和地名;
  • 理解拉丁字母和西里尔字母;
  • 使用自然的停顿;
  • 支持不同的说话风格;
  • 读出句子中出现的俄语和英语单词。

我们也尝试考虑您可能遇到的其他情况,并解决其中的难题。

感谢我们最简单的方式,就是把项目分享给朋友。如果模型能为您的项目提供帮助,我们会非常高兴。

我们很高兴看到您使用我们的模型。感谢您使用我们的语音转文字和文字转语音模型。

如何使用?

按照以下步骤安装、配置并运行模型。检查点无法独立运行,还需要上游 CosyVoice 代码和 CosyVoice2-0.5B 基础模型。

1. 先安装 CosyVoice

bash

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

bash

git clone https://huggingface.co/aisha-org/navoiy-tts
pip install -r navoiy-tts/requirements.txt

请按模型卡片中指定的修订版本下载 CosyVoice2-0.5B 基础模型。

3. 生成语音

bash

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 还提供了规范化模块:

python

from uztts.normalize import normalize

print(normalize('Bugun 16.07.2026, soat 14:30 da uchrashamiz.'))

它将西里尔字母文本转换为拉丁字母,统一撇号,并规范化常见数字、日期、时间、序数等内容。

局限

模型可能读错人名、外来词、缩写和不常见的数字,也可能重复、遗漏或更改单词。我们尚未全面评估方言及多语言文本。

克隆声音之前,必须获得声音所有者的明确同意。请勿将模型用于冒充他人、欺骗、欺诈、骚扰或绕过语音身份验证系统。如果听众可能误以为声音来自真人,应明确告知其为合成语音。

总结

Navoiy TTS 不保证每句话都能获得完美结果。它是一个开放的基础,开发者和研究人员可以测试、改进,并用它构建新产品。

在 Hugging Face 上探索模型,聆听演示并分享您的体验。

参考来源