AI天后,在线飙歌,人工智能AI孙燕姿模型应用实践,复刻《遥远的歌》,原唱晴子(Python3.10)

科技资讯 投稿 6300 0 评论

AI天后,在线飙歌,人工智能AI孙燕姿模型应用实践,复刻《遥远的歌》,原唱晴子(Python3.10)

本次我们借助基于Python3.10的开源库so-vits-svc,让亚洲天后孙燕姿帮我们免费演唱喜欢的歌曲,实现点歌自由。

VITS通过隐变量而非频谱串联起来语音合成中的声学模型和声码器,在隐变量上进行随机建模并利用随机时长预测器,提高了合成语音的多样性,输入同样的文本,能够合成不同声调和韵律的语音。

环境配置

git clone https://github.com/svc-develop-team/so-vits-svc.git

随后进入项目的目录:

cd so-vits-svc

接着安装依赖,如果是Linux或者Mac系统,运行命令:

pip install -r requirements.txt

如果是Windows用户,需要使用Win系统专用的依赖文件:

pip install -r requirements_win.txt

依赖库安装成功之后,在项目的根目录运行命令,启动服务:

python webUI.py

程序返回:

PS D:\so-vits-svc> python .\webUI.py  
DEBUG:charset_normalizer:Encoding detection: ascii is most likely the one.  
C:\Users\zcxey\AppData\Roaming\Python\Python310\site-packages\gradio\deprecation.py:43: UserWarning: You have unused kwarg parameters in UploadButton, please remove them: {'variant': 'primary'}  
  warnings.warn(  
DEBUG:asyncio:Using proactor: IocpProactor  
Running on local URL:  http://127.0.0.1:7860  
  
To create a public link, set `share=True` in `launch(`.

说明服务已经正常启动了,这里so-vits-svc会在后台运行一个基于Flask框架的web服务,端口号是7860,此时访问本地的网址:127.0.0.1:7860:

链接:https://pan.baidu.com/s/1RwgRe6s4HCA2eNI5sxHZ9A?pwd=7b4a   
提取码:7b4a

下载模型文件之后,将模型文件放入logs/44k目录:

D:\so-vits-svc\logs\44k>dir  
 驱动器 D 中的卷是 新加卷  
 卷的序列号是 9824-5798  
  
 D:\so-vits-svc\logs\44k 的目录  
  
2023/05/10  12:31    <DIR>          .  
2023/05/10  11:49    <DIR>          ..  
2023/04/08  15:22       542,178,141 G_27200.pth  
2023/04/08  15:54        15,433,721 kmeans_10000.pt  
2023/05/10  11:49                 0 put_pretrained_model_here  
               3 个文件    557,611,862 字节  
               2 个目录 475,872,493,568 可用字节  
  
D:\so-vits-svc\logs\44k>

接着将模型的配置文件config.js放入configs目录:

D:\so-vits-svc\configs>dir  
 驱动器 D 中的卷是 新加卷  
 卷的序列号是 9824-5798  
  
 D:\so-vits-svc\configs 的目录  
  
2023/05/10  11:49    <DIR>          .  
2023/05/10  12:23    <DIR>          ..  
2023/04/08  12:33             2,118 config.json  
               1 个文件          2,118 字节  
               2 个目录 475,872,493,568 可用字节  
  
D:\so-vits-svc\configs>

随后,在页面中点击加载模型即可,这里环境就配置好了。

原始歌曲处理(人声和伴奏分离)

这里我们使用晴子的《遥远的歌》,这首歌曲调悠扬,如诉如泣,和孙燕姿婉转的音色正好匹配。好吧,其实是因为这首歌比较简单,方便新手练习。

这里我们选择使用开源库Spleeter来对原歌曲进行人声和伴奏分离,首先安装spleeter:

pip3 install spleeter --user

接着运行命令,对《遥远的歌》进行分离操作:

spleeter separate -o d:/output/ -p spleeter:2stems d:/遥远的歌.mp3

这里-o代表输出目录,-p代表选择的分离模型,最后是要分离的素材。

C:\Users\zcxey\Downloads\test>dir  
 驱动器 C 中的卷是 Windows  
 卷的序列号是 5607-6354  
  
 C:\Users\zcxey\Downloads\test 的目录  
  
2023/05/09  13:17    <DIR>          .  
2023/05/10  20:57    <DIR>          ..  
2023/05/09  13:17        26,989,322 accompaniment.wav  
2023/05/09  13:17        26,989,322 vocals.wav  
               2 个文件     53,978,644 字节  
               2 个目录 182,549,413,888 可用字节

其中vocals.wav为晴子的清唱声音,而accompaniment.wav则为伴奏。

至此,原始歌曲就处理好了。

歌曲推理

F0均值滤波(池化参数开启后可以有效改善沙哑问题,但有概率导致跑调,而降低该值则可以减少跑调的概率,但又会出现声音沙哑的问题。

所以每一次推理都需要认真的听一下歌曲有什么问题,然后调整参数的值,这里我最终的参数调整结果如上图所示。

ffmpeg -f concat -i <( for f in *.wav; do echo "file '$(pwd/$f'"; done  output.wav

该命令可以把推理的人声wav和背景音乐wav合并为一个output.wav歌曲,也就是我们最终的作品。

结语

藉此,我们就完成了自由点歌让天后演唱的任务,如果后期配上画面和歌词的字幕,不失为一个精美的AI艺术品,在Youtube(B站搜索关键字:刘悦的技术博客,即可欣赏最终的成品歌曲,欢迎诸君品鉴。

编程笔记 » AI天后,在线飙歌,人工智能AI孙燕姿模型应用实践,复刻《遥远的歌》,原唱晴子(Python3.10)

赞同 (39) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽