提取视频中的音频——python三行程序搞定

写在开头

  身处数据爆炸增长的时代,各种各样的数据都飞速增长,视频数据也不例外。我们可以使用 python 来提取视频中的音频,而这仅仅需要安装一个体量很小的python包,然后执行三行程序!
  语音数据在数据分析领域极为重要。比如可以分析语义、口音、根据人的情绪等等。可以应用于偏好分析、谎话检测等等。

提取音频

  需要用到 python 包 moviepy,这里是moviepy 的 github 地址

安装 python 包

安装 moviepy,cmd 或 bash 输入

pip install moviepy

提取音频

假设有一个 mp4 文件路径为"e:/chrome/my_video.mp4",我们想提取其音频保存到"“e:/chrome/my_audio.wav”",那么三行程序为:

from moviepy.editor import AudioFileClip
my_audio_clip = AudioFileClip("e:/chrome/my_video.mp4")
my_audio_clip.write_audiofile("e:/chrome/my_audio.wav")

  执行上面的三行程序,就会发现音频文件已经成功提取到指定文件夹了~ 这里的视频格式和音频格式都支持其他格式,比如读取 m4v 格式视频,保存 MP3 格式音频,下面是我电脑的示例
示例

分析音频

  可以使用 librosa 包来分析音频,这里是librosa 的 github 地址

安装 python 包

安装 librosa,cmd 或 bash 输入

pip install librosa

需要说明,librosa 包本身不支持 MP3 格式,需要一些相关包的支持。官网上说使用 conda 安装则自动安装 MP3 支持的相关包。具体请去librosa 的 github 地址了解。

读取音频

假设有一个 wav 文件路径为"e:/chrome/my_audio.wav"。科普一下音频数据的内容,可以认为记录采样频率每个采样点的信号强度两个部分即可构成一个音频文件。数据流可理解为一个数组,按照字节存储。
下面我们读取音频

import librosa
audio, freq = librosa.load('e:/chrome/my_audio.wav')
time = np.arange(0, len(audio)) / freq
print(len(audio), type(audio), freq, sep="\t")

下图是我电脑的示例,可以看到读取到了采样频率每个采样点的信号强度,采样点共 2121210,频率为 22050,音频长度约 96 秒示例图

matplotlib 画信号强度图

bash 输入

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(time, audio)
ax.set(xlabel='Time(s)', ylabel='Sound Amplitude')
plt.show()

下图是本人电脑示例:示例图

librosa 画信号强度图

当然我们可以使用 librosa 库的工具来分析,可以修掉音频首尾的其他信息,画信号强度图的方式如下:

import  librosa.display
audio, _ = librosa.effects.trim(audio)#Trim leading and trailing #silence from an audio signal.
librosa.display.waveplot(audio, sr=freq)
plt.show()

下图是我电脑的示例:示例图

ERROR o.s.b.d.LoggingFailureAnalysisReporter是Spring Boot的一个错误报告工具。它用于检测和解析应用程序启动过程的错误和异常。当应用程序启动失败时,LoggingFailureAnalysisReporter将打印出详细的错误信息,包括报错代码和错误信息,以帮助开发人员进行故障排查和修复。 但是根据提供的引用内容,我无法给出具体的错误原因和解决办法。要解决这个问题,您可以尝试以下几个步骤来进行故障排查: 1. 检查应用程序的日志文件,查看完整的错误信息和堆栈跟踪。这些信息可以帮助您确定具体的错误原因。 2. 确保应用程序的依赖项和配置正确。检查应用程序的pom.xml(如果使用Maven)或build.gradle(如果使用Gradle)文件,确保所有依赖项都正确引入并且版本兼容。 3. 检查应用程序的配置文件,确保配置正确。特别注意数据库连接、端口号和其他必要的配置项。 4. 确保您的应用程序的代码没有任何语法错误或逻辑错误。仔细检查代码,特别是与报错相关的部分。 5. 尝试将应用程序部署到不同的环境,例如本地开发环境或其他服务器,以确定问题是否与特定环境相关。 如果以上步骤仍然无法解决问题,您可以在相关的开发社区或论坛上提问,向其他开发人员寻求帮助。在提问时,请提供详细的错误信息、环境配置和代码片段,以便其他人更好地帮助您解决问题。希望这些信息对您有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [ERROR:o.s.b.d.LoggingFailureAnalysisReporter解决办法](https://blog.csdn.net/weixin_43333233/article/details/128543696)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [springboot项目 o.s.b.d.LoggingFailureAnalysisReporter 错误解决方法](https://blog.csdn.net/weixin_39872341/article/details/105419983)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 53
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值