新四季網

音頻解碼的語音幀計算方法

2023-05-31 17:51:21

專利名稱:音頻解碼的語音幀計算方法
技術領域:
本發明涉及一種音頻解碼的語音幀計算方法,尤其涉及一種解碼時針對位數據改變讀取長度,以得到一不參考填充位而還能求出真正的語音幀長度的方法。
背景技術:
網絡無遠弗屆的特性,使我們可以從中得到各樣的信息、數據分享,但受限於頻寬,較大的影音文件無法順暢地流通,故有MP3(MPEG Layer 3)壓縮技術的發展,可將聲音數據壓縮比到達12∶1的低失真數據壓縮方法,在人對音頻的靈敏度範圍內,MP3格式以一大壓縮比的技術使在不失音質的狀況下達到便利網絡傳輸的文件大小,而消費者在聆聽MP3文件的音樂時,則須藉助於MP3解碼器(即解壓縮),即如圖1現有技術MP3解碼裝置示意圖。
如圖1所示,一組由任一音源(如audio CD,WAV等)轉換的MP3碼11輸入一MP3解碼裝置10,經此MP3解碼裝置10解碼後輸出至揚聲端15,可為計算機系統或MP3解碼器的輸出端,借耳機或揚聲器(speaker)聆聽,其中MP3解碼裝置10中則大致包括有接收數據碼的輸入數據流緩衝器12,經一解碼器13進行解碼,再經輸出音頻緩衝器14將解碼後的音頻文件輸出。
上述的MP3解碼裝置10中,在解壓縮的流程中,必須先計算出MP3碼數據流(bit stream)中一個語音幀(frame)的長度,將數據先存在緩衝器(buffer)中再開始解壓縮,而計算語音幀長度時必須參考MP3文件頭(head information)中的填充位(padding bit)才可求得正確有數據流。壓縮端(compress)在進行壓縮步驟時,若執行非整數壓縮取樣頻率(如44.1k)時,則會設定填充位為1,若為整數壓縮取樣頻率時,則不需設定填充位(即為0)。故當此填充位錯誤時,會造成數據流的讀取錯誤,例如多讀或少讀一個字節(byte,8bits),即造成解碼時由於壓縮數據不正確造成解碼錯誤,連帶判斷語音幀長度(以字節為單位)的步驟也產生錯誤。
填充位讀取正確情形若填充位為1,表示語音幀長度非整數字節,則將語音幀內補足一個字節。
若填充位為0,表示語音幀長度為整數,則不須補足。
錯誤情形如下錯誤一若填充位應為0卻判斷成1,則會多取一個語音幀的文件頭,造成數據多一個字節,解壓縮時會產生錯誤,下一次尋找語音幀則會跳過一個語音幀。
錯誤二若填充位應為1卻判斷為0,則會少取一個字節的數據, 亦造成解壓縮的錯誤。
MP3壓縮方法是以語音幀為單位,是利用一個主要數據開始(main databegin)的指針來達到最佳化,請參閱現有技術圖2A的語音幀文件格式示意圖,圖標中為MP3編碼中的數據流部分示意圖,包括有第一語音幀21與第二語音幀22,第一語音幀21包括有借多個位(bit)來標示內容的第一文件頭23與音頻的第一主要數據25,還有未佔用的第一剩餘空間27,而第一文件頭23中還大致區分為第一同步字符(sync word)23a、與其它文件頭信息23b,以及第一數據流信息(side information)23c等;緊接第一剩餘空間27則為下一個語音幀,此第二語音幀22內也有類似於第一語音幀21的第二語音幀22,其中包括第二文件頭24,第二主要數據26與第二剩餘空間,第二文件頭24也包括第二同步字符24a、與其他文件頭信息24b,以及第二數據流信息24c等。
如上述語音幀21,22中,文件頭23,24中的內容存在有數據流信息23c,24c,其中主要數據開始(main data begin)會指到其它多個語音幀所剩餘的空間27,28,來儲存此次壓縮的文件,MP3壓縮即利用數據流中剩餘空間27,28來提高壓縮率,而文件頭23,24的數據流信息則存有指針指出各段音頻壓縮文件開始與結束的信息,所以解碼端只要參考文件頭中的指針便可知道正確壓縮文件的數據流(bit stream)中正確的地址,而解出正確的音頻。
而圖2B則表示現有技術語音幀內文件頭位,圖標為一數據流中文件頭部分,並僅以部分位指針來說明功能,以圖1A及第一語音幀21為例,其中至少包括同步字符23a與其它文件頭信息23b,同步字符23a包括有12個位,在MP3編三中以111111111111代表一個同步字符,其十六進位表示為FFF,為一個語音幀的開始。其它文件頭信息23b包括辨識位(ID flag)201、階層位(layer flag)202、糾錯位(error protection)203、位率(bit rate)204、取樣頻率(sampling frequency)205、填充位(padding bit)206、私用位(private bit)207、模式位(mode flag)208、模式擴充(mode expend)209、版權位(copyright)210、原版位(original copy)211與加強位(emphasis flag)212等。
現有技術中計算語音幀(frame)長度的方法是參考上述的取樣頻率205、位率204,即位傳輸速率,以及填充位206等指針,而語音幀長度則借其中指針所指的數據得到語音幀長度=位率×取樣頻率×每語音幀內取樣數(Length=bitrate*sampling frequency*samples/frame)(公式一)而填充位的設定可得知所屬語音幀是否為一字節的整數倍,因為如果取樣頻率為44.1k等非整數的頻率,公式一所得為非整數值,須借填充位的信息(0或1)來補足一個字節,在解碼時即多讀一字節或多判斷同步字符碼。但如果其中填充位發生錯誤,則會導致實際語音幀的大小計算錯誤,倘若第一個語音幀計算錯誤,自然會影響到下一個語音幀的同步字符串(sync word)以及文件頭(header)產生解碼錯誤。
本發明為避免填充位的讀取錯誤而造成語音幀文件頭讀取錯誤,致使解壓縮錯誤的因素,提出一不參考這個填充位而還能求出的語音幀長度的方法。

發明內容
本發明為一種音頻解碼的語音幀計算方法,為避免音頻碼中文件頭的填充位讀取錯誤而造成語音幀長度計算錯誤,在解碼時針對位數據改變讀取長度,之後判讀其中的同步字符碼,或是單獨的字符,得到一不參考填充位而能求出真正的語音幀長度的方法。
本發明的主要目的為不參考語音幀中文件的一填充位的情況下,而進行對語音幀的解碼,語音幀長度計算方法步驟包括讀取前一語音幀內數據,並多讀一字節,並存於一器中;判讀完整的一同步字符碼FFF字符,或是僅單獨一F字符;判斷是否存有所述同步字符碼?若否,則藉所述F字符得到所述語音幀的文件頭地址;拋棄所述緩存器中多讀的所述字節;及解所述語音幀的文件頭信息。但所述語音幀內若有FFF字符,則得出所述語音幀的文件頭地址。
本發明的另一語音幀長度計算方法步驟包括讀取下一語音幀內數據;並多判斷字符碼,以判讀是否為完整的同步字符碼;若否則將多判斷的部分存入緩存器內,並重新多判斷字符碼的步驟;若為同步字符碼FFF,則得出所述語音幀的文件頭地址;拋棄所述緩存器中多讀的字符;及解所述語音幀的文件頭信息。
以下結合附圖和具體實施例對本發明進行詳細描述,但不作為對本發明的限定。


圖1是現有技術MP3解碼裝置示意圖;圖2A是現有技術語音幀文件格式示意圖;圖2B是現有技術語音幀內文件頭位示意圖;圖3A是語音幀文件格式示意圖;圖3B是語音幀文件頭格式示意圖;圖4是本發明字符讀取示意圖;圖5是本發明音頻解碼的語音幀計算第一方法步驟流程圖;圖6是本發明音頻解碼的語音幀計算第二方法步驟流程圖;具體實施方式
MP3壓縮方法是以語音幀(frame)為單位,如圖3A所示的語音幀文件格式示意圖,包括有多個語音幀30組成的數據流(bit stream),其中包含標示每個語音幀的最開始地址的同步字符(sync word)31a、壓縮文件中的信息指針所處的數據流信息(side information)31c,如辨識各主要數據(main data)或剩餘空間所處地址、紀錄取樣頻率(sampling frequency)與各樣模式或版本的旗標。緊接著文件頭31則為主要數據32,即為音頻壓縮文件的位置,還有未佔用的剩餘空間33,所以解碼端只要參考文件頭中的指針便可知道正確壓縮文件在數據流中正確的地址,而解出正確的音頻。
圖3B是為語音幀文件頭格式示意圖,文件頭31至少包括有同步字符31a與其它文件頭信息31b。同步字符31a為一12位的位碼,以111111111111(FFF)表示一個語音幀的開頭,故在對MP3文件解碼時則通過找FFF字符來判斷語音幀的正確地址。在其它文件頭信息31b中包括有位率(bit rate)34、取樣頻率(sampling frequency)35與填充位(padding bit)36等多個位信息,語音幀是以字節(byte)為單位形成,而其中填充位36是在壓縮MP3格式時即藉以紀錄是否該所處的語音幀為一非整數位組長度(請參看現有技術所述)。
本發明利用以下兩種方法來避免因為填充位錯誤造成計算語音幀長度錯誤以及解壓縮錯誤的情況。
方法一忽略填充位,也就是不管填充位為0或1,都在讀取語音幀時多讀一個字節(11111111或FF)。在MP3解碼時,多讀取一個字節即將此字節存放入一緩存器中,因為一個字節已讀至緩存器40中,若原本語音幀30長度為非整數字節的情況下,因為不足整數而需補足一字節,則不影響原本判斷同步位的方法,找到FFF的字符表示找到同步字符;若語音幀長度為整數位組長度情況下,因為字符FF已讀至緩存器40,如圖4所示,則只要找到一個F即為找到同步字符。找到同步字符也就定義了語音幀的文件頭,也就可以解文件頭信息,進而對MP3音頻解碼。
方法二忽略填充位,與方法一不同的處為不多讀一個字節,但於讀下一個語音幀的開頭時,多判斷一個字符碼,如果不是同步字符FFF,將此字節存放入緩存器中,再開始繼續下一步驟重新判斷字符的解碼動作。
請參閱圖5本發明音頻解碼的語音幀計算方法的方法一的步驟流程圖步驟501,語音幀在MP3數據流中為一基本單位,以循序方式紀錄的位碼,具中包括有文件頭、主要數據與剩餘空間,在音頻解碼開始時,為解出目前語音幀長度即讀取前一語音幀內數據,並多讀一個字節,再存於一緩存器中,藉以判斷目前語音幀的地址;步驟502,之後在數據流中判讀找尋一完整的同步字符碼FFF,或是僅單獨一個F字符;步驟503,判斷是否存有此FFF字符?步驟504,若否,表示此語音幀的語音幀長度為整數字節,因為一個字節FF已讀至緩存器中,故僅得一F字符;步驟505,則通過此F字符得到所述語音語音幀的文件頭地址,也就可以定義所述語音幀的長度;若有FFF字符,表示此語音幀的語音幀長度為非整數字節,而找到同步字符FFF,即該位置為該語音幀的文件頭,也藉此得到該語音幀的長度;步驟506,之後,因為已得到語音幀長度,則拋棄步驟501中緩存器內多讀的字節;步驟507,也就因得到語音幀長度,而可以解文件頭信息,進而對MP3音頻進行解碼。
結束該語音幀的解碼。
而圖6為本發明音頻解碼的另一語音幀計算方法的方法二的步驟流程圖步驟601,語音幀在MP3數據流中為一基本單位,以循序方式紀錄的位碼,其中包括有文件頭、主要數據與剩餘空間,在音頻解碼開始時,讀取下一語音幀內數據;步驟602,並多判讀一個字符碼,並存入一緩存器中;步驟603,判斷是否為同步字符碼?步驟604,若否,則除了將多判斷的字符碼存入該緩存器內,還重新執行步驟602的多判讀字符碼步驟;步驟605,若有FFF的同步字符碼,表示此語音幀的語音幀長度為非整數字節,而找到同步字符FFF,即所述位置為所述語音幀的文件頭,也藉此得到所述語音幀的長度;步驟606,之後,因為已得到語音幀長度,則拋棄步驟602中緩存器內多讀的字符碼;步驟607,也就因得到語音幀長度,而可以解文件信息,進而對MP3音頻進行解碼。
結束該語音幀的解碼。
綜上所述,本發明一種音頻解碼的語音幀計算方法,是在解碼時多取一個字節的數據,藉以得到一不參考填充位而能求出真正的語音幀長度的方法,以避免填充位錯誤時造成的誤判。
當然,本發明還可有其他多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬於本發明所附的權利要求的保護範圍。
權利要求
1.一種音頻解碼的語音幀計算方法,所述語音幀為MP3格式中的基本單位,其特徵在於,該方法是在不參考所述語音幀中文件頭的一填充位的情況下,而對所述語音幀進行解碼,步驟包括有讀取前一語音幀內數據,並多讀一字節,存於一緩存器中;判讀完整的一同步字符碼FFF字符,或是僅單獨一F字符;判斷是否存有所述同步字符碼;若否,則通過所述F字符得到所述語音幀的文件頭地址;拋棄所述緩存器中多讀的所述字節;及解所述語音幀的文件頭信息。
2.如權利要求1所述的音頻解碼的語音幀計算方法,其特徵在於,在判斷是否存有所述同步字符碼的步驟中,若有所述同步字符碼,則該位置為所述語音幀的文件頭,並得到所述語音幀的長度。
3.如權利要求1所述的音頻解碼的語音幀計算方法,其特徵在於,所述語音幀至少包括有所述文件頭與一主要數據。
4.如權利要求3所述的音頻解碼的語音幀計算方法,其特徵在於,所述文件頭至少包括有一填充位、一取樣頻率與一位率等位。
5.一種音頻解碼的語音幀計算方法,其特徵在於,所述方法步驟包括有讀取前一語音幀內數據,並多讀一字節;判讀完整的一同步字符碼FFF字符,或是僅單獨一F字符;得到所述語音幀的文件頭地址;及解所述語音幀的文件頭信息。
6.如權利要求5所述的音頻解碼的語音幀計算方法,其特徵在於,所述語音幀至少包括有所述文件頭與一主要數據。
7.一種音頻解碼的語音幀計算方法,所述語音幀為MP3格式中的基本單位,其特徵在於,該方法是在不參考所述語音幀中文件頭的一填充位的情況下,而對所述語音幀進行解碼,步驟包括有讀取下一語音幀內數據;多判讀一字符碼,並存入一緩存器中;判斷是否為一同步字符碼;若為所述同步字符碼,藉此得到所述語音幀的長度;拋棄所述緩存器中多讀的所述字符碼;得到所述語音幀的文件頭地址;解所述語音幀的文件頭信息。
8.如權利要求7所述的音頻解碼的語音幀計算方法,其特徵在於,在判斷是否為所述同步字符碼的步驟中,若非所述同步字符碼,則除了將多判讀的所述字符碼存入所述緩存器內,還進行重新判讀的步驟。
9.如權利要求7所述的音頻解碼的語音幀計算方法,其中所述語音幀至少包括有所述文件頭與一主要數據。
10.如權利要求9所述的音頻解碼的語音幀計算方法,其中所述文件頭至少包括有一填充位、一取樣頻率、與一位率等位。
全文摘要
本發明涉及一種音頻解碼的語音幀計算方法,是為避免音頻碼中文件頭(head information)的填充位(padding bit)讀取錯誤而造成語音幀(frame)長度計算錯誤,而致使解碼錯誤,因此本發明在解碼時針對位數據改變讀取長度,之後判讀其中的同步字符(sync word)碼,或是單獨的字符,因而得到所述語音幀的文件頭地址及解所述語音幀的文件頭信息,藉此提出一不參考填充位而能求出真正的語音幀長度的方法。
文檔編號G10L19/14GK1702737SQ20041004992
公開日2005年11月30日 申請日期2004年6月18日 優先權日2004年5月28日
發明者林士生 申請人:揚智科技股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀