數(shù)字語音處理論文.doc_第1頁
數(shù)字語音處理論文.doc_第2頁
數(shù)字語音處理論文.doc_第3頁
數(shù)字語音處理論文.doc_第4頁
數(shù)字語音處理論文.doc_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmrtyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmrtyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmrtyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmrtyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmrtyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmrtyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmrtyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnm姓名: 王 美 華學(xué)院:機(jī) 電 學(xué) 院班級(jí): 071083-10學(xué)號(hào):20081001404數(shù)字語音處理技術(shù)及其應(yīng)用一、數(shù)字處理關(guān)鍵技術(shù)1.1語音編碼技術(shù)語音信號(hào)的數(shù)字化,最簡(jiǎn)單的方法是對(duì)其直接進(jìn)行模/ 數(shù)轉(zhuǎn)換;只要采樣率足夠高,量化每個(gè)樣本的比特?cái)?shù)足夠多,則可以保證解碼恢復(fù)的語音信號(hào)有很好的音質(zhì),不會(huì)丟失有用信息。對(duì)語音進(jìn)行壓縮編碼的基本依據(jù)有兩個(gè):一個(gè)是從產(chǎn)生語音的物理機(jī)理和語言結(jié)構(gòu)的性質(zhì)來看,語音信號(hào)是強(qiáng)相關(guān)、弱平穩(wěn)信號(hào),有很高的冗余度。語音壓縮的實(shí)質(zhì)就是識(shí)別這些冗余度并設(shè)法去掉它們。語音編碼的第二個(gè)依據(jù)是利用人類的聽覺特性。首先語音編碼利用人耳分辨率有限特性,不需要對(duì)語音樣點(diǎn)幅度做精確表示,即語音信號(hào)對(duì)于人耳帶有過多的信息,通過量化可以去除這些過多的信息,從而達(dá)到壓縮的目的。其次,人類聽覺有“掩蔽效應(yīng)”的特點(diǎn),即當(dāng)兩個(gè)響度不等的聲音作用于人耳時(shí),則響度較高的頻率成分的存在會(huì)影響到對(duì)響度較低的頻率成分的感受,使其變得不易察覺。目前常見的語音編碼算法有線性預(yù)測(cè)編碼、多脈沖激勵(lì)線性預(yù)測(cè)編碼、碼激勵(lì)線性預(yù)測(cè)編碼、多帶激勵(lì)編碼等。多脈沖激勵(lì)線性預(yù)測(cè)編碼算法采用了由多個(gè)不均勻間隔脈沖所組成的激勵(lì)序列,此算法在10kbit/s 的低碼率下能產(chǎn)生比較好的語音質(zhì)量,但對(duì)高基音說話者來說,其性能通常會(huì)有所下降。碼激勵(lì)線性預(yù)測(cè)編碼的算法是利用矢量化的碼本,將激勵(lì)序列編碼。碼本中的每一個(gè)存儲(chǔ)的碼字矢量(簡(jiǎn)稱碼矢量) 都可以代替余量信號(hào)作為可能的激勵(lì)信號(hào)源。實(shí)踐表明,碼激勵(lì)線性預(yù)測(cè)編碼器在4.8-1610kbit/s 范圍內(nèi)可以獲得質(zhì)量相當(dāng)高的合成語音,是最具有吸引力的語音壓縮編碼方式之一。多帶激勵(lì)語音編碼將語音譜按基音諧波頻率分成若干個(gè)頻帶,逐帶分別判斷是清音還是濁音,然后采用不同的激勵(lì)信號(hào)源產(chǎn)生該帶的合成信號(hào),最后將各帶相加,形成全帶合成語音。多帶激勵(lì)語音編碼是目前低速率語音編碼較理想的方案,在2.4-4.skbit/s 的速率上能合成出比傳統(tǒng)聲碼器好得多的語音。目前,語音壓縮編碼技術(shù)主要有兩個(gè)努力方向:一個(gè)是中低速率的語音編碼的實(shí)用化,及如何在使用過程中進(jìn)一步減低編碼速率和提高其抗干擾、抗噪聲能力;另一個(gè)是如何進(jìn)一步的降低其編碼速率。目前比較好的算法還有正弦變換編碼、混合激勵(lì)線性預(yù)測(cè)編碼、時(shí)頻域插值編碼、基音同步激勵(lì)線性預(yù)測(cè)編碼等,同時(shí)還要求引入新的分析技術(shù),如非線性預(yù)測(cè)、多精度時(shí)頻分析技術(shù)(包括子波變換技術(shù))、高階統(tǒng)計(jì)分析技術(shù)等。這些技術(shù)更能挖掘人耳聽覺掩蔽等感知機(jī)理,更能以類似人耳的特性作語音的分析與合成,使語音編碼系統(tǒng)更接近于人類聽覺器官的處理方式工作,從而在低速率語音編碼的研究上取得突破。1.2 糾錯(cuò)編碼技術(shù)糾錯(cuò)編碼技術(shù)的目的有兩個(gè):一是解決由信道噪聲所產(chǎn)生的隨機(jī)性差錯(cuò),二是解決由脈沖干擾所引起的突發(fā)性差錯(cuò)。RS 碼糾錯(cuò)性能分析:RS 碼是非二進(jìn)制碼,RS 碼的碼字取自GF(2m),也就是由0.1、和的各次冪組成。RS 碼不僅能夠糾單個(gè)隨機(jī)錯(cuò)誤,還可以糾突發(fā)錯(cuò)誤。在GF(24)域中,(15,11)碼可糾2 位錯(cuò),(15,9)碼可糾3 位錯(cuò),(15,7)碼可糾4 位錯(cuò)。RS 碼是多進(jìn)制碼,而通常在實(shí)際系統(tǒng)中用的是二進(jìn)制碼。如何把二進(jìn)制碼與多進(jìn)制碼對(duì)應(yīng)起來?我們以GF(24)域上的RS 碼加以說明。首先,把二進(jìn)制數(shù)據(jù)流按四比特分,將一個(gè)二進(jìn)制序列分為四位一組。這每個(gè)四位二進(jìn)制按照預(yù)先編輯好的4 一重表示法與的某個(gè)冪值,即GF(24)域中的元素一一對(duì)應(yīng),把這4 位二進(jìn)制序列可以看成是RS 碼中的一個(gè)符號(hào),這樣,就可以用RS碼來解決我們實(shí)際系統(tǒng)中的復(fù)雜信道數(shù)據(jù)傳輸?shù)募m錯(cuò)問題了。1.3 自適應(yīng)均衡技術(shù)均衡的目的是在接收端對(duì)于信道非理想特性造成的信號(hào)畸變進(jìn)行補(bǔ)償,抑制接收信號(hào)之間的符號(hào)間干擾,從而盡可能地恢復(fù)發(fā)射波形。自適應(yīng)均衡技術(shù)是目前使用較多的一種信道均衡方法。它可以通過發(fā)射學(xué)習(xí)碼,來自適應(yīng)的學(xué)習(xí)信道特性,實(shí)時(shí)估計(jì)信道響應(yīng),以便利用學(xué)習(xí)階段得到的自適應(yīng)均衡網(wǎng)絡(luò)參數(shù),對(duì)畸變的信號(hào)波形進(jìn)行補(bǔ)償,從而得到估計(jì)信號(hào)??傊赃m應(yīng)均衡器是用來自動(dòng)補(bǔ)償由于信道的非理想頻率特性而產(chǎn)生的畸變,可以簡(jiǎn)單地理解成均衡器與信道的傳遞函數(shù)互為倒數(shù),作用抵消,從而獲得最佳傳輸波形以消除IS 工,恢復(fù)原始信號(hào),同時(shí)使有限的帶寬得以充分利用。二、數(shù)字語音技術(shù)的應(yīng)用近年來,隨著信息技術(shù)的發(fā)展,數(shù)字語音技術(shù)在各領(lǐng)域應(yīng)用有了突破性的進(jìn)展,主要有可視電話伴音、無繩電話機(jī)、單路單載波衛(wèi)星和海事衛(wèi)星通信、數(shù)字插空設(shè)備、存儲(chǔ)和轉(zhuǎn)發(fā)系統(tǒng)、語音信息錄音、數(shù)字移動(dòng)無線系統(tǒng)、分組化語音等。目前,AOL、Lycos 與Yahoo 對(duì)語音識(shí)別和語音到文本技術(shù)的使用,限于用聲音傳送現(xiàn)有內(nèi)容,所以用戶可以通過電話閱讀電子郵件、獲取股票報(bào)價(jià)和新聞或享用其他服務(wù)。Yankee 集團(tuán)的分析家蘭開斯特認(rèn)為,在這一市場(chǎng)中,大公司具有相當(dāng)大的優(yōu)勢(shì)。他認(rèn)為:在吸引與留住顧客的這場(chǎng)競(jìng)爭(zhēng)中,大公司正設(shè)法為自己的網(wǎng)站增添盡可能多的價(jià)值。就把電子郵件眾多信息服務(wù)結(jié)合起來而言,免費(fèi)提供語音服務(wù)就是一種誘惑。為了留住顧客,這些公司可謂不遺余力,這是因?yàn)樗鼈冇心芰@么做,而許多小公司卻沒有財(cái)力投資這類新興而又有風(fēng)險(xiǎn)的服務(wù)。對(duì)大多數(shù)公司來說,提供語音服務(wù)還頗具風(fēng)險(xiǎn),這主要是由于缺乏明確的收入模式。雖然廣告似乎是必然選擇,但很多消費(fèi)者對(duì)廣告己經(jīng)大倒胃口。CahnersIn-Stat 集團(tuán)在調(diào)查了1000 名消費(fèi)者后指出,48%的人可能會(huì)使用語音門戶網(wǎng)站,但如果必須收聽廣告的話,只有31%的人仍會(huì)選擇這種服務(wù)。隨著語音處理技術(shù)的飛速發(fā)展和廣泛應(yīng)用,數(shù)字語音處理業(yè)務(wù)在不斷增長(zhǎng)。這些業(yè)務(wù)的工作基礎(chǔ)則是語音的分析和加工。對(duì)于基于大語料庫的語音合成系統(tǒng)來說,語音的切分和標(biāo)注關(guān)系到最終的合成質(zhì)量。對(duì)于語音識(shí)別系統(tǒng),原始語音的分析和語句的切分標(biāo)注也起著關(guān)鍵作用。簡(jiǎn)單易用和功能強(qiáng)大的語音分析和處理工具在語音相關(guān)的領(lǐng)域發(fā)揮著重要作用。目前國(guó)內(nèi)很多從事語音研究的單位1都自行設(shè)計(jì)了面向本單位業(yè)務(wù)的數(shù)字語音處理工具,但這些工具中很少提供共享。在國(guó)外開放使用的語音處理軟件中,Praat2是突出代表。它功能比較強(qiáng)大,比較好地滿足了語音分析的要求。它還支持多種語音數(shù)據(jù)格式,提供人工方式切分和支持簡(jiǎn)單的標(biāo)注。本文的研究目標(biāo)是提供一種通用的數(shù)字語音處理的可視化研究平臺(tái)。它不僅需要支持語音的錄放、編輯和存儲(chǔ)等功能,還需要支持語音的切分和標(biāo)注、語音的基本分析功能以及語音特征參數(shù)的顯示。同時(shí),它必須具備良好的可擴(kuò)充能力和伸縮性,能夠迎合大多數(shù)語音處理的需求。基于上述考慮,本文建立的平臺(tái)采用了模塊組合式的體系結(jié)構(gòu)。本文首先介紹作者設(shè)計(jì)的研究平臺(tái)VisualSpeech(簡(jiǎn)稱為可視語音平臺(tái))的體系結(jié)構(gòu),其次描述平臺(tái)的內(nèi)部模塊,然后分析外部模塊的設(shè)計(jì)思路,闡述在語音合成研究中如何應(yīng)用可視語音平臺(tái),最后總結(jié)研究平臺(tái)的特點(diǎn)。1 平臺(tái)的系統(tǒng)結(jié)構(gòu)圖 1 所示的是可視語音平臺(tái)的系統(tǒng)結(jié)構(gòu)。從功能角度來分,可視語音平臺(tái)主要包括數(shù)據(jù)接口、數(shù)據(jù)顯示、數(shù)據(jù)管理、參數(shù)配置和外部模塊5 大部分。數(shù)據(jù)接口部分包括語音波形文件的輸入輸出、用戶標(biāo)注信息的存取和壓縮格式的語音的存取。它完成底層數(shù)據(jù)的收集和存儲(chǔ),保存用戶最終的分析和標(biāo)注結(jié)果。數(shù)據(jù)顯示部分需要面臨多種數(shù)據(jù)格式的混合顯示問題。語音分析結(jié)果中音節(jié)端點(diǎn)信息是成對(duì)的,基頻峰值點(diǎn)信息又和音節(jié)切分點(diǎn)信息相關(guān)。頻譜分析得到的結(jié)果是3 維數(shù)據(jù),計(jì)算LPCC3和MFCC4得到的是2 維數(shù)據(jù)。數(shù)據(jù)管理包括全局內(nèi)存管理、數(shù)據(jù)對(duì)象管理和用戶操作管理。內(nèi)存管理面向整個(gè)平臺(tái),將使用的內(nèi)存進(jìn)行統(tǒng)一管理,包括分配、釋放和維護(hù)。采用這一機(jī)制有利于解決內(nèi)存泄漏想象和提高資源的利用率。用戶自行開發(fā)的語音處理算法以外部模塊的形式存在,由平臺(tái)在啟動(dòng)時(shí)加載,結(jié)束時(shí)釋放。按照運(yùn)行機(jī)制,平臺(tái)的所有模塊可以分為內(nèi)部模塊和外部模塊兩大類。內(nèi)部模塊直接實(shí)現(xiàn)在平臺(tái)內(nèi)部,外部模塊則是由平臺(tái)在啟動(dòng)時(shí)動(dòng)態(tài)加載。內(nèi)部模塊調(diào)用外部模塊或者外部模塊之間互相調(diào)用,都是采用一個(gè)統(tǒng)一的接口實(shí)現(xiàn)數(shù)據(jù)封裝,屏蔽數(shù)據(jù)的差異性。目前可視語音平臺(tái)能夠顯示語音的波形、基音周期、頻譜、共振峰和線譜對(duì)參數(shù)。平臺(tái)主程序菜單包括波形文件管理、波形編輯、視圖查看模式設(shè)定、播放控制。外部模塊的圖標(biāo)被集中放在一個(gè)特定的工具欄中。平臺(tái)采用了多文檔類的結(jié)構(gòu),可以同時(shí)編輯多個(gè)波形文件。2 內(nèi)部模塊對(duì)于可視語音平臺(tái)來說,輸入的數(shù)據(jù)主要包括語音數(shù)據(jù)和用戶標(biāo)注數(shù)據(jù)。語音數(shù)據(jù)格式比較多,可以分為原始采樣記錄和語音編碼記錄。為了解決這一問題,設(shè)計(jì)了一個(gè)CData_Interface 模塊。所有的底層語音數(shù)據(jù)都通過這個(gè)接口輸入和輸出。2.1 數(shù)據(jù)對(duì)象管理可視語音平臺(tái)采用了多文檔并行的數(shù)據(jù)對(duì)象管理模式。數(shù)據(jù)對(duì)象包括原始波形數(shù)據(jù)、語音或者音頻編碼流、音段切分信息和基音周期標(biāo)注信息。一個(gè)語音數(shù)據(jù)對(duì)象對(duì)應(yīng)于一個(gè)文檔類和一個(gè)視圖類的對(duì)象。其余類型的信息均看成語音對(duì)象的子對(duì)象。2.2 數(shù)據(jù)對(duì)象顯示前面提到,語音分析的結(jié)果呈多樣化,各種應(yīng)用分析的聲學(xué)參數(shù)差異也比較大。然而這些參數(shù)在時(shí)間軸上是對(duì)齊的。因此,可視語音平臺(tái)采用了一個(gè)縱版的視圖結(jié)構(gòu),需要顯示的聲學(xué)參數(shù)垂直排列。每一個(gè)聲學(xué)參數(shù)都有自己獨(dú)立的顯示比例標(biāo)尺,例如顯示波形時(shí),采用振幅的絕對(duì)值或者其對(duì)數(shù)值作為度量。顯示頻譜時(shí),首先將幅度頻譜映射到0,255的區(qū)間上,然后按照亮度值顯示,色彩越亮的點(diǎn)代表頻譜幅度越大。圖2 所示是“為臨帖”的波形、基頻包絡(luò)和語譜。圖 2 “為臨帖”在可視語音平臺(tái)中的視圖3 外部模塊為了讓可視語音平臺(tái)能夠適應(yīng)不同語音研究的需求,解決新算法的擴(kuò)充問題,本文定義了具有標(biāo)準(zhǔn)形式的外部模塊。該模塊是獨(dú)立于平臺(tái)的一個(gè)部件,實(shí)現(xiàn)算法的核心部分。如果一個(gè)處理算法需要用到平臺(tái)已有的其它算法,那么首先要按照定義的接口規(guī)范將待處理的數(shù)據(jù)封裝起來,然后調(diào)用相應(yīng)的接口函數(shù)。平臺(tái)僅僅負(fù)責(zé)傳遞格式化數(shù)據(jù),并將返回的處理結(jié)果顯示到窗口中。外部模塊采用動(dòng)態(tài)鏈接庫的模式進(jìn)行開發(fā)和加載,因此平臺(tái)實(shí)現(xiàn)和算法實(shí)現(xiàn)過程是相互獨(dú)立的,從而方便了平臺(tái)的功能擴(kuò)展。為了提高開發(fā)速度,本文還設(shè)計(jì)了一個(gè)基于 Visual C+的開發(fā)模板。這個(gè)模板可以幫助設(shè)置外部模塊的名稱、接口函數(shù)的名稱和版本信息,創(chuàng)建出一個(gè)基本的Visual C+程序框架。3.1 接口規(guī)范為了隱藏內(nèi)部函數(shù)和統(tǒng)一接口,本文制定了一套開發(fā)規(guī)范。一個(gè)外部模塊只允許導(dǎo)出一個(gè)結(jié)構(gòu)體對(duì)象,而不是導(dǎo)出一系列函數(shù)接口。這個(gè)結(jié)構(gòu)體全部紀(jì)錄了模塊的基本信息、函數(shù)接口、數(shù)據(jù)結(jié)構(gòu)、工作圖標(biāo)等。其形式如下:struct module_struct int version; /* 主版本 */int minor_version; /* 副版本 */const char *source; /* 源程序的文件名 */void *dynamic_load_handle; /* 動(dòng)態(tài)加載成功后返回的全局句柄 */struct module_struct *next; /* 為了構(gòu)成鏈表,需要描述的下一個(gè)模塊的結(jié)構(gòu)體 */const char *depend_name; /* 執(zhí)行本模塊需要調(diào)用的第一個(gè)模塊的名稱 */struct module_struct *depend; /* 調(diào)用的第1 個(gè)模塊的描述結(jié)構(gòu)體 */const char *depend_name_next; /* 調(diào)用的第2 個(gè)模塊的名稱 */struct module_struct *depend_next; /* 調(diào)用的第2 個(gè)模塊的描述結(jié)構(gòu)體 */unsigned short bmpid; /*位圖資源的ID,工作圖標(biāo)*/const char *name; /* 外部模塊的正式名稱 */const char *tips; /* 工具欄提示字符串 */void *(*process) (void *in); /* 主函數(shù) */void *(*exit) (void *in); /* 資源清理函數(shù) */void *(*batch)(void *in); /*批處理模式的主函數(shù)*/ ;其中dynamic_load_handle 是操作系統(tǒng)加載相應(yīng)的動(dòng)態(tài)鏈接庫后返回的句柄。如果bmpid 不為0,則表示該模塊將在工具條中出現(xiàn)。3.2 數(shù)據(jù)交換格式為了便于模塊之間交換數(shù)據(jù),屏蔽數(shù)據(jù)類型的差異,定義了如下的數(shù)據(jù)封裝格式:struct absdata int dimension; /* 數(shù)據(jù)的維數(shù),例如語譜圖是2 維浮點(diǎn)型數(shù)據(jù)*/int width; /* 數(shù)組X 方向大小,也就是列數(shù) */int height; /* 數(shù)組X 方向大小,也就是行數(shù) */int width_desired; /* 希望返回的數(shù)組列數(shù) */int height_desired; /* 希望返回的數(shù)組行數(shù) */int parameter; /* 傳入主算法的第一個(gè)實(shí)參 */int datatype; /* 數(shù)據(jù)類型索引,例如 1-句柄 2-整數(shù) 3-字符 4-短整數(shù)*/int drawtype; /* 數(shù)據(jù)在視圖中的繪制模式,1-波形圖,2-離散點(diǎn),3-三維譜圖 */void *pointer; /* 數(shù)據(jù)的存儲(chǔ)地址 */void *window; /* 和數(shù)據(jù)關(guān)聯(lián)的窗口句柄 */int samplerate; /* 采樣率 */int needfree; /* 調(diào)用結(jié)束后是否自動(dòng)釋放 */void *aux; /* 輔助數(shù)據(jù)指針 */int auxwidth; /* 輔助數(shù)據(jù)長(zhǎng)度 */int auxdatatype; /* 輔助數(shù)據(jù)類型索引 */ ;調(diào)用外部模塊之前,需要事先準(zhǔn)備一個(gè)absdata 對(duì)象,并設(shè)置好其全部成員變量。外部模塊處理結(jié)束后,返回的也是一個(gè)absdata 對(duì)象。調(diào)用程序再根據(jù)drawtype 和datatype,決定如何在視圖對(duì)象中繪制運(yùn)算結(jié)果。3.3 加載過程在可視語音平臺(tái)啟動(dòng)時(shí),加載外部模塊的存放目錄下全部動(dòng)態(tài)鏈接庫文件。然后逐個(gè)分析,判斷它們是否符合前面提到的接口規(guī)范。如果符合,進(jìn)一步判斷是否存在工作圖標(biāo),是否需要將圖標(biāo)加入到工具欄中。分析加載流程如圖3 所示。圖 3 外部模塊的加載流程所有合法的外部加載成功后,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論