第八講 語音處理應用(一)_第1頁
第八講 語音處理應用(一)_第2頁
第八講 語音處理應用(一)_第3頁
第八講 語音處理應用(一)_第4頁
第八講 語音處理應用(一)_第5頁
已閱讀5頁,還剩76頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第八講 語音處理應用(一)音頻概述語音的特點音頻的采樣和量化語音壓縮編碼語音識別語音合成SPCE061A用于語音處理音頻:人耳可以感覺到的聲音頻率 20Hz 20000Hz語音和音樂是兩類特殊的音頻信號語音是語言的載體,是對聲音的抽象音樂是符號化的聲音語音是由人類發音器官產生的、具有一定意義且能起到社會交際作用的聲音。具有抽象表意性頻率通常在200Hz4000Hz之間語音處理是建立在語言學和數字信號處理基礎之上的綜合學科語音分析語音存儲與回放語音識別語音合成 音頻采樣和量化將模擬的(連續的)聲音波形數字化(離散化) 語音信號的時域分析直接利用語音信號的時域波形進行分析 語音信號的頻域分析對語音

2、信號的頻譜、功率譜等進行分析 語音信號的線性預測分析把語音信號用一個模型來表示,利用模型的參數來描述語音信號的波形和頻譜特性音頻采樣原理采樣頻率采樣頻率是指采樣設備每秒鐘對聲音信號的采集次數。采樣頻率越高,聲音的還原就越真實越自然。量化位數量化位數是把模擬聲音轉換為數字信號的二進制位數。量化位數客觀地反映了數字聲音信號對輸入聲音信號描述的準確程度。 壓縮編碼的意義高效存儲高速傳輸壓縮編碼分類波形編碼參數編碼混合編碼波形編碼直接將波形信號轉變為數字代碼,盡量真實地還原波形聲音質量好壓縮比低,碼率通常在20Kb/s以上適用于高保真音樂及語音場合參數編碼提取語音信號的特征參數進行編碼,盡量保持語音信

3、號的可懂性,而還原后的波形可能與原波形差別很大。壓縮比很高,碼率可達2.4kb/s以下。語音質量較差,自然度低對環境噪聲敏感混合編碼將參數編碼和波形編碼技術結合起來,克服了兩種編碼的缺點。壓縮比高,碼率為416Kb/s音質介于參數編碼和波形編碼之間對于波形編碼、參數編碼和混合編碼,凌陽都開發了相應的壓縮算法。屬于波形編碼的有A2000、A1600等屬于參數編碼的有S240、S200等屬于混合編碼的有S480、S530等 語音識別基本原理預處理,語音信號數字化。特征提取,抽取反應語音本質的特征參數,形成特征矢量序列。語音模型庫,從一個或多個講話者多次重復講話中提取的語音參數模板。模式匹配,把輸入

4、語音的特征參數與語音模型庫進行比較分析,得到識別結果根據對說話人的依賴程度,分為:特定人語音識別(SD)只能辨認特定使用者的語音,訓練-使用非特定人語音識別(SI)可辨認任何人的語音,無須訓練根據對說話方式的要求,分為:孤立詞識別每次識別的單詞之間要有停頓連續語音識別使用者以正常語速說話,即可識別其中的單詞將以其他方式表示或存儲的信息轉換成語音。最常見的語音合成技術是將文本轉換為語音(TTS)。SPCE061A單片機的性能適合數字語音處理10位ADC和10位DAC內置MIC放大器和自動增益功能2個16位定時/計數器CPU時鐘最高達49MHz2K Word SRAM空間16位乘法器和內積運算完善

5、的語音處理函數庫支持語音播放語音錄制Midi播放語音識別二、函數庫、凌陽音頻函數庫“庫”的概念創建自己的函數庫使用函數庫修改函數庫凌陽音頻函數庫小結和注意事項把一組或多組函數的目標代碼(Object Code)集合起來,形成一個文件(Library)函數庫的優點便于對函數組織管理提高內聚,降低耦合有利于軟件交流和重利用保護代碼第一步:組織代碼第二步:編譯代碼分別編譯每個代碼文件(Ctrl+F7),會在工程的Debug文件夾下生成擴展名為“.obj”的目標文件。在彈出對話框中選“New”,新建一個庫文件。IDE的Tools菜單下,選擇“LibMaker”第三步:新建函數庫第四步:向庫中添加目標文

6、件點擊Add按鈕,在工程的Debug文件夾下找到要添加的目標文件(*.obj)此時,函數庫已經創建完成了。點擊“Exit”按鈕退出LibMaker即可。新建工程選擇Project菜單下的“Setting”項選擇Link欄,點擊Library Modules右面的文件夾按鈕。 在工程所在文件夾中選擇剛剛建立的MyLib.lib文件,確定。現在,函數庫已經添加到工程里了。編寫的程序可以使用函數庫中的函數。為測試函數庫的功能,在工程中新建程序文件main.c。在main.c中編寫main()代碼,調用庫中的函數。按F7鍵對工程進行編譯和連接,再按F8鍵下載程序。確認“Toggle Watch”按鈕處

7、于按下狀態,激活變量觀察窗口。在變量觀察窗口中輸入要觀察的變量a和b,按F10單步執行程序,可以觀察a和b變量的數值變化情況是否與預想結果相符。對于已有的函數庫,可以對其進行添加函數集和刪除函數集的操作。打開“LibMaker”,點擊“Open”按鈕,選擇一個函數庫。注意,對函數庫的修改操作是不可恢復的,在修改之前一定要對函數庫進行備份。要從現有函數庫中刪除一個函數集,選中該函數集,點擊“Remove”鍵即可。要在庫中添加函數集,可以點擊Add按鈕,選擇所需的目標文件(Obj)即可。Sacmv26e.lib函數庫包括語音錄制、播放,以及Midi播放函數集。A2000:播放A2000格式語音資源

8、S480:播放S480格式語音資源S240:播放S240格式語音資源DVR:語音錄制與播放MS01:Midi播放 A2000格式16Kbit/s 24Kbit/s,適用于音樂或高質語音播放。SPCE061A內置Flash空間最多約可存儲24秒A2000語音。 S480格式4.8Kbit/s 7.2Kbit/s,適用于一般語音播放。SPCE061A內置Flash最多約可存儲80秒S480語音。 S240格式2.4Kbit/s,適用于低品質語音播放,SPCE061A內置Flash約可存儲160秒S240語音。DVR - 語音錄放采用A2000壓縮算法進行語音錄制,碼率為16Kbit/s,最多約可錄

9、制20秒語音。MS01 - Midi播放最大同時發音數為6路,其中有2路為鼓點音。函數庫是由一組或多組函數集組成的文件。函數庫是二進制文件,程序代碼是不可見的。在使用函數庫時,只有被使用的函數集才會真正與工程連接,而其他函數集不會占用硬件資源。凌陽音頻函數庫提供了為語音錄放提供了一條便捷的途徑。三、語音播放(自動播放) 語音錄放流程 用SPCE061A播放語音 語音播放程序示例 用戶接口函數 創建一個語音播放程序 小結和注意事項 疑難解答語音采樣在定時中斷的控制下,以一定的速率(8KHz)進行AD轉換壓縮編碼將采集到的數據以某種算法壓縮編碼存儲將編碼后的數據保存到存儲介質中數據提取語音數據送入

10、解壓縮隊列數據解碼解壓縮數據并送入輸出隊列轉換為模擬信號在定時中斷的控制下進行數模轉換轉換為聲音模擬信號經濾波、放大,通過揚聲器輸出在hardware.asm中定義的用戶API,用戶可以根據需要修改F_SP_SACM_A2000_Init_F_SP_InitQueueF_SP_ReadQueueF_SP_WriteQueueF_SP_RampUpDAC1 第 1 步:新建工程第 2 步:復制語音播放需要的文件到工程所在的文件夾 語音播放支持文件 ,在“IDE安裝目錄 - Example - 61_Exa - Record”文件夾下可以找到 sacmv26e.lib hardware.inc h

11、ardware.asm A2000格式的語音資源,在“IDE安裝目錄 - Example - VoiceExa - ex1_A2000 - Voice”文件夾下可以找到 這里選擇了d1.24k和ww.24k兩個文件第 3 步:把剛剛復制的支持文件和語音資源添加到工程中。 在Project菜單項,選擇Add to Project - Files 找到工程所在的文件夾,選擇hardware.asm、hardware.inc兩個文件(按住Ctrl鍵點選),確定。 IDE的Project菜單項,Add to Project - Resource 選擇兩個語音文件d1.24k和ww.24k,確定。第 4

12、 步:把Sacmv26e.lib語音函數庫添加到工程中。 選擇Project - Setting,在左半部分的目錄樹中點選根目錄。 選擇Link欄,點擊Library Modules右面的文件夾按鈕。 在工程所在文件夾中選擇sacmv26e.lib文件,確定。第 5 步:編寫語音播放函數。 在IDE的File菜單項下選擇New,在彈出對話框的左半部分選擇SP IDE C File。 在右半部分的File文本框中輸入一個文件名,這里使用main.c,然后點擊OK按鈕。 在main.c中編寫一個語音播放函數PlaySnd() 第 6 步:編寫中斷服務函數 在工程中新建一個asm文件,可以取名為IS

13、R.asm。 在ISR.asm中編寫FIQ中斷服務程序。第 7 步:編寫主函數。 在IDE中打開main.c文件,編寫main()函數。第 8 步:添加語音資源索引表 在IDE的Build菜單下選擇Build(或直接按F7鍵),對工程進行編譯和連接。此時會提示 “ Error L0080: The external symbol “T_SACM_A2000_SpeechTable” has not a public definition.”錯誤信息。 在工程中打開Resource.asm文件,在文件結尾處加入語音資源索引表。第 9 步:下載試聽 按F7鍵對工程重新編譯連接,途中可能會出現對話框

14、提示Resource.asm文件被更改,選擇“Yes”即可。連接好硬件(下載線、電源、揚聲器等),在IDE的工具欄中點選綠色的“Use ICE”按鈕。 點擊紅色嘆號形的“Execute Program”按鈕,下載并運行程序,就可以聽到從SPCE061A播放出的聲音了。 語音播放需要的支持文件: Sacmv26e.lib, Hardware.asm, Hardware.inc 將支持文件加入工程中Hardware.asm加入到工程的Source FilesHardware.inc加入到工程的Head FilesSacmv26e.lib由Project - Setting - Link加入 語音資

15、源加入工程中Project - Add to Project - Resource 在Resource.asm里添加語音資源索引表 選擇Use ICE模式,將程序下載到芯片中如果播放S480格式的語音資源,只需將上述程序中所有的“A2000”改成“S480”即可。 SACM_A2000_Initial(1);中的參數1是什么意思? 播放初始化,參數值為1代表“自動播放”模式,0代表“手動播放”模式,“手動播放”將在下一節介紹。 SACM_A2000_Play(SndIndex, DAC_Channel, 3);第三個參數3是做什么用的? 聲音淡入和淡出設置。0-無淡入淡出;1-僅淡入;2-僅淡

16、出;3-淡入淡出 如何制作自己的語音資源? 凌陽提供了語音壓縮工具,可以把.wav格式的聲音文件壓縮成A2000或S480格式。該工具的使用方法將在后面的課程中介紹。三、語音播放(手動播放) 什么是手動播放 手動播放流程 創建手動播放程序 其他語音播放函數 小結和注意事項 疑難解答自動播放手動播放新建工程把Hardware.asm、Hardware.inc和Sacmv26e.lib,以及A2000格式的語音文件復制到工程所在文件夾下把支持文件和語音資源添加到工程中。 在Project菜單項,選擇Add to Project - Files 找到工程所在的文件夾,選擇hardware.asm、h

17、ardware.inc和hardware.h三個文件(按住Ctrl鍵點選),確定。 IDE的Project菜單項,Add to Project - Resource 選擇兩個語音文件d1.24k和ww.24k,確定。把Sacmv26e.lib語音函數庫添加到工程中。 選擇Project - Setting,在左半部分的目錄樹中點選根目錄。 選擇Link欄,點擊Library Modules右面的文件夾按鈕。 在工程所在文件夾中選擇sacmv26e.lib文件,確定。編寫代碼手動語音播放函數中斷服務程序主函數添加語音資源索引表 在工程中打開Resource.asm文件,在文件結尾處加入語音資源索

18、引表。下載試聽連接好硬件(下載線、電源、揚聲器等),在IDE的工具欄中點選綠色的“Use ICE”按鈕。 點擊紅色嘆號形的“Execute Program”按鈕,下載并運行程序,就可以聽到從SPCE061A播放出的聲音了。S480格式語音資源的手動播放方法與A2000基本相同,只需把A2000手動播放程序中所有的 “A2000” 替換成“S480” 即可。void SACM_A2000_Pause()暫停播放語音。void SACM_A2000_Resume()從暫停的位置繼續播放語音。Void SACM_A2000_Volume(int Vol)調節語音播放的音量。Vol的取值范圍是015,

19、數值越大,輸出音量越大。聲音漸入漸出函數,在Hardware.asm中定義,可防止播放開始和結束時產生爆音。Void SP_RampUpDAC1()Void SP_RampUpDAC2()Void SP_RampDnDAC1()Void SP_RampDnDAC2() Sacmv26e.lib語音函數庫還有供匯編語言直接調用的函數,包括自動與手動播放函數,它們與C函數一一對應(前面加上“F_”前綴): F_SACM_A2000_Initial F_SACM_A2000_Play F_SACM_A2000_Stop F_SACM_A2000_ServiceLoopF_SACM_A2000_DecoderF_SACM_A2000_FillQueue 匯編語音播放函數使用R1、R2寄存器來傳遞參數。例如,C語言的SACM_A2000_Initial(1);語句可改寫為:r1 = 1call F_SACM_A2000_Initial C語言的SACM_A2000_Play(0,2,3);語句可改寫

溫馨提示

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

評論

0/150

提交評論