gpt4 book ai didi

c - PortAudio:如何从麦克风获取录音(获取数据)

转载 作者:太空狗 更新时间:2023-10-29 15:30:32 28 4
gpt4 key购买 nike

我正在尝试使用 portaudio(具有跨平台功能)从麦克风读取数据,然后我想通过 FFT 处理该数据,但我不太确定该怎么做。很多人告诉我:1.获取数据,2.应用 fft,但问题是我不太确定如何获取数据,portaudio 没有太多关于从麦克风获取输入的教程,如果你知道任何代码、教程或任何其他资源,那将是非常完整的。我已经搜索了一段时间了。请帮忙

最佳答案

portaudio 发行版具有示例 C 程序形式的文档。它们位于 test 目录中,通常称为 patest_...。那里有很多好 Material ,文档包含 overview with very short description ,

您要查看的是 patest_record,它通过回调进行异步记录。恕我直言,如果您想做任何严肃的事情,这就是要走的路。但是还有 patest_read_record.c,它做同步(阻塞)IO。

代码其实很简单,这里是相关的部分(遗漏了很多东西):1/你 malloc 一个缓冲区 2/你安装一个回调 3/在回调中,你将数据复制到你的缓冲区

/* 1 */ 
data.recordedSamples = (SAMPLE *) malloc( numBytes );
/* 2 */
err = Pa_OpenStream(
&stream,
&inputParameters,
NULL, /* &outputParameters, */
SAMPLE_RATE,
FRAMES_PER_BUFFER,
paClipOff,
recordCallback,
&data );
/* 3, in recordCallBack with rptr the input data and wptr our buffer */
for( i=0; i<framesLeft; i++ )
{
*wptr++ = *rptr++; /* left */
if( NUM_CHANNELS == 2 ) *wptr++ = *rptr++; /* right */
}

同样,这是简化的,但您明白了。有相当多的簿记,示例代码不是最干净的,但很容易适应您的目的。

关于c - PortAudio:如何从麦克风获取录音(获取数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6659134/

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