青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

asm, c, c++ are my all
-- Core In Computer
posts - 139,  comments - 123,  trackbacks - 0

[轉貼]音頻錄入

一、數字音頻基礎知識
Fourier級數:
任何周期的波形可以分解成多個正弦波,這些正弦波的頻率都是整數倍。級數中其他正線波的頻率是基礎頻率的整數倍。基礎頻率稱為一級諧波。

PCM:
pulse code modulation,脈沖編碼調制,即對波形按照固定周期頻率采樣。為了保證采樣后數據質量,采樣頻率必須是樣本聲音最高頻率的兩倍,這就是Nyquist頻率。
樣本大小:采樣后用于存儲振幅級的位數,實際就是脈沖編碼的階梯數,位數越大表明精度越高,這一點學過數字邏輯電路的應該清楚。

聲音強度:
波形振幅的平方。兩個聲音強度上的差常以分貝(db)為單位來度量,

計算公式如下:
20*log(A1/A2)分貝。A1,A2為兩個聲音的振幅。如果采樣大小為8位,則采樣的動態范圍為20*log(256)分貝=48db。如果樣本大小為16位,則采樣動態范圍為20*log(65536)大約是96分貝,接近了人聽覺極限和痛苦極限,是再線音樂的理想范圍。windows同時支持8位和16位的采樣大小。

二、相關API函數,結構,消息
對于錄音設備來說,windows 提供了一組wave***的函數,比較重要的有以下幾個:

打開錄音設備函數
MMRESULT waveInOpen(
LPHWAVEIN phwi, //輸入設備句柄
UINT uDeviceID, //輸入設備ID
LPWAVEFORMATEX pwfx, //錄音格式指針
DWORD dwCallback, //處理MM_WIM_***消息的回調函數或窗口句柄,線程ID
DWORD dwCallbackInstance,
DWORD fdwOpen //處理消息方式的符號位
);
為錄音設備準備緩存函數
MMRESULT waveInPrepareHeader( HWAVEIN hwi, LPWAVEHDR pwh, UINT bwh );
給輸入設備增加一個緩存
MMRESULT waveInAddBuffer( HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh );
開始錄音
MMRESULT waveInStart( HWAVEIN hwi );
清除緩存
MMRESULT waveInUnprepareHeader( HWAVEIN hwi,LPWAVEHDR pwh, UINT cbwh);
停止錄音
MMRESULT waveInReset( HWAVEIN hwi );
關閉錄音設備
MMRESULT waveInClose( HWAVEIN hwi );
Wave_audio數據格式
typedef struct {
WORD wFormatTag; //數據格式,一般為WAVE_FORMAT_PCM即脈沖編碼
WORD nChannels; //聲道
DWORD nSamplesPerSec; //采樣頻率
DWORD nAvgBytesPerSec; //每秒數據量
WORD nBlockAlign;
WORD wBitsPerSample;//樣本大小
WORD cbSize;
} WAVEFORMATEX;
waveform-audio 緩存格式 
typedef struct {
LPSTR lpData; //內存指針
DWORD dwBufferLength;//長度
DWORD dwBytesRecorded; //已錄音的字節長度
DWORD dwUser;
DWORD dwFlags;
DWORD dwLoops; //循環次數
struct wavehdr_tag * lpNext;
DWORD reserved;
} WAVEHDR;
相關消息 
MM_WIM_OPEN:打開設備時消息,在此期間我們可以進行一些初始化工作
MM_WIM_DATA:當緩存已滿或者停止錄音時的消息,處理這個消息可以對緩存進行重新分配,實現不限長度錄音
MM_WIM_CLOSE:關閉錄音設備時的消息。
相對于錄音來說,回放就簡單的多了,用到的函數主要有以下幾個:
打開回放設備 
MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPWAVEFORMATEX pwfx, DWORD dwCallback, DWORD dwCallbackInstance, DWORD fdwOpen );
為回放設備準備內存塊 
MMRESULT waveOutPrepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh );

寫數據(放音) 
MMRESULT waveOutWrite(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh );
相應的也有三個消息,用法跟錄音的類似:

三、程序設計

一個錄音程序的簡單流程: 打開錄音設備waveInOpen===>準備wave數據頭waveInPrepareHeader===>
準備數據塊waveInAddBuffer===>開始錄音waveInStart===>停止錄音(waveInReset) ===>
關閉錄音設備(waveInClose)
當開始錄音后當buffer已滿時,將收到MM_WIM_DATA消息,處理該消息可以保存已錄好數據。

回放程序比這個要簡單的多: 打開回放設備waveOutOpen===>準備wave數據頭waveOutPrepareHeader===>寫wave數據waveOutWrite===>
停止放音(waveOutRest) ===>關閉回放設備(waveOutClose)
如何處理MM消息: MSDN告訴我們主要有 CALLBACK_FUNCTION、CALL_BACKTHREAD、CALLBACK_WINDOW 三種方式,常用的是
Thread,window方式。
線程模式
waveInOpen(&hWaveIn,WAVE_MAPPER,&waveform,m_ThreadID,NULL,CALLBACK_THREAD),我們可以繼承MFC的CwinThread類,只要相應的處理線程消息即可。
MFC線程消息的宏為:

ON_THREAD_MESSAGE,
可以這樣添加消息映射: ON_THREAD_MESSAGE(MM_WIM_CLOSE, OnMM_WIM_CLOSE)
窗口模式
類似于線程模式,參見源程序即可

posted on 2006-06-15 06:57 Jerry Cat 閱讀(1197) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理



<2006年6月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

常用鏈接

留言簿(7)

隨筆檔案

最新隨筆

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品一区二区三| 亚洲精品小视频在线观看| 亚洲校园激情| 国产精品久久久久久久久免费桃花| 亚洲精品影院| 日韩一区二区高清| 欧美日韩综合不卡| 欧美在线看片| 久久久av毛片精品| 亚洲人永久免费| 99一区二区| 国产婷婷色一区二区三区在线| 久久精品色图| 噜噜噜噜噜久久久久久91| 亚洲精品一二三区| 亚洲网站在线| 亚洲第一视频网站| 亚洲精品国产拍免费91在线| 欧美午夜大胆人体| 久久久久久婷| 欧美日韩在线视频一区二区| 亚洲欧美中日韩| 久久久久久尹人网香蕉| 最新国产拍偷乱拍精品| 一区二区三区高清在线| 国产综合久久久久久鬼色| 欧美高清成人| 国产精品你懂的在线欣赏| 狂野欧美性猛交xxxx巴西| 欧美理论电影在线观看| 欧美专区日韩视频| 欧美人交a欧美精品| 久久久久久一区二区| 欧美精品成人一区二区在线观看| 羞羞答答国产精品www一本| 久久综合久久88| 欧美影视一区| 欧美日韩国产美女| 欧美r片在线| 国产日韩欧美在线| 亚洲久色影视| 91久久精品国产91久久| 午夜久久一区| 午夜在线精品偷拍| 欧美精品在线视频观看| 久久综合狠狠综合久久激情| 国产精品久久久久久久久久久久 | 欧美性做爰毛片| 蜜桃视频一区| 国产午夜精品久久| 亚洲视频在线观看网站| 日韩视频免费观看高清在线视频| 久久国产精品免费一区| 午夜精品在线视频| 欧美视频官网| 中国成人亚色综合网站| 亚洲精品视频一区| 免费观看久久久4p| 欧美aaa级| 亚洲第一网站| 久久手机精品视频| 蜜桃精品一区二区三区| 伊人精品成人久久综合软件| 欧美一区中文字幕| 欧美在线精品免播放器视频| 国产精品久久久久久久久免费桃花 | 亚洲女女女同性video| 中文一区二区| 欧美小视频在线| 一本久久综合亚洲鲁鲁| 夜夜嗨av色一区二区不卡| 欧美v日韩v国产v| 亚洲欧洲一级| 一区二区三区四区国产精品| 欧美国产综合| 99视频在线观看一区三区| 一本高清dvd不卡在线观看| 欧美激情一区二区三区成人| 亚洲三级毛片| 一本到12不卡视频在线dvd | 亚洲自拍电影| 久久精品人人爽| 在线播放精品| 欧美精彩视频一区二区三区| 亚洲国产精品激情在线观看| 99国产精品自拍| 国产精品jizz在线观看美国| 亚洲视频视频在线| 久久精品视频导航| 亚洲国产精品综合| 欧美日韩日日夜夜| 午夜视频精品| 欧美激情第一页xxx| 99国产一区二区三精品乱码| 国产精品福利久久久| 欧美亚洲一区二区三区| 欧美电影免费观看高清| 国产精品99久久久久久宅男| 国产精品国产馆在线真实露脸| 午夜精品久久久| 欧美高清视频在线播放| 亚洲午夜精品17c| 国产亚洲综合在线| 欧美激情一区二区三区全黄| 亚洲调教视频在线观看| 美女在线一区二区| 国产精品99久久久久久久女警| 国产日韩欧美电影在线观看| 久色成人在线| 午夜精品久久久久| 亚洲国产成人久久综合一区| 羞羞色国产精品| 最近中文字幕日韩精品| 国产精品区免费视频| 美乳少妇欧美精品| 亚洲欧美视频一区| 亚洲精品在线观看免费| 裸体素人女欧美日韩| 亚洲欧美日韩系列| 亚洲毛片在线免费观看| 国内久久精品视频| 欧美午夜视频网站| 欧美电影免费观看高清完整版| 欧美一级视频一区二区| 一本久道久久综合中文字幕 | 午夜亚洲伦理| 妖精视频成人观看www| 在线不卡中文字幕| 国产情人节一区| 国产精品伦一区| 欧美日韩久久久久久| 久久蜜桃香蕉精品一区二区三区| 亚洲中午字幕| 亚洲视频每日更新| 亚洲美女中出| 亚洲国产精品va在看黑人| 久热精品在线| 老司机免费视频一区二区| 性色一区二区| 欧美一级片在线播放| 亚洲一区二区三区中文字幕在线| 日韩视频免费大全中文字幕| 在线精品视频一区二区三四| 国内成人自拍视频| 国产综合第一页| 韩国三级在线一区| 国产在线精品二区| 国内精品一区二区| 伊人春色精品| 亚洲国产欧美一区二区三区同亚洲| 国产在线国偷精品产拍免费yy| 国产亚洲二区| 怡红院精品视频在线观看极品| 国产亚洲欧美aaaa| 国语自产偷拍精品视频偷 | 免费一级欧美在线大片| 久久夜色精品国产噜噜av| 久久频这里精品99香蕉| 麻豆成人av| 欧美日韩网站| 国产精品一区三区| 红桃视频国产一区| 91久久精品一区二区别| 亚洲乱码精品一二三四区日韩在线 | 亚洲人成网站色ww在线| 亚洲精品在线一区二区| 一区二区精品在线| 性久久久久久久久久久久| 久久国产精品黑丝| 欧美成年人在线观看| 亚洲国产综合91精品麻豆| 99在线精品视频在线观看| 亚洲午夜精品一区二区三区他趣| 香港久久久电影| 久久综合九色综合网站| 欧美日韩国产欧| 国产亚洲欧洲| 一本大道av伊人久久综合| 亚洲欧美国产另类| 久热精品在线视频| 日韩视频免费看| 欧美与黑人午夜性猛交久久久| 另类春色校园亚洲| 国产精品毛片a∨一区二区三区| 精品99一区二区| 亚洲一区精品视频| 鲁大师成人一区二区三区 | 久久精品一区二区国产| 欧美激情国产日韩| 亚洲欧美成人网| 欧美日本二区| 激情文学一区| 亚洲欧美国产另类| 亚洲福利视频在线| 欧美在线观看一区二区| 欧美日韩美女| 亚洲人成绝费网站色www| 欧美一区二区三区四区高清| 欧美激情视频一区二区三区不卡| 亚洲欧美不卡|