最近想到用python 寫一個程式來批次調整MP3

主要是做到以下這些事情

1. 移除最前面一秒鐘

2. 整體聲音均化

3. 頭尾淡出淡入3秒

4. 音量平衡到90dB

5. 壓縮mp3到 192kbs

 

6. 另存新檔

 

程式碼主要是用 GPT 產生

但是!!!!

用 pydub 套件要注意必須執行時候有安裝 ffmpeg 或者 在程式中有指定 path 到ffmpeg的資料夾

才能正常運作喔~~~

 

以下給各位參考喔~

 

import os

os.environ["PATH"] += os.pathsep + "C:\\Users\\ZOEARTH\\Desktop\\TO_NAS\\ffmpeg\\bin"

import pydub
from pydub import AudioSegment, effects



def process_mp3(input_folder, output_folder):
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)
    
    for file_name in os.listdir(input_folder):
        if file_name.endswith(".mp3"):
            input_path = os.path.join(input_folder, file_name)
            output_path = os.path.join(output_folder, file_name)
            
            # 讀取音訊
            print("input_path = ", input_path)
            audio = AudioSegment.from_mp3(input_path)
            
            # 移除前1秒
            audio = audio[1000:]
            
            # 聲音均化
            audio = effects.normalize(audio)
            
            # 頭尾淡入淡出 3 秒
            audio = audio.fade_in(3000).fade_out(3000)
            
            # 設定音量為 90dB
            target_dBFS = -3.0  # 90dB 參考值 (-3dBFS)
            change_in_dBFS = target_dBFS - audio.dBFS
            audio = audio.apply_gain(change_in_dBFS)
            
            # 另存新檔,壓縮為 192kbps MP3
            audio.export(output_path, format="mp3", bitrate="192k")
            print(f"Processed: {file_name}")

# 設定輸入與輸出資料夾
input_folder = "input_mp3"
output_folder = "output_mp3"
process_mp3(input_folder, output_folder)

雖然感覺好像可以

但是壓縮出來的音質好像變胖然後也沒有比較好

有點可惜

 

因為有些MP3是高壓縮的

特別指定之後反而變胖了