【发布时间】:2013-07-08 05:01:54
【问题描述】:
我有一个原始立体声音频文件。
它是树莓派降噪系统的一部分,麦克风 1 将主声音记录到左声道,麦克风 2 将周围的噪音记录到右声道。目标是从左通道中减去右通道。我会写我尝试过的东西,但如果另一种方法更容易,我不希望你坚持下去并插手它。
使用修改后的http://freedesktop.org/software/pulseaudio/doxygen/parec-simple_8c-example.html 版本进行录制。我将它输出到原始音频文件,这是一个有效的原始文件。立体声的优点是它们是同步的。在How to find the right RAW format 上查看我的其他问题。
总结一下:我该怎么做
- 将波形文件加载到数组中? (我问这个是因为在我的另一个问题中,波形格式似乎永远不对)
- 从左声道中减去右声道? (我假设 sample_left 减去 sample_right)
- 将其保存为原始或更好的 mp3 单声道。 (我可以管到跛脚)
【问题讨论】:
-
我想你正在使用的库有
read(或其他)函数,它返回读取数据的缓冲区? -
@KiaMorot 请参阅stackoverflow.com/questions/17547110/… 的代码以供参考。我目前正在使用 sf_read_int。
-
如果您目前只是在创建概念证明,请查看 Octave (gnu.org/software/octave)。它有大量的波处理功能来处理普通的负载 (gnu.org/software/octave/doc/interpreter/Audio-Processing.html),让你专注于让噪音消除工作(我认为让两个源同相至少会有问题)。
-
matlab 有
wavread。此外,如果这些是实际的科学实验,请不要使用 mp3,而是使用 wav 或任何未压缩的东西。 -
@SlappyTheFish Octave 似乎是一个 GUI 以及资源匮乏。请注意,我使用的是 raspberry pi,它是一台速度较慢(按现代标准衡量)的计算机,您不应在其上运行 gui,以免进一步减慢速度。如果我错了,请纠正我。
标签: c raspberry-pi