如何从C中的音频文件中过滤特定频率

时间:2014-02-15 15:10:30

标签: c audio

在各种搜索引擎上搜索之后,这里的信息很少适用于我的情况。 基本上我想在C中创建一个执行以下操作的程序:

  1. 打开音频文件(flac Mp3和wav,代表一点点变化)
  2. 过滤并切出一组特定的频率(例如4000-5200hz,频率应在询问时输入)
  3. 以与输入文件相同的格式保存新文件(不带滤波频率)。
  4. 我感兴趣的事情:

    1. 执行相同或类似事情的软件的开源示例,最好是在C

    2. 有关C语音编程的任何文献

    3. 关于如何构建不同格式的解释,任何来源赞赏
    4. Ps。:如果问题的某些部分可以轻松用Google搜索,我很抱歉,但我尝试过,并且没有任何详细描述过这一点。

      非常感谢!!

1 个答案:

答案 0 :(得分:1)

数目:

  1. FFmpeg做了大量的音频切片和切割,并且它是用纯粹的C.写的。虽然很大,但可能很难一次性消化。
  2. “音频编程”有点模糊。但是从你的其余问题来看,听起来你想要从磁盘打开音频文件,对音频应用一些转换,并将数据写入新文件。 (“音频编程”保护伞下的其他领域包括访问特定于平台的API以从麦克风读取并将音频写入输出设备。)
  3. 广泛的主题,但我们将开始简单。
  4. 我建议首先获取(或生成).WAV文件。 WAV文件可能是最简单的手动读写的音频文件。 Here is a page that describes what you need to know about the WAV format

    脉冲编码调制(PCM)是最简单的音频格式,因为您无需担心首先解压缩它。 Here is a page (that I wrote) describing different PCM formats

    至于过滤和剪切不同的频率,我认为你要找的是low-passhigh-passband-pass过滤器。

    我希望这有助于您入门。根据需要在Stack Overflow上提出更多问题。