Spleeter-利用tensorflow分离人声和伴奏

一、项目概述

剪切视频时,经常会有想要的配乐,但是又没有单独的伴奏来使用,而目前常用的软件来直接分解原声和伴奏的效果又不太理想,这时候使用spleeter则就非常的高效方便且实用了,话不多说,先看一下分离的效果,以周杰伦的《说好不哭》为例,可以看一下实现分离后的效果

人声:https://www.qbitai.com/wp-content/uploads/2019/11/s2.mp3
伴奏:https://www.qbitai.com/wp-content/uploads/2019/11/s1.mp3

可以听到,分离后的伴奏几乎感觉不到换气声和压抑感,效果非常出色,那么就记录一下如何实现Spleeter分解歌曲吧!

二、环境配置

工欲善其事,必先利其器。想要实现音频分解,首先需要配置好所需环境。
1.第一步,首先安装conda,推荐使用anaconda navigator,选择相应安装包安装使用。
2.第二步,安装完成后,使用conda安装ffmpeg 和 libsndfile

conda install -c conda-forge ffmpeg libsndfile
添加ffmpeg和libsndfile成功

3.第三步,使用pip安装spleeter,这一步经常安装失败,或者是下载tensorflow时特别慢,建议使用国内镜像(见下表)下载2.3.0版本

pip install spleeter
/*
阿里云 
http://mirrors.aliyun.com/pypi/simple/

中国科技大学 
https://pypi.mirrors.ustc.edu.cn/simple/

豆瓣(douban) 
http://pypi.douban.com/simple/

清华大学 
https://pypi.tuna.tsinghua.edu.cn/simple/

中国科学技术大学 
http://pypi.mirrors.ustc.edu.cn/simple/
*/
添加spleeter成功

4.下载训练模型,解压放在pretrained_models文件夹下,常用的是2stems.
5.最后,就可以直接分解音频文件了

spleeter separate -p spleeter:2stems -o output 说好不哭.mp3 //可以使用spleeter separate --help查看命令帮助
分解成功

分解成功
三、集成flutter,制作手机图形化界面

目前flutter平台已经有了tflite_flutter 插件,可以帮助我们实现简单、高效的把 TensorFlow 模型集成到 Flutter 应用。

tflite_flutter 插件的核心特性:
1.插件提供了与 TFLite Java 和 Swift API 相似的 Dart API,所以其灵活性和在这些平台上的效果是完全一样的;
2.插件通过 dart:ffi 直接与 TensorFlow Lite C API 相绑定,所以它比其它平台集成方式更加高效;
3.无需编写特定平台的代码;
4.通过 NNAPI 提供加速支持,在 Android 上使用 GPU Delegate,在 iOS 上使用 Metal Delegate。

后续会尝试将此分离模型集成到flutter项目中,以延后记!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容