python提取txt中指定内容_提取视频中的音频——python三行程序搞定!
寫在開頭
??身處數據爆炸增長的時代,各種各樣的數據都飛速增長,視頻數據也不例外。我們可以使用 python 來提取視頻中的音頻,而這僅僅需要安裝一個體量很小的python包,然后執行三行程序!
??語音數據在數據分析領域極為重要。比如可以分析語義、口音、根據人的情緒等等。可以應用于偏好分析、謊話檢測等等。
提取音頻
??需要用到 python 包 moviepy,這里是moviepy 的 github 地址
安裝 python 包
安裝 moviepy,cmd 或 bash 輸入
pip install moviepy1
提取音頻
假設有一個 mp4 文件路徑為"e:/chrome/my_video.mp4",我們想提取其音頻保存到"“e:/chrome/my_audio.wav”",那么三行程序為:
from moviepy.editor import AudioFileClipmy_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 librosa1
需要說明,librosa 包本身不支持 MP3 格式,需要一些相關包的支持。官網上說使用 conda 安裝則自動安裝 MP3 支持的相關包。具體請去librosa 的 github 地址了解。
讀取音頻
假設有一個 wav 文件路徑為"e:/chrome/my_audio.wav"。科普一下音頻數據的內容,可以認為記錄采樣頻率和每個采樣點的信號強度兩個部分即可構成一個音頻文件。數據流可理解為一個數組,按照字節存儲。
下面我們讀取音頻
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 pltfig, ax = plt.subplots()
ax.plot(time, audio)
ax.set(xlabel='Time(s)', ylabel='Sound Amplitude')
plt.show()
下圖是本人電腦示例:
librosa 畫信號強度圖
當然我們可以使用 librosa 庫的工具來分析,可以修掉音頻首尾的其他信息,畫信號強度圖的方式如下:
import librosa.displayaudio, _ = librosa.effects.trim(audio)#Trim leading and trailing #silence from an audio signal.
librosa.display.waveplot(audio, sr=freq)
plt.show()
下圖是我電腦的示例:
非常簡單? 你學會了嗎?
相關源代碼獲取加群:1136192749
總結
以上是生活随笔為你收集整理的python提取txt中指定内容_提取视频中的音频——python三行程序搞定!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用电脑键盘给手机打字手机如何当电脑键盘
- 下一篇: comparator比较器用法_Pyth