想在本地部署一个CosyVoice玩儿一下。其实挺简单的,只不过由于硬件环境+不熟悉Linux系统,导致折腾里好几遍。现在想想,还是自己太蠢了……总之,先记录下吧。
先罗列下资源:
GitHub项目:
https://github.com/FunAudioLLM/CosyVoice
参考视频:
【【AI音色克隆】超强AI音色克隆,CosyVoice,最新模型,速度超级快!附上本地安装教程!】 https://www.bilibili.com/video/BV1Dwx4e2ESu/?share_source=copy_web&vd_source=4ea10cc08ac122b783b99dc60d34ca79
【CosyVoice3 本地部署!声音克隆 TTS!支持9种语言,18种中文方言!消费级显卡可运行!】 https://www.bilibili.com/video/BV1cDqqBeEtN/?share_source=copy_web&vd_source=4ea10cc08ac122b783b99dc60d34ca79
第一遍折腾:
第一遍巨蠢,太依赖AI了。什么东西都没看,连GitHub项目地址都没细看,直接扔给AI(perplexity pro的GPT5.2),让它帮我解读并给出部署步骤。
整体给的框架其实是对的,根据我的软硬件条件,给出了在WIN10下通过WSL和Docker部署的几个方式。然后我选了最蠢的docker部署……因为它说最简单…
过程非常痛苦。因为我之前docker有部署一个本地的知识库,而且还把docker安装到了C盘。所以第一遍不只是部署项目,还加上了迁移docker,以及解决另一个超他妈奇怪的问题(局域网下,两台机器访问时会出现间歇性断开情况,这个问题也是巨逼奇怪!好在最后也算是不完美解决了,回头但开一个帖子记录下)。
第一遍不细说了,算是让我对docker使用有了进一步了解吧~
第二遍折腾:
改用WSL安装Ubuntu,然后部署项目。政体过程其实和docker差不多,也都要安装conda然后在独立环境下进行部署。
这一遍是按照资料中本地部署的视频来的。其实应该一遍搞定的,结果遇到了一个蠢死自己的小问题……Linux环境下对于大小写敏感,部署资料中给的原码CosyVoice这个子目录有两个大写字母,而代码中都用的是小写。AI也是蠢的可以,完全没给我说这种情况,然后指着它一同瞎几把改。改的我都想删环境了……虽然webui算是跑起来了,但模型上有问题,一直报错无法生成语音。
第三遍折腾:
换了参考视频中第一条视频,改用在win10环境下,直接安装conda来部署。其实整体逻辑是一样的,都是通过conda来分离独立环境进行项目部署。只不过,这次傻逼在硬件环境上了……
由于用的是RTX50系显卡,虽然cuda13和cuDNN的安装都没问题,但pytorch最新版本在WIN环境下对于50系显卡支持有问题,导致最终webui运行了,但模型仍然无法使用。
第四遍折腾:
还是换回到WSL的Ubuntu环境了…
先来到之前clone好的项目文件下,git pull了最新的代码。因为之前的依赖都弄好了,所以这次只是改了下第二遍中那个愚蠢的大小写问题。
然后运行,遇到了新问题:关于音频编码。
这次AI倒是挺给力的(不得不说,遇到代码问题的情况下,还是Claude系比OpenAI的好使),直接给出具体的代码,最终使用soundfile库来生成文件。
哦对了,还有一个细节问题。原文件下几个主要的执行py文件,里边关于模型的code需要按照本地模型路径下的文件进行修改。
还有模型下载上,第二遍折腾时,WSL环境下的模型下载有点儿问题。AI分析日志后给出这个结论后,我用第三遍折腾时在WIN环境下载的模型做了替换后就正常了。其实环境本身不重要,应该还是我第二遍部署时出现的问题。
最后:
玩儿了一阵子,这个项目还挺有趣,本地生成的速度也还可以。大约比官网生成的速度慢了一倍吧,但本地毕竟方便,消费级显卡跑这个项目绝对没问题。而且在GPU使用上,我觉得还是可以优化的。
现在还有以下一些事项待解决&实验:
1、用CosyVoice2 0.5B模型跑一下预训练语音,尝试用instruction的方式来生成一下。
2、清理win环境下miniconda部署残留。后续还是决定用wsl来搞了,得把miniconda清理一下。而且我还在win下单独安装cuda和cuDNN,留着吧也行,但感觉用处不大,纯占空间。
3、清理docker环境下的部署残留。我还把本地知识库给搞废了,还得重新部署一下。
4、解决下局域网其它客户机对于当前项目的访问问题。我的常用客户端是可以访问的,但还有一个端访问起来有些异常,应该不是很难解决的事儿吧,我猜…
虽然够折腾,但收获也还是有的,最终结果也还不错,算是一次得到正反馈的实验吧。加油!