Python合成多段mp3文件
前言:
有時(shí)候需要將多段mp3文件合成一個(gè)文件,某度了一下,方法都不是很直觀。今天某來(lái)寫一個(gè)將多段音頻文件合成一整段的帖子。

環(huán)境:
????- windows 10;
????- Python 3.8.9;
????- Pycharm(也可以用別的編輯器寫好,然后命令行運(yùn)行就行了)

用到的庫(kù):
????- os (系統(tǒng)庫(kù))
????- natsort (一個(gè)自然排序的庫(kù),需要自行pip安裝)

用到的插件:
????- ffmpeg

思路:
????- 將要處理的文件夾下的.mp3文件遍歷出來(lái);
????- 處理文件名中的空格;
????- 對(duì)文件名列表進(jìn)行“自然排序”;
????- 用ffmpeg將上述處理出來(lái)的音頻進(jìn)行合并;
思路里有兩點(diǎn)要注意:
????第一是,處理文件名中的空格,如果文件名中包含空格,講道理的處理下文件名中的空格,也就是將文件夾下的有空格的文件名進(jìn)行重命名;假設(shè)文件名很規(guī)范,只是數(shù)字前面有一個(gè)空格,像下面這樣。那就只需要寫一個(gè)函數(shù)把空格替換一下然后再重新命名。(注意,此操作有風(fēng)險(xiǎn),操作之前,請(qǐng)進(jìn)行備份。)

????第二是,用python遍歷出來(lái),一般是這樣的:新錄音_1.mp3,新錄音_10.mp3,新錄音_11.mp3....(中間省略)新錄音_2.mp3,新錄音_20.mp3,新錄音_21.mp3,新錄音_22.mp3...(后面省略)。由于我們接下來(lái)的合并是要從最先一個(gè)(新錄音_1.mp3)到最后一個(gè),比如是(新錄音_100.mp3),那么這樣排列的順序肯定不是我們需要的,所以要對(duì)其進(jìn)行自然排序。就不解釋了,代碼見。

實(shí)現(xiàn):
第一個(gè)是重名名文件:
這個(gè)函數(shù)可以先調(diào)用,也可以在處理合并的函數(shù)里調(diào)用也可以。我一般是先調(diào)用,很怕出錯(cuò)。
第二個(gè)函數(shù)是合并多段音頻文件(mp3)的函數(shù):
這樣就可以愉快的合并了。以下是合并后的文件截圖:

第一個(gè)2022-07-21-output.mp3就是合并后的文件。
因?yàn)榇a是用python轉(zhuǎn)換音頻文件格式的代碼后續(xù)。所以上面的代碼,好像忘記設(shè)定全局路徑了。補(bǔ)一個(gè)全局路徑吧。
以上就是python合并多段mp3的全部思路和代碼了。歡迎評(píng)論區(qū)留言溝通交流。