转换后c ++ portaudio采样失真

时间:2015-02-16 16:57:27

标签: c++ audio-recording portaudio

我使用Portaudio 19(使用阻止i / o)捕获语音并将其提供给将要处理它的工具包。 音频格式是paInt16(即signed short int),缓冲区(存储样本)的类型为signed short int。 工具包输入应为float类型。 我需要在工具箱的数据结构中保留缓冲区的相同值, 但是在执行从短到浮动的样本转换之后,信号变得失真。在图像中,第一个是信号的短版本,第二个是浮动版本(都在原始音频文件上)。(http://postimg.org/image/paajkbcu9/) 有什么想法吗?

编辑:这里是代码

            for( int i = 0; i < d->frag_dim_in_sample;i++ )
                (*d->ready->v)(i) = float(temp->frame[i]);

认为这是一个演员问题,我试了这个没有改变

for( int i = 0; i < d->frag_dim_in_sample;i++ )
                (*d->ready->v)(i) = *reinterpret_cast<float*>(&temp->frame[i]);

0 个答案:

没有答案