python从视频中提取音频_提取视频中的音频——python三行程序搞定!
原標題:提取視頻中的音頻——python三行程序搞定!
寫在開頭
身處數據爆炸增長的時代,各種各樣的數據都飛速增長,視頻數據也不例外。我們可以使用 python 來提取視頻中的音頻,而這僅僅需要安裝一個體量很小的python包,然后執行三行程序!
語音數據在數據分析領域極為重要。比如可以分析語義、口音、根據人的情緒等等。可以應用于偏好分析、謊話檢測等等。
提取音頻
需要用到 python 包 moviepy,這里是moviepy 的 github 地址
安裝 python 包
安裝 moviepy,cmd 或 bash 輸入
pip install moviepy
1 提取音頻
假設有一個 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")
123
執行上面的三行程序,就會發現音頻文件已經成功提取到指定文件夾了~ 這里的視頻格式和音頻格式都支持其他格式,比如讀取 m4v 格式視頻,保存 MP3 格式音頻,下面是我電腦的示例
分析音頻
可以使用 librosa 包來分析音頻,這里是librosa 的 github 地址
安裝 python 包
安裝 librosa,cmd 或 bash 輸入
pip install librosa
1
需要說明,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")
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
下圖是我電腦的示例:
非常簡單 你學會了嗎返回搜狐,查看更多
責任編輯:
總結
以上是生活随笔為你收集整理的python从视频中提取音频_提取视频中的音频——python三行程序搞定!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STL之map和multimap容器
- 下一篇: CreateRemoteThread函数