人工智能AI库Spleeter免费人声和背景音乐分离实践(Python3.10)

2023-04-27 14:54:23 浏览数 (1)

在视频剪辑工作中,假设我们拿到了一段电影或者电视剧素材,如果直接在剪辑的视频中播放可能会遭遇版权问题,大部分情况需要分离其中的人声和背景音乐,随后替换背景音乐进行二次创作,人工智能AI库Spleeter可以帮我们完成大部分素材的人声和背景音乐的分离流程。

    Spleeter的模型源来自最大的音乐网站Deezer,底层基于深度学习框架Tensorflow,它可以通过模型识别出素材中的背景音乐素材,从而判断出哪些是背景音乐,哪些是外部人声。

    Spleeter安装

    在终端执行运行pip命令:

代码语言:javascript复制
pip3 install spleeter --user

    安装成功之后,输入命令,检查Spleeter安装路径:

代码语言:javascript复制
pip show spleeter

    程序返回:

代码语言:javascript复制
PS C:Usersliuyuewwwvideosite> pip show spleeter                                        WARNING: Ignoring invalid distribution -umpy (c:python39libsite-packages)               Name: spleeter                                                                             Version: 2.3.2
Summary: The Deezer source separation library with pretrained models based on tensorflow.
Home-page: https://github.com/deezer/spleeter
Author: Deezer Research
Author-email: spleeter@deezer.com
License: MIT
Location: c:usersliuyueappdataroamingpythonpython39site-packages                    Requires: ffmpeg-python, httpx, librosa, llvmlite, norbert, numpy, pandas, protobuf, tensorflow, typer

    说明安装成功。

    如果不想在本地搭建深度学习环境,也可以通过Docker镜像安装。关于Docker,请移步:一寸宕机一寸血,十万容器十万兵|Win10/Mac系统下基于Kubernetes(k8s)搭建Gunicorn Flask高可用Web集群 ,这里不在赘述。

    运行Docker命令:

代码语言:javascript复制
docker pull deezer/spleeter:3.8-5stems

    这里程序加上预训练模型大概需要1.73GB的硬盘空间。

    Spleeter分离人声和背景音乐

    Spleeter同时支持视频和音频文件的人声和背景音乐分离,Spleeter自带三种预训练模型:

    1、人声&伴奏声分离模型 2 stems,分离出两个音轨

    2、鼓声、贝斯声及其它声分离模型 4 stems,分离出4个音轨)

    3、鼓声、贝斯声、钢琴声及其它声分离模型 5 stems,分离出5个音轨)

    后面两种模型相对比较精细,它可以把人声、鼓声、贝斯声、钢琴声各自分离成多个音轨,一般适合音乐行业的专业人士进行使用。

    大多数情况下,我们只需要使用第一种模型 2 stems 即可,它将音频分离成两个音轨,人声和背景音乐的声音:

代码语言:javascript复制
spleeter separate -o /output/ -p spleeter:2stems /test.mp3

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

    首次运行会比较慢,因为spleeter会下载预训练模型,体积在1.73g左右,运行完毕后,会在输出目录生成分离后的音轨文件:

代码语言:javascript复制
accompaniment.wav
vocals.wav

    accompaniment.wav代表人声,vocals.wav是背景音乐。

    如果是基于Docker安装的,则需要运行对应的Docker命令:

代码语言:javascript复制
docker run -v $(pwd)/output:/output deezer/spleeter:3.8-5stems separate test.mp3 -o /output

    结语

    Spleeter可以算是免费的人声和背景音乐分离功能的最佳本地方案了,除了影视剧素材的人声和背景音乐分离的二次创作,如果是在外部环境录制的Vlog,环境音非常嘈杂,而又不得不现场录音,那么使用Spleeter也可以将人声从环境音中分离出来,节省了二次录制画外音的环节。

0 人点赞