91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.3MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2024-02-01
  • 語言: C/C++
  • 標簽: PCM??

資源簡介

PCM語音編碼的C語言實現,其中包括c語言實現代碼,以及一段音頻處理前后對比效果試聽。

資源截圖

代碼片段和文件信息

#include?“stdio.h“
#include?“stdlib.h“
#include?“CWave.h“

char?*w*w1*w2;

//讀取Wave文件,無返回參數
void?CWave::Wav_RDY(FILE?*fp)//函數參數:fp為指向要打開的Wav文件的指針,WH為WaveHeader類型的結構體
{
fread(&WHsizeof(WaveFileHead)1fp);//以數據流讀入wav文件頭
//cout< //cout< //cout< w=new(char[WH.datasize]);//分配動態內存空間
fread(wWH.datasize1fp);
fclose(fp);
}

void?CWave::Wav_WT(FILE?*fp)//對修改后的波形文件進行寫入操作,函數參數:fp指向要保存的wav文件
{

fwrite(&WH1sizeof(WaveFileHead)1fp);//以數據流寫入文件頭
fwrite(w1WH1.datasize1fp);
delete[]?ww1;//釋放動態數組的存儲空間
fclose(fp);
//cout<<“save?successfully“<}


void?CWave::Interp()//對wav文件執行插入操作,源文件為fp1,目標文件為fp2
{???int?j=0;
w1=new(char[2*WH.datasize]);
for(int?i=0;i<=WH.datasize;i++)
{
w1[j]=w[i];
j++;
w1[j]=0;j++;
}
WH1=WH;
//修改文件頭參數
WH1.size0=44+2*WH.datasize;//修改wav文件的總數據大小,頭文件部分的44個字節是不變的,數據部分加倍
WH1.sampl=2*WH.sampl;//采樣率加倍
WH1.datasize=2*WH.datasize;//數據大小加倍
WH1.bytepersecblockalign=2*WH.bytepersecblockalign;//平均每秒波形音頻所需要的記錄的字節數加倍
}

void?CWave::Decimate()//對wav文件執行抽取操作
{
int?j=0;
w1=new(char[WH.datasize/2+1]);//申請動態內存空間
for(int?i=0;i<=WH.datasize;i++)//循環抽取
{
w1[j]=w[i];
j++;i++;
w1[j]=w[i];
i++;
}
WH1=WH;
//修改文件頭參數
WH1.size0=44+WH.datasize/2;
WH1.sampl=WH.sampl/2;//修改采樣率
WH1.datasize=WH.datasize/2;
WH1.bytepersecblockalign=WH.bytepersecblockalign/2;

}


void?main?()//主函數
{???FILE?*fp1*fp2;
????cout<<“*******************************波形文件處理******************************\n“< cout<<“????請選擇你要處理的波形文件:A.sen0381-16khz.wav????B.A0004_1-8khz.wav???\n“< char?sel0;
cin>>sel0;
if((sel0==‘A‘)||(sel0==‘a‘))
fp1=fopen(“sen0381-16khz.wav““rb“);
else?if((sel0==‘B‘)||(sel0==‘b‘))
fp1=fopen(“A0004_1-8khz.wav““rb“);
????
cout<<“????請選擇處理方式:?A.內插?B.抽取?\n“<????char?sel1;
cin>>sel1;
if((sel1==‘A‘)||(sel1==‘a‘))//同時支持大寫和小寫輸入
{
fp2=fopen(“Interp.wav““wb“);//打開或新建一個波形文件
wave.Wav_RDY(fp1);
wave.Interp();
wave.Wav_WT(fp2);
cout<<“????????????文件已成功保存至Interp.wav?!“< }
if((sel1==‘B‘)||(sel1==‘b‘))
{
fp2=fopen(“Decimate.wav““wb“);//打開或新建一個波形文件
wave.Wav_RDY(fp1);
wave.Decimate();
wave.Wav_WT(fp2);
cout<<“???????????文件已成功保存至Decimate.wav?!“< }

}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????46746??2009-11-04?14:36??WAVE-pcm\A0004_1-8khz.wav

?????文件????????828??2009-11-04?15:35??WAVE-pcm\CWave.h

?????文件??????????0??2009-11-04?15:56??WAVE-pcm\Debug\Decimate.wav

?????文件?????532568??2009-11-14?20:36??WAVE-pcm\Debug\DNJ_WAVE.exe

?????文件?????772348??2009-11-14?20:36??WAVE-pcm\Debug\DNJ_WAVE.ilk

?????文件????1997076??2009-11-14?20:36??WAVE-pcm\Debug\DNJ_WAVE.pch

?????文件????1115136??2009-11-14?20:36??WAVE-pcm\Debug\DNJ_WAVE.pdb

?????文件??????82944??2009-11-14?20:36??WAVE-pcm\Debug\vc60.idb

?????文件?????110592??2009-11-14?20:36??WAVE-pcm\Debug\vc60.pdb

?????文件??????88489??2009-11-14?20:36??WAVE-pcm\Debug\WaveMain.obj

?????文件???????4368??2009-11-04?10:28??WAVE-pcm\DNJ_WAVE.dsp

?????文件????????541??2009-11-04?10:28??WAVE-pcm\DNJ_WAVE.dsw

?????文件??????50176??2009-11-14?20:37??WAVE-pcm\DNJ_WAVE.ncb

?????文件??????48640??2009-11-14?20:37??WAVE-pcm\DNJ_WAVE.opt

?????文件????????899??2009-11-14?20:36??WAVE-pcm\DNJ_WAVE.plg

?????文件?????784236??2009-11-14?20:37??WAVE-pcm\Interp.wav

?????文件?????392140??2009-11-04?14:36??WAVE-pcm\sen0381-16khz.wav

?????文件???????2675??2009-11-04?16:12??WAVE-pcm\WaveMain.cpp

?????目錄??????????0??2009-12-03?23:54??WAVE-pcm\Debug

?????目錄??????????0??2009-12-03?23:54??WAVE-pcm

-----------?---------??----------?-----??----

??????????????6030402????????????????????20


評論

共有 條評論