最近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的效果并不好,必须针对底模进行微调才能够解决此类问题。