音频算法仿真平台模板搭建1(fread单声道数据 float版本)
教大家如何搭建一个在VS下可以仿真音频算法的仿真平台,这里直接上源码模板/************************************************************************ 一个完整的关于fopen,fread,fwrite,fclose的操作** 一个关于算法仿真的实例*****************************************
·
教大家如何搭建一个在VS下可以仿真音频算法的仿真平台,这里直接上源码模板
/**********************************************************************
** 一个完整的关于fopen,fread,fwrite,fclose的操作
** 一个关于算法仿真的实例
***********************************************************************/
#include <stdio.h>
#include "math.h"
/* Sampling Rate */
#define FS (16000)
#define PI (3.141592654)
/* random number generator, 0 <= RND < 1 */
#define RND(p) ((*(p) = (*(p) * 7141 + 54773) % 259200) * (1.0 / 259200.0))
/* MAX length of samples 采样缓存长度最大值 */
#define MAX_LEN_SMAPLE 2048
/* 定义每次处理的长度 */
#define BLOCK_TICK_SIZE 64
int main(int argc, char** argv)
{
float pReadData[MAX_LEN_SMAPLE] = {0}; //输入缓存数组
float pWriteData[MAX_LEN_SMAPLE] = {0}; //输出缓存数组
int nReadLen = BLOCK_TICK_SIZE;
int i = 0;
int nAlgRunCount = 0; //算法运行次数
FILE *pReadFile = fopen("in.pcm", "rb"); //in.pcm是float 格式的数据
FILE *pWriteFile = fopen("out.pcm", "wb");
if ((pReadFile == NULL) || (pWriteFile == NULL) || (nReadLen > MAX_LEN_SMAPLE))
{
if(pReadFile != NULL)
{
fclose(pReadFile);
}
if(pWriteFile != NULL)
{
fclose(pWriteFile);
}
printf("fopen Failed...\n");
return 0 ;
}
//pcm文件的前几个字节是头文件信息,舍去
nReadLen = fread(pReadData, sizeof(float), 5, pReadFile);
printf("AlgProcess Begin ...\n");
nReadLen = BLOCK_TICK_SIZE;
while(nReadLen > 0) //如果文件读完,则返回-1
{
nReadLen = fread(pReadData, sizeof(float), nReadLen, pReadFile);
if (nReadLen > 0)
{
//开始做算法处理
for(i = 0; i < nReadLen; i++)
{
pWriteData[i] = pReadData[i];
}
fwrite(pWriteData, sizeof(float),nReadLen, pWriteFile);
nAlgRunCount++;
printf("AlgRunCount = %d\n", nAlgRunCount);
}
}
printf("AlgProcess End,TotalCount = %d\n", nAlgRunCount);
fclose(pReadFile);
fclose(pWriteFile);
return 0;
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)