音頻壓縮算法_第1頁(yè)
音頻壓縮算法_第2頁(yè)
音頻壓縮算法_第3頁(yè)
音頻壓縮算法_第4頁(yè)
音頻壓縮算法_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第7章凌陽(yáng)音頻壓縮算法261第7章凌陽(yáng)音頻壓縮算法7.1背景介紹7.1.1音頻的概述(特點(diǎn),分類)我們所說(shuō)的音頻是指頻率在20Hz20kHz的聲音信號(hào),分為:波形聲音,語(yǔ)音和音樂(lè)三種,其中波形聲音就是自然界中所有的聲音,是聲音數(shù)字化的基礎(chǔ).語(yǔ)音也可以表示為波形聲音,但波形聲音表示不出語(yǔ)言,語(yǔ)音學(xué)的內(nèi)涵.語(yǔ)音是對(duì)講話聲音的一次抽象.是語(yǔ)言的載體,是人類社會(huì)特有的一種信息系統(tǒng),是社會(huì)交際工具的符號(hào).音樂(lè)與語(yǔ)音相比更規(guī)范一些,是符號(hào)化了的聲音.但音樂(lè)不能對(duì)所有的聲音進(jìn)行符號(hào)化.樂(lè)譜是符號(hào)化聲音的符號(hào)組,表示比單個(gè)符號(hào)更復(fù)雜的聲音信息內(nèi)容.7.1.2數(shù)字音頻的采樣和量化將模擬的(連續(xù)的)聲音波形數(shù)字元

2、化(離散化),以便利數(shù)字計(jì)算機(jī)進(jìn)行處理的過(guò)程,主要包括采樣和量化兩個(gè)方面.數(shù)字音頻的質(zhì)量取決于:采樣頻率和量化位數(shù)這兩個(gè)重要參數(shù).此外,聲道的數(shù)目,相應(yīng)的音頻設(shè)備也是影響音頻質(zhì)量的原因.7.1.3音頻格式的介紹音頻文件通常分為兩類:聲音文件和MIDI文件(1)聲音文件:指的是通過(guò)聲音錄入設(shè)備錄制的原始聲音,直接記錄了真實(shí)聲音的二進(jìn)制采樣數(shù)據(jù),通常文件較大;(2)MIDI文件:它是一種音樂(lè)演奏指令序列,相當(dāng)于樂(lè)譜,可以利用聲音輸出設(shè)備或與計(jì)算機(jī)相連的電子樂(lè)器進(jìn)行演奏,由于不包含聲音數(shù)據(jù),其文件尺寸較小.1)聲音文件的格式WAVE文件*.WAVWAVE文件使用三個(gè)參數(shù)來(lái)表示聲音,它們是:采樣位數(shù),

3、采樣頻率和聲道數(shù).在計(jì)算機(jī)中采樣位數(shù)一般有8位和16位兩種,而采樣頻率一般有11025Hz(11KHz),22050Hz(22KHz),44100Hz(44KHz)三種.我們以單聲道為例,則一般WAVE文件的比特率可達(dá)到88K704Kbps.具體介紹如下:(1)WAVE格式是Microsoft公司開(kāi)發(fā)的一種聲音文件格式,它符合RIFF(ResourceInterchangeFileFormat)文件規(guī)范;第7章凌陽(yáng)音頻壓縮算法262(2)用于保存Windows平臺(tái)的音頻信息資源,被Windows平臺(tái)及其應(yīng)用程序所廣泛支持.(3)WAVE格式支持MSADPCM,CCITTALaw,CCITTLa

4、w和其它壓縮算法,支持多種音頻位數(shù),采樣頻率和聲道,是PC機(jī)上最為流行的聲音文件格式.(4)但其文件尺寸較大,多用于存儲(chǔ)簡(jiǎn)短的聲音片段.AIFF文件AIF/AIFF(1)AIFF是音頻交換文件格式(AudioInterchangeFileFormat)的英文縮寫,是蘋果計(jì)算機(jī)公司開(kāi)發(fā)的一種聲音文件格式;(2)被Macintosh平臺(tái)及其應(yīng)用程序所支持,NetscapeNavigator瀏覽器中的LiveAudio也支持AIFF格式,SGI及其它專業(yè)音頻軟件包同樣支持這種格式.(3)AIFF支持ACE2,ACE8,MAC3和MAC6壓縮,支持16位44.1Kz立體聲.Audio文件*.Audio

5、(1)Audio文件是SunMicrosystems公司推出的一種經(jīng)過(guò)壓縮的數(shù)字聲音格式,是Internet中常用的聲音文件格式;(2)NetscapeNavigator瀏覽器中的LiveAudio也支持Audio格式的聲音文件.MPEG文件*.MP1/*.MP2/*.MP3(1)MPEG是運(yùn)動(dòng)圖像專家組(MovingPictureExpertsGroup)的英文縮寫,代表MPEG標(biāo)準(zhǔn)中的音頻部分,即MPEG音頻層(MPEGAudioLayer);(2)MPEG音頻文件的壓縮是一種有損壓縮,根據(jù)壓縮質(zhì)量和編碼復(fù)雜程度的不同可分為三層(MPEGAudioLayer1/2/3),分別對(duì)應(yīng)MP1,M

6、P2和MP3這三種聲音文件;(3)MPEG音頻編碼具有很高的壓縮率,MP1和MP2的壓縮率分別為4:1和6:18:1,而MP3的壓縮率則高達(dá)10:112:1,也就是說(shuō)一分鐘CD音質(zhì)的音樂(lè),未經(jīng)壓縮需要10MB存儲(chǔ)空間,而經(jīng)過(guò)MP3壓縮編碼后只有1MB左右,同時(shí)其音質(zhì)基本保持不失真,因此,目前使用最多的是MP3文件格式.RealAudio文件*.RA/*.RM/*.RAM(1)RealAudio文件是RealNerworks公司開(kāi)發(fā)的一種新型流式音頻(StreamingAudio)文件格式;(2)它包含在RealMedia中,主要用于在低速的廣域網(wǎng)上實(shí)時(shí)傳輸音頻信息;(3)網(wǎng)絡(luò)連接速率不同,客戶

7、端所獲得的聲音質(zhì)量也不盡相同:對(duì)于28.8Kbps的連接,可以達(dá)到廣播級(jí)的聲音質(zhì)量;如果擁有ISDN或更快的線路連接,則可獲得CD音質(zhì)的聲音.2)MIDI文件*.MID/*.RMI(1)MIDI是樂(lè)器數(shù)字接口(MusicalInstrumentDigitalInterface)的英文縮寫,是數(shù)字音樂(lè)/電子合成樂(lè)器的統(tǒng)一國(guó)際標(biāo)準(zhǔn);(2)它定義了計(jì)算機(jī)音樂(lè)程序,合成器及其它電子設(shè)備交換音樂(lè)信號(hào)的方式,還規(guī)第7章凌陽(yáng)音頻壓縮算法263定了不同廠家的電子樂(lè)器與計(jì)算機(jī)連接的電纜和硬件及設(shè)備間數(shù)據(jù)傳輸?shù)膮f(xié)議,可用于為不同樂(lè)器創(chuàng)建數(shù)字聲音,可以模擬大提琴,小提琴,鋼琴等常見(jiàn)樂(lè)器;(3)在MIDI文件中,只包

8、含產(chǎn)生某種聲音的指令,這些指令包括使用什么MIDI設(shè)備的音色,聲音的強(qiáng)弱,聲音持續(xù)多長(zhǎng)時(shí)間等,計(jì)算機(jī)將這些指令發(fā)送給聲卡,聲卡按照指令將聲音合成出來(lái),MIDI在重放時(shí)可以有不同的效果,這取決于音樂(lè)合成器的質(zhì)量;(4)相對(duì)于保存真實(shí)采樣資料的聲音文件,MIDI文件顯得更加緊湊,其文件尺寸通常比聲音文件小得多.7.1.4語(yǔ)音壓縮編碼基礎(chǔ)語(yǔ)音壓縮編碼中的數(shù)據(jù)量是指:數(shù)據(jù)量=(采樣頻率×量化位數(shù))/8(字節(jié)數(shù))×聲道數(shù)目.壓縮編碼的目的:通過(guò)對(duì)資料的壓縮,達(dá)到高效率存儲(chǔ)和轉(zhuǎn)換資料的結(jié)果,即在保證一定聲音質(zhì)量的條件下,以最小的資料率來(lái)表達(dá)和傳送聲音信息.壓縮編碼的必要性:實(shí)際應(yīng)用中,

9、未經(jīng)壓縮編碼的音頻資料量很大,進(jìn)行傳輸或存儲(chǔ)是不現(xiàn)實(shí)的.所以要通過(guò)對(duì)信號(hào)趨勢(shì)的預(yù)測(cè)和冗余信息處理,進(jìn)行資料的壓縮,這樣就可以使我們用較少的資源建立更多的信息.舉個(gè)例子,沒(méi)有壓縮過(guò)的CD品質(zhì)的資料,一分鐘的內(nèi)容需要11MB的內(nèi)存容量來(lái)存儲(chǔ).如果將原始資料進(jìn)行壓縮處理,在確保聲音品質(zhì)不失真的前提下,將數(shù)據(jù)壓縮一半,5.5MB就可以完全還原效果.而在實(shí)際操作中,可以依需要來(lái)選擇合適的算法.常見(jiàn)的幾種音頻壓縮編碼:1)波形編碼:將時(shí)間域信號(hào)直接變換為數(shù)字代碼,力圖使重建語(yǔ)音波形保持原語(yǔ)音信號(hào)的波形形狀.波形編碼的基本原理是在時(shí)間軸上對(duì)模擬語(yǔ)音按一定的速率抽樣,然后將幅度樣本分層量化,并用代碼表示.譯碼

10、是其反過(guò)程,將收到的數(shù)字序列經(jīng)過(guò)譯碼和濾波恢復(fù)成模擬信號(hào).如:脈沖編碼調(diào)制(PulseCodeModulation,PCM),差分脈沖編碼調(diào)制(DPCM),增量調(diào)制(DM)以及它們的各種改進(jìn)型,如自適應(yīng)差分脈沖編碼調(diào)制(ADPCM),自適應(yīng)增量調(diào)制(ADM),自適應(yīng)傳輸編碼(AdaptiveTransferCoding,ATC)和子帶編碼(SBC)等都屬于波形編碼技術(shù).波形編碼特點(diǎn):高話音質(zhì)量,高碼率,適于高保真音樂(lè)及語(yǔ)音.2)參數(shù)編碼:參數(shù)編碼又稱為聲源編碼,是將信源信號(hào)在頻率域或其它正交變換域提取特征參數(shù),并將其變換成數(shù)字代碼進(jìn)行傳輸.譯碼為其反過(guò)程,將收到的數(shù)字序列經(jīng)變換恢復(fù)特征參量,再

11、根據(jù)特征參量重建語(yǔ)音信號(hào).具體說(shuō),參數(shù)編碼是通過(guò)對(duì)語(yǔ)音信號(hào)特征參數(shù)的提取和編碼,力圖使重建語(yǔ)音信號(hào)具有盡可能高的準(zhǔn)確性,但重建信號(hào)的波形同原語(yǔ)音信號(hào)的波形可能會(huì)有相當(dāng)大的差別.第7章凌陽(yáng)音頻壓縮算法264如:線性預(yù)測(cè)編碼(LPC)及其它各種改進(jìn)型都屬于參數(shù)編碼.該編碼比特率可壓縮到2Kbit/s-4.8Kbit/s,甚至更低,但語(yǔ)音質(zhì)量只能達(dá)到中等,特別是自然度較低.參數(shù)編碼特點(diǎn):壓縮比大,計(jì)算量大,音質(zhì)不高,廉價(jià)!3)混合編碼:混合編碼使用參數(shù)編碼技術(shù)和波形編碼技術(shù),計(jì)算機(jī)的發(fā)展為語(yǔ)音編碼技術(shù)的研究提供了強(qiáng)有力的工具,大規(guī)模,超大規(guī)模集成電路的出現(xiàn),則為語(yǔ)音編碼的實(shí)現(xiàn)提供了基礎(chǔ).80年代以來(lái)

12、,語(yǔ)音編碼技術(shù)有了實(shí)質(zhì)性的進(jìn)展,產(chǎn)生了新一代的編碼算法,這就是混合編碼.它將波形編碼和參數(shù)編碼組合起來(lái),克服了原有波形編碼和參數(shù)編碼的弱點(diǎn),結(jié)合各自的長(zhǎng)處,力圖保持波形編碼的高質(zhì)量和參數(shù)編碼的低速率.如:多脈沖激勵(lì)線性預(yù)測(cè)編碼(MPLPC),規(guī)劃脈沖激勵(lì)線性預(yù)測(cè)編碼(KPELPC),碼本激勵(lì)線性預(yù)測(cè)編碼(CELP)等都是屬于混合編碼技術(shù).其數(shù)據(jù)率和音質(zhì)介于參數(shù)和波形編碼之間.總之,音頻壓縮技術(shù)之趨勢(shì)有兩個(gè):1)降低資料率,提高壓縮比,用于廉價(jià),低保真場(chǎng)合(如:電話).2)追求高保真度,復(fù)雜的壓縮技術(shù)(如:CD).語(yǔ)音合成,辨識(shí)技術(shù)的介紹:按照實(shí)現(xiàn)的功能來(lái)分,語(yǔ)音合成可分兩個(gè)檔次:(1)有限詞匯

13、的計(jì)算機(jī)語(yǔ)音輸出(2)基于語(yǔ)音合成技術(shù)的文字語(yǔ)音轉(zhuǎn)換(TTS:Text-to-Speech)按照人類語(yǔ)言功能的不同層次,語(yǔ)音合成可分為三個(gè)層次:(1)從文字到語(yǔ)音的合成(Text-to-Speech)(2)從概念到語(yǔ)音的合成(Concept-to-Speech)(3)從意向到語(yǔ)音的合成(Intention-to-Speech)圖7.1是文本到語(yǔ)音的轉(zhuǎn)換過(guò)程:文本處理語(yǔ)音合成韻律處理語(yǔ)音數(shù)據(jù)庫(kù)詞典及語(yǔ)言規(guī)范合成語(yǔ)音輸出文本輸入圖7.1從文本到語(yǔ)音轉(zhuǎn)換過(guò)程示意語(yǔ)音辨識(shí):語(yǔ)音辨識(shí)技術(shù)有三大研究范圍:口音獨(dú)立,連續(xù)語(yǔ)音及可辨認(rèn)字詞數(shù)量.口音獨(dú)立:1)早期只能辨認(rèn)特定的使用者即特定語(yǔ)者(SpeakerD

14、ependent,SD)模式,使用者可針對(duì)特定語(yǔ)者辨認(rèn)詞匯(可由使用者自行定義,如人名聲控?fù)芴?hào)),作簡(jiǎn)單快速的訓(xùn)第7章凌陽(yáng)音頻壓縮算法265練紀(jì)錄使用者的聲音特性來(lái)加以辨認(rèn).隨著技術(shù)的成熟,進(jìn)入語(yǔ)音適應(yīng)階段SA(speakeradaptation),使用者只要對(duì)于語(yǔ)音辨識(shí)核心,經(jīng)過(guò)一段時(shí)間的口音訓(xùn)練后,即可擁有不錯(cuò)的辨識(shí)率.2)非特定語(yǔ)者模式(SpeakerIndependent,SI),使用者無(wú)需訓(xùn)練即可使用,并進(jìn)行辨認(rèn).任何人皆可隨時(shí)使用此技術(shù),不限定語(yǔ)者即男性,女性,小孩,老人皆可.連續(xù)語(yǔ)音:1)單字音辨認(rèn):為了確保每個(gè)字音可以正確地切割出來(lái),必須一個(gè)字一個(gè)字分開(kāi)來(lái)念,非常不自然,與我們

15、平常說(shuō)話的連續(xù)方式,還是有點(diǎn)不同.2)整個(gè)句子辨識(shí):只要按照你正常說(shuō)話的速度,直接將要表達(dá)的說(shuō)出來(lái),中間并不需要停頓,這種方式是最直接最自然的,難度也最高,現(xiàn)階段連續(xù)語(yǔ)音的辨識(shí)率及正確率,雖然效果還不錯(cuò)但仍需再提高.然而,中文字有太多的同音字,因此目前所有的中文語(yǔ)音辨識(shí)系統(tǒng),幾乎都是以詞為依據(jù),來(lái)判斷正確的同音字.可辨認(rèn)詞匯數(shù)量:內(nèi)建的詞匯數(shù)據(jù)庫(kù)的多寡,也直接影響其辨識(shí)能力.因此就語(yǔ)音辨識(shí)的詞匯數(shù)量來(lái)說(shuō)亦可分為三種:1)小詞匯量(10-100)2)中詞匯量(100-1000)3)無(wú)限詞匯量(即聽(tīng)寫機(jī))圖7.2是簡(jiǎn)化的語(yǔ)音識(shí)別原理圖,其中實(shí)線部分成為訓(xùn)練模塊,虛線部分為識(shí)別模塊.復(fù)雜聲學(xué),言語(yǔ)條

16、件下的語(yǔ)音輸入語(yǔ)音模型聲學(xué)模式訓(xùn)練語(yǔ)音匹配語(yǔ)音模式訓(xùn)練語(yǔ)音處理識(shí)別結(jié)果,理解結(jié)果語(yǔ)言模型圖7.2語(yǔ)音識(shí)別原理簡(jiǎn)圖第7章凌陽(yáng)音頻壓縮算法2667.2凌陽(yáng)音頻簡(jiǎn)介7.2.1凌陽(yáng)音頻壓縮算法的編碼標(biāo)準(zhǔn)表7.1是不同音頻質(zhì)量等級(jí)的編碼技術(shù)標(biāo)準(zhǔn)(頻響):表7.1信號(hào)類型頻率范圍(Hz)采樣率(kHz)量化精度(位)電話話音200340088寬帶音頻(AM質(zhì)量)5070001616調(diào)頻廣播(FM質(zhì)量)2015k37.816高質(zhì)量音頻(CD質(zhì)量)2020k44.116凌陽(yáng)音頻壓縮算法處理的語(yǔ)音信號(hào)的范圍是200Hz-3.4KHz的電話話音.7.2.2壓縮分類壓縮分無(wú)損壓縮和有損壓縮.無(wú)損壓縮一般指:磁盤文件

17、,壓縮比低:2:14:1.而有損壓縮則是指:音/視頻文件,壓縮比可高達(dá)100:1.凌陽(yáng)音頻壓縮算法根據(jù)不同的壓縮比分為以下幾種(具體可參見(jiàn)語(yǔ)音壓縮工具一節(jié)內(nèi)容):SACM-A2000:壓縮比為8:1,8:1.25,8:1.5SACM-S480:壓縮比為80:3,80:4.5SACM-S240:壓縮比為80:1.5按音質(zhì)排序:A2000>S480>S2407.2.3凌陽(yáng)常用的音頻形式和壓縮算法1)波形編碼:sub-band即SACM-A2000特點(diǎn):高質(zhì)量,高碼率,適于高保真語(yǔ)音/音樂(lè).2)參數(shù)編碼:聲碼器(vocoder)模型表達(dá),抽取參數(shù)與激勵(lì)信號(hào)進(jìn)行編碼.如:SACM-S240

18、.特點(diǎn):壓縮比大,計(jì)算量大,音質(zhì)不高,廉價(jià)!3)混合編碼:CELP即SACM-S480特點(diǎn):綜合參數(shù)和波形編碼之優(yōu)點(diǎn).除此之外,還具有FM音樂(lè)合成方式即SACM-MS01.第7章凌陽(yáng)音頻壓縮算法2677.2.4分別介紹凌陽(yáng)語(yǔ)音的播放,錄制,合成和辨識(shí)凌陽(yáng)的SPCE061A是16位單片機(jī),具有DSP功能,有很強(qiáng)的信息處理能力,最高時(shí)鐘頻率可達(dá)到49MHz,具備運(yùn)算速度高的優(yōu)勢(shì)等等,這些都無(wú)疑為語(yǔ)音的播放,錄放,合成及辨識(shí)提供了條件.凌陽(yáng)壓縮算法中SACM_A2000,SACM_S480,SACM_S240主要是用來(lái)放音,可用于語(yǔ)音提示,而DVR則用來(lái)錄放音.對(duì)于音樂(lè)合成MS01,該算法較繁瑣,而

19、且需要具備音樂(lè)理論,配器法及和聲學(xué)知識(shí),所以對(duì)于特別愛(ài)好者可以到我們的網(wǎng)站去了解相關(guān)內(nèi)容,這里只給出它的API函數(shù)介紹及程序代碼的范例,僅供參考.對(duì)于語(yǔ)音辨識(shí)主要有以下兩種:1)特定發(fā)音人識(shí)別SD(SpeakerDependent):是指語(yǔ)音樣板由單個(gè)人訓(xùn)練,也只能識(shí)別訓(xùn)練人的語(yǔ)音命令,而他人的命令識(shí)別率較低或幾乎不能識(shí)別.2)非特定發(fā)音人識(shí)別SI(SpeakerIndependent):是指語(yǔ)音樣板由不同年齡,不同性別,不同口音的人進(jìn)行訓(xùn)練,可以識(shí)別一群人的命令.語(yǔ)音識(shí)別電路基本結(jié)構(gòu)如圖7.3所示:濾除噪音預(yù)加重濾波器組PARCOR系數(shù)線性預(yù)測(cè)系數(shù)過(guò)零次數(shù)能量相關(guān)函數(shù)等模式匹配詞典語(yǔ)音分析語(yǔ)

20、音識(shí)別結(jié)果輸出圖7.3語(yǔ)音識(shí)別電路結(jié)構(gòu)具體應(yīng)用及程序代碼可參考7.3.47.3常用的應(yīng)用程序接口API的功能介紹及應(yīng)用7.3.1概述表7.2所列出的是凌陽(yáng)音頻的幾種算法:表7.2SACM-lib庫(kù)中模塊及其算法類型模塊名稱(Model-Index)語(yǔ)音壓縮編碼率類型資料采樣率SACM_A200016Kbit/s,20Kbit/s,24Kbit/s16KHzSACM_S480/S7204.8Kbit/s,7.2Kbit/s16KHz第7章凌陽(yáng)音頻壓縮算法268SACM_S2402.4Kbit/s24KHzSACM_MS01音樂(lè)合成(16Kbits/s,20Kbits/s,24Kbits/s)16

21、KHzSACM_DVR(A2000)16Kbit/s的資料率,8K的采樣率,用于ADC通道錄音功能16KHz語(yǔ)音和音樂(lè)與我們的生活有著非常密切的關(guān)系,而單片機(jī)對(duì)語(yǔ)音的控制如錄放音,合成及辨識(shí)也廣泛應(yīng)用在現(xiàn)實(shí)生活中.我們知道對(duì)于語(yǔ)音處理大致可以分為A/D,編碼處理,存儲(chǔ),解碼處理以及D/A等見(jiàn)圖7.4所示.然而,通過(guò)前面介紹我們知道麥克風(fēng)輸入所生成的WAVE文件,其占用的存儲(chǔ)空間很大,對(duì)于單片機(jī)來(lái)說(shuō)想要存儲(chǔ)大量的信息顯然是不可能的,而凌陽(yáng)的SPCE061A提出了解決的方法,即SACM-LIB,該庫(kù)將A/D,編碼,解碼,存儲(chǔ)及D/A作成相應(yīng)的模塊,對(duì)于每個(gè)模塊都有其應(yīng)用程序接口API,所以您只需了

22、解每個(gè)模塊所要實(shí)現(xiàn)的功能及其參數(shù)的內(nèi)容,然后調(diào)用該API函數(shù)即可實(shí)現(xiàn)該功能,例如在程序中插入語(yǔ)音提示,或連續(xù)播放一段語(yǔ)音或音樂(lè),也可以根據(jù)自己需要的空間或使用范圍選擇適合自己的算法如表7.2所示.麥克風(fēng)A/D轉(zhuǎn)換存儲(chǔ)喇叭編解碼處理D/A轉(zhuǎn)換圖7.4單片機(jī)對(duì)語(yǔ)音處理過(guò)程以下就不同的算法具體介紹各自的API函數(shù)的格式,功能,參數(shù),返回值,備注及應(yīng)用范例.7.3.2SACM_A2000該壓縮算法壓縮比較小(8:1)所以具有高質(zhì)量,高碼率的特點(diǎn)適用于高保真音樂(lè)和語(yǔ)音.其相關(guān)API函數(shù)如下所示:voidSACM_A2000_Initial(intInit_Index)/初始化voidSACM_A2000

23、_ServiceLoop(void)/獲取語(yǔ)音資料,填入譯碼隊(duì)列voidSACM_A2000_Play(intSpeech_Index,intChannel,intRamp_Set)/播放voidSACM_A2000_Stop(void)/停止播放voidSACM_A2000_Pause(void)/暫停播放voidSACM_A2000_Resume(void)/暫停后恢復(fù)voidSACM_A2000_Volume(Volume_Index)/音量控制unsignedintSACM_A2000_Status(void)/獲取模塊狀態(tài)第7章凌陽(yáng)音頻壓縮算法269voidSACM_A2000_In

24、itDecode(intChannel)/譯碼初始化voidSACM_A2000_Decode(void)/譯碼voidSACM_A2000_FillQueue(unsignedintencoded-data)/填充隊(duì)列unsignedintSACM_A2000_TestQueue(void)/測(cè)試隊(duì)列CallF_FIQ_Service_SACM_A2000/中斷服務(wù)函數(shù)下面對(duì)各個(gè)函數(shù)進(jìn)行具體介紹:1)【API格式】C:voidSACM_A2000_Initial(intInit_Index)ASM:R1=Init_IndexCallF_SACM_A2000_Initial【功能說(shuō)明】SACM

25、_A2000語(yǔ)音播放之前的初始化.【參數(shù)】Init_Index=0表示手動(dòng)方式;Init_Index=1則表示自動(dòng)方式.【返回值】無(wú)【備注】該函數(shù)用于對(duì)定時(shí)器,中斷和DAC等的初始化.2)【API格式】C:voidSACM_A2000_ServiceLoop(void)ASM:CallF_SACM_A2000_ServiceLoop【功能說(shuō)明】從資源中獲取SACM_A2000語(yǔ)音資料,并將其填入譯碼隊(duì)列中.【參數(shù)】無(wú).【返回值】無(wú).3)【API格式】C:voidSACM_A2000_Play(intSpeech_Index,intChannel,intRamp_Set);ASM:R1=Spee

26、ch_IndexR2=ChannelR3=Ramp_SetCallSACM_A2000_Play【功能說(shuō)明】播放資源中SACM_A2000語(yǔ)音或樂(lè)曲.【參數(shù)】Speech_Index:表示語(yǔ)音索引號(hào).Channel:1.通過(guò)DAC1通道播放;2.通過(guò)DAC2通道播放;3.通過(guò)DAC1和DAC2雙通道播放.Ramp_Set:0.禁止音量增/減調(diào)節(jié);1.僅允許音量增調(diào)節(jié);2.僅允許音量減調(diào)節(jié);3.允許音量增/減調(diào)節(jié).【返回值】無(wú).【備注】SACM_A2000的數(shù)據(jù)率有16Kbps20Kbps24Kbps三種,可在同一模塊的幾種算法中自動(dòng)選擇一種.第7章凌陽(yáng)音頻壓縮算法270Speech_Index

27、是定義在resource.inc文件中資源表(T_SACM_A2000_SpeechTable)的偏移地址.中斷服務(wù)子程序F_FIQ_Service_SACM_A2000必須安置在TMA_FIQ中斷向量上(參見(jiàn)第五章中斷系統(tǒng)內(nèi)容).函數(shù)允許TimerA以所選的的數(shù)據(jù)采樣率(計(jì)數(shù)溢出)中斷.程序7-1以自動(dòng)方式播放一段SACM_A2000語(yǔ)音,并自動(dòng)結(jié)束.(見(jiàn)光盤)SACM_A2000自動(dòng)方式主程序流程圖:SACM_A2000放音的初始化SACM_A2000壓縮播放獲取語(yǔ)音數(shù)據(jù)并解碼等待中斷播放圖7.5A2000自動(dòng)方式主程序流程前臺(tái)程序:#defineSpeech_10#defineDAC11

28、#defineDAC22#defineRamp_UpDn_Off0#defineRamp_Up_On1#defineRamp_Dn_On2#defineRamp_UpDn_On3Main()SACM_A2000_Initial(1);SACM_A2000_Play(Speech_1,DAC1+DAC2,Ramp_UpDn_On);/放音while(SACM_A2000_Status()&0x01)SACM_A2000_ServiceLoop();背景程序:.TEXT第7章凌陽(yáng)音頻壓縮算法271.INCLUDEhardware.inc.INCLUDEA2000.inc.INCLUDERe

29、source.inc/=/函數(shù):FIQ()/語(yǔ)法:voidFIQ(void)/描述:FIQ中服務(wù)斷函數(shù)/參數(shù):無(wú)/返回:無(wú)/=.PUBLIC_FIQ;_FIQ:PUSHR1,R4TOsp;/入棧保護(hù)R1=0x2000;TESTR1,P_INT_Ctrl;/是否為定時(shí)器A中斷JNZL_FIQ_TimerA;R1=0x0800;TESTR1,P_INT_Ctrl;/是否為定時(shí)器B中斷JNZL_FIQ_TimerB;L_FIQ_PWM:R1=C_FIQ_PWM;P_INT_Clear=R1;/清中斷POPR1,R4fromsp;/恢復(fù)現(xiàn)場(chǎng)RETI;L_FIQ_TimerA:/定時(shí)器A中斷處理P_IN

30、T_Clear=R1;/清中斷CALLF_FIQ_Service_SACM_A2000;/調(diào)用A2000中斷服務(wù)函數(shù)POPR1,R4FROMsp;/恢復(fù)現(xiàn)場(chǎng)RETI;L_FIQ_TimerB:/定時(shí)器B中斷處理P_INT_Clear=R1;/清中斷POPR1,R4FROMsp;/恢復(fù)現(xiàn)場(chǎng)RETI;/中斷返回/*/注:播放語(yǔ)音文件中數(shù)據(jù),當(dāng)出現(xiàn)FFFFFFH數(shù)據(jù)時(shí)便停止播放.4)【API格式】C:voidSACM_A2000_Stop(void);ASM:CallF_SACM_A2000_Stop【功能說(shuō)明】停止播放SACM_A2000語(yǔ)音或樂(lè)曲.【參數(shù)】無(wú).【返回值】無(wú).5)【API格式】C:

31、voidSACM_A2000_Pause(void);ASM:CallF_SACM_A2000_Pause【功能說(shuō)明】暫停播放SACM_A2000語(yǔ)音或樂(lè)曲.第7章凌陽(yáng)音頻壓縮算法272【參數(shù)】無(wú).【返回值】無(wú).6)【API格式】C:voidSACM_A2000_Resume(void);ASM:CallF_SACM_A2000_Resume【功能說(shuō)明】恢復(fù)暫停播放的SACM_A2000語(yǔ)音或樂(lè)曲.【參數(shù)】無(wú).【返回值】無(wú).7)【API格式】C:voidSACM_A2000_Volume(Volume_Index);ASM:R1=Volume_IndexCallF_SACM_A2000_Vol

32、ume【功能說(shuō)明】在播放SACM_A2000語(yǔ)音或樂(lè)曲時(shí)改變主音量.【參數(shù)】Volume_Index為音量數(shù),音量從最小到最大可在015之間選擇.【返回值】無(wú).8)【API格式】C:unsignedintSACM_A2000_Status(void);ASM:CallF_SACM_A2000_Status返回值=R1【功能說(shuō)明】獲取SACM_A2000語(yǔ)音播放的狀態(tài).【參數(shù)】無(wú).【返回值】當(dāng)R1的bit0=0,表示語(yǔ)音播放結(jié)束;bit0=1,表示語(yǔ)音在播放中.9)【API格式】ASM:CallF_FIQ_Service_SACM_A2000【功能說(shuō)明】用作SACM_A2000語(yǔ)音背景程序的中斷

33、服務(wù)子程序.通過(guò)前臺(tái)子程序(自動(dòng)方式的SACM_A2000_ServiceLoop及手動(dòng)方式的SACM_A2000_Decode)對(duì)語(yǔ)音資料進(jìn)行解碼,然后將其送入DAC通道播放.【參數(shù)】無(wú).【返回值】無(wú).【備注】SACM_A2000語(yǔ)音背景子程序只有匯編指令形式,且應(yīng)將此子程序安置在TMA_FIQ中斷源上.10)【API格式】C:voidSACM_A2000_InitDecode(intChannel);ASM:CallF_SACM_A2000_Decode【功能說(shuō)明】開(kāi)始對(duì)SACM_A2000語(yǔ)音資料以非自動(dòng)方式(編程控制)進(jìn)行譯碼.【參數(shù)】Channel=1,2,3;分別表示使用DAC1,

34、DAC2通道以及DAC1和DAC2雙通道.【返回值】無(wú).【備注】用戶只能通過(guò)非自動(dòng)方式對(duì)語(yǔ)音資料解壓縮.11)【API格式】C:voidSACM_A2000_Decode(void);ASM:CallF_SACM_A2000_Decode第7章凌陽(yáng)音頻壓縮算法273【功能說(shuō)明】從語(yǔ)音隊(duì)列里獲取的SACM_A2000語(yǔ)音資料,并進(jìn)行譯碼,然后通過(guò)中斷服務(wù)子程序?qū)⑵渌腿隓AC通道播放.【參數(shù)】無(wú).【返回值】無(wú).【備注】用戶僅能通過(guò)非自動(dòng)方式對(duì)語(yǔ)音資料進(jìn)行譯碼.12)【API格式】C:voidSACM_A2000_FillQueue(unsignedintencoded-data);ASM:R1=語(yǔ)

35、音編碼資料CallF_SACM_A2000_FillQueue【功能說(shuō)明】將從用戶存儲(chǔ)區(qū)里獲取SACM_A2000語(yǔ)音編碼資料,然后將其填入語(yǔ)音隊(duì)列中等候譯碼處理.【參數(shù)】encoded-data為語(yǔ)音編碼資料.【返回值】無(wú).【備注】用戶僅能通過(guò)非自動(dòng)方式對(duì)語(yǔ)音資料進(jìn)行譯碼.13)【API格式】C:unsignedintSACM_A2000_TestQueue(void);ASM:CallF_SACM_A2000_TestQueue返回值=R1【功能說(shuō)明】獲取語(yǔ)音隊(duì)列的狀態(tài).【參數(shù)】無(wú).【返回值】R1=0,1,2;分別表示語(yǔ)音隊(duì)列不空不滿,語(yǔ)音隊(duì)列滿及語(yǔ)音隊(duì)列空.【備注】用戶僅能通過(guò)非自動(dòng)方式

36、測(cè)試語(yǔ)音隊(duì)列狀態(tài).程序7-2SACM_A2000非自動(dòng)方式(編程控制)播放語(yǔ)音.(見(jiàn)光盤)SACM_A2000非自動(dòng)方式主程序流程見(jiàn)圖7.6:第7章凌陽(yáng)音頻壓縮算法274A2000播放初始化獲取語(yǔ)音資源并填充語(yǔ)音隊(duì)列解碼獲取數(shù)據(jù)并播放判斷語(yǔ)音隊(duì)列是否滿判斷是否到語(yǔ)音的結(jié)束地址放音結(jié)束結(jié)束開(kāi)始是否否是圖7.6SACM_A2000非自動(dòng)方式主程序流程中斷服務(wù)子程序流程見(jiàn)圖7.7:FIQ是TimerA中斷嗎填充語(yǔ)音隊(duì)列清中斷狀態(tài)否是中斷返回寄存器組出棧開(kāi)始圖7.7SACM_A2000中斷服務(wù)子程序流程前臺(tái)程序:第7章凌陽(yáng)音頻壓縮算法275#defineManual0#defineAuto1#defi

37、neFull1#defineEmpty2#defineDAC11#defineDAC22Main()Addr=RES_A32_SA;/長(zhǎng)整型資源地址SACM_A2000_Initial(Manual);/選擇非自動(dòng)方式SACM_A2000_InitDecode(DAC1+DAC2);/使用雙通道While(SACM_A2000_TestQueue()!=Full)/若隊(duì)列不滿,填入資料Ret=GetResource(Addr);/從ROM中取語(yǔ)音資料SACM_A2000_FillQueue(Ret);/將語(yǔ)音資料填入隊(duì)列Addr+;/指向下一個(gè)資料地址While(1)If(SACM_A2000

38、_TestQueue()!=Full)/繼續(xù)填資料到隊(duì)列中Ret=GetResource(Addr);SACM_A2000_FillQueue(Ret);Addr+;if(Addr<RES_A32_EA)SACM_A2000_Decode();/對(duì)語(yǔ)音資料進(jìn)行譯碼elseSACM_A2000_Stop();/地址結(jié)束,停止播放注:1)文件的結(jié)束是由用戶位址變量控制的.2)在非自動(dòng)方式播放語(yǔ)音,其音量的增/減是通過(guò)外部子程序(SP_Ramp_Up,SP_Ramp_Dn)控制的.7.3.3SACM_S480該壓縮算法壓縮比較大80:3,存儲(chǔ)容量大,音質(zhì)介于A2000和S240之間,適用于語(yǔ)音

39、播放,如"文曲星"詞庫(kù).其相關(guān)API函數(shù)如下所示:intSACM_S480_Initial(intInit_Index)/初始化voidSACM_S480_ServiceLoop(void)/獲取語(yǔ)音資料,填入譯碼隊(duì)列voidSACM_S480_Play(intSpeech_Index,intChannel,intRamp_Set)第7章凌陽(yáng)音頻壓縮算法276/播放voidSACM_S480_Stop(void)/停止播放voidSACM_S480_Pause(void)/暫停播放voidSACM_S480_Resume(void)/暫停后恢復(fù)voidSACM_S480_V

40、olume(Volume_Index)/音量的控制unsignedintSACM_S480_Status(void)/獲取模塊的狀態(tài)CallF_FIQ_Service_SACM_S480/中斷服務(wù)函數(shù)各函數(shù)具體內(nèi)容如下:1)【API格式】C:intSACM_S480_Initial(intInit_Index)ASM:R1=Init_IndexCallF_SACM_S480_Initial【功能說(shuō)明】SACM_S480語(yǔ)音播放之前的初始化.【參數(shù)】Init_Index=0表示手動(dòng)方式;Init_Index=1則表示自動(dòng)方式.【返回值】0:代表語(yǔ)音模塊初始化失敗1:代表初始化成功.【備注】該函數(shù)

41、用于對(duì)定時(shí)器,中斷和DAC等的初始化.2)【API格式】C:voidSACM_S480_ServiceLoop(void)ASM:CallF_SACM_S480_ServiceLoop【功能說(shuō)明】從資源中獲取SACM_S480語(yǔ)音資料,并將其填入解碼隊(duì)列中.【參數(shù)】無(wú).【返回值】無(wú).【備注】播放語(yǔ)音文件中數(shù)據(jù),當(dāng)出現(xiàn)FFFFFFH數(shù)據(jù)時(shí)便停止播放.3)【API格式】C:intSACM_S480_Play(intSpeech_Index,intChannel,intRamp_Set);ASM:R1=Speech_IndexR2=ChannelR3=Ramp_SetCallSACM_S480_Pl

42、ay【功能說(shuō)明】播放資源中SACM_S480語(yǔ)音.【參數(shù)】Speech_Index表示語(yǔ)音索引號(hào).Channel:1.通過(guò)DAC1通道播放;2.通過(guò)DAC2通道播放;3.通過(guò)DAC1和DAC2雙通道播放.Ramp_Set:0.禁止音量增/減調(diào)節(jié);1.僅允許音量增調(diào)節(jié);2.僅允許音量減調(diào)節(jié);3.允許音量增/減調(diào)節(jié).【返回值】無(wú).第7章凌陽(yáng)音頻壓縮算法277【備注】SACM_S480的數(shù)據(jù)率有4.8Kbps7.2Kbps三種,可在同一模塊的幾種算法中自動(dòng)選擇一種.Speech_Index是定義在resource.inc文件中資源表(T_SACM_S480_SpeechTable)的偏移地址.中斷服

43、務(wù)子程序中F_FIQ_Service_SACM_S480必須放在TMA_FIQ中斷向量上(參見(jiàn)SPCE的中斷系統(tǒng)).函數(shù)允許TimerA以所選的的數(shù)據(jù)采樣率(計(jì)數(shù)溢出)中斷.程序7-3以自動(dòng)方式播放一段SACM_S480語(yǔ)音,并自動(dòng)結(jié)束.(見(jiàn)光盤)SACM_S480自動(dòng)方式主程序流程見(jiàn)圖7.8:SACM_S480放音的初始化SACM_S480壓縮播放獲取語(yǔ)音數(shù)據(jù)并解碼等待中斷播放圖7.8SACM_S480自動(dòng)方式主程序流程中斷流程同上.前臺(tái)程序:/*/描述:s480只有自動(dòng)播放方式,在中斷FIQ的FIQ_TMA中斷源中通過(guò)/主程序的SACM_S480_ServiceLoop()對(duì)語(yǔ)音數(shù)據(jù)進(jìn)行解

44、碼,然后將其/送入DAC通道播放/*/#include"s480.h"#defineSpeech_10#defineDAC11#defineDAC22#defineRamp_UpDn_Off0#defineRamp_UpDn_On3#defineAuto1/=/函數(shù):main()第7章凌陽(yáng)音頻壓縮算法278/=main()SACM_S480_Initial(1);/自動(dòng)方式播放初始化SACM_S480_Play(Speech_1,DAC1+DAC2,Ramp_UpDn_On);/定義語(yǔ)音索引號(hào),播放通道,允許音量增/減調(diào)節(jié)while(SACM_S480_Status()&a

45、mp;0x01)/是否播放結(jié)束SACM_S480_ServiceLoop();/獲取語(yǔ)音數(shù)據(jù)并將其填入解碼隊(duì)列背景程序:.TEXT.INCLUDEhardware.inc.INCLUDES480.inc.PUBLIC_FIQ;_FIQ:PUSHR1,R4TOsp;/入棧保護(hù)R1=0x2000;TESTR1,P_INT_Ctrl;/是否為定時(shí)器A中斷JNZL_FIQ_TimerA;R1=0x0800;TESTR1,P_INT_Ctrl;/是否為定時(shí)器B中斷JNZL_FIQ_TimerB;L_FIQ_PWM:R1=C_FIQ_PWM;P_INT_Clear=R1;/清中斷POPR1,R4fromS

46、P;/恢復(fù)現(xiàn)場(chǎng)RETI;L_FIQ_TimerA:/定時(shí)器A中斷處理P_INT_Clear=R1;/清中斷CALLF_FIQ_Service_SACM_S480;/調(diào)用S480中斷服務(wù)函數(shù)POPR1,R4FROMSP;/恢復(fù)現(xiàn)場(chǎng)RETI;L_FIQ_TimerB:/定時(shí)器B中斷處理P_INT_Clear=R1;/清中斷POPR1,R4FROMSP;/恢復(fù)現(xiàn)場(chǎng)RETI;/中斷返回注:自動(dòng)放音時(shí),當(dāng)語(yǔ)音資源文件中的資料為FFFFFFH時(shí)便停止播放.4)【API格式】C:voidSACM_S480_Stop(void);ASM:CallF_SACM_S480_Stop【功能說(shuō)明】停止播放SACM_S

47、480語(yǔ)音.【參數(shù)】無(wú).【返回值】無(wú).第7章凌陽(yáng)音頻壓縮算法2795)【API格式】C:voidSACM_S480_Pause(void);ASM:CallF_SACM_S480_Pause【功能說(shuō)明】暫停播放SACM_S480語(yǔ)音.【參數(shù)】無(wú).【返回值】無(wú).6)【API格式】C:voidSACM_S480_Resume(void);ASM:CallF_SACM_S480_Resume【功能說(shuō)明】恢復(fù)暫停播放的SACM_S480語(yǔ)音.【參數(shù)】無(wú).【返回值】無(wú).7)【API格式】C:voidSACM_S480_Volume(Volume_Index);ASM:R1=Volume_IndexCal

48、lF_Model-Index_Volume【功能說(shuō)明】在播放SACM_S480語(yǔ)音時(shí)改變主音量.【參數(shù)】Volume_Index為音量數(shù),音量從最小到最大可在015之間選擇.【返回值】無(wú).8)【API格式】C:unsignedintSACM_S480_Status(void);ASM:CallF_SACM_S480_Status返回值=R1【功能說(shuō)明】獲取SACM_S480語(yǔ)音播放的狀態(tài).【參數(shù)】無(wú).【返回值】當(dāng)R1的值bit0=0,表示語(yǔ)音播放結(jié)束;bit0=1,表示語(yǔ)音在播放中.9)【API格式】ASM:CallF_FIQ_Service_SACM_S480【功能說(shuō)明】用作SACM_S48

49、0語(yǔ)音背景程序的中斷服務(wù)子程序.通過(guò)前臺(tái)子程序(自動(dòng)方式的SACM_S480_ServiceLoop及手動(dòng)方式的SACM_S480_Decode)對(duì)語(yǔ)音資料進(jìn)行解碼,然后將其送入DAC通道播放.【參數(shù)】無(wú).【返回值】無(wú).【備注】SACM_S480語(yǔ)音背景子程序只有匯編指令形式,且應(yīng)將此子程序安置在TMA_FIQ中斷源上.7.3.4SACM_S240該壓縮算法的壓縮比較大80:1.5,價(jià)格低,適用于對(duì)保真度要求不高的場(chǎng)合,如玩具類產(chǎn)品的批量生產(chǎn),編碼率僅為2.4Kbps.其相關(guān)API函數(shù)如下所示:intSACM_S240_Initial(intInit_Index)/初始化voidSACM_S2

50、40_ServiceLoop(void)/獲取語(yǔ)音資料,填入譯碼隊(duì)列voidSACM_S240_Play(intSpeech_Index,intChannel,intRamp_Set)第7章凌陽(yáng)音頻壓縮算法280/播放voidSACM_S240_Stop(void)/停止播放voidSACM_S240_Pause(void)/暫停播放voidSACM_S240_Resume(void)/暫停后恢復(fù)voidSACM_S240_Volume(Volume_Index)/音量控制unsignedintSACM_S240_Status(void)/獲取模塊狀態(tài)CallF_FIQ_Service_SAC

51、M_S240/中斷服務(wù)函數(shù)下面具體介紹一下各個(gè)函數(shù):1)【API格式】C:intSACM_S240_Initial(intInit_Index)ASM:R1=Init_IndexCallF_SACM_S240_Initial【功能說(shuō)明】SACM_S240語(yǔ)音播放之前的初始化.【參數(shù)】Init_Index=0表示手動(dòng)方式;Init_Index=1則表示自動(dòng)方式.【返回值】0:代表語(yǔ)音模塊初始化失敗1:代表初始化成功.【備注】函數(shù)用于S240語(yǔ)音譯碼的初始化以及相關(guān)設(shè)備的初始化.2)【API格式】C:voidSACM_S240_ServiceLoop(void)ASM:CallF_SACM_S240_ServiceLoop【功能說(shuō)明】從資源中獲取SACM_S240語(yǔ)音資料,并將其填入解碼隊(duì)列中.【參數(shù)】無(wú).【返回值】無(wú).3)【API格式】C:intSACM_S240_Play(intSpeech_Index,intChannel,intRamp_Set);ASM:R1=Speech_IndexR2=ChannelR3=Ramp_SetCallSACM_S240_Play【功能說(shuō)明】播放資源中SACM

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論