打脸了,我偷偷又找了回来:记一款免费音频人声分离工具的实现

说一件最近被打脸的事。

前两天一位朋友想处理掉一段音频中的人声,只留背景音乐,用于做教育方面的配音使用,她折腾半天不知道如何去掉背景声,于是问了我,虽然我不是专业的媒体人,但咱毕竟是技术人。

听起来也很简单,就随口答应了,“没问题,这个简单,把你的音频给我吧~”

心想曾经也用过FFmpeg处理过音视频的, 而且剪映的工具里应该也有的,感觉处理点这些音频还不简单。

看了下她给的是视频mp4格式,内容是一段比较正式的英语演讲视频,对应的音频有背景音乐和人声口语部分,而她的具体需求是要把背景音乐保留,把人声部分要识别出来保持静音,总音频时长不变,不能出现人声没了背景音乐也没有的情况。

按照她的需求,实现起来,就要把人声识别提取出来,把背景音也单独识别出来,这样把背景音合成回到视频里就可以了。

这里面最麻烦的事,如何识别人声并提取出来,分离人声出去,保留背景音乐。

想着现在AI时代而且工具也十分丰富,首先想到就是剪映,在音视频领域做的不错,应该是有该功能的。于是下载剪映,导入她给的视频,发现菜单里有人声分离这个功能,于是赶紧开始转换。

那边问好了没?我说马上转化完给你(此时,还比较自信中)

图片

经过漫长的等待,处理完成,预览听起来还不错,准确把人声去掉了,导出时发现需要会员….. 

不怎么常用剪映,发现需要先登录,再买个会员,才让导出....这,至少也是干这行相关的,有点打脸了。

图片

首先,肯定不是钱问题,我也比较尊重知识付费。

但是这收割方式让我很不爽,要不就在开始转化时就告诉用户,这个功能需要开通会员。不要在漫长等待处理后,准备导出时候,告诉我需要登录、再开通个会员。做这个功能的剪映产品人真是一把收割能手,有点被恶心到了,这本来就是个不复杂的事情,因为开源机器学习库有很多能做到这个事情。

自己动手实现

自己准备实现一个,但肯定不会自己做个识别模型出来吧,基于之前对机器学习的有过研究,这个识别声音是完全可以做的。

先看Tensorflow,Google开发的开源机器学习库,看这个里面应该有可以被使用的demo,之前也有些TensorFlow Lite 用于在移动端上来识别人声音的,但是国内很多包装后,还需要你集成各种服务,太重,也是各种付费。(主打别人开源,我收费)

而我,只想提供一个音频文件,一个处理按钮,然后输出识别后对应的音频文件的这么一款软件。

最终,通过Tensorflow找到了基于python实现的人声识别Spleeter,它利用 TensorFlow 提供的深度学习框架进行模型训练和音频分离,项目地址:https://github.com/deezer/spleeter

在工程里有这么一段话:“Want to try it out but don't want to install anything ? We have set up a Google Colab”

还等什么,赶紧先帮她处理了,于是迅速执进去开始运行环境,并上传给的mp4文件,因为只识别人声即可,最后把识别出来的音频下载给到她。

图片

脸面是偷偷找回来了,但有没有更好用的方法,让普通人也用起来的。

普通人怎么用 ?

那就开发一个?没错,把脸面找回来。

需要简单直接,适合普通人用的,只需输入一个音频,点击处理,把背景音和人声都分离出来,于是自己做了一个,如下图:

图片

有点丑~ 先别管UI。

实现原理,通过python来开发桌面程序调用Spleeter来做人声识别,中间的依赖环境编译也比较费劲还算安装成功。

你可能会问为什么用python来做?因为可以调用Spleeter会方便一些,尽管也可以用swift、flutter、RN、 Rust来做桌面应用,但这几个难度大,需要python来桥接。

任何技术都要全局来看,选择合适的技术,用什么编程语言都无所谓,都要会,靠谱提效就好。

先听下效果吧:用一首王杰的歌曲《一场游戏一场梦》来展示下效果。

原声音乐:

(没办法,csdn写文章暂不支持音频上传,只有视频,转了个mp4来上传,一直在审核中)

放弃演示了~

就是能完美把人声识别出来,可以分离出来伴奏音和人声单独的2个文件,自行脑补下吧。

还没完,想更简单,直接下载的?

有没有直接下载的,不用我去发布,以及后边适配各平台win和mac用户,最好直接下载、免费就能本地使用的工具。

就是文章标题里写到了,你直接下载直接用就行,效果我也试过了,比我做的也还要好,UI也美观一些。

普通人直接下载编译好的软件即可,技术人也可以学习下地址给出下:

https://github.com/Anjok07/ultimatevocalremovergui

普通人直接到该页面下载使用:

https://github.com/Anjok07/ultimatevocalremovergui/releases

使用效果我也验证了:

图片

至此,总算把这个技术人的脸面给找回来了~ 

对于我们技术人来说,大家知道技术原理时,就要坚定自己的想法勇于尝试,动手起来多练!并通过我们的技术服务更多普通人。

也把此文章,作为1024程序员节向技术同志们致敬!

猜你喜欢

转载自blog.csdn.net/LiangGang365/article/details/143226291