用 Python 从视频中提取音频
只需 3 行 python 代码,就能从视频中提取音频!
图片来自 Pexels,发布者为 Christina Morillo
本文会告诉大家如何从视频录制文件中提取音频,而且提取出来的音频可以应用在各种项目中。大家学会之后就又多了一项厉害的 python 编程技能。我给大家举个例子:我在之前的文章中展示过如何用谷歌语音识别(GSR)从提取出来的音频中识别语音。
本文概览
- 入门
- 步骤 1:导入 MoviePy
- 步骤 2:定义视频片段
- 步骤3:提取音频
- 总结
入门
这个项目非常简单,整个过程不会超过五分钟。在开始编程之前,我先给大家提供一些项目要用到的 MoviePy 库的信息。
我们开始吧!
首先,准备一段录制好的视频,可以录制一小段你自己对着镜头说话的视频。然后,用 MoviePy 库将音频从录制视频中提取出来。接下来就可以开始安装库啦!
在 python 中安装一个模块库非常简单,只用一行代码就可以安装好几个库。请在你的终端窗口粘贴以下代码:
pip install ffmpeg moviepy
Ffmpeg 是多媒体框架中的扛把子,它可以解码、编码、转码、复用、解复用、推流、过滤和播放人类和机器创建的几乎所有内容(可参考:http : //ffmpeg.org/about.html)。
MoviePy 是一个可以读写所有常见音视频格式(包括 GIF 格式)的库。为防止在安装 moviepy library 时出现问题,请务必正确安装 ffmpeg 库。
接下来开始编程啦。你可以用文本编辑器或 Jupyter Notebook。
首先,我们把库导入。
第一步——导入 MoviePy
import moviepy.editor as mp
所有准备已就绪,现在开始下一步。
第二步——定义视频文件
把准备好的视频复制到项目文件夹中,这样更易于定义视频文件。MoviePy 中的 VideoFileClip 方法会完成所有工作:my_clip = mp.VideoFileClip(r"videotest.mov")
我们在这个方法中添加了视频的路径。r 代表 read。
我录制的视频是 mov 格式,在第三步我会分享更多关于格式的信息,这对导出音频文件有帮助。
第三步——提取音频
这是最后一步,我们将从定义好的视频提取音频。在开始最后一步之前,我们先来了解一下格式,有很多种视频格式,如下:
- WMV(WMV,WMA,ASF *)
- OGG(ogg,oga,ogv,ogx)
- 3GP(3gp,3gp2、3g2、3gpp,3gpp2)
- MP4(mp4,m4a,m4v,f4v,f4a,m4b,m4r,f4b,mov)
我们需要提前确定我们的视频格式可以转换。除了视频格式,也要了解一些音频格式,例如:
- MP3
- AAC
- WMA
- AC3(杜比数字)
现在,我们对两种格式都有了一定的了解,可以用 MoviePy 库进行转换了。我将音频转换为常见的 MP3 格式。大家可以根据具体用例,自行更改这行代码中的音频格式。作为语音识别的示例的话,wav 格式效果更好。这是我们的项目的最后一行:
my_clip.audio.write_audiofile(r"my_result.mp3")
结论
太棒啦!!我们已经创建了一个无须任何软件就能从视频中提取音频的简单项目。另外,我们还了解了一些视频和音频格式。从视频中提取出来的音频文件可以用在多种项目中,大家可以先试试语音识别。
希望大家喜欢这篇文章并能从中学到有价值的内容。亲自实践这样的编程项目是提高编码技能的最好的方法。
原文作者:Behic Guven
原文链接:https://towardsdatascience.com/extracting-audio-from-video-using-python-58856a940fd