如何利用ffmpeg和sox進行降噪

如何利用ffmpeg和sox進行降噪

你好!本篇博客的降噪思路:通過截取音頻中的已知噪音部分,根據該噪音樣本對整個音頻進行降噪。截取噪音使用ffmpeg,降噪使用sox。

安裝工具

兩個工具的下載地址如下:

  1. ffmpeg ,下載地址:ffmpeg.org;
  2. sox ,下載地址:http://sox.sourceforge.net/;

開始降噪

  1. 將音頻流和視頻流拆分爲2個不同的文件:
    視頻: ffmpeg -i input.mp4 -vcodec copy -an tmpvid.mp4
    音頻: ffmpeg -i input.mp4 -acodec pcm_s16le -ar 128k -vn tmpaud.wav
  2. 從上一步的音頻結果文件中生成一個噪聲樣本:
    ffmpeg -i input.mp4 -acodec pcm_s16le -ar 128k -vn -ss 00:00:00.0 -t 00:00:00.5 noiseaud.wav
    -ss: 從開始的時間偏移. (h: m: s.ms).
    -t duration: 表示要剪切的音頻段的持續時間(h: m: s.ms),以便下一步用來作爲噪聲文件。
    選擇一段沒有語音、只有噪音的音頻(例如,講話者靜音時的那一秒鐘)。
  3. 使用sox生成噪音profile:
    sox noiseaud.wav -n noiseprof noise.prof
  4. 清除音頻流中的噪聲樣本:
    sox tmpaud.wav tmpaud-clean.wav noisered noise.prof 0.21
    更改0.21以調整採樣率的靈敏度級別(我發現0.2-0.3通常提供最佳結果)。
  5. 使用ffmpeg將新的音頻和視頻流合併到一起:
    ffmpeg -i tmpvid.mp4 -i tmpaud-clean.wav -map 0:v -map 1:a -c:v copy -c:a aac -b:a 128k out.mp4

英文原文地址

發佈了6 篇原創文章 · 獲贊 2 · 訪問量 7620
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章