在剪辑视频的过程中,你是否遇到过这样的困难:想使用原视频中单独的一段人声,但原视频所带有的背景音乐又会大大降低视听效果。
而要将人声和伴奏分离,这个显然不是一件容易的事。
今天就给大家推荐Github上一款开源工具,非常的强大,是我目前见到的做得最好的音频分离软件了,用来提取伴奏和人声效果特别好。借助这个工具,我们普通人就可以实现一键快速将人声和伴奏分离。
下面来详细介绍一下这个工具 - Spleeter
Spleeter 是什么
这是来自法国的音乐流媒体公司Deezer开源的一个音轨分离软件spleeter,只需输入一段命令就可以将音乐的人声和各种乐器声分离,支持mp3、wav、ogg等常见音频格式。
该项目由 Python 作为主要语言编写,并且使用了 TensorFlow 来进行模型训练。
诸如知名的专业处理音频软件iZotope、SpectralLayers、Acon Digital、VirtualDJ、Algoriddim等使用的就是spleeter的训练模型,足足可见该项目的分量。
有网友说自己曾经试过无数类似软件,spleeter是最好用的一个。
因为用python编写的,故windows/linux/macOS等多平台理论上都是可以使用的。
但是在本地完全安装好软件、各种python库、依赖等等,也需要花费一些时间,后续有时间会分享一下在本地安装配置的方法过程。
这里推荐使用下面的两个方法,可以快速的上手体验。
方法1:安装spleeterGUI图形界面软件
spleeterGUI是网上Chris大神基于spleeter这个开源项目,进行深入开发的适用于windows平台的图形化界面软件。
软件直接下载下来安装就可以使用,界面简洁明了,非常的友好。
软件下载下来,一路点击下一步即可,没什么好说的。
打开软件,界面如下,如果不习惯英文也可切换为中文(其实也无所谓了,就那么几个单词而已)。
选择parts to separate(分离声部,一般就是2),设置好文件保存路径(save to),选择需要分离的音频文件(或者直接将文件拖入进去,支持多个音频文件),即可快速导出!
完成之后,每个音频都会导出到单独一个文件夹内,里面有两个无损格式音频文件;
accompaniment.wav为伴奏,vocals.wav为人声
方法2:在线使用Google Colab
这个是官方给出的方法。如果你有科学上网的梯子和谷歌账号,那么这个可以直接在线使用。
这里预先写好了项目的整个代码,点击“代码执行程序”-“全部运行”,将所有的代码都运行一下。
稍等片刻,程序会自动运行,安装各种依赖、库文件,并将一个预设的audio_example.mp3音频文件进行人声、伴奏分离。
如果要分离自己的音频文件,比如我准备了一个叫ppxhn.mp3的文件,点击左边的上传按钮即可将文件上传到云端。
接着在右边新建一个代码块,照着自带的分离代码修改如下,再运行一遍。
spleeter separate -o output/ ppxhn.mp3
稍等一会,就可以得到人声和伴奏的MP3文件了,觉得不错的话可以直接下载下来。
这个方法对应小文件,临时想使用一下的话非常的方便,基本不需要花太多时间去安装和调试,上手也很快。
写在最后(私活源码)
最近有一些读者问我有没有完整的基于Springboot+Vue的在线考试系统项目源码,今天给大家整理了一下,并且录制了搭建的教程,无偿分享给大家。
一、系统运行图
1、登陆页面
2、后台管理
3、全套环境资源
源码文件部分截图,带视频教程
源码免费领取方式
扫码关注本号,后台回复 考试
扫码关注本号,后台回复 考试
持续关注本号,分享更多项目源码
分享一些关于学习Java编程方面的经验
在实际工作中,开发Java项目是一项重要且常见的任务。为了帮助您更好地进行Java项目开发,本文将分享一些实践经验和技巧,以帮助您顺利完成项目。
1. 需求分析与设计
在开始项目之前,首先需要进行需求分析和设计。明确项目的目标和功能,并根据需求设计出合理的系统架构和数据库结构。这个阶段的工作对于后续的开发和测试非常关键,务必认真对待。
2. 选择合适的开发工具和框架
Java有许多优秀的开发工具和框架可供选择,如Eclipse、IntelliJ IDEA、Spring等。根据项目的特点和需求,选择适合的工具和框架可以提高开发效率和代码质量。
3. 模块化开发
将项目拆分成多个模块,每个模块负责一个特定的功能。通过模块化开发,可以提高代码的可维护性和复用性。同时,合理划分模块也便于团队协作和并行开发。
4. 使用版本控制工具
使用版本控制工具(如Git)管理项目代码是一个良好的习惯。通过版本控制,可以方便地进行代码的追踪、回滚和合并,同时也便于多人协作开发。
5. 编写高质量的代码
编写高质量的代码是每个开发者的追求。遵循编码规范,使用有意义的变量和方法命名,注重代码的可读性和可维护性。同时,及时进行代码的重构和优化,以提高代码的性能和可靠性。
6. 单元测试和集成测试
在开发过程中,及时编写单元测试和集成测试是保证代码质量的有效手段。通过测试,可以验证代码的正确性和稳定性,减少后期的调试和修复工作。
7. 持续集成与部署
借助持续集成工具(如Jenkins),实现自动化的构建、测试和部署流程。持续集成可以提高开发效率,减少人为错误,并确保项目的稳定性和可靠性。
8. 文档和知识管理
在项目开发过程中,及时编写文档记录项目的设计思路、开发过程和技术方案。同时,建立知识库或内部论坛,方便团队成员之间的交流和学习。
以上是关于Java项目开发的一些实践经验和技巧。希望这些内容对您有所帮助,祝您在实际工作中取得成功!