python视频人声消除 |
您所在的位置:网站首页 › 视频保留人声消除噪音 › python视频人声消除 |
事前准备
需安装python,ffmpeg,spleeter,笔者使用的操作系统是window10 python安装可参考这可能是全网最详细的python安装教程(windows)_朝阳区靓仔_James的博客-CSDN博客_windows安装pythonpython安装是学习pyhon第一步,很多刚入门小白不清楚如何安装python,今天我来带大家完成python安装与配置,跟着我一步步来,很简单,你肯定能完成。第一部分:python安装(一)准备工作1、下载和安装python(认准官方网站)(二)开始安装对于Windows操作系统,可以下载“executable installer”。需要注意的是,如果在Windows 7环境下安装Python 3,需要先安装ServicePack 1补丁包,大家可以在Windows的“运行”中输入winv 可参考Windows安装ffmpeg_隐形的角落的博客-CSDN博客_ffmpeg windows安装windows下安装ffmpeg的流程,可以直接调用ffmpeg程序执行推流,转码等操作 可以在colab上试用spleeter的功能https://colab.research.google.com/github/deezer/spleeter/blob/master/spleeter.ipynb 可参考GitHub - deezer/spleeter: Deezer source separation library including pretrained models.Deezer source separation library including pretrained models. - GitHub - deezer/spleeter: Deezer source separation library including pretrained models. README.md文件写的有详细的安装教程,但是笔者按照pip install spleeter时卡住没有反应,大家遇到这种情况,可以尝试 conda install -c "conda-forge/label/cf202003" spleeter或者 conda install -c conda-forge spleeter这两条指令在anaconda官网上搜索spleeter会显示(地址:Search :: Anaconda.org),但是需要大家先安装anaconda才能使用conda指令。
首先使用ffmpeg提取视频声音,然后使用spleeter分离音频中的背景音和人声,最后将背景声与原视频合并,最终获得消除人声的视频。 具体实现首先说明,接下来的指令均执行在cmd中 提取视频声音 ffmpeg -i audio.mp4 -vn -codec copy sound.m4a"audio.mp4"是要提取声音的视频,不仅可以是mp4格式的文件,还可以是flv等格式的视频,“sound.m4a”是要提取的音频保存的文件名。接下来将m4a的音频转为mp3格式。 ffmpeg -i "sound.m4a" -y -acodec libmp3lame -aq 0 "sound.mp3"为什么要转换为mp3格式的呢,因为colab试用的时候看人家的例子是mp3文件 O(∩_∩)O。大家可以将m4a格式转为别的格式进行接下来的操作试试。 人声分离 spleeter separate -p spleeter:2stems -o output sound.mp3这里的sound.mp3即为要消除人声的音频。该指令第一次执行时会在cmd当前打开路径下创建pretrained_models\2stems文件夹保存下载的模型文件,所以建议运行该指令时在同一个文件夹下,避免多次下载模型文件。 输入指令回车后稍等一段时间,会在cmd当前打开路径下出现output\sound文件夹,若文件名是xyz.mp3,则会出现output\xyz文件夹,文件夹里有两个文件,accompaniment.wav即为背景音,vocals.wav即为人声。 首先需要将原视频的声音删除。这里的文件名需要加上英文引号,如果不加的话,会提示No such file or directory。 ffmpeg -i "audio.mp4" -y -f mp4 -an -codec copy -q:v 1 "audio-无声.mp4"然后将无声视频和音频融合 ffmpeg -i audio-无声.mp4 -i accompaniment.wav -c:v copy -c:a aac -strict experimental audio-消音.mp4即可获得消去人声的视频。但笔者口语不好,觉得原视频的语速有些快了,故又调整了视频倍速为0.8倍速。 ffmpeg -i test.mp4 -filter_complex "[0:v]setpts=10/8*PTS[v];[0:a]atempo=0.8[a]" -map "[v]" -map "[a]" test-2.mp4这条指令同时调整视频倍速和音频倍速,setpts=(倍速的倒数)*PTS[v],atempo=(倍速)[a] |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |