综合介绍
OpenVoice 是一个多功能的即时语音克隆方法,仅需使用参考说话者的短音频片段,即可复制其声音并生成多语言的语音。除了复制音色外,OpenVoice 还允许精细控制语音风格,包括情感、口音、节奏、停顿和语调。
OpenVoice相关的文本转语音项目:https://github.com/myshell-ai/MeloTTS
该项目可使用数据集训练自己的语音,但缺少训练界面。和瞬时克隆语音并不相同,更侧重使用稳定训练的模型进行文本转语音。
功能列表
准确的音色克隆:OpenVoice能够准确地复制参考音色,并在多种语言和口音中生成语音。
灵活的语音风格控制:OpenVoice允许对语音风格进行精细控制,包括情感、口音、节奏、停顿和语调。
零-shot跨语言语音克隆:生成的语音无需与参考语音的语言相同,也无需在大规模多语言训练数据集中呈现。
特色:
1. 准确的音色克隆。 OpenVoice 可以准确克隆参考音色并生成多种语言和口音的语音。
2.灵活的音色控制。 OpenVoice 可以对语音风格(例如情感和口音)以及其他风格参数(包括节奏、停顿和语调)进行精细控制。
3.零样本跨语言语音克隆。 生成语音的语言和参考语音的语言都不需要出现在大规模说话人多语言训练数据集中。
使用帮助
请参阅使用说明以获取详细指导。
常见问题请查看QA,我们将定期更新问题和答案列表。
在 MyShell 中应用:直接使用即时语音复制和语音合成(TTS)服务。
极简示例:快捷体验OpenVoice,无需追求高品质。
Linux 安装:仅供研究者和开发者参考。
google colab中快速试用
%cd /content!git clone -b dev https://github.com/camenduru/OpenVoice%cd /content/OpenVoice!apt -y install -qq aria2!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/OpenVoice/resolve/main/checkpoints_1226.zip -d /content -o checkpoints_1226.zip!unzip /content/checkpoints_1226.zip!pip install -q gradio==3.50.2 langid faster-whisper whisper-timestamped unidecode eng-to-ipa pypinyin cn2an!python openvoice_app.py --share
在 MyShell 中应用
对于大多数用户,最便利的方式是直接在 MyShell 中体验免费的 TTS 和实时语音复制服务。
TTS 服务
点击此处并依照下列步骤操作:
语音克隆
点击此处并依照下列步骤操作:
极简示例
对于想要快速体验 OpenVoice,对质量和稳定性没有太高要求的用户,可以点击下面的任一链接:
Lepton AI:https://www.lepton.ai/playground/openvoice
MySHell:https://app.myshell.ai/bot/z6Bvua/1702636181
HuggingFace:https://huggingface.co/spaces/myshell-ai/OpenVoice
Linux 安装
这部分主要为熟练使用 Linux、Python 和 PyTorch 的开发者和研究者准备。克隆这个仓库,然后执行以下操作:
conda create -n openvoice python=3.9
conda activate openvoice
git clone git@github.com:myshell-ai/OpenVoice.git
cd OpenVoice
pip install -e .
从[这里]下载检查点,然后解压到 checkpoints 文件夹
1. 灵活的语音风格控制:请参阅[demo_part1.ipynb]了解OpenVoice如何控制克隆语音的风格。
2. 跨语言语音克隆:请参阅 [demo_part2.ipynb]了解在 MSML 训练集中可见或未见的语种的演示。
3. Gradio 演示:在此处,我们提供了一个最基本的本地 gradio 模拟。如果在 gradio 演示中遇到问题,我们强烈建议您查看 demo_part1.ipynb
、demo_part2.ipynb
以及 [QnA]。使用 python -m openvoice_app --share
启动本地 gradio 演示。
3. 高级用户指南:基础说话模型可被用户偏爱的任何模型(任何语言,任何风格)替代。如演示中所示,使用 se_extractor.get_se
方法为新的基础说话人提取音色嵌入。
4. 生成自然语音的建议:有许多单一或多说话者的 TTS 方法可以生成自然语音,并且随时可用。只要简单地将基础说话人模型替换为您偏好的模型,就可以将语音的自然性提升到您期望的水平。
OpenVoiceV2本地部署教程,苹果MacOs部署流程
最近OpenVoice项目更新了V2版本,新的模型对于中文推理更加友好,音色也得到了一定的提升,本次分享一下如何在苹果的MacOs系统中本地部署OpenVoice的V2版本。
首先下载OpenVoiceV2的压缩包:
OpenVoiceV2-for-mac代码和模型 https://pan.quark.cn/s/33dc06b46699
该版本针对MacOs系统做了一些优化,同时针对中文语音做了响度统一的修改。
解压缩后,首先将项目目录中的HF_HOME中的hub文件夹拷贝到当前系统的如下目录:
/Users/当前用户名/.cache/huggingface
这是huggingface模型在Mac系统的默认保存路径,如果不拷贝的话,需要从头下载十几个G的预训练模型,非常麻烦。
随后回到项目的根目录,输入命令:
conda create -n openvoice python=3.10
创建Python版本为3.10的虚拟环境,注意版本只能是3.10。
接着激活虚拟环境:
conda activate openvoice
系统返回:
(base) ➜ OpenVoiceV2 git:(main) ✗ conda activate openvoice
(openvoice) ➜ OpenVoiceV2 git:(main) ✗
说明激活成功。
由于底层需要mecab,所以通过brew进行安装:
brew install mecab
开始安装依赖:
pip install -r requirements.txt
由于OpenVoice只负责音素的提取,转换语音还需要tts支持,这里底层依赖melo-tts模块。
进入Melo目录:
(openvoice) ➜ OpenVoiceV2 git:(main) ✗ cd MeloTTS
(openvoice) ➜ MeloTTS git:(main) ✗
安装MeloTTS依赖:
pip install -e .
成功后,需要单独下载字典文件:
python -m unidic download
随后回到根目录,启动项目即可:
python app.py
系统返回:
(openvoice) ➜ OpenVoiceV2 git:(main) ✗ python app.py
Running on local URL: http://0.0.0.0:7860
IMPORTANT: You are using gradio version 3.48.0, however version 4.29.0 is available, please upgrade.
--------
To create a public link, set `share=True` in `launch()`.
至此,就完成了在MacOs中针对OpenVoice的部署。
结语
OpenVoice的一个突破性功能是其能够进行zero-shot跨语言声音克隆。它可以将声音克隆到未包含在训练数据集中的语言中,而无需为这些语言提供大量说话者的训练数据。但事实上,与具有丰富标记数据的传统监督学习相比,Zero-shot learning在未知类别上通常面临较低的准确性,特别是在复杂类别上。依赖辅助信息可能会引入噪声和不准确性,所以,对于一些很特殊的音色,OpenVoice的效果并不好,必须针对底模进行微调才能够解决此类问题。