freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機的錄音與播放系統(tǒng)(編輯修改稿)

2025-07-24 20:35 本頁面
 

【文章內(nèi)容簡介】 表41為音頻質量等級的編碼技術標準(頻響):表41中頻率范圍(Hz)采樣率(kHz)量化精度(位)電話話音200~3400 8 8 寬帶音頻(AM質量) 50~7000 16 16 調頻廣播(FM質量)20~15k 16 高質量音頻(CD質量) 20~20k 16 凌陽音頻壓縮算法處理的語音信號的范圍是200HZ-。表41音頻質量等級的編碼技術標準(頻響)信號類型頻率范圍(Hz)采樣率(kHz)量化精度(位)電話話音200340088寬帶音頻(AM質量)5070001616調頻廣播(FM質量)2015K16高質量音頻(CD質量)2020K16 壓縮分類壓縮分無損壓縮和有損壓縮,無損壓縮一般指:磁盤文件,壓縮比低:2:1~4:1。而有損壓縮則是指:音/視頻文件,壓縮比可高達:100:1。凌陽音頻壓縮算法根據(jù)不同的壓縮比分為以下幾種(具體可參見語音壓縮工具一節(jié)內(nèi)容):SACMA2000:壓縮比為8:1,8:,8:SACMS480:壓縮比為80:3,80:SACMS240:壓縮比為80: 凌陽常用的音頻形式和壓縮算法1)波形編碼:subband即SACMA2000特點:高質量、高碼率,適于高保真語音/音樂。2)參數(shù)編碼:聲碼器(vocoder)模型表達,抽取參數(shù)與激勵信號進行編碼。如:SACMS240特點:壓縮比大,計算量大,音質不高,廉價!3)混合編碼:CELP即SACMS480特點:綜合參數(shù)和波形編碼之優(yōu)點。除此之外,還具有FM音樂合成方式即SACMMS01。 凌陽語音的播放、錄制、合成和辨識凌陽的SPCE061A是16位單片機,具有DSP功能,有很強的信息處理能力,最高時鐘可達到49M,具備運算速度高的優(yōu)勢等等,這些都無疑為語音的播放、錄放、合成及辨識提供了條件。凌陽壓縮算法中SACM_A2000、SACM_S480、SACM_S240主要是用來放音,可用于語音提示,而DVR則用來錄放音。對于音樂合成MS01,該算法較繁瑣,而且需要具備音樂理論、配器法及和聲學知識,所以對于特別愛好者可以到我們的網(wǎng)站去了解相關內(nèi)容,這里只給出它的API函數(shù)介紹及程序代碼的范例,僅供參考。對于語音辨識主要有以下兩種:1)特定發(fā)音人識別SD(Speaker Dependent):是指語音樣板由單個人訓練,也只能識別訓練人的語音命令,而他人的命令識別率較低或幾乎不能識別。2)非特定發(fā)音人識別SI(Speaker Independent):是指語音樣板由不同年齡、不同性別、不同口音的人進行訓練,可以識別一群人的命令。語音識別電路基本結構如圖41所示:濾除噪音預加重濾波器組PARCOR系數(shù)線性預測系數(shù)過零次數(shù)能量相關函數(shù)等模式匹配詞典語音分析語音識別結果輸出圖41識別電路結構 語音錄入使用介紹SACMDVR具有錄音和放音功能,并采用SACM_A2000的算法,錄音時采用16K資料率及8K采樣率獲取語音資源,經(jīng)過SACM_A2000壓縮后存儲在擴展的SRAM 628128A里,錄滿音后自動開始放音。其相關API函數(shù)如下所示:int SACM_DVR_Initial(int Init_Index) //初始化 void SACM_DVR_ServiceLoop(void) //獲取資料,填入譯碼隊列 void SACM_DVR_Encode(void) //錄音 SACM_DVR_StopEncoder()。 //停止編碼 SACM_DVR_InitEncoder(RceMonitorOn) //初始化解碼器 void SACM_DVR_Stop(void) //停止錄音 void SACM_DVR_Play(void) //開始播放 unsigned int SACM_DVR _Status(void) //獲取SACM_DVR模塊的狀態(tài) void SACM_DVR _InitDecode(void) //開始譯碼 void SACM_DVR _Decode(void) //獲取語音資料并譯碼,中斷播放 SACM_DVR_StopDecoder()。 //停止解碼 unsigned int SACM_DVR _ TestQueue(void) //獲取語音隊列狀態(tài) int SACM_DVR _Fetchqueue(void) //獲取錄音編碼數(shù)據(jù) void SACM_DVR_FillQueue(unsigned int encodeddata) //填充資料到語音隊列,等待播放 int GetResource(long Address) ——(Manual) // 從資源文件里獲取一個字型語音資料 中斷服務函數(shù): Call F_FIQ_Service_ SACM_DVR //playing Call F_IRQ1_Service_ SACM_DVR //recode 具體函數(shù)如下: 1) 【API格式】C:void SACM_ DVR _Initial(int Init_Index) ASM:R1=[ Init_Index] Call F_ SACM_ DVR _Initial 【功能說明】SACM_ DVR語音播放之前的初始化:設置中斷源、定時器以及播放方式(自動、手動) 【參數(shù)】Init_Index=0 表示手動方式;Init_Index=1 則表示自動方式。 【返回值】無 【備注】 ① 對于SACM_DVR模塊,需要一些I/O口來連接外部的SRAM,用以存放錄音資料。 ② 錄放音的格式采用SACM_A2000。 2) 【API格式】C:void SACM_DVR_ServiceLoop(void) ASM:Call F_ SACM_DVR _ServiceLoop 【功能說明】在錄音期間從ADC通道獲取錄音資料,且將其以SACM_A2000格式進行編碼后存入外接SRAM中;而在播放期間從SRAM中獲取語音資料,對其進行解碼,然后等候中斷服務子程序將其送出DAC通道。 【參數(shù)】無。 【返回值】無。 3)【API格式】C:void SACM_DVR_Encode(void); ASM:Call F_ SACM_DVR_ Encode 【功能說明】開始以自動方式錄制聲音資料到外接SRAM中。 【參數(shù)】無。 【返回值】無。 【備注】該函數(shù)僅適用于SACM_DVR模塊,且只有自動方式。 4)【API格式】C:void SACM_DVR _Stop(void); ASM:Call F_ SACM_DVR _Stop 【功能說明】以自動方式停止錄音。 【參數(shù)】無。 【返回值】無。 5)【API格式】 C:int SACM_DVR _Play(int Speech_Index, int Channel, int Ramp_Set); ASM:Call SACM_DVR _Play 【功能說明】以自動方式播放外接SRAM中的錄音資料。 【參數(shù)】無 【返回值】無。 【備注】該函數(shù)僅使用于自動方式下。 6)【API格式】C:unsigned int SACM_DVR _Status(void); ASM:Call F_ SACM_DVR _ Status [返回值]=R1 【功能說明】獲取SACM_DVR模塊的狀態(tài)。 【參數(shù)】無。 【返回值】當R1中bit0=0,表示語音播放結束;bit0=1,表示語音在播放中。 SACM_DVR模塊的狀態(tài)返回值。 SACM_DVR狀態(tài)返回值 【備注】該函數(shù)僅使用于DVR的手動方式下。 7)【API格式】C:void SACM_DVR_InitDecode(int Channel); ASM:Call F_SACM_DVR_Decode 【功能說明】開始對SACM_DVR語音資料以非自動方式(編程控制)進行譯碼。 【參數(shù)】Channel=1,2,3;分別表示使用DACDAC2信道以及DAC1和DAC2雙通道。 【返回值】無。 【備注】用戶只能通過非自動方式對語音資料解壓縮。 8)【API格式】C:void SACM_DVR_Decode(void); ASM:Call F_ SACM_DVR_Decode 【功能說明】從語音隊列里獲取的SACM_DVR語音資料,并進行譯碼,然后通過中斷服務子程序將其送入DAC通道播放。 【參數(shù)】無。 【返回值】無。 【備注】用戶僅能通過非自動方式對語音資料進行譯碼。 9) 【API格式】C:unsigned int SACM_DVR_TestQueue(void); ASM:Call F_SACM_DVR_TestQueue [返回值]=R1 【功能說明】獲取語音隊列的狀態(tài)。 【參數(shù)】無。 【返回值】R1=0,語音隊列不空不滿 =1,語音隊列滿 =2;語音隊列空。 【備注】用戶僅能通過非自動方式測試語音隊列狀態(tài)。10) 【API格式】C:int SACM_DVR _FetchQueue(void); ASM:Call F_SACM_DVR _FetchQueue [Return_Value]=R1 【功能說明】獲取錄音編碼(SACM_A2000)數(shù)據(jù)。 【參數(shù)】無。 【返回值】16位錄音資料。 【備注】 ① 采用SACM_A2000編碼格式編碼 ② 僅用于非自動方式下 程序11 外擴SRAM需要SRAM寫初始化(InitWriteSRAM),及寫(WriteSRAM) 子函數(shù)。 SACM_DVR_Initial(Manual)。 Addr=0。 InitWriteSRAM()。 //用戶需外接SRAM SACM_DVR_InitEncoder()。 while(AddrSRAM_Size) { SACM_DVR_Encode()。 //獲取數(shù)據(jù)并譯碼 If(SACM_DVR_TestQueue()!=Empty) //若隊列不空,則存儲資料 { ret=SACM_DVR_FetchQueue()。 //從隊列中得到資料 writeSRAM(Addr,ret)。 //存入用戶存儲區(qū) Addr+=2。 //兩個8位SRAM存儲一個16位資料 } } 11)【API格式】C:void SACM_DVR _FillQueue(unsigned int encodeddata); ASM:R1=[語音編碼資料] Call F_ SACM_DVR _FillQueue\ 功能說明】填充SACM_A2000語音資料到DVR譯碼器等待播放 【參數(shù)】encodeddata為語音編碼資料。 【返回值】無。 【備注】 ① 語音資料格式為SACM_A2000編碼格式。 ② 從語音隊列里至少每48ms獲取48個字資料(16K資料采樣率)。 ③ 僅用于非自動方式下。 12)【API格式】C:int GetResource(long Address); 【功能說明】從資源文件里獲取一個字型語音資料。 【參數(shù)】無。 【返回值】一個字型語音資料。 13)【API格式】ASM:Call F_FIQ_Service_ SACM_DVR ASM:Call F_IRQ1_Service_SACM_DVR 【功能說明】用作SACM_DVR語音背景程序的中斷服務子程序。通過前臺子程序(自動方式的SACM_DVR _ServiceLoop 及手動方式的SACM_DVR _Decode)對語音資料進行譯碼,然后將其送入DAC通道播放。即FIQ中斷服務子程序用于聲音播放的背景程序;而IRQ1中斷服務子程序則用于聲音錄制的背景程序。 【參數(shù)】無。 【返回值】無。 【備注】SACM_DVR語音背景子程序只有匯編指令形式,且應將此子程序安置在TMA_FIQ中斷源上。額外的中斷服務子程序安置在IRQ1_TMA中斷源上。 W29C040與SPCE061A的系統(tǒng)軟件設計 本系統(tǒng)軟件實際流程圖實際流程圖如圖42圖42 實際流程圖本軟件系統(tǒng)設計簡單。主要是因為凌陽的十六位單片機開發(fā)環(huán)境使用方便,并支持C語言與匯編語言的互相調用,且提供豐富的凌陽語音函數(shù)庫,只要我們了解這些函數(shù)的使用方法,我們就可以很容易的實現(xiàn)語音的錄放。例如本系統(tǒng)的語音錄入和播放代碼如下: 語音的錄入:SP_InitW29C040Flash()。 SACM_DVR_Initial(Manual)。 SACM_DVR_InitEncoder(RceMonitorOn)。 if (SACM_DVR_TestQueue()!= Empty) { page_buf[n] =SACM_DVR_FetchQueue( )。 many_data_write(M_AddrH,M_AddrL,page_buf,n)。 } //手動方式初始化//語音數(shù)據(jù)非自動方式編碼//取出語音編碼數(shù)據(jù)//寫存儲器語音的播放: SP_InitReadW29C040Flash()。 SACM_DVR_InitDecoder(DAC1+DAC2)。 if(SACM_DVR_TestQueue()!=Full){ Ret = SP_Read_Data(M_AddrH,M_AddrL++)。 SACM_DVR_FillQueue(Ret)。 SACM_DVR_Decode ()。
點擊復制文檔內(nèi)容
范文總結相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1