gpt4 book ai didi

使用 C 在 Windows 上捕获和分析音频

转载 作者:行者123 更新时间:2023-11-30 17:12:36 25 4
gpt4 key购买 nike

我正在构建一个程序,需要录制音频并实时或半实时分析它(录制短音频位并一次分析一次录音)。

我编写了打开和分析 WAV 文件的代码(使用 libsndfile 库)。

现在我在编写从 PC 麦克风录音并将其保存到缓冲区/WAV 文件的代码时遇到了麻烦。我尝试使用此示例 - http://www.techmind.org/wave/ 。但我不知道如何将录制的缓冲区保存到 WAV 或如何使用录制的数据本身。

该项目的要求是在 Windows 上用 C 语言编写。

我正在为此目的寻找一个高效的库。

<小时/>

编辑:使用以下代码将数据从 16 位转换为 double 后,我设法将数据保存为 WAV 数据:

for (int i = 0; i < size; i += 2)
{
int c = (waveIn[i + 1] << 8) | waveIn[i];
double t = c / 32768.0;
data[i] = t;
}

但是,录音噪音很大且不清楚。有什么建议吗?

<小时/>

谢谢

最佳答案

经过大量修改和测试,我放弃了使用 Windows API 来实现此目的,并决定使用 PortAudio 。他们有几个解决这个问题的例子。我采用了一个 PA 示例并对其进行了修改,使其适合我的需求,并将其与 libsndfile 结合起来。基于 saving WAV files 的函数。这是一个很棒的低级解决方案。

此外,如果有人正在寻找高级音频录制解决方案(无法控制采样率等),我推荐这个 MCI based solution .

谢谢:)

关于使用 C 在 Windows 上捕获和分析音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31430501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com