Python實現(xiàn)音頻提取的示例詳解
前言
在日常生活中,有好聽的翻唱視頻或音樂視頻可以將其音頻分離保存到網(wǎng)易云或QQ音樂中隨時聽,然而大部分的音頻分離軟件需要下載和安裝,使用起來極其笨重,本文提供了一種提取音頻的簡便方法。
提示:本文出現(xiàn)的代碼在Python環(huán)境下安裝完相應(yīng)的庫后可以直接使用
一、環(huán)境準備以及編寫其核心代碼
1.安裝第三方庫moviepy
打開Cmd或者PowerShell輸入一下命令安裝庫
pip install moviepy
2.核心代碼
代碼如下(示例):可直接使用
import moviepy.editor as mp
my_clip = mp.VideoFileClip("C:\\Users\\ME08I\\Desktop\\1.mp4")#ci此處為視頻的絕對路徑。
my_clip.audio.write_audiofile('./test.mp3')#此處為輸出的音頻名稱和格式
注意:Python中'\'符號會被識別為轉(zhuǎn)義字符,所以要使用'\\'
二、代碼改進
提示:代碼中引入的庫,除了moviepy庫,其它的都是python3自帶的庫,直接引入就好
1.引入tkinter
過后在啟動腳本時可以直接使用窗口來選擇文件,而不需要修改代碼中的路徑,同時直接使選擇的視頻文件名為抽離的音頻文件名。
import os
import moviepy.editor as mp
import tkinter as tk
from tkinter import filedialog
#關(guān)閉黑窗口
root = tk.Tk()
root.withdraw()
def divest() -> None:
"""
音頻分離核心功能
:return: None
"""
try:
filePath = select_single_file()
my_clip = mp.VideoFileClip(filePath)
# 切割文件名和后綴名
fileName = os.path.basename(filePath).split(".")[0]
if os.path.exists(f'{fileName}.mp3'):
print("文件已存在于當(dāng)前目錄,請重新選擇!")
divest()
else:
my_clip.audio.write_audiofile(f'{fileName}.mp3')
except Exception as e:
print(e)
def select_single_file() -> str:
"""
選擇一個文件
:return: 所選文件的絕對路徑
"""
filePath = filedialog.askopenfilename()
return filePath
if __name__ == '__main__':
divest()2.實現(xiàn)效果
執(zhí)行腳本文件

選擇視頻文件

完成分離

生成的音頻文件在腳本的路徑下,路徑完全可以自己修改,比如將生成的音頻文件生成在與視頻文件相同的目錄下。

總結(jié)
現(xiàn)如今大部分的視頻剪輯軟件都有一鍵音頻分離的功能,但是,視頻軟件都極其的笨重,從打開到初始化都可能需要幾十秒,而使用Python的moviepy庫僅需3行代碼便可完成分離,改進后的代碼在加入了抓錯和窗口選擇后,完全可以當(dāng)作一款小工具使用,望收藏
以上就是Python實現(xiàn)音頻提取的示例詳解的詳細內(nèi)容,更多關(guān)于Python音頻提取的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python框架flask入門之環(huán)境搭建及開啟調(diào)試
這篇文章主要介紹了python框架flask入門環(huán)境搭建及開啟調(diào)試的步驟設(shè)置,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
pycharm打包py項目為.exe可執(zhí)行文件的兩種方式
本文主要介紹了pycharm打包py項目為.exe可執(zhí)行文件的兩種方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
python使用pyshark庫捕獲數(shù)據(jù)包的示例詳解
PyShark是一個基于Python的網(wǎng)絡(luò)數(shù)據(jù)包分析工具庫,它允許用戶捕獲、解碼和分析實時網(wǎng)絡(luò)流量,特別是Wi-Fi和TCP/IP協(xié)議的數(shù)據(jù),所以本文給大家介紹了python使用pyshark庫捕獲數(shù)據(jù)包的示例,需要的朋友可以參考下2024-08-08
解決pip install中UnicodeDecodeError問題的處理
這篇文章主要介紹了解決pip install中UnicodeDecodeError問題的處理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-09-09
Python?報錯ImportError:?No?module?named?***的問題解決
本文主要介紹了Python?報錯ImportError:?No?module?named?***,下面就來介紹一下該問題的解決,具有一定的參考價值,感興趣的可以了解一下2025-05-05
python twilio模塊實現(xiàn)發(fā)送手機短信功能
這篇文章主要介紹了python twilio模塊實現(xiàn)發(fā)送手機短信的功能,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08

