🚀 微调版丹麦语语音合成模型(speecht5_tts-finetuned-nst-da)
本模型是基于丹麦语语音合成的强大工具,它在特定数据集上微调,能高效实现丹麦语文本到语音的转换,在输出质量和推理时间上表现出色,还提供了便捷的使用界面。
🚀 快速开始
本模型是 microsoft/speecht5_tts 在 NST 丹麦语自动语音识别数据库数据集上的微调版本。在评估集上取得了以下结果:
✨ 主要特性
填补空白
鉴于丹麦语是一种低资源语言,在线上可用的开源丹麦语文本转语音合成器并不多。截至编写本文时,在 🤗 上仅有的其他实现是 [facebook/seamless - streaming](https://huggingface.co/facebook/seamless - streaming) 和 [audo/seamless - m4t - v2 - large](https://huggingface.co/audo/seamless - m4t - v2 - large)。本模型提供了一种更简单的替代方案,在输出质量和推理时间方面都表现良好。
便捷界面
与上述模型不同,本模型在 🤗 上还有一个关联的 Space [JackismyShephard/danish - speech - synthesis](https://huggingface.co/spaces/JackismyShephard/danish - speech - synthesis),它为丹麦语文本转语音合成提供了一个简单的界面,还可选择进行语音增强。
📦 安装指南
文档未提及安装步骤,暂不提供相关内容。
💻 使用示例
基础用法
示例脚本展示了如何使用该模型进行推理,可在 [这里](https://github.com/JackismyShephard/hugging - face - audio - course/blob/main/notebooks/inference/finetuned - nst - da - inference.ipynb) 找到。
📚 详细文档
预期用途与限制
预期用途
该模型旨在用于丹麦语文本到语音的合成。
限制条件
- 由于使用了 microsoft/speecht5_tts 的默认分词器,该模型无法识别特殊符号,如 "æ"、"ø" 和 "å"。
- 该模型最适合短到中等长度的输入文本,期望输入文本包含不超过 600 个词汇标记。
- 为获得最佳性能,应给模型提供一个丹麦语说话者嵌入,理想情况下,该嵌入是使用 [speechbrain/spkrec - xvect - voxceleb](https://huggingface.co/speechbrain/spkrec - xvect - voxceleb) 从 [alexandrainst/nst - da](https://huggingface.co/datasets/alexandrainst/nst - da) 训练分割的音频剪辑中生成的。
- 该模型的输出是对数梅尔频谱图,应使用 microsoft/speecht5_hifigan 将其转换为波形。为获得更高质量的输出,可使用 [ResembleAI/resemble - enhance](https://huggingface.co/ResembleAI/resemble - enhance) 对生成的波形进行增强。
训练和评估数据
该模型在 [alexandrainst/nst - da](https://huggingface.co/datasets/alexandrainst/nst - da) 上进行训练和评估,使用均方误差(MSE)作为损失函数和评估指标。数据集的预处理步骤如下:
- 特殊字符,如 "æ"、"ø" 和 "å" 被转换为其拉丁等效字符,并且包含数字的文本示例被移除,因为两者都不在 microsoft/speecht5_tts 分词器的词汇表中。
- 通过排除示例少于 280 个或多于 327 个的说话者来进行训练分割平衡。
- 尝试使用 [speechbrain/metricgan - plus - voicebank](https://huggingface.co/speechbrain/metricgan - plus - voicebank) 对音频进行增强,以去除不需要的噪音。
训练过程
训练脚本
用于训练该模型(及其数据预处理)的脚本可在 [这里](https://github.com/JackismyShephard/hugging - face - audio - course/blob/main/notebooks/training/finetuned - nst - da - training.ipynb) 找到。
训练超参数
训练期间使用了以下超参数:
属性 |
详情 |
学习率 |
1e - 05 |
训练批次大小 |
16 |
评估批次大小 |
16 |
随机种子 |
42 |
优化器 |
Adam(β1 = 0.9,β2 = 0.999,ε = 1e - 08) |
学习率调度器类型 |
线性 |
学习率调度器预热比例 |
0.1 |
训练轮数 |
20 |
混合精度训练 |
原生自动混合精度(Native AMP) |
训练结果
训练损失 |
轮数 |
步数 |
验证损失 |
0.4445 |
1.0 |
9429 |
0.4100 |
0.4169 |
2.0 |
18858 |
0.3955 |
0.412 |
3.0 |
28287 |
0.3882 |
0.3982 |
4.0 |
37716 |
0.3826 |
0.4032 |
5.0 |
47145 |
0.3817 |
0.3951 |
6.0 |
56574 |
0.3782 |
0.3971 |
7.0 |
66003 |
0.3782 |
0.395 |
8.0 |
75432 |
0.3757 |
0.3952 |
9.0 |
84861 |
0.3749 |
0.3835 |
10.0 |
94290 |
0.3740 |
0.3863 |
11.0 |
103719 |
0.3754 |
0.3845 |
12.0 |
113148 |
0.3732 |
0.3788 |
13.0 |
122577 |
0.3715 |
0.3834 |
14.0 |
132006 |
0.3717 |
0.3894 |
15.0 |
141435 |
0.3718 |
0.3845 |
16.0 |
150864 |
0.3714 |
0.3823 |
17.0 |
160293 |
0.3692 |
0.3858 |
18.0 |
169722 |
0.3703 |
0.3919 |
19.0 |
179151 |
0.3716 |
0.3906 |
20.0 |
188580 |
0.3709 |
框架版本
- Transformers 4.37.2
- Pytorch 2.1.1+cu121
- Datasets 2.17.0
- Tokenizers 0.15.2
📄 许可证
本模型使用 MIT 许可证。