🚀 speecht5_tts_hr
这是一个针对克罗地亚语微调的 SpeechT5 文本转语音模型。它基于 SpeechT5 模型,通过在克罗地亚语数据集上进行微调,能够更精准地将文本转换为克罗地亚语语音,为克罗地亚语的语音合成提供了有效的解决方案。
✨ 主要特性
- 多模态处理:SpeechT5 模型在一个架构中包含三种语音模型,可实现语音转文本(用于自动语音识别或说话人识别)、文本转语音(用于声音合成)以及语音转语音(用于不同语音之间的转换或语音增强)。
- 统一表示学习:模型先在不同的语音到文本和文本到语音的数据模态上进行预训练,在文本和语音的统一表示空间中学习,能够同时从文本和语音中学习信息。
- 可微调性:可以针对不同任务(如克罗地亚语等前南斯拉夫地区语言的文本转语音)对预训练模型进行微调。
📦 安装指南
文档未提及安装步骤,故跳过此章节。
💻 使用示例
文档未提供代码示例,故跳过此章节。
📚 详细文档
模型
SpeechT5 是在 LibriTTS 数据集上针对语音合成(文本转语音)进行微调的模型。它是成功的 T5 模型(文本到文本转移变换器)的升级版,T5 模型仅针对自然语言处理进行训练。该模型最初由微软研究团队在科学论文 "SpeechT5: Unified - Modal Encoder - Decoder Pre - Training for Spoken Language Processing"(https://arxiv.org/abs/2110.07205)中提出。
在上述科学研究中对 SpeechT5 模型进行了广泛评估,结果显示它在包括自动语音识别、语音合成、语音翻译、语音转换、语音增强和说话人识别等广泛的语音处理任务中都取得了非常好的效果。
SpeechT5 模型在一个架构中包含三种语音模型,可用于以下转换:
- 语音到文本 - 用于自动语音识别或说话人识别;
- 文本到语音 - 用于声音合成;
- 语音到语音 - 用于不同语音之间的转换或语音增强。
SpeechT5 模型由一个通用的编码器和解码器网络组成,另外还有六个特定于所处理数据模态(语音/文本)的神经网络。其独特之处在于,该模型首先在不同的语音到文本和文本到语音的数据模态上进行预训练,从而在文本和语音的统一表示空间中学习。这样,模型可以同时从文本和语音中学习。这使得我们能够针对不同任务(如前南斯拉夫地区语言(黑山语、塞尔维亚语、波斯尼亚语、克罗地亚语)的文本转语音)对预训练模型进行微调。
数据集
- LibriTTS(https://www.openslr.org/60/):这是一个多说话人的英语语料库,包含约 585 小时的英语语音,由 Heiga Zen 在谷歌语音和谷歌大脑团队成员的帮助下准备。该语料库专为 TTS(文本到语音)研究而设计,它源自原始的 LibriSpeech 语料库(https://www.openslr.org/12/),即来自 LibriVox 的 mp3 音频文件和来自古登堡计划的文本文件。
- VoxPopuli 数据集:在相关科学论文中发布,包含:
- 23 种语言的 40 万小时未标记语音数据;
- 16 种语言的 1800 小时转录语音数据;
- 17300 小时的“语音到语音”数据;
- 29 小时非英语母语者的转录语音数据,用于带口音语音的研究。
技术实现
为了将基础模型应用于文本转语音转换,对 SpeechT5 模型进行了实验性训练。
由于原始的 SpeechT5 模型仅在英语任务(LibriTTS 数据集)上进行训练,因此需要在可用的克罗地亚语数据上对新模型进行训练。VoxPopuli 集是用于此用途的流行开放数据集之一,它包含 2009 年至 2020 年欧洲议会的录音。鉴于并非所有地区语言的数据都能满足需求,因此从 VoxPopuli 数据集中选取了克罗地亚语数据,因为它的代表性最强。在项目的后续阶段,将收集黑山语、塞尔维亚语和波斯尼亚语的数据,以提高训练质量和模型的准确性。
最终的数据集包含 43 小时转录语音、83 位不同的说话人以及 33.7 万个转录标记(1 个标记 = 3/4 个单词)。
在技术实现的第一阶段,数据集经过了多个处理阶段,以便为训练 SpeechT5 模型进行调整和标准化。数据处理方法属于自然语言处理领域中语言数据操作的标准方法(词汇形成、分词、去除或转换不支持的字符/字母、文本/语音清理、文本归一化)。
在下一阶段,分析了 VoxPopuli 数据集中说话人的统计信息,并据此选择了文本/语音质量令人满意且有足够样本用于模型训练的说话人。在这一阶段,对数据集进行了平衡处理,使高质量文本/语音样本的男性和女性说话人在训练中得到平等体现。
数据准备好后,开始对 SpeechT5 模型的超参数进行调整和优化,这些超参数对于快速、高效地进行模型训练以及获得令人满意的准确性是必要的。进行了多次实验性训练会话以获得最佳超参数,然后在模型评估阶段使用这些超参数。
在用于测试的数据集上对模型进行评估,结果显示出了有希望的结果。模型开始在准备好的数据集上学习,但也显示出了一定的局限性。主要局限性与输入文本序列的长度有关。模型显示出无法为长输入文本序列(超过 20 个单词)生成语音。通过将输入序列划分为较小的单元并以这种形式传递给模型进行处理,克服了这一局限性。出现此局限性的主要原因主要在于缺乏大量数据,而要获得最佳结果则需要在这些数据上对模型进行微调。
🔧 技术细节
- 数据处理:对数据集进行了词汇形成、分词、去除或转换不支持的字符/字母、文本/语音清理、文本归一化等处理,以适应 SpeechT5 模型的训练。
- 说话人选择与数据集平衡:分析 VoxPopuli 数据集中说话人的统计信息,选择文本/语音质量好且样本充足的说话人,并平衡男性和女性说话人的样本。
- 超参数调整:进行多次实验性训练会话,以获得能够使模型快速、高效训练且具有满意准确性的最佳超参数。
- 模型局限性及解决方法:模型在处理长输入文本序列(超过 20 个单词)时存在局限性,通过将输入序列划分为较小单元来解决。
📄 许可证
本项目采用 MIT 许可证。