提取視頻中的音頻 Python只需要三行代碼!
身處數(shù)據(jù)爆炸增長(zhǎng)的信息時(shí)代,各種各樣的數(shù)據(jù)都飛速增長(zhǎng),視頻數(shù)據(jù)也不例外。我們可以使用 python 來(lái)提取視頻中的音頻,而這僅僅需要安裝一個(gè)體量很小的 python 庫(kù),然后執(zhí)行三行代碼!
語(yǔ)音數(shù)據(jù)在數(shù)據(jù)分析領(lǐng)域極為重要。比如可以分析語(yǔ)義、口音、根據(jù)人的情緒等等??梢詰?yīng)用于偏好分析、謊話(huà)檢測(cè)等等。
一、提取音頻
需要用到 python 的 moviepy 庫(kù)
moviepy的 github 地址:https://github.com/Zulko/moviepy
命令行 pip 安裝上 moviepy 即可!
pip install moviepy -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
提取音頻:假設(shè)有一個(gè) mp4 文件路徑為"D:\python\pycharm2020\my_program\video_process\test_01.mp4",我們想提取其中的音頻保存到"D:\python\pycharm2020\my_program\video_process\vst01.mp3",三行 Python 代碼實(shí)現(xiàn)如下:
import moviepy.editor as mpy # 截取背景音樂(lè) audio_background = mpy.AudioFileClip(r'D:\python\pycharm2020\my_program\video_process\test_01.mp4').subclip(1, 60) audio_background.write_audiofile(r'D:\python\pycharm2020\my_program\video_process\vst01.mp3')
結(jié)果如下:
執(zhí)行上面的三行代碼,就會(huì)發(fā)現(xiàn)音頻文件已經(jīng)成功提取到指定文件夾啦~ ~這里的視頻格式和音頻格式都支持其他格式,比如讀取 mp4 格式視頻,抽取其中的背景音樂(lè)保存為 MP3 格式音頻。
二、引力波繪制
數(shù)據(jù)來(lái)源:
- http://python123.io/dv/grawave.html
- http://python123.io/dv/H1_Strain.wav
- http://python123.io/dv/L1_Strain.wav
- http://python123.io/dv/wf_template.txt
從配置文檔中讀取時(shí)間相關(guān)數(shù)據(jù)
import numpy as np # 科學(xué)計(jì)算所用的numpy庫(kù) import matplotlib.pyplot as plt # 繪圖所用的庫(kù)matplotlib from scipy.io import wavfile # 讀取波形文件所用的庫(kù) rate_h, hstrain = wavfile.read(r"H1_Strain.wav", "rb") # 讀取音頻文件 rate_l, lstrain = wavfile.read(r"L1_Strain.wav", "rb") # reftime, ref_H1 = np.genfromtxt('GW150914_4_NR_waveform_template.txt').transpose() reftime, ref_H1 = np.genfromtxt('wf_template.txt').transpose() # 使用python123.io下載txt文件
構(gòu)造應(yīng)變數(shù)據(jù)
htime_interval = 1 / rate_h ltime_interval = 1 / rate_l fig = plt.figure(figsize=(12, 6)) # 創(chuàng)建大小為12*6的繪圖空間 # 丟失信號(hào)起始點(diǎn) htime_len = hstrain.shape[0] / rate_h # 讀取數(shù)據(jù)第一維的長(zhǎng)度,得到函數(shù)在坐標(biāo)軸上總長(zhǎng)度 htime = np.arange(-htime_len / 2, htime_len / 2, htime_interval) # (起點(diǎn),終點(diǎn),時(shí)間間隔)
使用來(lái)自 “H1” 探測(cè)器的數(shù)據(jù)作圖
plth = fig.add_subplot(221) # 設(shè)置繪圖區(qū)域 plth.plot(htime, hstrain, 'r') # 畫(huà)出以時(shí)間為x軸,應(yīng)變數(shù)據(jù)為y軸的圖像,‘y'為黃色 plth.set_xlabel('Time (seconds)') plth.set_ylabel('H1 Strain') plth.set_title('H1 Strain')
繪制 L1 Strain 和Template
ltime_len = lstrain.shape[0] / rate_l ltime = np.arange(-ltime_len / 2, ltime_len / 2, ltime_interval) pltl = fig.add_subplot(222) pltl.plot(ltime, lstrain, 'k') pltl.set_xlabel('Time (seconds)') pltl.set_ylabel('L1 Strain') pltl.set_title('L1 Strain') pltref = fig.add_subplot(212) pltref.plot(reftime, ref_H1, 'purple') pltref.set_xlabel('Time (seconds)') pltref.set_ylabel('Template Strain') pltref.set_title('Template') fig.tight_layout() # 自動(dòng)調(diào)整圖像外部邊緣
保存并顯示圖像
plt.savefig("Gravitational_Waves_Original.png") # 保存圖像為png格式 plt.show() plt.close(fig)
結(jié)果如下:
以上就是提取視頻中的音頻 Python只需要三行代碼!的詳細(xì)內(nèi)容,更多關(guān)于python 提取視頻中的音頻的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python數(shù)據(jù)分析之單因素分析線(xiàn)性擬合及地理編碼
這篇文章主要介紹了python數(shù)據(jù)分析之單因素分析線(xiàn)性擬合及地理編碼,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06使用Python paramiko模塊利用多線(xiàn)程實(shí)現(xiàn)ssh并發(fā)執(zhí)行操作
ssh是一個(gè)協(xié)議,OpenSSH是其中一個(gè)開(kāi)源實(shí)現(xiàn),paramiko是Python的一個(gè)庫(kù),實(shí)現(xiàn)了SSHv2協(xié)議(底層使用cryptography)。這篇文章主要介紹了使用Python paramiko模塊利用多線(xiàn)程實(shí)現(xiàn)ssh并發(fā)執(zhí)行操作,需要的朋友可以參考下2019-12-12基于Python實(shí)現(xiàn)一個(gè)圖片壓縮工具
圖片壓縮是在保持圖像質(zhì)量的同時(shí)減小圖像文件大小的過(guò)程,本文將學(xué)習(xí)如何使用Python來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單但功能強(qiáng)大的圖片壓縮工具,以及如何在不同情境下進(jìn)行圖片壓縮,希望對(duì)大家有所幫助2024-01-01python中split(),?os.path.split()和os.path.splitext()的用法
本文主要介紹了python中split(),?os.path.split()和os.path.splitext()的用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02詳解python異步編程之a(chǎn)syncio(百萬(wàn)并發(fā))
這篇文章主要介紹了詳解python異步編程之a(chǎn)syncio(百萬(wàn)并發(fā)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07python如何在一個(gè)py文件中獲取另一個(gè)py文件中的值(一個(gè)或多個(gè))
這篇文章主要介紹了python如何在一個(gè)py文件中獲取另一個(gè)py文件中的值(一個(gè)或多個(gè)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08使用Python Tkinter創(chuàng)建文件生成工具的操作步驟
我們將使用Python的Tkinter模塊創(chuàng)建一個(gè)簡(jiǎn)單的文件生成工具,這個(gè)工具可以用來(lái)創(chuàng)建Excel、文本、Python腳本和Word文檔等不同類(lèi)型的文件,感興趣的朋友可以參考下2024-04-04