经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python3 » 查看文章
人工智能AI库Spleeter免费人声和背景音乐分离实践(Python3.10)
来源:cnblogs  作者:刘悦的技术博客  时间:2023/4/17 9:16:50  对本文有异议

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

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

Spleeter安装

在终端执行运行pip命令:

  1. pip3 install spleeter --user

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

  1. pip show spleeter

程序返回:

  1. PS C:\Users\liuyue\www\videosite> pip show spleeter WARNING: Ignoring invalid distribution -umpy (c:\python39\lib\site-packages) Name: spleeter Version: 2.3.2
  2. Summary: The Deezer source separation library with pretrained models based on tensorflow.
  3. Home-page: https://github.com/deezer/spleeter
  4. Author: Deezer Research
  5. Author-email: spleeter@deezer.com
  6. License: MIT
  7. Location: c:\users\liuyue\appdata\roaming\python\python39\site-packages Requires: ffmpeg-python, httpx, librosa, llvmlite, norbert, numpy, pandas, protobuf, tensorflow, typer

说明安装成功。

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

运行Docker命令:

  1. 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 即可,它将音频分离成两个音轨,人声和背景音乐的声音:

  1. spleeter separate -o /output/ -p spleeter:2stems /test.mp3

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

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

  1. accompaniment.wav
  2. vocals.wav

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

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

  1. docker run -v $(pwd)/output:/output deezer/spleeter:3.8-5stems separate test.mp3 -o /output

结语

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

原文链接:https://www.cnblogs.com/v3ucn/p/17324656.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号