⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mel.c

📁 这是一个语音去除噪声的程序
💻 C
字号:
/* ---------------------------------------------
The correlating functions in SpeechRecognition 
EndPoint Detection 
------------------------------------------------
*/

#include <math.h>
#include <stdio.h>

#define FLOW 0
#define FHIGH 4000
#define FRAMELENGTH 256
#define BANDSUM 20
#define SAMPLING 8000



void main(void)
{
	float fFmelLow,fFmelHigh,fFmelBandWid;
	float fFlow,fHigh;
	float fFmel[BANDSUM + 1],fFrequency[BANDSUM + 1];
	float fBoundaryPoint[BANDSUM + 1];
	float fFrameTime;
	float fFilter[BANDSUM][FRAMELENGTH];
	int i,k;

	fFlow = 1 + (float)FLOW/(float)700;
	fHigh = 1 + (float)FHIGH/(float)700;
	fFmelLow = (float)(1127 * log(fFlow));
	fFmelHigh = (float)(1127 * log(fHigh));
	fFmelBandWid = (fFmelHigh-fFmelLow)/(float)(BANDSUM + 1);

  	for(i = 0; i <= BANDSUM; i++)
	{
		fFmel[i] = fFmelLow + i * fFmelBandWid;
		fFrequency[i] = (float)(700 * (exp(fFmel[i]/1127) - 1));
		fFrameTime =(float)FRAMELENGTH/(float)SAMPLING;
		fBoundaryPoint[i] = fFrequency[i] * fFrameTime;
	}
	
	for(i = 1; i <= BANDSUM; i ++)
	{
		for(k = 0; k <FRAMELENGTH; k ++)
		{
			if(k >= fBoundaryPoint[i-1] && k <= fBoundaryPoint[i])
				fFilter[i][k] = (k - fBoundaryPoint[i-1])/(fBoundaryPoint[i] - fBoundaryPoint[i-1]);
			else if(k >= fBoundaryPoint[i] && k <= fBoundaryPoint[i + 1])
				fFilter[i][k] = (fBoundaryPoint[i + 1] - k)/(fBoundaryPoint[i + 1] - fBoundaryPoint[i]);
			else fFilter[i][k] = 0;

		}
	}
	

		printf("Now to the end of this program\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -