short calOneFrameACF(vector<short> wavFrame, int sampleRate)
{
vector<float> acf;
acf.empty();
// 计算ACF
for (int k = 0; k < wavFrame.size(); k++)
{
float sum = 0.0;
for (int i = 0; i < wavFrame.size() - k; i++)
{
sum = sum + wavFrame[i] * wavFrame[ i + k ];
}
acf.push_back(sum);
}
// 找到最大的一个
float max(-999);
int index = 0;
for (int k = 0; k < wavFrame.size(); k++)
{
if (k > 25 && acf[k] > max)
{
max = acf[k];
index = k;
}
}
return (short)sampleRate / index;
}
int main()
{
const char *wavFile = "bofang.wav";
vector<short> data;
int nodesPerFrame = 400;
/************* 将数据写入文件部分开始 ***************/
fstream writeFile;
writeFile.open("statistics.txt", ios::out);
/************* 将数据写入文件部分结束 ***************/