:基于离散语音单元的无文本语音生成实战指南)
在 fairseq 中训练、采样与使用 Unit Language ModelULM基于离散语音单元的无文本语音生成实战指南【免费下载链接】unilmLarge-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities项目地址: https://gitcode.com/GitHub_Trending/un/unilm导读Unit Language ModelULM是 Generative Spoken Language ModelingGSLM流水线中承上启下的核心组件它把由 speech2unit 量化得到的离散语音单元discrete speech units当作语音的拼音文字用标准 Transformer 语言模型学习其序列分布从而在完全没有文本监督的情况下实现语音续写spoken continuation。本篇指南以 ULM 官方文档 为骨架完整覆盖预训练模型下载、数据预处理、模型训练与采样推理的全流程并结合仓库内 sample.py 与 transformer_lm.py 的源码实现深入讲解每个命令行参数的实际作用。读完本文你将能够在 fairseq 中从零训练自己的 ULM、用训练好的模型批量采样生成新的语音单元序列并将其接入 speech2unit → unit2speech 的端到端语音生成与评估流程。背景ULM 在 GSLM 流水线中的位置GSLMGenerative Spoken Language Modeling的目标是构建语音到语音的生成系统输入一段语音系统输出一段新的、语义连贯的语音续写全程不依赖任何文本标注。整个流水线由三个组件串联而成GSLM 总览 中对此有清晰划分Speech to Unit Modelspeech2unit将原始语音量化为离散语音单元例如通过 K-means 聚类把声学特征映射为 50/100/200 个簇编号详见 speech2unit 说明Unit Language Modelulm在离散语音单元序列上训练自回归语言模型学会下一个单元是什么即本文的主角Unit to Speech Modelunit2speech把 ULM 生成或任意给定的单元序列合成为可听的语音详见 unit2speech 说明。此外仓库还提供了 GSLM 指标工具ASR 指标、ABX 指标、sWUGGY/sBLIMP以及 重合成与新语音生成工具。ULM 位于中间层其质量直接决定最终生成语音的流畅度与多样性。预训练 ULM 模型官方文档提供了按声学特征类型 × 词表大小组合预训练好的 ULM 权重。词表大小即 K-means 聚类簇数50 / 100 / 200四种声学特征分别是 LogMel Filterbank、Modified CPC、HuBERT Base 与 Wav2Vec 2.0 Large。对应下载地址如下| 声学特征 | 50 | 100 | 200 | |-|-|-|-| | LogMel Filterbank | download | download | download | | Modified CPC | download | download | download | | HuBERT | download | download | download | | Wav2Vec 2.0 | download | download | download |下载后解压得到的目录中应包含dict.txt词表文件与模型 checkpoint。稍后采样时data-bin参数需要指向这个解压目录因为 sample.py 会通过task.source_dictionary加载该词表来编码输入提示。数据预处理把单元序列转成 fairseq 二进制格式ULM 的训练数据是单元转写文本unit-transcribed text每个音频文件被 speech2unit 模块量化后得到一行由空格分隔的整数单元 ID 序列可参考 quantize_with_kmeans.py 的输出格式文件名|单元ID序列训练数据只需保留 ID 序列部分。假设训练、验证、测试集分别位于data/train.txt、data/valid.txt、data/test.txt使用 fairseq 自带的预处理工具即可得到二进制化数据目录data-binfairseq-preprocess --only-source \ --trainpref data/train.txt --validpref data/valid.txt --testpref data/test.txt \ --destdir>fairseq-train>python sample.py contenteditable="false">【免费下载链接】unilmLarge-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities项目地址: https://gitcode.com/GitHub_Trending/un/unilm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考