手上有一批 43 場現場錄音,多是 audience 錄音轉出來的 FLAC,取樣率 44.1kHz、16bit,每場大約 45 到 90 分鐘。問題不在音質,而在曲與曲之間:一段十幾秒的鼓掌、講話、椅子聲,讓整張專輯在隨機播放時聽起來很碎。我想把每首曲子前後的觀眾聲壓到一個固定的短尾巴,保留現場感,但不要每次切歌都先聽五秒拍手。
做法是先用 ffmpeg 的 silencedetect 掃一遍,找出「安靜到不像音樂」的區段,再人工核對。指令大概這樣:
ffmpeg -i live.flac -af silencedetect=noise=-35dB:d=1.5 -f null - 2>&1 | grep silence_
-35dB 是我在幾場錄音上試出來的,太低會把安静的段落誤判成掌聲尾,太高又抓不到。d=1.5 是要求至少 1.5 秒的靜音才算候選,避免把樂句之間的短停頓切掉。掃出來的 start/end 我用一個小腳本轉成 ffmpeg 的 atrim 段落,把候選區間前後各留 0.3 秒,其餘用 afade 做 80ms 的淡出,而不是硬切。
為什麼不直接切掉?因為掌聲通常和殘響黏在一起,硬切會在波形上留下明顯的斷點,耳機裡聽得到「啪」的一聲。留 0.3 秒加淡出,代價是每首歌的頭尾多了幾百毫秒的觀眾聲,但換來的是切點不會被聽出來。另外我沒有用自動刪除整段靜音,因為現場錄音的安靜段落有時是樂手在數拍,刪掉會讓進歌點錯位。
這套方法失效的地方很具體:第一,熱烈的場次裡觀眾從頭到尾沒停過,silencedetect 幾乎抓不到候選,我最後手動標了 11 首;第二,有些錄音的底噪在 -40dB 左右,偵測門檻得整場往上調,否則整首都是「靜音」;第三,掌聲裡夾著口哨或喊叫時,-35dB 的門檻會漏掉,得靠耳朵補。我自己就有一場因為底噪偏高,跑完之後整張專輯的動態被壓平,只能整批退回原始檔重做。
現在這 43 場裡,有大約三成是我手動改過切點的。自動化只負責把候選位置標出來,最後那一刀還是由耳朵決定。你們在處理現場錄音時,是接受曲間掌聲原樣保留,還是也會壓短?如果會,門檻和淡出長度大概抓多少?


0 条评论
还没有评论,写下第一条。