ARTICLE DETAIL

资讯详情

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

3秒录音复刻一个人的声音,还能说6种语言:OpenVoice语音克隆实战

3秒录音复刻一个人的声音,还能说6种语言:OpenVoice语音克隆实战 3秒录音复刻一个人的声音还能说6种语言OpenVoice语音克隆实战【免费下载链接】OpenVoiceInstant voice cloning by MIT and MyShell. Audio foundation model.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoiceOpenVoice 是 MIT 与 MyShell 开源的语音克隆基础模型给它一段 3 秒的干净参考音频就能复刻出对方的音色并且同一音色可以说英语、中文、日语等 6 种语言。读完这篇你能在本地跑出第一条克隆音频并掌握调整情绪、语速的方法。它到底能干什么最常见的三种玩法3 秒录音复刻声音。输入是一段干净单人短句mp3/wav3 秒就够输出是用这个音色朗读的任意文本。仓库里自带一条示例录音resources/example_reference.mp3可以直接拿来试。跨语言参考音频是什么语言都行。参考音频是中文说话人输出可以是英文、日文、韩文V2 原生支持英、中、西、法、日、韩 6 种语言不需要重新训练。风格迁移同一音色不同讲法。同一段文字可以输出耳语、喊叫、开心、悲伤等风格而音色始终锁定参考人。传统语音克隆OpenVoice参考数据需 10 分钟以上样本3-5 秒即可语言多为单语言6 种语言跨语言风格固定输出情绪/语速可调个人把玩用本地环境就够了做演示时可以用 Gradio 一条命令起网页上生产的话docs/USAGE.md 里附了社区维护的 Docker 部署指南。跑通第一次从装环境到出第一条音频OpenVoice 官方面向 Linux 环境建议用 conda 隔离避免依赖冲突librosa、faster-whisper 等对版本有硬性要求conda create -n openvoice python3.9 -y conda activate openvoice git clone https://gitcode.com/GitHub_Trending/op/OpenVoice cd OpenVoice pip install -e .接着是模型文件V1 和 V2 的 checkpoint 都要从官方源下载地址在 docs/USAGE.md 的安装章节V1 解压到checkpointsV2 解压到checkpoints_v2用 V2 的话还要顺带装 MeloTTSUSAGE 的 V2 小节里有命令。环境就绪后先看懂代码再跑不然容易迷路。语音克隆的核心是一个两段式流程先用基础 TTS合成一版中性人音频再由音色转换器把这版的音色替换成参考音频的指纹——节奏、语调、风格保留只有嗓音换了人。入口实现在openvoice/api.py里import torch from openvoice import se_extractor from openvoice.api import BaseSpeakerTTS, ToneColorConverter device cuda:0 if torch.cuda.is_available() else cpu base_tts BaseSpeakerTTS(checkpoints/base_speakers/EN/config.json, devicedevice) base_tts.load_ckpt(checkpoints/base_speakers/EN/checkpoint.pth) converter ToneColorConverter(checkpoints/converter/config.json, devicedevice) converter.load_ckpt(checkpoints/converter/checkpoint.pth) target_se, _ se_extractor.get_se(reference.mp3, converter, target_dirprocessed, vadTrue) source_se torch.load(checkpoints/base_speakers/EN/en_default_se.pth).to(device) base_tts.tts(Hello, this is OpenVoice., tmp.wav, speakerdefault, languageEnglish, speed1.0) converter.convert(tmp.wav, source_se, target_se, output_pathcloned.wav, messageMyShell)reference.mp3换成你的 3 秒参考录音。get_se内部先做 VAD 切段再把各段嵌入取平均得到的target_se就是音色指纹convert里的message参数会给输出音频打一个不可听的水印。跑完听cloned.wav音色像就说明通了。不想写代码的话也可以直接起自带的 Gradio 界面python -m openvoice_app --share启动后打开本地地址上传参考音频、输入文本就能预览生成效果。核心能力拆解音色复制只留指纹丢掉背景音色复制的本质是从录音里只留指纹把内容和环境都扔掉se_extractor先用 VAD 把参考音频切成有效语音段再对每段提取嵌入并取平均得到一个稳定指纹。所以参考音频要 3-5 秒、单人、无背景音太长或太吵平均进去的就是噪声。 指纹会按文件名缓存在processed/目录里拿旧文件名覆盖新音频会被命中旧缓存每个人请用唯一文件名。风格微调情绪和语速其实归基础模型管有个容易误判的点OpenVoice 只克隆音色不克隆情绪和口音。输出的情绪和节奏来自基础 speaker 模型所以调风格要动base_tts.tts的参数speaker内置 friendly、cheerful、excited、sad、angry、shouting、whispering 等选项speed控制语速1.0 正常0.9 偏慢。注意换了 speaker 就要同步换对应的source_se。这个机制的边界也要清楚你想要参考人的音色 参考人口音做不到只能是参考人音色 基础 speaker 的风格。跨语言克隆V2 原生支持 6 种语言V2 里直接写目标语言文本MeloTTS 负责该语言的合成转换器再换音色。跨语言克隆不要求参考音频的语言出现在训练集里这是这套架构在设计上的关键一环。中文文本里夹几句英文的混合写法也能跑。V1 的基础模型只有英文想输出其他语言需要替换对应语言的 base speaker做法在 docs/QA.md 里有说明。你大概率会遇到的情况生成的声音情绪和参考人差很多不太像不是 bug。音色转换器只管音色情绪和口音来自基础 speaker。解法是换一个更贴近目标风格的基础 speaker或自己训练一个接进来。音频爆音、杂音多、甚至听不清按顺序排查参考音频有没有背景噪声是不是混了两个人有没有大段空白时长是否过短。还有一个隐蔽坑参考音频用了旧文件名processed目录里是旧缓存——删掉该目录重跑即可。首次运行在 get_vad_segments 处报下载失败这一步要拉取 Silero VAD 模型网络不通就会挂。解法是手动下载 silero-vad 的 zip 包解压到家目录的~/.cache/torch/hub/snakers4_silero-vad_master。参考音频短一点就报 input audio is too shortVAD 切段要求最低有效语音时长。解法很直接用 3 秒以上、语音尽量连续的录音。跑通之后可以往两个方向走替换基础 speaker 接入自己的新语言或者打开 demo_part2.ipynb 把跨语言组合玩一遍。【免费下载链接】OpenVoiceInstant voice cloning by MIT and MyShell. Audio foundation model.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoice创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表