一、项目概述
剪切视频时,经常会有想要的配乐,但是又没有单独的伴奏来使用,而目前常用的软件来直接分解原声和伴奏的效果又不太理想,这时候使用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项目中,以延后记!!!
网友评论