模型简介
模型特点
模型能力
使用案例
🚀 EraX-Smile-UnixSex-F5:为F5-TTS赋予越南语中性音色(支持在线零样本语音克隆!)✨
EraX-Smile-UnixSex-F5模型基于出色的F5-TTS架构(arXiv:2410.06885)构建。为了让它掌握越南语的优美韵律,我们使用了一个庞大的数据集进行微调,其中包含超过270万个仅含越南语的样本,涵盖了公共数据和一个规模达1000小时的私有数据集(非常感谢数据集的使用授权🙏)。
🚀 快速开始
模型下载与使用
本仓库包含4个模型,你可以全部尝试使用:
- model_42000.safetensors
- model_45000.safetensors
- model_48000.safetensors
- overfit.safetensors
模型代码托管在我们的GitHub仓库:EraX Smile Github ,你可以前往查看。
环境安装
在下载本仓库并克隆GitHub代码后,你可以按照以下步骤进行环境安装:
# Ubuntu系统:使用sudo apt install ffmpeg命令安装ffmpeg
# Windows系统请参考https://www.geeksforgeeks.org/how-to-install-ffmpeg-on-windows/进行安装
# 下载我们的GitHub代码
pip install numpy==1.26
pip install matplotlib
pip install vinorm
pip install f5-tts
pip install librosa
运行示例代码
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0" # 指定使用的GPU(如果你使用CPU运行且有足够耐心,可以忽略此步骤)
from vinorm import TTSnorm # 首先对越南语文本进行归一化处理
from f5tts_wrapper import F5TTSWrapper # 我们方便使用的包装类
# --- 配置参数 ---
# 从本仓库下载的模型检查点路径
# 请确保此路径指向实际的.pth、.ckpt或safetensors文件!
eraX_ckpt_path = "path/to/your/downloaded/EraX-Smile-UnixSex-F5/models/model_42000.safetensors" # <-- 请修改此路径!
# 要克隆的语音文件路径
ref_audio_path = "path/to/your/reference_voice.wav" # <-- 请修改此路径!
# 本仓库中的词汇文件路径
vocab_file = "path/to/your/downloaded/EraX-Smile-UnixSex-F5/models/vocab.txt" # <-- 请修改此路径!
# 生成音频的保存目录
output_dir = "output_audio"
# --- 输入文本 ---
# 与参考音频匹配的文本(有助于模型学习语音特征)。请确保该文本与参考音频匹配!
ref_text = "Thậm chí không ăn thì cũng có cảm giác rất là cứng bụng, chủ yếu là cái phần rốn...trở lên. Em có cảm giác khó thở, và ngủ cũng không ngon, thường bị ợ hơi rất là nhiều"
# 要让克隆语音朗读的文本
text_to_generate = "Trong khi đó, tại một chung cư trên địa bàn P.Vĩnh Tuy (Q.Hoàng Mai), nhiều người sống trên tầng cao giật mình khi thấy rung lắc mạnh nên đã chạy xuống sảnh tầng 1. Cư dân tại đây cho biết, họ chưa bao giờ cảm thấy ảnh hưởng của động đất mạnh như hôm nay."
# --- 开始运行 ---
print("正在初始化TTS引擎...(可能需要一些时间)")
tts = F5TTSWrapper(
model_name="F5TTS_v1_Base",
vocoder_name="vocos",
ckpt_path=eraX_ckpt_path,
vocab_file=vocab_file,
use_ema=True,
target_sample_rate=24000,
n_mel_channels = 100,
hop_length = 256,
win_length = 1024,
n_fft = 1024,
ode_method = 'euler',
)
# 对参考文本进行归一化处理(方便模型处理)
ref_text_norm = TTSnorm(ref_text)
# 创建输出文件夹
os.makedirs(output_dir, exist_ok=True)
print("正在处理参考语音...")
# 向模型输入一次参考语音
# 提供参考文本以获得更好的质量,或者将ref_text设置为空字符串,使用Whisper进行自动转录(如果已安装)
tts.preprocess_reference(
ref_audio_path=ref_audio_path,
ref_text=ref_text_norm,
clip_short=True # 将参考音频长度控制在合适范围内(约12秒)
)
print(f"使用的参考音频时长: {tts.get_current_audio_length():.2f} 秒")
# --- 生成新语音 ---
print("正在使用克隆语音生成新语音...")
# 对要生成语音的文本进行归一化处理
text_norm = TTSnorm(text_to_generate)
# 你可以轻松生成多个句子
# 只需将更多归一化后的字符串添加到这个列表中
sentences = [text_norm]
for i, sentence in enumerate(sentences):
output_path = os.path.join(output_dir, f"generated_speech_{i+1}.wav")
# 实际的语音生成过程在此处进行!
tts.generate(
text=sentence,
output_path=output_path,
nfe_step=32, # 去噪步骤。数值越大,速度越慢,但可能效果更好(默认值:32)
cfg_strength=3.0, # 对参考语音风格的遵循程度(默认值:2.0)
speed=1.0, # 语音速度(默认值:1.0)
cross_fade_duration=0.12, # 如果文本被分割成多个块,平滑过渡的时长(默认值:0.15)
sway_sampling_coef=-1
)
print(f"完成!音频已保存到: {output_path}")
print("\n全部完成!请查看输出文件夹。")
其他说明
- 如需使用完整的Web界面并通过Gradio进行控制,请克隆并使用 F5-TTS Github 的原始仓库。
- 我们使用了 Vinorm Team 的优秀库进行越南语文本归一化处理。
✨ 主要特性
- 基于F5-TTS架构:继承了F5-TTS的优秀特性,经过微调后适用于越南语。
- 大规模数据集微调:使用超过270万个越南语样本进行微调,包含公共数据和1000小时的私有数据集。
- 支持零样本语音克隆:可以根据参考语音克隆出相似的语音。
- 多模型选择:仓库中提供了4个不同的模型供用户选择。
📦 安装指南
依赖安装
# Ubuntu系统:使用sudo apt install ffmpeg命令安装ffmpeg
# Windows系统请参考https://www.geeksforgeeks.org/how-to-install-ffmpeg-on-windows/进行安装
# 下载我们的GitHub代码
pip install numpy==1.26
pip install matplotlib
pip install vinorm
pip install f5-tts
pip install librosa
💻 使用示例
基础用法
上述的快速开始部分已经给出了基础的使用示例,你可以按照步骤进行操作。
高级用法
目前文档中未提及高级用法的相关内容,你可以持续关注我们的更新。
📚 详细文档
模型信息
属性 | 详情 |
---|---|
模型类型 | 基于F5-TTS架构的文本转语音模型 |
训练数据 | 超过270万个越南语样本,包括公共数据和1000小时的私有数据集 |
新模型版本 | erax-ai/EraX-Smile-UnixSex-F5 |
标签 | 文本转语音、越南语、女性、男性、中性、语音克隆 |
数据集 | amphion/Emilia-Dataset |
许可证 | cc-by-nc-4.0 |
模型测试
你可以通过以下示例音频来测试模型的效果:
女性语音示例
-
参考音频: 文本:"Ai đã đến Hàng Dương, đều không thể cầm lòng về những nấm mộ chen nhau, nhấp nhô trải khắp một vùng đồi. Những nấm mộ có tên và không tên, nhưng nấm mộ lấp ló trong lùm cây, bụi cỏ."
-
生成音频: 下载并播放生成的音频 文本:"Sáng 18-4, cơ quan chức năng Quảng Ninh cho biết hiện cơ quan Cảnh sát điều tra Công an tỉnh Quảng Ninh đang tiếp tục truy bắt Bùi Đình Khánh, 31 tuổi, tay buôn ma túy đã xả súng làm một chiến sĩ Công an hi sinh."
男性语音示例
-
参考音频: 文本:"Người người hô hào thay đổi phương pháp giảng dạy. Bộ giáo dục và đào tạo Việt Nam không thiếu những dự án nhằm thay đổi diện mạo giáo dục nước nhà. Nhưng trong khi những thành quả đổi mới còn chưa kịp thu về, thì những ví dụ điển hình về bước lùi của giáo dục ngày càng hiện rõ."
-
生成音频: 下载并播放生成的音频 文本:"Tại lễ xuất quân, Thứ trưởng Lê Văn Tuyến cho hay chiều 28.3, Myanmar đã trải qua thảm kịch động đất mạnh nhất từ trước tới nay, gây thiệt hại lớn về người và tài sản, gây ra nhiều dư chấn tại Thái Lan, Ấn Độ và Trung Quốc... Tính đến ngày 29.3, đã có hơn 1.000 người thiệt mạng và hơn 2.300 người bị thương, nhiều người còn mất tích và ước tính con số thương vong sẽ tiếp tục tăng lên."
未来规划
- [X] ⭐ 发布越南语男性语音的检查点
- [ ] 📝 实现实时TTS流式传输的代码
- [ ] 🔥 发布基于Piper的模型,可在iPhone、Android、树莓派4或浏览器上运行 🔥
🔧 技术细节
训练过程
本模型经过了大约12个训练周期的训练,直到接近过拟合状态。整个训练过程耗时近一周,期间经历了一些波折,但最终取得了令人满意的效果。
模型架构
基于F5-TTS架构(arXiv:2410.06885)构建,通过微调使其适应越南语的语音特点。
📄 许可证
代码许可证
我们的代码遵循MIT许可证,你可以自由使用、修改和分发。
模型许可证
很遗憾,基础的F5-TTS模型使用了受BY-NC 4.0许可证(非商业用途)约束的Emilia数据集进行预训练,因此本模型也受此许可证限制。给你带来的不便,我们深表歉意。
⚠️ 重要提示
- 语音克隆技术非常强大,但也伴随着重大的道德责任。
- 预期用途:本模型旨在用于创意目的、辅助工具开发、个人项目以及明确获得同意且优先考虑道德因素的应用场景。
- 禁止用途:我们强烈谴责并严格禁止将本模型用于任何恶意或不道德的目的,包括但不限于:
- 在未经许可的情况下创建深度伪造内容或冒充他人。
- 生成虚假信息、欺诈性内容或诽谤性材料。
- 进行骚扰、滥用或任何形式的犯罪活动。
- 用户责任:使用本模型即表示你同意负责任且合乎道德地使用。你对自己生成的内容负全部责任,并确保其符合所有适用的法律和道德标准。模型创建者(EraX团队)对模型的不当使用不承担任何责任。
请谨慎且合乎道德地使用这项技术。
💡 使用建议
如果你在使用过程中遇到任何问题或有任何建议,欢迎随时向我们反馈。同时,我们鼓励你积极尝试不同的模型和参数设置,以获得更好的使用体验。
如果你觉得本模型对你有帮助,欢迎在我们的GitHub仓库上给我们一个⭐。如果你正在撰写研究论文等内容,并希望引用本模型,可以使用以下BibTeX代码:
@misc{EraXSmileF5_2024,
author = {Nguyễn Anh Nguyên nguyen@erax.ai and The EraX Team},
title = {EraX-Smile-UnixSex-F5: Người Việt sành tiếng Việt.},
year = {2025},
publisher = {Hugging Face},
journal = {Hugging Face Model Hub},
howpublished = {\url{https://github.com/EraX-AI/viF5TTS}}
}
EraX团队将持续努力改进和优化模型,期待为你带来更多更新。如果你有任何想法,无论是反馈、报告漏洞,还是简单的问候,我们都非常欢迎!




