↓ 快轉到主要內容

將 mp3 的語音轉成文字工作流

·398 字·1 分鐘·
PolloChang
作者
PolloChang
我是一隻雞

原始人工流程
#

  1. 影片轉 mp3
1
ffmpeg -i test.mp4 -vn -c:a libmp3lame -q:a 0 test.mp3
  1. 移除停頓中的空隙
1
ffmpeg -i test.mp3 -af "silenceremove=stop_periods=-1:stop_duration=0.5:stop_threshold=-40dB" test.v0.2.mp3
  1. 雙聲道單聲道
1
ffmpeg -i test.v0.1.mp3 -ac 1 -ar 16000 test.v0.2.mp3

AI 建議
#

這三個步驟可以直接整合成一行指令,一次完成提取音訊、去除靜音、降為單聲道以及調整取樣率,避免多次編碼造成音質反覆失真與浪費時間。

整合後的一行指令
#

1
ffmpeg -i test.mp4 -vn -af "silenceremove=stop_periods=-1:stop_duration=0.5:stop_threshold=-40dB" -ac 1 -ar 16000 -c:a libmp3lame -q:a 0 output.mp3

優化重點
#

  1. 合併濾鏡與參數處理: 直接在來源影片處理音訊濾鏡 silenceremove、單聲道轉換 -ac 1 與取樣率設定 -ar 16000,中間不產生任何暫存檔案。
  2. 避免重複失真: MP3 屬於有損壓縮格式。原本流程每轉一次就重新編碼一次,會逐步劣化音質;合併後只在最後儲存時編碼一次。
  3. 大幅縮短處理時間: 省去多次磁碟讀寫與反覆編碼的開銷,執行速度會明顯加快。

額外提醒
#

如果你的最終目的是為了送進語音辨識模型(例如 Whisper),輸出格式改用未壓縮的 WAV 會更合適,不僅能省去 MP3 的編碼運算時間,也能維持辨識精準度:

1
ffmpeg -i test.mp4 -vn -af "silenceremove=stop_periods=-1:stop_duration=0.5:stop_threshold=-40dB" -ac 1 -ar 16000 output.wav