我正在研究一个XNA脚本,在该脚本中,我想每隔两帧从麦克风读取数据并估算其音高。我几乎完全基于此页面(http://msdn.microsoft.com/en-us/library/ff827802.aspx)进行输入。
现在,我的缓冲区已满字节。它代表什么?我重置所有内容,并每隔10帧查看一次缓冲区,因此它似乎是一个巨大的数组,在不同的时间点有9个1764字节的实例(整个大小为15876字节)。我假设这是声压的时域,因为我找不到有关麦克风输入格式的任何信息。有人知道这是怎么回事吗?我有一个已经启动并运行FFT的 friend ,但是在尝试插入FFT数据之前,我们正在尝试尽可能多地了解我正在收集的数据。
最佳答案
样本采用Little-Endian 16位线性PCM。将每对字节转换为带符号的short
short sample = (short)(buffer[i] | buffer[i+1] << 8);
关于audio - XNA麦克风的音频缓冲格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25748861/