61板語音介紹_第1頁
已閱讀1頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、凌陽音頻,用61板如何實現語音播放,語音壓縮工具的使用,結合流程舉例介紹,如何實現語音的播放?,語音壓縮編碼基礎,壓縮編碼的目的: 通過對資料的壓縮,達到高效率存儲和轉換資料的結果,即在保證一定聲音質量的條件下,以最小的資料率來表達和傳送聲音信息。 壓縮編碼的必要性: 實際應用中,未經壓縮編碼的音頻資料量很大,進行傳輸或存儲是不現實的。 所以要通過對信號趨勢的預測和冗余信息處理,進行資料的壓縮,這樣就可以使我們

2、用較少的資源建立更多的信息。,1、SACM_A2000此格式的音頻文件壓縮后的編碼率有16Kbit/s20Kbit/s、24Kbit/s三種由此可以計算出,如果采用16Kbit/s編碼率播放一分鐘的語音所占用的存儲器空間為:16Kbit/s *60s = 960Kbit =120Kbyte = 60Kword,凌陽音頻壓縮編碼,SACM_A2000語音壓縮比為8:1,8:1.25, 8:1.5 由此可以計算出,如果采用

3、8Kbyte的wave文件,經過SACM_A2000壓縮后,語音文件只有1Kbyte的大小。 由于SACM_A2000壓縮比較小,對音質的影響也較小,因此較適合音樂播放。,凌陽音頻壓縮編碼,2、SACM_S480此格式的音頻文件壓縮后的編碼率有4.8Kbit/s、7.2 Kbit/s兩種。由此可以計算出,如果采用4.8Kbit /s編碼率播放一分鐘的語音所占用的存儲器空間為:4.8Kbit /s *60s = 288Kbi

4、t =36Kbyte = 18Kword,凌陽音頻壓縮編碼,SACM_S480語音壓縮比為80:3,80:4. 5, 由此可以計算出,如果采用80Kbyte的wave文件,經過SACM_S480壓縮后,語音文件只有3Kbyte的大小。 由于SACM_ S480壓縮比較大,對語音的音質影響也較大,因此較適合語音播放。,凌陽音頻壓縮編碼,3、SACM_S240此格式的音頻文件壓縮后的編碼率為2.4Kbit/s、由此可以計

5、算出,如果采用2.4Kbit /s編碼率播放一分鐘的語音所占用的存儲器空間為:2.4Kbit /s *60s = 144Kbit =18Kbyte = 9Kword,凌陽音頻壓縮編碼,SACM_S240語音壓縮比為80:1.5 由此可以計算出,如果采用80Kbyte的wave文件,經過SACM_S240壓縮后,語音文件只有1.5Kbyte的大小。 由于SACM_ S240壓縮比較大,因此較適合語音音質要求不高時使用。如電

6、子辭典等。,凌陽音頻壓縮編碼,凌陽音頻播放過程,,,,,第一步:Wave格式語音文件因為語音壓縮工具(后面有介紹)只支持對Wave文件的壓縮,因此語音播放源文件,需要為Wave文件。如果用戶播放的語音需要自己錄制時,注意錄制屬性設置,最好選擇為8Khz, 16位,單聲道。,凌陽音頻播放過程,第一步:Wave格式語音文件 如果用戶播放的語音采用已有的語音文件,也要注意語音文件的屬性,最好選擇為8Khz, 16位,單聲道的語音文

7、件。 提示:凌陽大學計劃網站下載專區(qū)中, 提供“語音素材大全”。,凌陽音頻播放過程,,第二步:語音壓縮 此過程主要是將Wave文件轉成凌陽音頻格式文件。 凌陽大學計劃網站下載專區(qū)提供“語音壓縮工具”。 開發(fā)板或者實驗箱配送的光盤中也包含“語音壓縮工具”。,凌陽音頻播放過程,語音壓縮工具的使用,壓縮工具主界面,用戶可以選擇壓縮多個文件和單個文件,默認是單個文件,壓縮工具使用,通過瀏覽按鈕

8、選擇壓縮的Wave文件,點擊下一步,壓縮工具使用,,壓縮后生成文件存儲路徑,,選擇壓縮算法,選擇該算法編碼率,,選擇結束后,點擊“壓縮” 。壓縮結束后,點擊“下一步”,壓縮工具使用,,壓縮前文件名稱、大小和屬性,壓縮后文 件名稱、大小和壓縮算法,,雙擊壓縮前后的文件名稱會有該文件的聲音播放,用戶對比壓縮前后語音音質的變化。,第三步:語音播放第三步是SPCE061A通過編程來實現的。 下面結合舉例介紹,凌陽音頻

9、播放過程,結合流程舉例介紹,了解凌陽音頻庫函數:【API格式】 C:void SACM_A2000_Initial(int Init_Index) ASM:R1=[ Init_Index] Call F_ SACM_A2000_Initial【功能說明】SACM_A2000語音播放之前的初始化。【參 數】Init_Index=0 表示手動方式;Init_Index=1 則表

10、示自動方式。 【返 回 值】無【備 注】該函數用于對定時器、中斷和DAC等的初始化。,,采用SACM_A2000播放語音,了解凌陽音頻庫函數: 【API格式】C:void SACM_A2000_ServiceLoop(void)ASM:Call F_ SACM_A2000 _ServiceLoop 【功能說明】從資源中獲取SACM_A2000語音資料,并將其填入譯碼隊列中。 【參 數】 無

11、。 【返 回 值】無。,采用SACM_A2000播放語音,了解凌陽音頻庫函數: 3) 【API格式】 C:void SACM_A2000_Play(int Speech_Index, int Channel, int Ramp_Set); ASM:R1=[ Speech _Index] R2=[ Channel] R3=[ Ramp_Set]

12、 Call SACM_A2000_Play 【功能說明】播放資源中SACM_A2000語音或樂曲。,采用SACM_A2000播放語音,【參數】 Speech _Index: 表示語音索引號。 Channel: 1.通過DAC1通道播放; 2.通過DAC2通道播放;

13、3.通過DAC1和DAC2雙通道播放。Ramp_Set: 0.禁止音量增/減調節(jié); 1.僅允許音量增調節(jié); 2.僅允許音量減調節(jié); 3.允許音量增/減調節(jié)?!痉?回 值】無。,了解凌陽音頻庫函數:【API格式】 ASM: F_FIQ_Service_ SACM_A20

14、00 Call F_FIQ_Service_ SACM_A2000 【功能說明】SACM_A2000語音播放。【參 數】 無【返 回 值】無【備 注】中斷服務子程序F_FIQ_Service_ SACM_A2000 必須安置在TMA_FIQ中斷向量上,采用SACM_A2000播放語音,程序流程圖:,,采用SACM_A2000播放語音,編寫代碼:第一步: 新建項目文件,

15、項目文件名稱為SACM2000,如果不知新建項目方法的用戶,請參考“如何進行產品開發(fā)”部分介紹,采用SACM_A2000播放語音,編寫代碼:第二步: 新建C文件,文件名稱為main,采用SACM_A2000播放語音,編寫代碼:第三步: 編寫主函數代碼#include “A2000.h”       //包含用A2000函數的頭文件main () {SACM_A2000_Initial(1);    

16、 //采用A2000語音播放初始化 SACM_A2000_Play(0, 3, 3);   //播放音樂while(SACM_A2000_Status()&0x01) //判斷音樂是否播放結束{SACM_A2000_ServiceLoop();    //取語音壓縮碼并解壓縮填充隊列F_ClearWatchdog();        //清看門狗,防止看門狗復

17、位}},采用SACM_A2000播放語音,編寫代碼:第三步: 編寫主函數代碼,編輯器界面,采用SACM_A2000播放語音,編寫代碼:第四步: 新建匯編文件,匯編文件名稱為isr,采用SACM_A2000播放語音,編寫代碼:第四步:開始編寫匯編代碼.text.include hardware.inc       // 包含SPCE061A硬件聲明頭文件.include A2000.inc        //包含用A2000

18、函數的頭文件.public _FIQ;          //聲明中斷入口函數_FIQ:PUSH R1,R4 to [sp];       //寄存器入棧 R1 = 0x2000;test R1,[P_INT_Ctrl];      //判斷是否是定時器A中斷jnz L_FIQ_TimerA;R1 = 0x0800;test R1,[P_INT_Ctrl];      //判斷是否是定時器B中斷jnz L_FIQ_T

19、imerB;L_FIQ_PWM:R1 = C_FIQ_PWM;       //進入PWM中斷[P_INT_Clear] = R1;      //清除PWM中斷標志POP R1,R4 from[sp];      //出?;謴蚏ETI,采用SACM_A2000播放語音,編寫代碼:第四步:開始編寫匯編代碼,L_FIQ_TimerA:          //進入定時器A中斷[P_INT_Clear] = R1;   

20、 //清除定時器A中斷標志call F_FIQ_Service_SACM_A2000; // 將語音送到DAC通道pop R1,R4 from [sp];     //出?;謴蚏ETI;             //中斷返回L_FIQ_TimerB:         //進入定時器B中斷[P_INT_Clear] = R1;     //清除定時器B中斷標志pop R1,R4 from [sp]; 

21、    //出?;謴蚏ETI;             //中斷返回,采用SACM_A2000播放語音,編寫代碼:第四步:編寫匯編代碼,編輯器界面,采用SACM_A2000播放語音,添加語音資源文件(即通過壓縮工具壓縮后的文件):,第一步:點擊Watch窗口(圖1)的頁簽ResourceView,進入 ResourceView窗口(圖2),圖1,圖2,,采用SACM_A2000播放語音,添加語音資源文件(即通過壓縮工具

22、壓縮后的文件):,第二步:點擊“SACM2000 resource”,右擊鼠標,會彈出下拉菜單,選擇“Add Files to Folder”,采用SACM_A2000播放語音,添加語音資源文件(即通過壓縮工具壓縮后的文件):,第三步:彈出窗口,選擇壓縮后的語音文件。,選擇語音文件后,點擊“打開”,則語音文件添加到資源文件中,采用SACM_A2000播放語音,添加hardware.asm文件: 方法:在FileView窗口中,點擊

23、Source Files右擊,選擇添加文件,會彈出添加文件窗口。Hardware.asm在IDE182/inlcude文件夾中。打開。,采用SACM_A2000播放語音,拷貝庫文件和頭文件到a2000項目文件中: 代碼中用到庫文件為sacmV25.lib。 庫文件所在地路徑為: IDE182/library 代碼中用到的頭文件:a2000.h;a2000.inc, hardware.in

24、c 頭文件所在路徑為: IDE182/include,采用SACM_A2000播放語音,連接庫文件:方法:點擊 Project/setting/link,采用SACM_A2000播放語音,連接庫文件:方法:點擊library modules 的瀏覽按鈕,到SACM2000項目文件路徑下,找到SACMV25.lib.打開。,點擊OK,連接庫結束,采用SACM_A2000播放語音,編譯:,輸出窗口會有錯誤提示,缺少A2000

25、SPEECH表,采用SACM_A2000播放語音,添加SPEECH表方法: 雙擊resource.asm文件,會彈出該文件窗口,采用SACM_A2000播放語音,添加SPEECH表方法: 雙擊resource.asm文件,會彈出該文件窗口,在“end table”后添加: .public T_SACM_A2000_SpeechTable T_SACM_A2000_SpeechTable: .dw _R

26、ES_CC_24K_SA //0注釋:1、 _RES_CC_24K_SA,是用戶添加的資源文件,在resource.asm文件中已經有聲明。 2、//0; 0表示的是Speech_Index.如果表中添加其他資源文件地址聲明,順序向上累加,1、2、。。。。,采用SACM_A2000播放語音,編譯:,編譯通過。,采用SACM_A2000播放語音,下載: 選擇probe。方法:點擊工具欄中的 會彈出對話

27、框,根據實際情況,如果使用的是 EZ probe則選擇 EZ probe,采用SACM_A2000播放語音,下載: 61板硬件連接,參考61板自檢部分介紹,點擊工具欄中的 程序被下載到SPCE061A中。,點擊工具欄中的 喇叭會有聲音,就是你壓縮的語音文件或者你自己錄制的聲音。,采用SACM_A2000播放語音,利用SPCE061A播放語音介紹完了,同學,您學會了嗎?,如果有什么問題,歡迎到網站技術論

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論