ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Amphion 中的 Vevo2:基于统一韵律学习的语音与歌声可控生成框架(零样本 TTS/SVS/VC 实战指南)

Amphion 中的 Vevo2:基于统一韵律学习的语音与歌声可控生成框架(零样本 TTS/SVS/VC 实战指南) 音频语音媒体生成深度学习【免费下载链接】AmphionAmphion (/æmˈfaɪən/) is a toolkit for Audio, Music, and Speech Generation. Its purpose is to support reproducible research and help junior researchers and engineers get started in the field of audio, music, and speech generation research and development.项目地址https://gitcode.com/GitHub_Trending/am/Amphion点击查看免费下载导读Vevo2 是 Amphion 开源音频生成工具包中集成的一套统一且可控的语音Speech与歌声Singing Voice生成框架其核心创新在于通过**统一韵律学习Unified Prosody Learning**打通语音与歌声两条任务线。本指南基于 models/svc/vevo2/README.md 及其配套推理源码系统介绍 Vevo2 支持的零样本 TTS、文本转歌声、歌声合成、音色/风格可控的 VC/SVC、语音与歌声编辑、旋律控制等任务并给出可直接运行的推理环境搭建步骤、脚本用法与关键参数说明。读完本文你将掌握如何在本仓库中一键拉起 Vevo2 的预训练模型完成各类生成/转换任务并能从源码层理解其Prosody Tokenizer Content-Style Tokenizer AR 模型 Flow-matching Transformer Vocoder的完整生成链路。一、Vevo2 能做什么六类生成任务一览根据 models/svc/vevo2/README.md 的定义Vevo2 是一个统一且可控的语音/歌声生成框架它通过统一韵律学习将可控语音生成与歌声生成桥接在一起支持以下任务零样本 TTS、文本转歌声Text-to-Singing与歌声合成SVS——无需额外训练即可模仿参考说话人/歌手的发音风格与音色风格保持的语音/歌声转换VC/SVC——保留源内容与韵律仅替换音色风格转换的语音/歌声转换VC/SVC——同时改变音色与表达风格语音/歌声编辑Editing——对已有人声的局部文本进行改写重合成其余部分保持不变歌声风格转换Singing Style Conversion——例如把气声唱法breathy转为颤音唱法vibrato哼唱转歌声Humming-to-Singing与乐器旋律转歌声Instrument-to-Singing——用哼唱或钢琴等乐器的旋律来控制歌声的音高走向。这些任务的差异在仓库推理脚本 models/svc/vevo2/infer_vevo2_ar.py 中体现得非常直接它们都是对同一个Vevo2InferencePipeline.inference_ar_and_fm()入口以不同的参考音频/韵律音频/文本组合进行调用只是开关use_prosody_code、use_pitch_shift等控制项不同这正是统一框架设计思想的落地体现。二、系统架构从波形到可交换的离散 TokenVevo2 的生成链路可以概括为离散化 → 自回归预测 → 声学建模 → 声码器合成四级流水线其组成单元与它们在推理时的协作关系可以从 models/svc/vevo2/vevo2_utils.py 中的Vevo2InferencePipeline类第 215 行起得到印证。2.1 Prosody Tokenizer韵律/旋律 Tokenizer作用把语音/歌声波形转换为粗粒度韵律 Token。从音乐角度看这些 Token 可以理解为旋律轮廓melody contour实现单一码本single codebookVQ-VAE词表大小512帧率6.25 Hz即码率56.25 bps训练数据与权重Emilia-101k 与 SingNet-7k存放在 HuggingFace 仓库RMSnow/Vevo2的tokenizer/prosody_fvq512_6.25hz目录下。在源码中韵律 Token 的提取走的是extract_coco_codec(..., coco_codec_typestyle, ...)分支vevo2_utils.py输入是24 维 chromagram色度特征由get_chromagram()使用chroma_stft计算vevo2_utils.py。也就是说韵律 Token 本质上是旋律的离散量化表达不依赖具体音色。2.2 Content-Style Tokenizer内容-风格 Tokenizer作用把波形转换为细粒度内容-风格 Token实现单一码本 VQ-VAE词表大小16384帧率12.5 Hz即码率175 bps训练数据与权重同样来自 Emilia-101k 与 SingNet-7k权重位于tokenizer/contentstyle_fvq16384_12.5hz目录。在源码中内容-风格 Token 由extract_coco_codec(..., coco_codec_typecontent_style, ...)分支提取vevo2_utils.py其输入是Whispermedium 模型embed_audio 特征与 24 维 chromagram 的拼接分别对应extract_whisper_features()与get_chromagram()。Whisper 特征负责内容说什么chromagram 负责风格/旋律怎么说两者共同量化成内容-风格 Token。值得注意的是 vevo2_utils.py 中加载的 Whisper 是medium版本1024 维且帧长为 30 秒上限。2.3 AR 模型自回归 Token 预测作用以文本 Token以及可选的韵律 Token为条件自回归地预测内容-风格 Token实现基于Qwen2.5-0.5B的大语言模型LLM在 Emilia-101k 与 SingNet-7k 上做过后训练post-trained实现了跨语音/歌声的统一韵律学习权重contentstyle_modeling/posttrained目录。源码层面的证据build_ar_model()通过AutoModelForCausalLM.from_pretrained(ckpt_path, trust_remote_codeTrue)直接加载 Qwen 因果语言模型vevo2_utils.py若环境支持且 CUDA 可用则自动启用flash_attention_2注意力实现。Prompt 构造逻辑在 models/svc/vevo2/qwen_utils.py 中gen_chat_prompt()按 Qwen 的 ChatML 模板|im_start|/|im_end|组织 system/user 消息gen_chat_response()则把韵律 ID 与内容-风格 ID 编码为|prosody_X|、|content_style_X|形式的特殊 Token 序列。2.4 Flow-matching Transformer声学模型作用从内容-风格 Token 预测mel 频谱实现Flow-matching Transformer约 350M 参数权重acoustic_modeling/fm_emilia101k_singnet7k_repa目录。源码中对应build_fmt_model()vevo2_utils.py与code2mel()vevo2_utils.py推理时将音色参考的内容-风格 Token 待合成内容-风格 Token拼接后经cond_emb编码作为扩散条件再把音色参考音频的 mel 频谱作为 prompt调用fmt_model.reverse_diffusion(..., n_timestepsflow_matching_steps)反扩散出目标 mel。默认flow_matching_steps32。2.5 Vocoder声码器作用从 mel 频谱还原音频波形实现基于 Vocos 的声码器约 250M 参数权重vocoder目录。源码中build_vocoder_model()直接构造Vocos模型vevo2_utils.pymel2audio()完成 mel 到波形的转换vevo2_utils.py。2.6 训练数据Emilia-101k约 10.1 万小时的语音数据SingNet-7k约 7000 小时的内部歌声数据使用 SingNet 流水线预处理。三、快速开始仅推理3.1 克隆仓库与环境搭建Vevo2 的推理不依赖额外训练步骤克隆仓库后按以下步骤配置环境git clone https://github.com/open-mmlab/Amphion.git cd Amphion确认处于Amphion目录后推荐使用 conda 创建 Python 3.10 环境并安装依赖conda create -n vevo2 python3.10 conda activate vevo2 pip install -r models/svc/vevo2/requirements.txtmodels/svc/vevo2/requirements.txt 中直接声明的关键依赖包括praat-parselmouth基频相关处理、torchcrepeCREPE 基频估计、openai-whisper内容特征提取。注意这只是 Vevo2 推理所需的追加依赖transformers、torch、torchaudio、librosa、accelerate、safetensors、huggingface_hub、torchvision等基础依赖需按 Amphion 主仓库的整体安装说明见 env.sh先行就绪。3.2 运行推理脚本Vevo2 提供两个推理入口对应两种模型组合# FM 模型单独使用风格保持的 VC/SVC python -m models.svc.vevo2.infer_vevo2_fm # AR FM 联合使用TTS、SVS、风格转换 VC/SVC、编辑、旋律控制等 python -m models.svc.vevo2.infer_vevo2_ar首次运行会自动从 HuggingFaceRMSnow/Vevo2下载全部预训练权重到本地目录./ckpts/Vevo2对应 infer_vevo2_ar.py 中snapshot_download(..., local_dir./ckpts/Vevo2, resume_downloadTrue)的逻辑随后进入推理。生成的音频默认保存在models/svc/vevo2/output/*.wav脚本会先os.makedirs(output_dir, exist_okTrue)创建该目录见 infer_vevo2_ar.py。设备选择逻辑若检测到 CUDA 则自动使用 GPU否则回退到 CPUinfer_vevo2_ar.py。需要说明的是Vevo2 的完整链路包含 0.5B 的 LLM、350M 的声学模型等在 CPU 上运行仅作为可用性兜底实际推理强烈建议使用 GPU。另外源码检测到非 CUDA 环境时不会启用 Flash Attentionvevo2_utils.py。四、AR 推理脚本的任务拆解含参考音频与文案models/svc/vevo2/infer_vevo2_ar.py 的if __name__ __main__:块内置了五组演示任务可直接复现。仓库在 models/svc/vevosing/wav 目录下提供了adele.wav、breathy.wav、humming.wav、jaychou.wav、piano.wav、taiyizhenren.wav、vibrato.wav等示例参考音频歌声、气声、颤音、哼唱、钢琴等可以直接使用而arabic_male.wav路径指向 models/vc/vevo/wav当前仓库中该目录为空运行前需要你自行准备一段阿拉伯语男声参考音频并相应修改ref_wav_path。4.1 零样本 TTS 与文本转歌声vevo2_tts核心参数参数含义tgt_text目标合成文本ref_wav_path风格参考音频提供韵律/表达风格ref_text风格参考音频对应的文本转写timbre_ref_wav_path音色参考音频提供音色不传时默认与ref_wav_path相同output_path输出 wav 路径调用时use_prosody_codeFalse即不注入外部韵律 Token由 AR 模型自行按参考风格生成自然韵律。脚本演示了三种组合风格参考 音色参考用arabic_male.wav生成zstts.wav实现最基础的零样本 TTS风格参考 ≠ 音色参考解耦用arabic_male.wav提供风格、jaychou.wav提供音色生成zstts_disentangled.wav体现风格与音色可分离控制风格参考是歌声以jaychou.wav含中文歌词转写jaychou_text为风格参考、taiyizhenren.wav为音色参考将一段中文独白文本合成为歌声zstts_singing.wav——这正是文本转歌声Text-to-Singing的体现。4.2 零样本语音/歌声编辑vevo2_editingvevo2_editing( tgt_textNever mind, youll find anyone like me. You wish nothing but., raw_wav_pathadele_path, raw_textadele_text, output_pathos.path.join(output_dir, editing_adele.wav), )编辑任务的做法是以原音频自身的韵律 Tokenprosody_wav_pathraw_wav_path作为韵律条件同时以原音频作为风格与音色参考仅把文本替换为改写后的目标文本。由于韵律 Token 与音色参考都来自原音频合出来的声音能在尽量保留原有人声的旋律走向与音色的前提下只修改歌词内容use_prosody_codeTrue。脚本还演示了对jaychou.wav中文歌词的局部改写editing_jaychou.wav。4.3 歌声风格转换vevo2_singing_style_conversionvevo2_singing_style_conversion( raw_wav_pathbreathy_path, # 气声唱法原声 raw_textbreathy_text, style_ref_wav_pathvibrato_path, # 颤音唱法风格参考 style_ref_textvibrato_text, output_pathos.path.join(output_dir, ssc_breathy2vibrato.wav), )该任务通过use_prosody_codeTrue与use_pitch_shiftTrue组合实现源歌声提供内容与音色timbre_ref_wav_pathraw_wav_path风格参考歌声提供新的韵律/旋律 Token。其中use_pitch_shift是关键的音高对齐机制——源码get_shifted_steps()vevo2_utils.py会分别提取源音频与音色参考的基频F0计算两者中位数音高差以半音为单位12 * log2(f0_ref/f0_src)再对 chromagram/Whisper 提取过程施加pitch_shift平移使源歌声的旋律适配参考音色的音域。这样气声就能被转成颤音的唱法。4.4 歌声旋律控制vevo2_melody_control# 用哼唱控制旋律 vevo2_melody_control( tgt_text你是我的小呀小苹果怎么爱不嫌多, tgt_melody_wav_pathhumming_path, # 哼唱 ... ) # 用钢琴控制旋律 vevo2_melody_control( tgt_text你是我的小呀小苹果怎么爱不嫌多, tgt_melody_wav_pathpiano_path, # 钢琴 ... )旋律控制任务把tgt_melody_wav_path哼唱或钢琴演奏作为prosody_wav_path传入先提取该音频的韵律 Token即旋律轮廓再由 AR 模型依据文本 旋律 Token 风格/音色参考合成歌声从而让任意文本唱出指定的旋律。这即对应 README 所列的Humming-to-Singing 与 Instrument-to-Singing能力。两个演示用例分别输出melody_humming.wav与melody_piano.wav。五、FM-only 模式轻量级风格保持 VC/SVCmodels/svc/vevo2/infer_vevo2_fm.py 提供了不加载 AR 模型的轻量推理入口仅使用 Content-Style Tokenizer Flow-matching Transformer Vocoder用于风格保持的语音/歌声转换保留源内容与韵律只换音色vevo2_fm( content_wav_path./models/svc/vevosing/wav/jaychou.wav, reference_wav_path./models/svc/vevosing/wav/adele.wav, output_pathos.path.join(output_dir, svc.wav), )其核心函数签名infer_vevo2_fm.pydef vevo2_fm(content_wav_path, reference_wav_path, output_path, shifted_srcTrue): gen_audio inference_pipeline.inference_fm( src_wav_pathcontent_wav_path, timbre_ref_wav_pathreference_wav_path, use_pitch_shiftshifted_src, flow_matching_steps32, )content_wav_path内容来源说什么/唱什么reference_wav_path音色参考shifted_srcTrue默认启用音高平移对齐使源内容适配参考音色音域逻辑同上文的get_shifted_steps()flow_matching_steps32反扩散步数可在速度与质量之间权衡调整。由于该模式不经过 LLM其内存占用与推理耗时显著低于 ARFM 全链路适合只需换音色的批量转换场景。六、推理流水线的核心调用链统一理解 Vevo2 两种推理模式可以看 models/svc/vevo2/vevo2_utils.py 中Vevo2InferencePipeline提供的两个高层入口inference_fm()第 512 行起加载源音频 → 提取内容-风格 Tokenextract_coco_codec→ 以音色参考的 Token 为 prompt、其 mel 为条件code2mel()反扩散得到 mel →mel2audio()声码器合成波形inference_ar_and_fm()第 803 行起拼接风格参考文本与目标文本构造 LLM Promptget_llm_prompt_text→ 按需注入韵律 Tokenget_llm_prompt_prosody与内容-风格前缀get_llm_prompt_contentstyle→ AR 模型以top_k25, top_p0.8, temperature1.0, max_new_tokens500采样生成内容-风格 Token 序列默认采样参数均可通过函数参数覆盖→parse_llm_generated_ids用正则提取|content_style_X|ID → 后续走与 FM 相同的code2melmel2audio链路。音频输出前还会做RMS 归一化save_audio()以目标响度target_db-25.0 dB对波形做增益调整后写入 24 kHz 采样率的 wav 文件vevo2_utils.py。七、相关资源与引用Vevo2 论文arXiv 2508.16332模型权重与演示页可分别通过 HuggingFace 仓库RMSnow/Vevo2与项目网页获取详见 models/svc/vevo2/README.md 顶部的徽章链接推理全流程代码models/svc/vevo2/vevo2_utils.py、models/svc/vevo2/qwen_utils.py任务入口脚本models/svc/vevo2/infer_vevo2_ar.py、models/svc/vevo2/infer_vevo2_fm.py依赖清单models/svc/vevo2/requirements.txt示例参考音频models/svc/vevosing/wav相关 Tokenizer 训练配置可参考 egs/codec/coco 下的contentstyle_fvq16384_12.5hz.json与prosody_fvq512_6.25hz.json底层声学模型实现models/svc/flow_matching_transformer/fmt_model.pyToken 量化实现可参考 models/codec/coco/rep_coco_model.pyVocoder 实现见 models/codec/amphion_codec/vocos.py。如果 Vevo2 对你的研究工作有帮助请按 models/svc/vevo2/README.md 结尾提供的 BibTeX 条目引用 Vevo2 论文若同时使用了 Vevo2 预训练模型或 Amphion 的训练配方也请一并引用 Amphion 系列论文Amphion v0.2 概述与 SLT 2024 的 Amphion 论文。赞分享音频语音媒体生成深度学习【免费下载链接】AmphionAmphion (/æmˈfaɪən/) is a toolkit for Audio, Music, and Speech Generation. Its purpose is to support reproducible research and help junior researchers and engineers get started in the field of audio, music, and speech generation research and development.项目地址https://gitcode.com/GitHub_Trending/am/Amphion点击查看免费下载相关推荐Seed-VC语音转换完全指南零样本声音克隆与歌声转换实战Seed VC语音转换完全指南零样本声音克隆与歌声转换实战 想要体验无需训练就能实现声音克隆的神奇技术吗Seed VC为您提供了零样本语音转换和歌声转换的完人工智能语音音频snnTorch可视化工具spikeplot使用指南创建惊艳脉冲图表snnTorch可视化工具spikeplot使用指南创建惊艳脉冲图表 snnTorch是一个基于Python的脉冲神经网络SNN深度学习框架其内置的spWan2GP 中的 Seed-VC 实战指南零样本变声、实时语音转换与歌声转换全流程Wan2GP 中的 Seed VC 实战指南零样本变声、实时语音转换与歌声转换全流程 本文围绕 Wan2GP 仓库内置的 Seed VC 语音转换模块位于人工智能AI 应用媒体生成本地部署上一篇深度解锁联想刃7000K BIOS完全掌控硬件性能优化的技术解密下一篇终极指南如何用Video2X免费让老旧视频重获新生提升至4K超高清画质创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表