📄 tmp.c
字号:
interp_lpcs(rate, prev_lsp, curr_lsp, lpc, rate_cnt, bright)
INTTYPE rate;
float *prev_lsp;
float *curr_lsp;
float lpc[MAX_PITCH_SF][2][LPCORDER];
INTTYPE *rate_cnt;
float *bright;
{
INTTYPE i,j;
float wght_factor;
float tmp_lsp[LPCORDER];
float current_center;
float interp_factor;
float smooth;
float loops;
smooth=SMOOTH_FACTOR[rate][0];
if ((rate==QUARTER)||(rate==EIGHTH)) {
*rate_cnt+=1;
if (*rate_cnt>=10) {
smooth=SMOOTH_FACTOR[rate][1];
}
}
else if ((rate==FULL)||(rate==HALF)) {
*rate_cnt=0;
}
for (i=0; i<LPCORDER; i++) {
curr_lsp[i]=smooth*prev_lsp[i]+(1-smooth)*curr_lsp[i];
}
if (rate==EIGHTH) {
loops=1;
}
else if (rate==BLANK) {
loops=0;
}
else {
loops=PITCHSF[rate];
}
for(i=0; i<loops; i++) {
current_center=(float)(i+0.5)*(float)(FSIZE/loops);
interp_factor= current_center+(float)(FSIZE)-(float)(LPC_CENTER);
interp_factor/=(float)(FSIZE);
bright[i]=0;
for (j=0; j<LPCORDER; j++) {
tmp_lsp[j]=curr_lsp[j]*interp_factor
+prev_lsp[j]*(1-interp_factor);
bright[i]+=tmp_lsp[j];
}
bright[i]/=(float)(LPCORDER);
if (bright[i]<0.24) {
bright[i]=0.25;
}
else if (bright[i]>0.26) {
bright[i]= -0.25;
}
else {
bright[i]= -25.0*(bright[i]-0.25);
}
lsp2lpc(tmp_lsp, lpc[i][NOT_WGHTED], LPCORDER);
wght_factor=1;
for (j=0; j<LPCORDER; j++) {
wght_factor*=PERCEPT_WGHT_FACTOR;
lpc[i][WGHTED][j]
=lpc[i][NOT_WGHTED][j]*wght_factor;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -