WebRTC語音引擎中NetEQ技術(shù)研究_第1頁
WebRTC語音引擎中NetEQ技術(shù)研究_第2頁
WebRTC語音引擎中NetEQ技術(shù)研究_第3頁
WebRTC語音引擎中NetEQ技術(shù)研究_第4頁
WebRTC語音引擎中NetEQ技術(shù)研究_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、webrtc語音引擎中neteq技術(shù)研究 代號 10701 學(xué)號 1075490151分 類 號 tn919.8 密級 公開u d c 編號題 ( 中 、 英 文 ) 目 webrtc 語音 引擎中 neteq 技術(shù) 的研究 research on neteq technologyin webrtc voice engine作 者 姓 名 吳江銳 學(xué)校 指 導(dǎo) 教 師 姓 名 職 稱 張崗山 副教 授 電子與通 信工程 王靜 高工 工 程 領(lǐng) 域 企 業(yè) 指 導(dǎo) 教 師 姓 名 職 稱 應(yīng)用基礎(chǔ) 技術(shù) 2013.3 論文 類型 提 交 論 文 日 期 西安電 子科技大學(xué) 學(xué)位論 文獨(dú)創(chuàng)性聲明

2、秉承學(xué)校嚴(yán)謹(jǐn)?shù)膶W(xué)風(fēng)和優(yōu)良的科學(xué)道德, 本人聲明所呈交的論文是我個(gè)人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。 盡我所知, 除了文中 特別加以標(biāo)注和致謝中所羅列的內(nèi)容以外, 論文中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果; 也不包含為獲得西安電子科技大學(xué)或其它教育機(jī)構(gòu)的學(xué)位或證書而使用過的材料。 與我一同工作的同志對本研究所做的任何貢獻(xiàn)均已在論文中做了明確的說明并表示了謝意。 申請學(xué)位論文與資料若有不實(shí)之處,本人承擔(dān)一切 法律責(zé)任。本人簽名: 日期:西安電 子科技大學(xué) 關(guān)于論 文使用授權(quán)的說明本人完全了解西安電子科技大學(xué)有關(guān)保留和使用學(xué)位論文的規(guī)定, 即: 研究生在校攻讀學(xué)位期間論文工作的知識產(chǎn)

3、權(quán)單位屬西安電子科技大學(xué)。 學(xué)校有權(quán)保留送交論文的復(fù)印件, 允許查閱和借閱論文; 學(xué)??梢怨颊撐牡娜炕虿糠謨?nèi)容, 可以允許采用影印、 縮印或其它復(fù)制手段保存論文。 同時(shí)本人保證, 畢業(yè)后結(jié)合學(xué)位論文研究課題再撰寫的文章一律署名單位為西安電子科技大學(xué)。(保密的論文在解密后遵守此規(guī)定) 本學(xué)位論文屬于保密,在年解密后適用本授權(quán)書。本人簽名: 導(dǎo)師簽名:日 期 : 日 期: 摘要 隨著計(jì)算機(jī)網(wǎng)絡(luò)的快速發(fā)展,voip 電話業(yè)務(wù)也 得到廣泛應(yīng)用。 這種基于 ip 網(wǎng)絡(luò) 的 語 音 通 話 技 術(shù) 提 供 了 方 便 廉 價(jià) 的 交 流 途 徑 , 給 通 信 行 業(yè) 帶 來 了 翻 天 覆 地 的

4、變化。但隨之而來出現(xiàn)的 話音質(zhì)量問題的解決,也迫在眉睫。 webrtc 語 音 引擎 是目 前 最 先 進(jìn) 的 語 音 引擎 之一 ,其 中包含 了 實(shí)現(xiàn)語 音 信 號處理的 neteq 模塊, 此模塊 很好地解決了 voip 電話業(yè)務(wù)出現(xiàn)的延遲、 抖動(dòng) 和丟包問題。但由于 neteq 是專利技術(shù),沒有開放相應(yīng)的開發(fā)文檔,因此需要對 neteq進(jìn)行詳細(xì)分析研究 ,以便能夠更好地應(yīng)用于 voip 業(yè)務(wù)中。 本文研究的核心內(nèi)容是 neteq 集成 的自適應(yīng)抖動(dòng)消除算法 和語音包丟失隱藏算法 。論文 首先 對 neteq 的體系結(jié)構(gòu)及處理 流程做了概括性的 分析 ,并重點(diǎn)對neteq 的控制模塊 -

5、mcu 的控制機(jī)制 , 以及信號處理模塊-dsp 對語音數(shù)據(jù)的處理方法做了詳細(xì) 的研究和性能分析。分析結(jié)果 表明 neteq 在抖動(dòng)消除和 丟包隱藏方面的優(yōu)勢。 最后,本文基于語音質(zhì)量角度對 neteq 做了部分優(yōu)化,開發(fā)了語音質(zhì)量評估模塊。 論文基于 e-model 語音質(zhì)量預(yù)測模型及 itu 的單端非侵入型評 估算法 p.563算法進(jìn)行了語音質(zhì)量評估模塊的 設(shè)計(jì)和 開發(fā), 并用 uml 的時(shí)序圖描 述了模塊的開發(fā)流程及方法。 該模塊的評估結(jié)果基本符合主觀評價(jià)。關(guān) 鍵詞 :voip neteq 抖動(dòng)消 除 丟包隱 藏 語音質(zhì) 量評 估 abstract with the rapid deve

6、lopment of the computer network, voip telephone service has already been widely used. this voice communication technology which based on ip network provides a kind of convenient and cheap voice calls, and brings great changes to communication industry. but, the requirement of voice quality which app

7、ears subsequently in voip , is urgentwebrtc is one of the most advanced voice engine technology, and contains the neteq module, which provides complicated speech signal processing. the neteq module provides a good solution to those problems in voip system, such as delay, jitter and packet loss, so w

8、idely used. but the neteq is a patent technology, and there is no public document to introduce or describe its detailed algorithm. thus, a research and analysis of neteq is necessary for better application of it in voip industrythe neteq algorithm integrated the adaptive jitter elimination algorithm

9、 and voice packet loss concealment algorithm, which is the core contents of this paper. firstly, the system structure and processing procedure of neteq have been analyzed briefly in this paperthen, the emphasis is putted on the control mechanism of neteq s control modulemcu and the speech data proce

10、ssing method of processing moduledsp. the analysis results showed that the neteq indeed has an advantage in jitter elimination and packet lost concealmentfinally, a speech quality evaluation module, which based on the speech quality of neteq, is developed in this paper. the evaluation module is base

11、d on voice quality prediction model e-model and single-end non-intrusive speech quality measurementp563, and an uml sequence diagram to describe development processes and methods of the speech quality evaluation module is also provide in this paper. the evaluation results are mainly in agreement wit

12、h the subjective feeling keywords: voipneteqjitter elimination packet lost concealment speech quality 目錄 第一章 緒論1 1.1 研究背景1 1.2 研究現(xiàn)狀2 1.3 研究內(nèi)容3 1.4 論文的章節(jié)安排5 第二章 neteq 工作原 理和框架 7 2.1 webrtc 語音引擎 概述7 2.2 neteq 模塊概述 8 2.2.1 抖動(dòng)定義及消除原理. 8 2.2.2 丟包隱藏原理10 2.2.3 neteq 模塊簡介12 2.3 neteq 模塊詳細(xì)分 析13 2.3.1 neteq 的

13、命令機(jī) 制. 13 2.3.2 neteq 的播放機(jī) 制. 15 2.3.3 neteq 算法流程16 2.4 小結(jié)18 第三章 mcu 模塊的研究與分析19 3.1 網(wǎng)絡(luò)延遲統(tǒng)計(jì)算法及性能分析 19 3.2 抖動(dòng)延遲統(tǒng)計(jì)算法及性能分析 23 3.3 mcu 的控制機(jī)制24 3.4 小結(jié)28 第四章 dsp 模塊的研究與分析 29 4.1 基音周期的檢測算法. 29 4.1.1 常用的基音周期檢測算法 29 4.1.2 基于自相關(guān)函數(shù)法的基音周期檢測30 4.2 wsola 算法原理. 31 4.3 dsp 處理 32 4.3.1 丟包處理. 32 4.3.2 融合處理. 35 4.3.3 正

14、常處理. 37 4.3.4 加速處理. 38 4.3.5 減速處理. 40 4.4 dsp 的后續(xù)處理 41 4.5 小結(jié)42 第五章 基于語音質(zhì)量評估的 neteq 改進(jìn). 43 5.1 基于網(wǎng)絡(luò)的語音質(zhì)量評估算法 43 5.2 單端非侵入的語音質(zhì)量評估算法45 5.3 基于語音質(zhì)量評估的 neteq 48 第六章 結(jié)束語53 致謝55 參考文獻(xiàn) 57第一章 緒論 1 第一章 緒論 1.1 研究 背景 voip 是 voice over internet protocol 的縮寫,一般稱為 ip 電話或 ip 網(wǎng) 絡(luò)電話。這種技術(shù)是將傳統(tǒng)電話的聲音信號轉(zhuǎn)換成 ip 數(shù)據(jù)包的格式,并利用 in

15、ternet 傳送至目的地后,再將 ip 數(shù)據(jù)包還原成傳統(tǒng)電話的聲音信號并播放,從而實(shí)現(xiàn)話音通信服務(wù)。ip 電話的基本 功能是提供基于互聯(lián)網(wǎng)的、 費(fèi)用低廉的語音、 傳真、 數(shù)據(jù)、消息和視頻等服務(wù)。此 外,ip 電 話的出現(xiàn)極 大地提高了網(wǎng)絡(luò)帶寬的 利用率,并大1大減少了通信費(fèi)用,其廣泛應(yīng)用也促進(jìn)了寬帶多媒體應(yīng)用的發(fā)展 。voip 的發(fā)展大致經(jīng)歷了 以下幾個(gè)階段: 1995 年1996 年, 技術(shù)突破期。 語音質(zhì)量基本沒有保證, 技術(shù)還不成熟。 1996 年1999 年,應(yīng)用啟蒙期。電信公司開始使用連接 internet 與 pstn網(wǎng)的網(wǎng)關(guān)設(shè)備,voip 進(jìn) 入快速發(fā)展期。 2000 年200

16、2 年, 市場啟蒙期。voip 技術(shù)基 本成熟, 與 pstn 有機(jī) 結(jié)合,具有較好的語音質(zhì)量。許多電信公司開始提供 voip 業(yè)務(wù)。 2002 年至今, 市場發(fā)展期。2006 年, 全球 voip 的業(yè)務(wù)將第一次超過電路交換電話業(yè)務(wù)。 ip 電話 與傳統(tǒng)電話相 比具有不同的技術(shù)特點(diǎn) 。傳統(tǒng)電話(固定電話 或手機(jī))使 用 電 路 交 換 技 術(shù) , 在 呼 叫 建 立 時(shí) 預(yù) 先 分 配 一 條 物 理 或 邏 輯 線 路 專 門 用 于 傳 輸 話音 , 因 此 需 要 獨(dú) 占 通 信 資 源 , 并 且 直 到 呼 叫 結(jié) 束 才 能 釋 放 所 分 配 的 線 路 , 造 成 線路 利

17、用 低 (75% 時(shí) 間 線 路 空 閑 ) 。 雖 然 傳 統(tǒng) 電 話 能 夠 提 供 有 保 證 的 話 音 服 務(wù) 質(zhì) 量(qos ,quality of service ) ,但收費(fèi)昂貴,功 能單一,且難于增加新的業(yè)務(wù)。 ip 電話使用分組交換技 術(shù),并且將模擬聲音信號經(jīng)數(shù)字化、壓縮編碼后以 ip分組 (rtp 數(shù)據(jù)包) 的 形式通過 internet 進(jìn)行 傳輸。 與電路交換相比,ip 電話無需預(yù)先建立專門的電路, 因此用戶之間可以共享 internet 網(wǎng)絡(luò)的帶寬 , 網(wǎng)絡(luò)資源利用率較高。此外,ip 電 話可以提供免費(fèi)的話音 服務(wù),并支持綜合業(yè)務(wù) (話音、數(shù)據(jù)和視頻) ,易于擴(kuò)展新

18、的業(yè)務(wù)。但從 ip 協(xié)議的本質(zhì)上講,ip 電話不能保證話音服務(wù)質(zhì)量(時(shí)延、抖動(dòng)和丟 包) 。 ip 電話的典型架構(gòu)如下 圖所示: 2 webrtc 語音引 擎 中 neteq 技術(shù) 的研 究 原始話音數(shù)據(jù)原始 話音數(shù) 據(jù)話音 編碼 話音解碼rtp/rtcprtp/rtcpudp/ipudp/ip圖 1.1 ip 電話 基礎(chǔ) 圖 1.1 左邊為 ip 電話的 發(fā)送端, 主要執(zhí)行語音信號的編碼、 打包和傳輸工作。右邊為 ip 電話的接收 端,主要進(jìn)行語音信號的還原工作,其中本文涉及到的語音引擎處在語音解碼的前后,是保證語音質(zhì)量的關(guān)鍵模塊。 voip 技術(shù)的最大優(yōu)勢 在于廣泛地采用 internet

19、 和全球 ip 互連的環(huán)境 ,提供比傳統(tǒng)電話業(yè)務(wù)更廣泛、 更優(yōu)質(zhì)的服務(wù)。 采用 voip 技術(shù)可以在 ip 網(wǎng)絡(luò) 上廉價(jià)地傳送語音、 數(shù)據(jù)、 視頻和傳真等業(yè)務(wù), 如電視會議、 傳真郵箱、 虛擬語音、 統(tǒng)一消息、電子商務(wù)、 虛擬電話、internet 呼叫管理、internet 呼叫中心、 查號業(yè) 務(wù)、 傳真存儲2轉(zhuǎn)發(fā)和各種信息的存儲轉(zhuǎn)發(fā)等 。 因此, ip 電話 成為一種新興的得到廣泛運(yùn)用的網(wǎng)絡(luò)業(yè)務(wù)。 但是,由于傳統(tǒng)的 ip 網(wǎng)絡(luò)主要用于傳輸數(shù)據(jù)業(yè)務(wù),采用一種盡力而為的無連3接的傳輸技術(shù) , 因此沒有服務(wù)質(zhì)量 (qos ) 保證, 存在包亂序到達(dá)、 端到端時(shí)延、分組丟失和時(shí)延抖動(dòng)等情況。 對于

20、分組丟失, 數(shù)據(jù)業(yè)務(wù)可采用重發(fā)來彌補(bǔ)。 但 voip4是實(shí)時(shí)業(yè)務(wù), 對時(shí)延、 抖動(dòng)等有著嚴(yán)格的要求, 所 以必須要有一定的 qos 保證 。時(shí)延抖動(dòng)是 voip 業(yè)務(wù) 中最重要的一項(xiàng) qos 參數(shù),直接影響著語音通信質(zhì)量,直接 關(guān) 系 到 話 音 在 接 收 端 能 否 真 實(shí) 再 現(xiàn) 。 因 此 , 需 要 采 取 一 定 算 法 和 措 施 來 消 除 時(shí)延抖動(dòng)所造成的影響,從而保證一定的話音業(yè)務(wù)質(zhì)量。 在 ip 電話系統(tǒng)中, 一 般通過語音引擎 (voice engine ) 中的抖動(dòng)緩沖 區(qū) (jitter 5buffer )來消除網(wǎng) 絡(luò)傳 輸所帶來的不良 影響 ,而抖動(dòng)緩沖區(qū) 技術(shù)的

21、 優(yōu)劣會極大地影響使用者的主觀感受。 因此, 抖動(dòng)緩沖區(qū)技 術(shù)是 voip 中的關(guān)鍵技 術(shù)之一, 是影響話音質(zhì)量的關(guān)鍵因素。 1.2 研究 現(xiàn)狀 抖 動(dòng) 緩 沖 區(qū) 主 要 用 于 有 效 地 吸 收 網(wǎng) 絡(luò) 抖 動(dòng) , 降 低 丟 包 率 , 相 對 地 減 小 延 遲,其性能直接影響著 voip 的語音質(zhì)量。 另 一 方 面 , 如 果 抖 動(dòng) 緩 沖 區(qū) 設(shè) 置 過 大 , 則 語 音 通 話 延 時(shí) 會 隨 之 增 加 ; 如 果抖第一章 緒論 3 動(dòng) 緩 沖 區(qū) 設(shè) 置 過 小 , 則 無 法 有 效 吸 收 延 時(shí) 抖 動(dòng) , 導(dǎo) 致 語 音 數(shù) 據(jù) 在 接 收 端 的 丟 包 率

22、上升。因此,抖動(dòng)緩沖區(qū)大小的設(shè)置必須對延時(shí)和丟包率進(jìn)行綜合平衡考慮。 為 了 更 合 理 地 設(shè) 置 抖 動(dòng) 消 除 算 法 中 抖 動(dòng) 緩 沖 區(qū) 的 大 小 , 更 好 地 適 應(yīng) 網(wǎng) 絡(luò) 環(huán)境的 變 化 , 國 內(nèi) 外 研 究 人 員 提 出 了 很 多 種 自 適 應(yīng) 抖 動(dòng) 緩 沖 算 法 。 其 中 最 普 遍 的 做 法是 : 采 用 歷 史 時(shí) 段 中 傳 輸 延 時(shí) 統(tǒng) 計(jì) 的 較 大 值 , 根 據(jù) 可 接 受 的 丟 包 率 上 限,決定在抖 動(dòng) 緩 沖 區(qū) 可 以 丟 棄 的 數(shù) 據(jù) 包 量 , 選 擇 某 一 較 大 歷 史 延 遲 作 為 下 段 時(shí) 間 內(nèi) 的 抖

23、 動(dòng)6緩沖區(qū)大小 。 這種方 法操作簡單便捷, 但自適應(yīng)能力較差, 不能很好地適應(yīng)網(wǎng) 絡(luò)延遲的改變。 由于語音質(zhì)量是 voip 業(yè)務(wù)的關(guān) 鍵, 因此基于語音質(zhì)量的自適應(yīng)抖動(dòng)7緩沖算法成為當(dāng)前研究的熱點(diǎn) 。 日前, 在建立 語音質(zhì)量預(yù)測模型的基礎(chǔ)上提出的8自適應(yīng)抖動(dòng)緩沖算法,均采用 itu 的 e-model 方法預(yù)測語音質(zhì)量 , 以語音質(zhì)量9來平衡延時(shí)和丟包率, 但它僅僅考慮了 ip 網(wǎng) 絡(luò)的隨機(jī)丟包模式 , 這與 voip 的突發(fā)丟包模式不相符。 目前,全球著名的語音引擎 提供商 global ip sound (gips )公司以其優(yōu)異的語音引擎技術(shù), 擁有了較高的市場占有率。gips 語

24、音引擎的核心技 術(shù)之一就是包含丟包隱藏算法的高級自適應(yīng)抖動(dòng)緩沖器技術(shù),稱作 neteq 。2010 年谷歌公司 以6820 萬美元收購 global ip solutions 公司而獲 得的這項(xiàng)技術(shù)。 隨后, 谷歌公司于 2011年將 gips 語音引擎以 開源項(xiàng)目 webrtc 的形 式對外公開發(fā)布。 webrtc 是一項(xiàng)在瀏覽器內(nèi)部進(jìn)行實(shí)時(shí)視頻和音頻通信的技術(shù),其目的是通過簡單的 javascript 編程就可以達(dá)到實(shí)時(shí)通信(rtc ,real-time communication )能力。 neteq 算 法 中集 成了自 適 應(yīng)抖 動(dòng)控 制算 法以及 語 音包 丟失 隱藏 算法。 這

25、項(xiàng) 技術(shù) 使 其 能 夠 快 速 且 高 解 析 度 地 適 應(yīng) 不 斷 變 化 的 網(wǎng) 絡(luò) 環(huán) 境 , 確 保 音 質(zhì) 優(yōu) 美 且 緩 沖 延遲最小 。neteq 算法 的創(chuàng)新 之處 在于 它不 僅 在語音 包緩 沖器 內(nèi), 而 且還與 解碼器進(jìn)行集成。 由于 neteq 是 gips 開發(fā)的專利技術(shù),沒有任何公開的技術(shù)資料來介紹其基本原理和算法流程,因此對其進(jìn)行研究并將其 文檔化,有利于 neteq 算法的廣泛運(yùn) 用 , 縮 短 工 程 被 引 用 的 開 發(fā) 時(shí) 間 , 且 有 助 于 快 速 找 出 項(xiàng) 目 中 出 現(xiàn) 問 題 的 原 因 及增大項(xiàng)目的優(yōu)化空 間。 此外, 對 nete

26、q 模塊的 性能分析 和 仿真實(shí)驗(yàn)有助于對 neteq 算法的 進(jìn)一步優(yōu)化和完善。 1.3 研究 內(nèi)容 neteq 模塊是 webrtc 語音引擎的核心模塊 , 其功能框圖如下圖所示 (圖 1.2): 4 webrtc 語音引 擎 中 neteq 技術(shù) 的研 究圖 1.2 neteq 模 塊框 圖 由 上 圖 可 以 看 出 ,neteq 模 塊 基 本 上 分 為 自 適 應(yīng) 緩 沖 器 (adaptive packet buffer ) 、 語音解碼器 (speech decoder ) 、 抖 動(dòng)控制和丟包隱藏模塊 (jitter control and error concealmen

27、t ) 及播放(play out )四 大部分。其 中,抖動(dòng)控制和丟包隱藏模塊是 neteq 的核心 算法, 既控制著自適應(yīng)緩沖器, 又與解碼器進(jìn)行緊密的交互,并且將最終的計(jì)算結(jié)果交給聲卡去播放。 另 外 , 抖 動(dòng) 控 制 和 丟 包 隱 藏 模 塊 ( 如 上 圖 所 示 ) 由 三 大 主 要 操 作 所 組 成 ,即expansion 、normal 和 accelerate 。每個(gè)操作 的具體含義如下: expansion :擴(kuò)展操作, 即對語音時(shí)長的拉伸,其中包括 expand 及preemptive_expand 兩種 模式。前者為 neteq 的丟包隱藏操作,其作用是等待延遲包

28、并補(bǔ)償丟包,由于補(bǔ)償丟包是實(shí)現(xiàn)數(shù)據(jù)從無到有,因此使用expand(擴(kuò)展),表示語音數(shù)據(jù)的擴(kuò)展;后者意為優(yōu)先擴(kuò)展,即在原有數(shù)據(jù)的基礎(chǔ)上拉伸語音時(shí)長,因此可以實(shí)現(xiàn)減速播放功能。 normal :正常播放操作 ,即在網(wǎng)絡(luò)狀況正常且相對無抖動(dòng)時(shí)的操作。 accelerate :加速操作 ,即對語音信號處理以實(shí)現(xiàn)快速播放。 當(dāng) 語 音引 擎運(yùn) 行時(shí) ,neteq 會 根據(jù) 網(wǎng)絡(luò) 的狀 況、 緩 沖區(qū) 中未 處理 的數(shù)據(jù) 包 長度,以及等待播放的語音長度等參數(shù)智能地選擇合適的操作。 neteq 是 目 前最 為完善 的 抖動(dòng) 消除 技術(shù) 。與固 定 抖動(dòng) 緩沖 器和 傳統(tǒng)的 自 適 應(yīng)抖動(dòng)緩沖器進(jìn)行比較(

29、如圖 1.3 所示) ,neteq 能夠快速且高解析度 地 適應(yīng)不斷優(yōu)化的網(wǎng)絡(luò)環(huán)境,因此保證了語音引擎較小的延遲和很好的語音質(zhì)量。第一章 緒論 5圖1.3 neteq 性 能分 析 由 上 圖可 以看 出,neteq 能 夠?qū)?時(shí)地 響應(yīng) 當(dāng)前 的 抖動(dòng) 延遲 。其 中,藍(lán) 色 線 所示的抖動(dòng)因子由網(wǎng)絡(luò)延遲所示,而 neteq 做出對抖動(dòng)的響應(yīng)(由黃線所示)則是抖動(dòng)消除算法中研究的核心內(nèi)容。 綜上所述,本文的研究內(nèi)容主要是針對 neteq 中的抖動(dòng)消除技術(shù)及丟包隱藏技 術(shù) 進(jìn) 行 深 入 的 分 析 和 研 究 , 并 通 過 導(dǎo) 入 語 音 質(zhì) 量 評 估 技 術(shù) 作 為 語 音 引 擎 優(yōu)

30、 化 的先決條件,來進(jìn)一步提高語音引擎的主觀質(zhì)量。 本文的研究課題來源于普羅通信 (西安) 有限公 司 voip 網(wǎng)絡(luò)電話服務(wù) ?freepp語音引 擎的 開發(fā) 和研 究 。neteq 是 整個(gè) 語音 引擎的 核心 ,是 保證 語 音質(zhì)量 的關(guān)鍵技術(shù)。本課題研究目的是充分掌握 neteq 的相關(guān)算法,為語音引擎的優(yōu)化打下堅(jiān)實(shí)的基礎(chǔ)。 本文采用 webrtc 語音 引擎實(shí)現(xiàn) ip 網(wǎng)絡(luò)上的 語音通話 功能 , 主要研究工作以vs2008 作為開發(fā)工具, 在對 neteq 模塊進(jìn)行 單元測試和系統(tǒng)測試的基礎(chǔ)上, 實(shí)現(xiàn)語音質(zhì)量評估的模塊化編程。 1.4 論文 的章節(jié) 安排 本文的章節(jié)安排如下: 第一

31、章是緒論,介紹了 voip 技術(shù)的發(fā)展及 應(yīng)用,對 webrtc 和 neteq 做了簡單引入,并對 本文的工作做了簡要說明。 第二章是 neteq 系統(tǒng) 框架, 分析了 neteq 的系統(tǒng)框架、 算法流程, 并對相關(guān)算法原理做了詳細(xì)介紹。 第三章是 mcu 模塊的研究和分析, 重點(diǎn)分析 了 neteq 的 mcu (微 控制單元)的算法及流程,具體描述了 neteq 的控制機(jī) 制。 6 webrtc 語音引 擎 中 neteq 技術(shù) 的研 究 第四章是 dsp 模塊的研究和分析, 重點(diǎn)分析了 neteq 的 dsp (數(shù)字信號處理)的算法及流程,具體描述了 neteq 處理語音 信號的方法。

32、 第五章是基于語音質(zhì)量評估的 neteq 改進(jìn),詳細(xì)介紹了兩大類型的語音質(zhì)量評估算法的原理,并給出使用于 voip 的語音 質(zhì)量評估的解決方案。 第六章是結(jié)束語,對所實(shí)現(xiàn)的 neteq 模塊進(jìn)行簡單的性能分析,并指出其中的不足和進(jìn)一步研究與改進(jìn)的方向。第二章 neteq 工 作原 理和 框架 7 第二章 neteq 工 作原理和 框架2.1 webrtc 語音 引 擎概述 webrtc 由 語 音引 擎、 視 頻 引 擎 及 網(wǎng) 絡(luò) 傳輸三 大 模 塊 組 成 , 其 中語音 引 擎 是webrtc 極具價(jià)值的技 術(shù)之一。webrtc 的系 統(tǒng)架構(gòu)如下圖所示: 網(wǎng) 絡(luò)網(wǎng)絡(luò)apiwebrtcwe

33、brtc c+ api ( 端到端 連接 )會話 管 理/ 信 號 摘要 ( 會 話 )瀏覽視 頻 引擎聲音 引 擎?zhèn)鬏斊鱥sac/ilbc 編解碼器 vp8 編解碼 器 srtp聲 音 處 理 的neteq 視 頻抖動(dòng)緩 沖區(qū) multipleding回聲消除/ 噪聲抑制 圖像算 法p2p stun+turn+ice音頻捕獲/ 渲染 視頻捕 捉 網(wǎng)絡(luò) 輸入/ 輸 出供 網(wǎng)絡(luò)開 供瀏覽器開 可被瀏覽器發(fā)的api 發(fā)的api 開發(fā)商重寫圖 2.1 webrtc 架 構(gòu)圖 如上圖所示,webrtc 語音引擎(voice engine )由一系列音頻 和網(wǎng)絡(luò)處理 模塊所組成 , 包 括 了 從 音頻

34、 采 集 到 網(wǎng) 絡(luò) 傳 輸 等 處 理 流 程 的 完 整 解 決 方 案 ,其中主要包括 isac (internet speech audio codec )/ilbc (internet low bitrate codec ) 編 解碼器、 回聲消除 ( acoustic echo canceler aec ) / 噪聲抑制 ( noise reduction nr )以及 neteq 等三大部 分。webrtc 語音引擎 的工作流程如下圖所示:web 應(yīng)用程 序web 應(yīng)用程 序web 應(yīng)用程 序 8 webrtc 語音引 擎 中 neteq 技術(shù) 的研 究 adc aec ns a

35、gc encoder聲音采集 聲學(xué)回聲抵消 噪聲抑制 自動(dòng)增益控制 壓縮編碼聲音信號處理(遠(yuǎn)端)internet數(shù)據(jù)壓縮和解壓縮dac decoder plc jbagc ns丟包補(bǔ)償 抖動(dòng)消除聲音播放 壓縮解碼聲音設(shè)備驅(qū)動(dòng)圖 2.2 語音 引擎 工作 流程 圖 上 圖 中 , 語 音 引 擎 的 一 般 工 作 流 程 如 下 : 首 先 在 發(fā) 送 端 進(jìn) 行 聲 音 采 集 , 對采集 到 的 聲 音 信 號 進(jìn) 行 回 聲 消 除 、 噪 聲 抑 制 、 自 動(dòng) 增 益 控 制 等 前 處 理 , 然 后 進(jìn) 行 語音壓縮編碼, 并通過 internet 網(wǎng)絡(luò)傳輸?shù)浇邮?端; 語音數(shù)據(jù)

36、到達(dá)接收端后, 首先進(jìn)入 neteq 模塊進(jìn)行抖動(dòng)消除、丟包隱藏、解碼等操作,然后將處理過后的音頻數(shù)據(jù)送入聲卡設(shè)備中進(jìn)行播放。 本文研究的重點(diǎn)是 neteq 模塊,其中所涉及的處理過程包括抖動(dòng)消除、丟包補(bǔ)償和壓縮解碼(如圖 2.2 粗虛線所示) ,其作用是 使語音引擎能夠快速且高解析度地適 應(yīng)不 斷變 化的 網(wǎng) 絡(luò)環(huán)境 ,確 保音 質(zhì)優(yōu) 美 且緩沖 延遲 最小 。下 面 將對 neteq模塊進(jìn)行詳細(xì)分析和論述。 2.2 neteq 模塊概述 neteq 模 塊 主要 負(fù)責(zé)消 除 因網(wǎng) 絡(luò)傳 輸路 徑和擁 塞 情況 變化 所造 成的丟 包 和 時(shí)延抖動(dòng)問題。這里,首先簡要介紹一下抖動(dòng)消除原理及丟

37、包隱藏原理。 2.2.1 抖動(dòng)定義及消除原理抖動(dòng) (jitter ) 定義 1: 指由于各種延時(shí)的變化導(dǎo)致網(wǎng)絡(luò)中的數(shù)據(jù)分組到達(dá)速率10的變化 。 具 體 地說 ,可 將 抖 動(dòng) 定 義 為 數(shù) 據(jù) 流在 發(fā) 送 端 發(fā) 送 間 隔 與 接收 端 接 收間隔之差: jr s i 1,2, .n2-1 i i i其中,s 為發(fā)送第 i 第 i+1 個(gè)數(shù)據(jù)包間的發(fā)送間隔; r 為接收第 i 和第 i+1 個(gè)i i數(shù)據(jù)包間的到達(dá)間隔, j 即為數(shù)據(jù)包 i 的抖動(dòng)延遲。式(2-1)適用于可變碼率業(yè)i務(wù)的抖動(dòng)定義。 11抖動(dòng) (jitter ) 定義 2 : 接收端某個(gè)數(shù)據(jù)包到達(dá)間隔與平均數(shù)據(jù)包到達(dá)間隔

38、之差定義為該數(shù)據(jù)包的延時(shí) 抖動(dòng)。即:jt e t i 1,2, .n2-2ii第二章 neteq 工 作原 理和 框架 9 et其中,t 為第 i 個(gè)數(shù)據(jù)包到達(dá)間隔;? 為平均數(shù)據(jù)包到達(dá)間隔,當(dāng)數(shù)據(jù)流iet為固定碼率時(shí),? 等于或者接近于數(shù)據(jù)流的發(fā)送間隔。 因此, 式 (2-2) 適用于具有不同發(fā)送特征的業(yè)務(wù)。 12抖 動(dòng) 是 一 個(gè) 零 均 值 的 隨 機(jī) 序 列 , 是 由 排 隊(duì) ip 包 的 延 遲 時(shí) 間 差 構(gòu) 成 的 。當(dāng)j 0 時(shí),稱之為正抖動(dòng);當(dāng) j 0 時(shí),稱之為負(fù)抖動(dòng);當(dāng) j 0 時(shí),說明無抖動(dòng) 。i i i正抖動(dòng)對應(yīng)于數(shù)據(jù)包的堆積, 意味著數(shù)據(jù)包提前到達(dá), 雖然保證 了

39、語音的完整性,但 是 容 易 造 成 接 收 端 緩 存 溢 出 并 且 會 增 大 端 到 端 延 遲 。 負(fù) 抖 動(dòng) 則 意 味 著 數(shù) 據(jù) 包 經(jīng)過 網(wǎng) 絡(luò) 傳 輸 后 , 走 了 不 同 路 徑 而 且 一 段 時(shí) 間 內(nèi) 仍 未 到 達(dá) 接 收 端 , 說 明 數(shù) 據(jù) 包 可 能會 延 遲 到 達(dá) 或 者 丟 包 ; 由 于 超 時(shí) 和 緩 存 溢 出 均 可 導(dǎo) 致 包 丟 失 , 因 此 不 管 是 哪 種 抖動(dòng), 均增加了端到端的丟包概率。 因此, 對于 voip 網(wǎng)絡(luò)電話, 必須對 抖動(dòng)進(jìn)行有效的控制,以減少由此引起的丟包。 抖 動(dòng) 通 常 采 用 抖 動(dòng) 緩 沖 技 術(shù) 來

40、 消 除 , 即 在 接 收 方 建 立 一 個(gè) 緩 沖 區(qū) , 語 音 包到達(dá) 接 收 端 時(shí) 首 先 進(jìn) 人 緩 沖 區(qū) 暫 存 , 隨 后 系 統(tǒng) 再 以 穩(wěn) 定 平 滑 的 速 率 將 語 音 包 從 緩 沖13區(qū)提取出來,經(jīng)解壓后從聲卡播出 。 這種 緩沖 技 術(shù) 可 以 在 一 定 限 度內(nèi) 有 效 消除語音抖動(dòng),并提高 voip 的音質(zhì)。 網(wǎng) 絡(luò)延 遲/ms40b3020a c d10發(fā) 送 時(shí) 間/ms30 60 90120 150到 達(dá) 時(shí) 間/msa b c d播 放 時(shí) 間/msa b c d圖 2.3 抖動(dòng) 緩沖 區(qū)的 工作 原理示 意圖 14抖動(dòng)緩沖區(qū)的工作原理 如圖

41、 2.3 所示,其中:4 個(gè)語音數(shù)據(jù)包(a 、b 、c 、d )以 30ms 為間隔進(jìn)行發(fā)送,即發(fā)送時(shí)間分別為 30,60,90,120ms ,經(jīng)過網(wǎng)絡(luò)傳輸時(shí)分別產(chǎn)生了 10,30,10,10ms 的網(wǎng)絡(luò)時(shí)延, 導(dǎo)致到達(dá)接收端的時(shí)間分別為40,90,100,130ms 時(shí)刻, 此時(shí)變產(chǎn)生了 50、10、30 的不同間隔, 即為 抖動(dòng)。 因此,為了能夠獲得流暢的音質(zhì),就要求 a 、c 和 d 這 3 個(gè)語音包到 達(dá)接收端后,先在緩沖器中分別延遲 20ms 再播放。也就是說,抖動(dòng)消除的思想的理想狀態(tài)為:每 個(gè) 數(shù) 據(jù) 包 在 網(wǎng) 絡(luò) 傳 輸 中 的 延 遲 與 其 在 抖 動(dòng) 緩 沖 區(qū) 中 緩

42、沖 的 延 遲 之 和 應(yīng) 該 相 等 。因 此 一 般 的 抖 動(dòng) 消 除 思 想 是 將 抖 動(dòng) 緩 沖 區(qū) 的 大 小 設(shè) 為 目 前 測 到 的 最 大 網(wǎng) 絡(luò) 延 遲 大小 , 而 且 每 個(gè) 包 在 網(wǎng) 絡(luò) 中 的 延 遲 加 上 其 在 抖 動(dòng) 緩 沖 區(qū) 中 緩 沖 產(chǎn) 生 的 延 遲 之 和 應(yīng) 該10 webrtc 語音引 擎 中 neteq 技術(shù) 的研 究 等于抖動(dòng)緩沖區(qū)的大小。 抖 動(dòng) 緩 沖 控 制 算 法 包 括 靜 態(tài) 抖 動(dòng) 緩 沖 控 制 算 法 和 自 適 應(yīng) 抖 動(dòng) 緩 沖 控 制 算 法兩15種 。 靜態(tài)抖動(dòng)緩沖控制算法:緩沖區(qū)的大小在語音通話建立 后一

43、直到通話結(jié)束, 均為固定值, 對于 抖動(dòng)超出緩沖區(qū)大小的數(shù)據(jù) 包將會被丟棄。 該 算法模型簡單,易于實(shí)現(xiàn); 但網(wǎng)絡(luò)抖動(dòng)較大時(shí),丟包率高,而網(wǎng)絡(luò)延遲及抖動(dòng)小時(shí), 語音延遲較大, 不能很好地根據(jù)網(wǎng)絡(luò)狀況來動(dòng)態(tài)改變緩沖區(qū)的控制策略,而且初始狀態(tài)對 后面的語音質(zhì)量影響較大。 自適應(yīng)抖動(dòng)緩沖控制算法:緩沖區(qū)大小隨著實(shí)際網(wǎng)絡(luò)的抖動(dòng)情況而變化。接收端將當(dāng)前收到的數(shù)據(jù) 包的延遲與算法 中保存的延遲信息相比較, 得到當(dāng)前網(wǎng)絡(luò)的最大抖動(dòng), 從而選擇恰當(dāng)?shù)木彌_區(qū)大小。 該算法的優(yōu)點(diǎn)是: 網(wǎng)絡(luò)抖動(dòng)較大時(shí)丟包率相對較低, 而網(wǎng)絡(luò)延遲及抖動(dòng)小 時(shí), 語音延遲相對較2小; 缺點(diǎn)是: 算法多樣且相對復(fù)雜 。 考 慮 到 當(dāng)

44、前 網(wǎng) 絡(luò) 狀 況 的 多 樣 化 , 抖 動(dòng) 緩 沖 區(qū) 一 般 設(shè) 置 為 自 適 應(yīng) 的 。 自 適 應(yīng)抖動(dòng) 緩 沖 控 制 的 重 要 參 數(shù) 是 抖 動(dòng) 緩 存 容 量 和 從 抖 動(dòng) 緩 沖 區(qū) 取 出 數(shù) 據(jù) 包 的 條 件 , 二 者決定了 緩存 控制 對媒 體 流時(shí)間 結(jié)構(gòu) 的作 用。neteq 所 采用 的抖 動(dòng)消 除 技術(shù)屬 于自適應(yīng)抖動(dòng)緩沖算法,具體內(nèi)容將在第三章中詳細(xì)介紹。 2.2.2 丟包隱藏原理 丟包隱藏又稱為丟包補(bǔ)償, 即 packet loss concealment , 簡稱為 plc 。 應(yīng)用于voip 的丟包隱藏技術(shù) 可以分為兩類:基于發(fā)送端補(bǔ)償和基于接

45、收端補(bǔ)償?;诎l(fā)送 端 補(bǔ) 償 包 括 前 向 差 錯(cuò) 糾 正 、 交 織 和 重 傳 技 術(shù) ; 基 于 接 收 端 補(bǔ) 償 包 括 了 多 種 錯(cuò) 誤隱蔽算法(如圖 2.4 所示) 。 交織被動(dòng)通道編碼 與媒體無關(guān)前向差錯(cuò)糾正基于發(fā)送端補(bǔ)償丟主動(dòng)重傳 拼接法 媒體相關(guān)包補(bǔ)靜音置換法償基于插入技噪聲置換法術(shù)重復(fù)法基于接收端補(bǔ)償傳輸狀態(tài)插值法基于重構(gòu)基于模型的恢復(fù)法波形置換法基于插值基音波形復(fù)制法時(shí)間尺度修正法圖 2.4 丟包 隱藏 技術(shù)第二章 neteq 工 作原 理和 框架 11 上 圖 中 , 接 收 端 丟 包 隱 藏 技 術(shù) 的 基 本 原 理 就 是 產(chǎn) 生 一 個(gè) 與 丟 失 的

46、 語 音 包 相似的 替 代 語 音 。 這 種 技 術(shù) 的 可 行 性 是 基 于 語 音 的 短 時(shí) 語 音 相 似 性 , 它 可 以 處 理 較 小的丟包率(15% )和 較小的語音包。接收端的丟包隱藏技術(shù)可以分為三類: 1) 基于插入的方法, 即插入一個(gè)填充包來修復(fù)丟包, 而填充包一般都很簡單,比 如 靜 音 包 、 噪 聲 包 或 重 復(fù) 前 面 的 包 。 此 方 法 雖 然 容 易 實(shí) 現(xiàn) , 恢 復(fù) 效 果 較 差 , 其缺點(diǎn)就是沒有利用語音的信息來重新產(chǎn)生信號。 2) 基于插值 的方法, 即通過某種形式的模式匹配和插值技術(shù)以期望得到與原來 丟 包 相 似 的 代 替 包 。

47、 此 方 法 由 于 考 慮 到 了 語 音 的 變 化 信 息 來 產(chǎn) 生 信 號 , 因 此 比插入方法實(shí)現(xiàn)難度要大但效果更好。 3) 基于重構(gòu)的方法, 即通過丟包前后的解碼信息來重構(gòu)產(chǎn)生一個(gè)補(bǔ)償包。 由于 重 構(gòu) 修 復(fù) 技 術(shù) 使 用 壓 縮 算 法 的 知 識 來 獲 得 編 碼 參 數(shù) , 有 大 量 信 息 可 用 , 因 此 合成的丟失包效果最好,但計(jì)算量也最大。 在 webrtc neteq 中丟包隱藏技術(shù)是與編解碼器相關(guān)的,下面簡要介紹一下ilbc 編解碼器的丟包隱藏技術(shù)。 ilbc 全稱為 internet low bit rate codec,是 gips 開發(fā)的一種專

48、為包 交換網(wǎng)絡(luò)通信設(shè)計(jì)的編解碼, 它是低比特率 (8khz ) 的解碼器, 在丟包時(shí)具有的強(qiáng)大的健壯性。ilbc 提供的語音 音質(zhì)等同于或超過 g.729 和 g.723.1 , 并比其它低比特率的16編碼解碼器更能阻止丟包 。 ilbc 采用 8khz 采樣率, 有 30 毫秒和 20 毫秒兩種編碼的格式, 并以 13.3kb/s(每幀 30 毫秒) 和 15.2kb/s (每幀 20 毫秒) 速度運(yùn)行, 很適合撥號連接。 本文對neteq 的研究主要基于 每幀 30 毫秒的情況進(jìn)行。 ilbc 的丟包隱藏只是在解碼端進(jìn)行處理, 即在解碼端根據(jù)收到的比特流 逐幀進(jìn)行解碼的過程中,ilbc 解

49、碼器首先拿到每幀的比特流時(shí)判斷當(dāng)前幀是否完整,如 果 沒 有問 題 則按 照 正常 的 ilbc 解 碼 流 程重 建 語 音信 號 ,如 果 發(fā)現(xiàn) 語 音 數(shù)據(jù) 包丟失,那么就進(jìn)入 plc 單元進(jìn)行處理。 ilbc 的丟包隱藏技術(shù)屬于基于重構(gòu)的方法, 并采用基于模型恢復(fù)法產(chǎn)生補(bǔ)償包,其具體步驟如下: 重建線性預(yù)測系數(shù) (lpc ) , 即采用了過去幀 的最后一個(gè)子幀的 lpc 系數(shù)來重建。因?yàn)闊o論從空間上還是時(shí)間上最后一個(gè)子幀都與當(dāng)前丟失的 lpc 具有最相關(guān)性。但是這種簡單的復(fù)制在處理連續(xù)多幀時(shí),也顯然會引入更大的失真。 重 建 殘 差 信 號 。 殘 差 信 號 通 常 可 以 分 為

50、兩 部 分 組 成 : 準(zhǔn) 周 期 成 分 和 類 噪聲成 分 , 其 中 準(zhǔn) 周 期 成 分 可 以 根 據(jù) 測 量 前 一 幀 的 基 音 周 期 來 近 似 得 到 , 類 噪 聲 成 分則 可 以 通 過 產(chǎn) 生 隨 機(jī) 噪 聲 得 到 , 二 者 的 能 量 比 例 也 可 以 借 鑒 前 一 幀 的 比 例 關(guān) 系 。因 此 , 首 先 要 對 前 一 幀 進(jìn) 行 基 音 檢 測 , 然 后 以 基 音 同 步 的 方 式 重 建 丟 失 幀 的 話 音部分,接著利用相關(guān)性得到類噪聲的增益,最后進(jìn)行混合以重建整個(gè)殘差信號。dsp12 webrtc 語音引 擎 中 neteq 技術(shù)

51、的研 究 在連續(xù) 丟幀的 情況下 ,plc 所 補(bǔ)償?shù)?各個(gè) 語音幀具 有相同 的頻譜 特性(相同的 lpc 造成)和基音頻率,為了減少各個(gè)補(bǔ)償幀之間的相關(guān)性,會將能量進(jìn)行逐幀遞減。 2.2.3 neteq 模塊簡介 neteq 模塊主要包含 mcu 和 dsp 兩大處理 單元、音頻解碼器模塊以及抖動(dòng)緩沖區(qū)(packet/jitter buffer ) 和語音緩沖區(qū)(speech buffer ) (如圖 2.5 所示) 。 neteq 模 塊mcu 模塊dsp 模 塊packet /jitterbuffer解碼 緩沖 區(qū)解碼器加 慢 正 融 丟共享 內(nèi)存處速 速 常 合 包 理neteq 算

52、 法緩 沖區(qū) speech bufferplay buffer寄存 器 數(shù) 據(jù)流圖2.5 neteq 模 塊框 圖 上圖中,mcu (micro control unit )模塊是 抖動(dòng)緩沖區(qū)的微控制單元,由于抖動(dòng)緩沖區(qū) 作用是暫存接收到的數(shù)據(jù)包, 因此 mcu 的主要作用是安排數(shù)據(jù)包的插入 并 控 制 數(shù) 據(jù) 包 的 輸 出 。 數(shù) 據(jù) 包 的 插 入 主 要 是 確 定 來 自 網(wǎng) 絡(luò) 的 新 到 達(dá) 的 數(shù) 據(jù) 包 在緩 沖 區(qū) 中 的 插 入 位 置 , 而 控 制 數(shù) 據(jù) 包 的 輸 出 則 要 考 慮 什 么 時(shí) 候 需 要 輸 出 數(shù) 據(jù) , 以及輸出哪一個(gè)插槽的數(shù)據(jù)包。抖動(dòng)消除的算法思路在 mcu 控制模塊中得以體現(xiàn)。 dsp 模塊主要負(fù)責(zé)對從 mcu 中提取出來的 pcm 源數(shù)據(jù)包進(jìn)行數(shù)字信號處理,包括解碼、 信號處理、 數(shù)據(jù)輸出等幾個(gè)部分。

溫馨提示

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

最新文檔

評論

0/150

提交評論