You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用FFmpeg或命令行工具生成指定频段配置的灰噪声?

生成指定频段噪声的FFmpeg实现方案

一、先明确各频段对应的频率范围

行业通用的噪声生成场景频段划分:

  • sub-bass:20Hz 以下
  • low bass:20Hz - 60Hz
  • bass:60Hz - 250Hz
  • high bass:250Hz - 500Hz
  • low mids:500Hz - 2kHz
  • mids:2kHz - 4kHz
  • high mids:4kHz - 8kHz
  • low treble:8kHz - 12kHz
  • treble:12kHz - 16kHz
  • high treble:16kHz - 20kHz

你的需求是仅保留low mids和mids频段(即500Hz - 4kHz),其余频段完全过滤(衰减至-inf)。

二、FFmpeg命令实现

方案1:用高低通滤镜快速过滤(推荐)

生成白噪声后,直接通过highpass和lowpass滤镜保留目标频段:

ffmpeg -f lavfi -i "anoisesrc=color=white:sample_rate=48000:duration=10" \
       -af "highpass=f=500, lowpass=f=4000" \
       -c:a pcm_s16le output.wav

参数说明:

  • anoisesrc=color=white:生成白噪声,sample_rate=48000为专业级采样率,duration=10设置音频时长(单位:秒)
  • highpass=f=500:过滤500Hz以下所有频段
  • lowpass=f=4000:过滤4kHz以上所有频段
  • -c:a pcm_s16le:输出无压缩WAV格式,保证音质

方案2:用均衡器逐个频段精准衰减

如果需要严格匹配每个频段的衰减设置,可使用equalizer滤镜逐个调整:

ffmpeg -f lavfi -i "anoisesrc=color=white:sample_rate=48000:duration=10" \
       -af "equalizer=f=10:width_type=h:width=20:g=-999, \
            equalizer=f=40:width_type=h:width=40:g=-999, \
            equalizer=f=155:width_type=h:width=190:g=-999, \
            equalizer=f=375:width_type=h:width=250:g=-999, \
            equalizer=f=6000:width_type=h:width=4000:g=-999, \
            equalizer=f=10000:width_type=h:width=4000:g=-999, \
            equalizer=f=14000:width_type=h:width=4000:g=-999, \
            equalizer=f=18000:width_type=h:width=4000:g=-999" \
       -c:a pcm_s16le output.wav

参数说明:g=-999等效于-inf衰减,每个equalizer对应一个需要过滤的频段,通过width覆盖对应频率范围。

三、验证输出结果

用astats滤镜检查频谱范围,确认只有目标频段有信号:

ffmpeg -i output.wav -af astats=metadata=1:reset=1 -f null -

内容的提问来源于stack exchange,提问作者Azat Khabibulin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 02:52:22