ARTICLE DETAIL

资讯详情

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

OpenVoice 语音克隆:3秒参考音频如何做到跨语言音色迁移与风格自由控制

OpenVoice 语音克隆:3秒参考音频如何做到跨语言音色迁移与风格自由控制 OpenVoice 语音克隆3秒参考音频如何做到跨语言音色迁移与风格自由控制【免费下载链接】OpenVoiceInstant voice cloning by MIT and MyShell. Audio foundation model.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoiceOpenVoice 语音克隆把音色从语音里单独拆出来处理一段几秒的参考音频足够提取音色情感和语速等风格交给基础 TTS 模型独立调节。这样你既能复刻音色又不受参考音频语气的限制还能在本地部署下完全掌控数据。读完本文你能搭好本地环境、跑通第一次克隆并针对跨语言、批量合成两类需求调出稳定效果。理解核心能力音色与风格为什么能分开调OpenVoice 的推理链路可以概括为两步base speaker TTS 先生出带目标风格情感、节奏、语调的中间音频ToneColorConverter一个基于 Flow 网络的音色转换器可以理解成音色贴皮滤镜再把参考说话人的 tone color 叠上去输出保留目标风格的克隆语音。流程截图展示了完整的克隆链路上传参考音频、创建一个克隆音色、试听并核对效果报告。对应到能力边界速查如下能力是否支持备注零样本跨语言克隆支持参考语音与目标语言均无需出现在训练集中V1/V2 均支持风格控制支持speaker 可选 default、friendly、cheerful、excited、sad、angry、terrified、shouting、whisperingspeed 控制语速多语言基础 TTSV2 支持V2 搭配 MeloTTS原生覆盖英、西、法、中、日、韩 6 种语言情感/口音克隆不支持二者由 base speaker 决定转换器只迁移 tone color音频水印支持convert()默认嵌入可检测的 wavmark 水印本地 Gradio 调试支持python -m openvoice_app --share启动跑通第一次克隆最短路径环境搭建只需要 conda、依赖安装和检查点三步conda create -n openvoice python3.9 -y conda activate openvoice git clone https://gitcode.com/GitHub_Trending/op/OpenVoice cd OpenVoice pip install -e . # 将 V2 官方检查点压缩包解压至 checkpoints_v2/V1 解压至 checkpoints/ python -m openvoice_app --share # 可选启动本地 Gradio 面板V2 还需额外安装 MeloTTS 并执行python -m unidic download如果网络受限可改为从本地获取 MeloTTS 包安装避免依赖外部源。调用侧的最小逻辑是提取音色 → 生成中间音频 → 转换音色import torch from openvoice import se_extractor from openvoice.api import BaseSpeakerTTS, ToneColorConverter device cuda:0 if torch.cuda.is_available() else cpu tone_color_converter ToneColorConverter(checkpoints_v2/converter/config.json, devicedevice) tone_color_converter.load_ckpt(checkpoints_v2/converter/checkpoint.pth) # 1) 从几秒参考音频提取目标音色编码文件名需唯一否则读到旧缓存 target_se, audio_name se_extractor.get_se(resources/example_reference.mp3, tone_color_converter, vadTrue) # 2) base speaker 先生成中间音频V2 用 MeloTTS 充当 base speaker src_path outputs/tmp.wav # 3) 音色转换src_se 需与所用 base speaker 配套 out_path tone_color_converter.convert(src_path, src_se, target_se, output_pathoutputs/cloned.wav, messageMyShell)convert默认会在输出里嵌入音频水印由 wavmark 实现message参数就是水印内容。落地三个高频场景迁移、批量、调参跨语言音色迁移迁移的关键在于target_se与语言无关同一份 tone color 编码可以叠到任意语言的 base speaker 上。以 V1 为例换成中文 base speaker 即可让英文参考音色说中文# 中文 base speaker检查点位于 checkpoints/base_speakers/ZH base_speaker_tts BaseSpeakerTTS(checkpoints/base_speakers/ZH/config.json, devicedevice) base_speaker_tts.load_ckpt(checkpoints/base_speakers/ZH/checkpoint.pth) source_se torch.load(checkpoints/base_speakers/ZH/zh_default_se.pth).to(device) text 今天天气真好我们一起出去吃饭吧。 base_speaker_tts.tts(text, outputs/zh_raw.wav, speakerdefault, languageChinese, speed1.0) tone_color_converter.convert(outputs/zh_raw.wav, source_se, target_se, output_pathoutputs/zh_cloned.wav, messageMyShell)调参要点tone color 可以跨语言复用但 emotion 和 accent 由 base speaker 决定换语言时source_se必须同步换成对应 speaker 的编码文件V2 的各语言编码预置在checkpoints_v2/ses/目录。完整的跨语言演示见 demo_part2.ipynb。⚡ 快速提示参考音频文件名要全局唯一。se_extractor按文件名缓存提取结果且不自动覆盖——你更新了参考音频却忘了删processed/缓存目录生成的还是旧音色。多风格批量合成同一句文本循环切换 speaker就能批量产出多种风格风格与语速取值范围如下参数取值范围说明speed0.5 ~ 2.0语速内部按 1/speed 缩放时长1.0 为正常speakerdefault 及 8 种情感风格friendly、cheerful、excited、sad、angry、terrified、shouting、whisperingtau0 ~ 1默认 0.3convert 中音色融合强度styles [friendly, cheerful, excited, whispering, angry] for style in styles: # 换风格时 source_se 同步切换为该 speaker 对应的编码 base_speaker_tts.tts(text, src_path, speakerstyle, languageEnglish, speed1.0) tone_color_converter.convert(src_path, source_se, target_se, output_pathfoutputs/style_{style}.wav, messageMyShell)V2 下 base speaker 由 MeloTTS 承担语言标签取 EN、ES、FR、ZH、JP、KR中英混排文本可直接输入V2 演示见 demo_part3.ipynb。⚡ 快速提示语速不是越慢越自然speed 低于 0.7 后语调容易发飘情感风格之间切换时务必同步换source_se否则音色会带着上一个风格说话人的平均音色。启动本地 Gradio 面板装好依赖后一条命令即可调试python -m openvoice_app --share界面功能点参考音频上传区粘贴或上传音频自动走 VAD 提取 tone color文本输入框支持长文本自动按句切分后逐段合成风格与语速选择speaker 与 speed 参数直接对应tts()的入参输出播放区生成结果与参考音频并列对比试听面板问题较多时建议先对照 docs/QA.md 排查再看前面三个 notebook 的等价调用。排查避坑清单四条高频错误对照❌ 拿带背景音乐或多人说话的录音做参考 → ✅ 参考音频必须干净、单人、无长静音段背景噪声和长空白都会直接污染 tone color 提取❌ 期待转换器克隆情感或口音 → ✅ 情感与口音由 base speaker 决定想换风格就切换speaker参数并同步换source_se想换口音就换对应 base speaker 模型❌ 复用旧文件名上传参考音频 → ✅ 每个说话人用唯一文件名改过音频记得删processed/缓存否则读到的是旧编码❌ 首次运行se_extractor.get_se时 silero-vad 缓存下载失败 → ✅ 离线环境按 docs/QA.md 的手动下载说明把 VAD 缓存放到~/.cache/torch/hub对应目录延伸资源安装步骤、V1/V2 检查点获取位置与 Gradio 启动docs/USAGE.md音频质量、语言支持、安装报错的官方排查docs/QA.md风格控制调用demo_part1.ipynb跨语言克隆demo_part2.ipynbV2 多语言批量demo_part3.ipynb具体报错信息优先查 QA 文档接口参数以 openvoice/api.py 中的BaseSpeakerTTS与ToneColorConverter为准。【免费下载链接】OpenVoiceInstant voice cloning by MIT and MyShell. Audio foundation model.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoice创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表