国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Python使用pydub模塊轉換音頻格式以及對音頻進行剪輯

瀏覽:5日期:2022-06-17 17:52:56
前言

近端時間看了一個短視頻,覺得視頻的背景音樂片段很不錯,想把這個背景音樂得到,雖然小編運用Python爬蟲肯定能得到這首音樂,但是這個音樂片段肯定是得不到的,于是網上看一下相關官方文檔,沒想到python真的有模塊可以滿足要求,這又讓我想起自己CSDN界面的那段話了,“在Python面前,只有你想不到的,沒有Python做不到的”。

1.需要下載的Python模塊和ffmpeg多媒體處理工具

需要的Python模塊是標題上提到的那個,pydub,這個模塊可以實現對音頻文件的剪輯、轉換音頻格式等。pydub是python的高級一個音頻處理庫,自帶的wave模塊只能處理 wav 格式的音頻文件,如果要想處理類似MP3格式的文件,就得要裝 ffmpeg或者libav了。pydub依賴于ffmpeg,這里選擇安裝ffmpeg。

下載命令,在cmd上輸入pip install pydub即可

除了下載pydub這個模塊之外,還需要下載ffmpeg這個多媒體處理工具,否則,即使在代碼中指定音頻文件路徑沒有錯誤,運行結構也會報錯。如下:

Python使用pydub模塊轉換音頻格式以及對音頻進行剪輯

下載這個之后,就不會報這個錯誤了,下載網址為:ffmpeg

在這個網址下面找一個和自己電腦系統一樣的版本下載即可,下載完成之后,解壓,好像不配置環境變量,程序也可以正常執行,不過,最好還是配置環境變量。

Python使用pydub模塊轉換音頻格式以及對音頻進行剪輯

2.實現音頻剪輯和轉換音頻格式代碼

其實,實現音頻剪輯和轉換音頻格式的代碼總共就幾行代碼,只不過需要輸入一些參數值,因此代碼量相對而言多了起來。

關鍵代碼為:

from pydub import AudioSegmentsound=AudioSegment.from_file(file=’./music/刺客.mp3’,format=’mp3’) sound=sound[start:end] # start,end兩個參數用于對音頻進行剪輯 sound.export(out_f=’./music/刺客.wav’, format=’wav’) # 用于保存剪輯之后的音頻文件

當然讀者想了解更多有關這個模塊的使用,可以來看看官方文檔??!

文檔連接為:pydub

文檔中講了有關音頻合并、音頻重復等知識點喔!。

最終實現代碼:

from pydub import AudioSegmentimport sysclass Music(object): def __init__(self,file,file_type,start,end,save_file,save_file_type):self.sound = AudioSegment.from_file(file=file, format=file_type)self.start=start # 剪輯音頻文件開始時間self.end=end # 剪輯音頻文件的結束時間self.save_file=save_file # 保存音頻文件的路徑self.save_file_type=save_file_type # 保存音頻文件的類型 def editedMusic(self): # 定義方法用于剪輯音頻# 對于傳入的start,end參數進行一些字符串處理## 對傳入的開始時間進行字符串處理if self.start==’0’ or self.start==’’: # 從頭開始處理音頻文件 start_time=0elif ':' in self.start:# 從音頻中間處理 list_1=self.start.split(':') start_time=int(list_1[0])*60+int(list_1[1])else: # 如果是其他情況,提示錯誤,并退出程序 print('你輸入的初始截取時間有問題') sys.exit()start_time*=1000 # 毫秒作為單位,需要在原來秒數的基礎上再乘以1000if start_time>=len(self.sound): # 如果初始截取時間大于或等于音頻文件總時間 print(’你輸入的初始截取時間大于該音頻文件總時間,故無法進行剪輯操作’) sys.exit()## 對傳入的結束時間進行字符串處理if self.end==’’: end_time=len(self.sound) # 如果輸入結束時間為空,表示截取到音頻文件最后elif ’:’ in self.end: list_2=self.end.split(’:’) end_time=int(list_2[0])*60+int(list_2[1])else: print('你輸入的結束截取時間有問題') sys.exit()end_time*=1000self.sound=self.sound[start_time:end_time] # 對音頻文件進行剪輯self.saveFile() def saveFile(self):self.sound.export(out_f=self.save_file,format=self.save_file_type)# 保存已經進行剪輯的音頻文件print(’已成功轉換!’)if __name__ == ’__main__’: print(’1.可以將音頻文件轉換其他格式的音頻文件n2.可用剪輯音頻文件n’) print(’=’*50) file=input(’建議:n(1.音頻文件和運行文件在同一個文件夾下面,最好使用相對路徑)n(2.音頻文件和運行文件不在同一個文件夾下面,最好用絕對路徑)n請輸入要剪輯的文件路徑:’) file_type=file[file.rfind(’.’)+1:] # 音頻文件類型 mp3、wav start=input('(可用輸入0,空格,(1:1,1分1秒):)n輸入開始截取時間:') end=input('(可用輸入空格,(1:1,1分1秒):)n輸入結束截取時間:') save_file=input('請輸入剪輯之后保存的文件路徑:') save_file_type=save_file[save_file.rfind(’.’)+1:] music=Music(file,file_type,start,end,save_file,save_file_type) music.editedMusic() # 1:12 1:36

當然,這個模塊好像還可以滿足一些用戶改變音樂音質的需求,export()方法里面有一個參數bitrate比特率,百度了一下這個東西,好像對音頻音質有一定影響。

Python使用pydub模塊轉換音頻格式以及對音頻進行剪輯

3.總結

到此這篇關于Python使用pydub模塊轉換音頻格式以及對音頻進行剪輯的文章就介紹到這了,更多相關Python轉換音頻格式內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 9l国产精品久久久久麻豆 | 在线播放另类 | 日本一本黄 | 欧美三级真做在线观看 | 一级色黄 | 久草手机在线播放 | 精品视频一区二区三三区四区 | www亚洲一区 | 97在线观看完整免费 | 深夜福利国产福利视频 | 久艹在线观看视频 | 免费观看情趣v视频网站 | 久久国产影视免费精品 | 国产日产久久高清欧美一区 | 国产成人三级 | 国产三级日本三级在线播放 | 巴西一级毛片 | 中美日韩在线网免费毛片视频 | 亚洲精品在线免费观看视频 | 国产一区二区免费在线 | 欧美精品久久久久久久久大尺度 | 手机看a | 国产一级一片免费播放i | 欧美成人私人视频88在线观看 | 亚洲2020天天堂在线观看 | 久草手机在线 | 男女朋友做爽爽爽免费视频网 | 一区二区中文字幕亚洲精品 | 国产三级a三级三级三级 | 亚洲欧美日韩国产一区二区精品 | 97在线视频免费观看费观看 | 一区二区三区不卡在线观看 | 欧美成人免费观看的 | 国产精品成人不卡在线观看 | 国产成人在线免费视频 | 欧美三级成人观看 | 日韩精品福利视频一区二区三区 | 亚洲第一狼人区 | 欧美日韩另类综合 | 欧美国产成人在线 | 美女黄色影院 |