WebRTC语音引擎中NetEQ技术研究.doc_第1页
WebRTC语音引擎中NetEQ技术研究.doc_第2页
WebRTC语音引擎中NetEQ技术研究.doc_第3页
WebRTC语音引擎中NetEQ技术研究.doc_第4页
WebRTC语音引擎中NetEQ技术研究.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

webrtc语音引擎中neteq技术研究 代号 10701 学号 1075490151分 类 号 tn919.8 密级 公开u d c 编号题 ( 中 、 英 文 ) 目 webrtc 语音 引擎中 neteq 技术 的研究 research on neteq technologyin webrtc voice engine作 者 姓 名 吴江锐 学校 指 导 教 师 姓 名 职 称 张岗山 副教 授 电子与通 信工程 王静 高工 工 程 领 域 企 业 指 导 教 师 姓 名 职 称 应用基础 技术 2013.3 论文 类型 提 交 论 文 日 期 西安电 子科技大学 学位论 文独创性声明 秉承学校严谨的学风和优良的科学道德, 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。 尽我所知, 除了文中 特别加以标注和致谢中所罗列的内容以外, 论文中不包含其他人已经发表或撰写过的研究成果; 也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切 法律责任。本人签名: 日期:西安电 子科技大学 关于论 文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定, 即: 研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。 学校有权保留送交论文的复印件, 允许查阅和借阅论文; 学校可以公布论文的全部或部分内容, 可以允许采用影印、 缩印或其它复制手段保存论文。 同时本人保证, 毕业后结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。(保密的论文在解密后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。本人签名: 导师签名:日 期 : 日 期: 摘要 随着计算机网络的快速发展,voip 电话业务也 得到广泛应用。 这种基于 ip 网络 的 语 音 通 话 技 术 提 供 了 方 便 廉 价 的 交 流 途 径 , 给 通 信 行 业 带 来 了 翻 天 覆 地 的 变化。但随之而来出现的 话音质量问题的解决,也迫在眉睫。 webrtc 语 音 引擎 是目 前 最 先 进 的 语 音 引擎 之一 ,其 中包含 了 实现语 音 信 号处理的 neteq 模块, 此模块 很好地解决了 voip 电话业务出现的延迟、 抖动 和丢包问题。但由于 neteq 是专利技术,没有开放相应的开发文档,因此需要对 neteq进行详细分析研究 ,以便能够更好地应用于 voip 业务中。 本文研究的核心内容是 neteq 集成 的自适应抖动消除算法 和语音包丢失隐藏算法 。论文 首先 对 neteq 的体系结构及处理 流程做了概括性的 分析 ,并重点对neteq 的控制模块 -mcu 的控制机制 , 以及信号处理模块-dsp 对语音数据的处理方法做了详细 的研究和性能分析。分析结果 表明 neteq 在抖动消除和 丢包隐藏方面的优势。 最后,本文基于语音质量角度对 neteq 做了部分优化,开发了语音质量评估模块。 论文基于 e-model 语音质量预测模型及 itu 的单端非侵入型评 估算法 p.563算法进行了语音质量评估模块的 设计和 开发, 并用 uml 的时序图描 述了模块的开发流程及方法。 该模块的评估结果基本符合主观评价。关 键词 :voip neteq 抖动消 除 丢包隐 藏 语音质 量评 估 abstract with the rapid development 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 appears 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 widely 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 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 processing 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 based 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 with the subjective feeling keywords: voipneteqjitter elimination packet lost concealment speech quality 目录 第一章 绪论1 1.1 研究背景1 1.2 研究现状2 1.3 研究内容3 1.4 论文的章节安排5 第二章 neteq 工作原 理和框架 7 2.1 webrtc 语音引擎 概述7 2.2 neteq 模块概述 8 2.2.1 抖动定义及消除原理. 8 2.2.2 丢包隐藏原理10 2.2.3 neteq 模块简介12 2.3 neteq 模块详细分 析13 2.3.1 neteq 的命令机 制. 13 2.3.2 neteq 的播放机 制. 15 2.3.3 neteq 算法流程16 2.4 小结18 第三章 mcu 模块的研究与分析19 3.1 网络延迟统计算法及性能分析 19 3.2 抖动延迟统计算法及性能分析 23 3.3 mcu 的控制机制24 3.4 小结28 第四章 dsp 模块的研究与分析 29 4.1 基音周期的检测算法. 29 4.1.1 常用的基音周期检测算法 29 4.1.2 基于自相关函数法的基音周期检测30 4.2 wsola 算法原理. 31 4.3 dsp 处理 32 4.3.1 丢包处理. 32 4.3.2 融合处理. 35 4.3.3 正常处理. 37 4.3.4 加速处理. 38 4.3.5 减速处理. 40 4.4 dsp 的后续处理 41 4.5 小结42 第五章 基于语音质量评估的 neteq 改进. 43 5.1 基于网络的语音质量评估算法 43 5.2 单端非侵入的语音质量评估算法45 5.3 基于语音质量评估的 neteq 48 第六章 结束语53 致谢55 参考文献 57第一章 绪论 1 第一章 绪论 1.1 研究 背景 voip 是 voice over internet protocol 的缩写,一般称为 ip 电话或 ip 网 络电话。这种技术是将传统电话的声音信号转换成 ip 数据包的格式,并利用 internet 传送至目的地后,再将 ip 数据包还原成传统电话的声音信号并播放,从而实现话音通信服务。ip 电话的基本 功能是提供基于互联网的、 费用低廉的语音、 传真、 数据、消息和视频等服务。此 外,ip 电 话的出现极 大地提高了网络带宽的 利用率,并大1大减少了通信费用,其广泛应用也促进了宽带多媒体应用的发展 。voip 的发展大致经历了 以下几个阶段: 1995 年1996 年, 技术突破期。 语音质量基本没有保证, 技术还不成熟。 1996 年1999 年,应用启蒙期。电信公司开始使用连接 internet 与 pstn网的网关设备,voip 进 入快速发展期。 2000 年2002 年, 市场启蒙期。voip 技术基 本成熟, 与 pstn 有机 结合,具有较好的语音质量。许多电信公司开始提供 voip 业务。 2002 年至今, 市场发展期。2006 年, 全球 voip 的业务将第一次超过电路交换电话业务。 ip 电话 与传统电话相 比具有不同的技术特点 。传统电话(固定电话 或手机)使 用 电 路 交 换 技 术 , 在 呼 叫 建 立 时 预 先 分 配 一 条 物 理 或 逻 辑 线 路 专 门 用 于 传 输 话音 , 因 此 需 要 独 占 通 信 资 源 , 并 且 直 到 呼 叫 结 束 才 能 释 放 所 分 配 的 线 路 , 造 成 线路 利 用 低 (75% 时 间 线 路 空 闲 ) 。 虽 然 传 统 电 话 能 够 提 供 有 保 证 的 话 音 服 务 质 量(qos ,quality of service ) ,但收费昂贵,功 能单一,且难于增加新的业务。 ip 电话使用分组交换技 术,并且将模拟声音信号经数字化、压缩编码后以 ip分组 (rtp 数据包) 的 形式通过 internet 进行 传输。 与电路交换相比,ip 电话无需预先建立专门的电路, 因此用户之间可以共享 internet 网络的带宽 , 网络资源利用率较高。此外,ip 电 话可以提供免费的话音 服务,并支持综合业务 (话音、数据和视频) ,易于扩展新的业务。但从 ip 协议的本质上讲,ip 电话不能保证话音服务质量(时延、抖动和丢 包) 。 ip 电话的典型架构如下 图所示: 2 webrtc 语音引 擎 中 neteq 技术 的研 究 原始话音数据原始 话音数 据话音 编码 话音解码rtp/rtcprtp/rtcpudp/ipudp/ip图 1.1 ip 电话 基础 图 1.1 左边为 ip 电话的 发送端, 主要执行语音信号的编码、 打包和传输工作。右边为 ip 电话的接收 端,主要进行语音信号的还原工作,其中本文涉及到的语音引擎处在语音解码的前后,是保证语音质量的关键模块。 voip 技术的最大优势 在于广泛地采用 internet 和全球 ip 互连的环境 ,提供比传统电话业务更广泛、 更优质的服务。 采用 voip 技术可以在 ip 网络 上廉价地传送语音、 数据、 视频和传真等业务, 如电视会议、 传真邮箱、 虚拟语音、 统一消息、电子商务、 虚拟电话、internet 呼叫管理、internet 呼叫中心、 查号业 务、 传真存储2转发和各种信息的存储转发等 。 因此, ip 电话 成为一种新兴的得到广泛运用的网络业务。 但是,由于传统的 ip 网络主要用于传输数据业务,采用一种尽力而为的无连3接的传输技术 , 因此没有服务质量 (qos ) 保证, 存在包乱序到达、 端到端时延、分组丢失和时延抖动等情况。 对于分组丢失, 数据业务可采用重发来弥补。 但 voip4是实时业务, 对时延、 抖动等有着严格的要求, 所 以必须要有一定的 qos 保证 。时延抖动是 voip 业务 中最重要的一项 qos 参数,直接影响着语音通信质量,直接 关 系 到 话 音 在 接 收 端 能 否 真 实 再 现 。 因 此 , 需 要 采 取 一 定 算 法 和 措 施 来 消 除 时延抖动所造成的影响,从而保证一定的话音业务质量。 在 ip 电话系统中, 一 般通过语音引擎 (voice engine ) 中的抖动缓冲 区 (jitter 5buffer )来消除网 络传 输所带来的不良 影响 ,而抖动缓冲区 技术的 优劣会极大地影响使用者的主观感受。 因此, 抖动缓冲区技 术是 voip 中的关键技 术之一, 是影响话音质量的关键因素。 1.2 研究 现状 抖 动 缓 冲 区 主 要 用 于 有 效 地 吸 收 网 络 抖 动 , 降 低 丢 包 率 , 相 对 地 减 小 延 迟,其性能直接影响着 voip 的语音质量。 另 一 方 面 , 如 果 抖 动 缓 冲 区 设 置 过 大 , 则 语 音 通 话 延 时 会 随 之 增 加 ; 如 果抖第一章 绪论 3 动 缓 冲 区 设 置 过 小 , 则 无 法 有 效 吸 收 延 时 抖 动 , 导 致 语 音 数 据 在 接 收 端 的 丢 包 率上升。因此,抖动缓冲区大小的设置必须对延时和丢包率进行综合平衡考虑。 为 了 更 合 理 地 设 置 抖 动 消 除 算 法 中 抖 动 缓 冲 区 的 大 小 , 更 好 地 适 应 网 络 环境的 变 化 , 国 内 外 研 究 人 员 提 出 了 很 多 种 自 适 应 抖 动 缓 冲 算 法 。 其 中 最 普 遍 的 做 法是 : 采 用 历 史 时 段 中 传 输 延 时 统 计 的 较 大 值 , 根 据 可 接 受 的 丢 包 率 上 限,决定在抖 动 缓 冲 区 可 以 丢 弃 的 数 据 包 量 , 选 择 某 一 较 大 历 史 延 迟 作 为 下 段 时 间 内 的 抖 动6缓冲区大小 。 这种方 法操作简单便捷, 但自适应能力较差, 不能很好地适应网 络延迟的改变。 由于语音质量是 voip 业务的关 键, 因此基于语音质量的自适应抖动7缓冲算法成为当前研究的热点 。 日前, 在建立 语音质量预测模型的基础上提出的8自适应抖动缓冲算法,均采用 itu 的 e-model 方法预测语音质量 , 以语音质量9来平衡延时和丢包率, 但它仅仅考虑了 ip 网 络的随机丢包模式 , 这与 voip 的突发丢包模式不相符。 目前,全球著名的语音引擎 提供商 global ip sound (gips )公司以其优异的语音引擎技术, 拥有了较高的市场占有率。gips 语音引擎的核心技 术之一就是包含丢包隐藏算法的高级自适应抖动缓冲器技术,称作 neteq 。2010 年谷歌公司 以6820 万美元收购 global ip solutions 公司而获 得的这项技术。 随后, 谷歌公司于 2011年将 gips 语音引擎以 开源项目 webrtc 的形 式对外公开发布。 webrtc 是一项在浏览器内部进行实时视频和音频通信的技术,其目的是通过简单的 javascript 编程就可以达到实时通信(rtc ,real-time communication )能力。 neteq 算 法 中集 成了自 适 应抖 动控 制算 法以及 语 音包 丢失 隐藏 算法。 这 项 技术 使 其 能 够 快 速 且 高 解 析 度 地 适 应 不 断 变 化 的 网 络 环 境 , 确 保 音 质 优 美 且 缓 冲 延迟最小 。neteq 算法 的创新 之处 在于 它不 仅 在语音 包缓 冲器 内, 而 且还与 解码器进行集成。 由于 neteq 是 gips 开发的专利技术,没有任何公开的技术资料来介绍其基本原理和算法流程,因此对其进行研究并将其 文档化,有利于 neteq 算法的广泛运 用 , 缩 短 工 程 被 引 用 的 开 发 时 间 , 且 有 助 于 快 速 找 出 项 目 中 出 现 问 题 的 原 因 及增大项目的优化空 间。 此外, 对 neteq 模块的 性能分析 和 仿真实验有助于对 neteq 算法的 进一步优化和完善。 1.3 研究 内容 neteq 模块是 webrtc 语音引擎的核心模块 , 其功能框图如下图所示 (图 1.2): 4 webrtc 语音引 擎 中 neteq 技术 的研 究图 1.2 neteq 模 块框 图 由 上 图 可 以 看 出 ,neteq 模 块 基 本 上 分 为 自 适 应 缓 冲 器 (adaptive packet buffer ) 、 语音解码器 (speech decoder ) 、 抖 动控制和丢包隐藏模块 (jitter control and error concealment ) 及播放(play out )四 大部分。其 中,抖动控制和丢包隐藏模块是 neteq 的核心 算法, 既控制着自适应缓冲器, 又与解码器进行紧密的交互,并且将最终的计算结果交给声卡去播放。 另 外 , 抖 动 控 制 和 丢 包 隐 藏 模 块 ( 如 上 图 所 示 ) 由 三 大 主 要 操 作 所 组 成 ,即expansion 、normal 和 accelerate 。每个操作 的具体含义如下: expansion :扩展操作, 即对语音时长的拉伸,其中包括 expand 及preemptive_expand 两种 模式。前者为 neteq 的丢包隐藏操作,其作用是等待延迟包并补偿丢包,由于补偿丢包是实现数据从无到有,因此使用expand(扩展),表示语音数据的扩展;后者意为优先扩展,即在原有数据的基础上拉伸语音时长,因此可以实现减速播放功能。 normal :正常播放操作 ,即在网络状况正常且相对无抖动时的操作。 accelerate :加速操作 ,即对语音信号处理以实现快速播放。 当 语 音引 擎运 行时 ,neteq 会 根据 网络 的状 况、 缓 冲区 中未 处理 的数据 包 长度,以及等待播放的语音长度等参数智能地选择合适的操作。 neteq 是 目 前最 为完善 的 抖动 消除 技术 。与固 定 抖动 缓冲 器和 传统的 自 适 应抖动缓冲器进行比较(如图 1.3 所示) ,neteq 能够快速且高解析度 地 适应不断优化的网络环境,因此保证了语音引擎较小的延迟和很好的语音质量。第一章 绪论 5图1.3 neteq 性 能分 析 由 上 图可 以看 出,neteq 能 够实 时地 响应 当前 的 抖动 延迟 。其 中,蓝 色 线 所示的抖动因子由网络延迟所示,而 neteq 做出对抖动的响应(由黄线所示)则是抖动消除算法中研究的核心内容。 综上所述,本文的研究内容主要是针对 neteq 中的抖动消除技术及丢包隐藏技 术 进 行 深 入 的 分 析 和 研 究 , 并 通 过 导 入 语 音 质 量 评 估 技 术 作 为 语 音 引 擎 优 化 的先决条件,来进一步提高语音引擎的主观质量。 本文的研究课题来源于普罗通信 (西安) 有限公 司 voip 网络电话服务 ?freepp语音引 擎的 开发 和研 究 。neteq 是 整个 语音 引擎的 核心 ,是 保证 语 音质量 的关键技术。本课题研究目的是充分掌握 neteq 的相关算法,为语音引擎的优化打下坚实的基础。 本文采用 webrtc 语音 引擎实现 ip 网络上的 语音通话 功能 , 主要研究工作以vs2008 作为开发工具, 在对 neteq 模块进行 单元测试和系统测试的基础上, 实现语音质量评估的模块化编程。 1.4 论文 的章节 安排 本文的章节安排如下: 第一章是绪论,介绍了 voip 技术的发展及 应用,对 webrtc 和 neteq 做了简单引入,并对 本文的工作做了简要说明。 第二章是 neteq 系统 框架, 分析了 neteq 的系统框架、 算法流程, 并对相关算法原理做了详细介绍。 第三章是 mcu 模块的研究和分析, 重点分析 了 neteq 的 mcu (微 控制单元)的算法及流程,具体描述了 neteq 的控制机 制。 6 webrtc 语音引 擎 中 neteq 技术 的研 究 第四章是 dsp 模块的研究和分析, 重点分析了 neteq 的 dsp (数字信号处理)的算法及流程,具体描述了 neteq 处理语音 信号的方法。 第五章是基于语音质量评估的 neteq 改进,详细介绍了两大类型的语音质量评估算法的原理,并给出使用于 voip 的语音 质量评估的解决方案。 第六章是结束语,对所实现的 neteq 模块进行简单的性能分析,并指出其中的不足和进一步研究与改进的方向。第二章 neteq 工 作原 理和 框架 7 第二章 neteq 工 作原理和 框架2.1 webrtc 语音 引 擎概述 webrtc 由 语 音引 擎、 视 频 引 擎 及 网 络 传输三 大 模 块 组 成 , 其 中语音 引 擎 是webrtc 极具价值的技 术之一。webrtc 的系 统架构如下图所示: 网 络网络apiwebrtcwebrtc c+ api ( 端到端 连接 )会话 管 理/ 信 号 摘要 ( 会 话 )浏览视 频 引擎声音 引 擎传输器isac/ilbc 编解码器 vp8 编解码 器 srtp声 音 处 理 的neteq 视 频抖动缓 冲区 multipleding回声消除/ 噪声抑制 图像算 法p2p stun+turn+ice音频捕获/ 渲染 视频捕 捉 网络 输入/ 输 出供 网络开 供浏览器开 可被浏览器发的api 发的api 开发商重写图 2.1 webrtc 架 构图 如上图所示,webrtc 语音引擎(voice engine )由一系列音频 和网络处理 模块所组成 , 包 括 了 从 音频 采 集 到 网 络 传 输 等 处 理 流 程 的 完 整 解 决 方 案 ,其中主要包括 isac (internet speech audio codec )/ilbc (internet low bitrate codec ) 编 解码器、 回声消除 ( acoustic echo canceler aec ) / 噪声抑制 ( noise reduction nr )以及 neteq 等三大部 分。webrtc 语音引擎 的工作流程如下图所示:web 应用程 序web 应用程 序web 应用程 序 8 webrtc 语音引 擎 中 neteq 技术 的研 究 adc aec ns agc encoder声音采集 声学回声抵消 噪声抑制 自动增益控制 压缩编码声音信号处理(远端)internet数据压缩和解压缩dac decoder plc jbagc ns丢包补偿 抖动消除声音播放 压缩解码声音设备驱动图 2.2 语音 引擎 工作 流程 图 上 图 中 , 语 音 引 擎 的 一 般 工 作 流 程 如 下 : 首 先 在 发 送 端 进 行 声 音 采 集 , 对采集 到 的 声 音 信 号 进 行 回 声 消 除 、 噪 声 抑 制 、 自 动 增 益 控 制 等 前 处 理 , 然 后 进 行 语音压缩编码, 并通过 internet 网络传输到接收 端; 语音数据到达接收端后, 首先进入 neteq 模块进行抖动消除、丢包隐藏、解码等操作,然后将处理过后的音频数据送入声卡设备中进行播放。 本文研究的重点是 neteq 模块,其中所涉及的处理过程包括抖动消除、丢包补偿和压缩解码(如图 2.2 粗虚线所示) ,其作用是 使语音引擎能够快速且高解析度地适 应不 断变 化的 网 络环境 ,确 保音 质优 美 且缓冲 延迟 最小 。下 面 将对 neteq模块进行详细分析和论述。 2.2 neteq 模块概述 neteq 模 块 主要 负责消 除 因网 络传 输路 径和拥 塞 情况 变化 所造 成的丢 包 和 时延抖动问题。这里,首先简要介绍一下抖动消除原理及丢包隐藏原理。 2.2.1 抖动定义及消除原理抖动 (jitter ) 定义 1: 指由于各种延时的变化导致网络中的数据分组到达速率10的变化 。 具 体 地说 ,可 将 抖 动 定 义 为 数 据 流在 发 送 端 发 送 间 隔 与 接收 端 接 收间隔之差: jr s i 1,2, .n2-1 i i i其中,s 为发送第 i 第 i+1 个数据包间的发送间隔; r 为接收第 i 和第 i+1 个i i数据包间的到达间隔, j 即为数据包 i 的抖动延迟。式(2-1)适用于可变码率业i务的抖动定义。 11抖动 (jitter ) 定义 2 : 接收端某个数据包到达间隔与平均数据包到达间隔 之差定义为该数据包的延时 抖动。即:jt e t i 1,2, .n2-2ii第二章 neteq 工 作原 理和 框架 9 et其中,t 为第 i 个数据包到达间隔;? 为平均数据包到达间隔,当数据流iet为固定码率时,? 等于或者接近于数据流的发送间隔。 因此, 式 (2-2) 适用于具有不同发送特征的业务。 12抖 动 是 一 个 零 均 值 的 随 机 序 列 , 是 由 排 队 ip 包 的 延 迟 时 间 差 构 成 的 。当j 0 时,称之为正抖动;当 j 0 时,称之为负抖动;当 j 0 时,说明无抖动 。i i i正抖动对应于数据包的堆积, 意味着数据包提前到达, 虽然保证 了语音的完整性,但 是 容 易 造 成 接 收 端 缓 存 溢 出 并 且 会 增 大 端 到 端 延 迟 。 负 抖 动 则 意 味 着 数 据 包 经过 网 络 传 输 后 , 走 了 不 同 路 径 而 且 一 段 时 间 内 仍 未 到 达 接 收 端 , 说 明 数 据 包 可 能会 延 迟 到 达 或 者 丢 包 ; 由 于 超 时 和 缓 存 溢 出 均 可 导 致 包 丢 失 , 因 此 不 管 是 哪 种 抖动, 均增加了端到端的丢包概率。 因此, 对于 voip 网络电话, 必须对 抖动进行有效的控制,以减少由此引起的丢包。 抖 动 通 常 采 用 抖 动 缓 冲 技 术 来 消 除 , 即 在 接 收 方 建 立 一 个 缓 冲 区 , 语 音 包到达 接 收 端 时 首 先 进 人 缓 冲 区 暂 存 , 随 后 系 统 再 以 稳 定 平 滑 的 速 率 将 语 音 包 从 缓 冲13区提取出来,经解压后从声卡播出 。 这种 缓冲 技 术 可 以 在 一 定 限 度内 有 效 消除语音抖动,并提高 voip 的音质。 网 络延 迟/ms40b3020a c d10发 送 时 间/ms30 60 90120 150到 达 时 间/msa b c d播 放 时 间/msa b c d图 2.3 抖动 缓冲 区的 工作 原理示 意图 14抖动缓冲区的工作原理 如图 2.3 所示,其中:4 个语音数据包(a 、b 、c 、d )以 30ms 为间隔进行发送,即发送时间分别为 30,60,90,120ms ,经过网络传输时分别产生了 10,30,10,10ms 的网络时延, 导致到达接收端的时间分别为40,90,100,130ms 时刻, 此时变产生了 50、10、30 的不同间隔, 即为 抖动。 因此,为了能够获得流畅的音质,就要求 a 、c 和 d 这 3 个语音包到 达接收端后,先在缓冲器中分别延迟 20ms 再播放。也就是说,抖动消除的思想的理想状态为:每 个 数 据 包 在 网 络 传 输 中 的 延 迟 与 其 在 抖 动 缓 冲 区 中 缓 冲 的 延 迟 之 和 应 该 相 等 。因 此 一 般 的 抖 动 消 除 思 想 是 将 抖 动 缓 冲 区 的 大 小 设 为 目 前 测 到 的 最 大 网 络 延 迟 大小 , 而 且 每 个 包 在 网 络 中 的 延 迟 加 上 其 在 抖 动 缓 冲 区 中 缓 冲 产 生 的 延 迟 之 和 应 该10 webrtc 语音引 擎 中 neteq 技术 的研 究 等于抖动缓冲区的大小。 抖 动 缓 冲 控 制 算 法 包 括 静 态 抖 动 缓 冲 控 制 算 法 和 自 适 应 抖 动 缓 冲 控 制 算 法两15种 。 静态抖动缓冲控制算法:缓冲区的大小在语音通话建立 后一直到通话结束, 均为固定值, 对于 抖动超出缓冲区大小的数据 包将会被丢弃。 该 算法模型简单,易于实现; 但网络抖动较大时,丢包率高,而网络延迟及抖动小时, 语音延迟较大, 不能很好地根据网络状况来动态改变缓冲区的控制策略,而且初始状态对 后面的语音质量影响较大。 自适应抖动缓冲控制算法:缓冲区大小随着实际网络的抖动情况而变化。接收端将当前收到的数据 包的延迟与算法 中保存的延迟信息相比较, 得到当前网络的最大抖动, 从而选择恰当的缓冲区大小。 该算法的优点是: 网络抖动较大时丢包率相对较低, 而网络延迟及抖动小 时, 语音延迟相对较2小; 缺点是: 算法多样且相对复杂 。 考 虑 到 当 前 网 络 状 况 的 多 样 化 , 抖 动 缓 冲 区 一 般 设 置 为 自 适 应 的 。 自 适 应抖动 缓 冲 控 制 的 重 要 参 数 是 抖 动 缓 存 容 量 和 从 抖 动 缓 冲 区 取 出 数 据 包 的 条 件 , 二 者决定了 缓存 控制 对媒 体 流时间 结构 的作 用。neteq 所 采用 的抖 动消 除 技术属 于自适应抖动缓冲算法,具体内容将在第三章中详细介绍。 2.2.2 丢包隐藏原理 丢包隐藏又称为丢包补偿, 即 packet loss concealment , 简称为 plc 。 应用于voip 的丢包隐藏技术 可以分为两类:基于发送端补偿和基于接收端补偿。基于发送 端 补 偿 包 括 前 向 差 错 纠 正 、 交 织 和 重 传 技 术 ; 基 于 接 收 端 补 偿 包 括 了 多 种 错 误隐蔽算法(如图 2.4 所示) 。 交织被动通道编码 与媒体无关前向差错纠正基于发送端补偿丢主动重传 拼接法 媒体相关包补静音置换法偿基于插入技噪声置换法术重复法基于接收端补偿传输状态插值法基于重构基于模型的恢复法波形置换法基于插值基音波形复制法时间尺度修正法图 2.4 丢包 隐藏 技术第二章 neteq 工 作原 理和 框架 11 上 图 中 , 接 收 端 丢 包 隐 藏 技 术 的 基 本 原 理 就 是 产 生 一 个 与 丢 失 的 语 音 包 相似的 替 代 语 音 。 这 种 技 术 的 可 行 性 是 基 于 语 音 的 短 时 语 音 相 似 性 , 它 可 以 处 理 较 小的丢包率(15% )和 较小的语音包。接收端的丢包隐藏技术可以分为三类: 1) 基于插入的方法, 即插入一个填充包来修复丢包, 而填充包一般都很简单,比 如 静 音 包 、 噪 声 包 或 重 复 前 面 的 包 。 此 方 法 虽 然 容 易 实 现 , 恢 复 效 果 较 差 , 其缺点就是没有利用语音的信息来重新产生信号。 2) 基于插值 的方法, 即通过某种形式的模式匹配和插值技术以期望得到与原来 丢 包 相 似 的 代 替 包 。 此 方 法 由 于 考 虑 到 了 语 音 的 变 化 信 息 来 产 生 信 号 , 因 此 比插入方法实现难度要大但效果更好。 3) 基于重构的方法, 即通过丢包前后的解码信息来重构产生一个补偿包。 由于 重 构 修 复 技 术 使 用 压 缩 算 法 的 知 识 来 获 得 编 码 参 数 , 有 大 量 信 息 可 用 , 因 此 合成的丢失包效果最好,但计算量也最大。 在 webrtc neteq 中丢包隐藏技术是与编解码器相关的,下面简要介绍一下ilbc 编解码器的丢包隐藏技术。 ilbc 全称为 internet low bit rate codec,是 gips 开发的一种专为包 交换网络通信设计的编解码, 它是低比特率 (8khz ) 的解码器, 在丢包时具有的强大的健壮性。ilbc 提供的语音 音质等同于或超过 g.729 和 g.723.1 , 并比其它低比特率的16编码解码器更能阻止丢包 。 ilbc 采用 8khz 采样率, 有 30 毫秒和 20 毫秒两种编码的格式, 并以 13.3kb/s(每帧 30 毫秒) 和 15.2kb/s (每帧 20 毫秒) 速度运行, 很适合拨号连接。 本文对neteq 的研究主要基于 每帧 30 毫秒的情况进行。 ilbc 的丢包隐藏只是在解码端进行处理, 即在解码端根据收到的比特流 逐帧进行解码的过程中,ilbc 解码器首先拿到每帧的比特流时判断当前帧是否完整,如 果 没 有问 题 则按 照 正常 的 ilbc 解 码 流 程重 建 语 音信 号 ,如 果 发现 语 音 数据 包丢失,那么就进入 plc 单元进行处理。 ilbc 的丢包隐藏技术属于基于重构的方法, 并采用基于模型恢复法产生补偿包,其具体步骤如下: 重建线性预测系数 (lpc ) , 即采用了过去帧 的最后一个子帧的 lpc 系数来重建。因为无论从空间上还是时间上最后一个子帧都与当前丢失的 lpc 具有最相关性。但是这种简单的复制在处理连续多帧时,也显然会引入更大的失真。 重 建 残 差 信 号 。 残 差 信 号 通 常 可 以 分 为 两 部 分 组 成 : 准 周 期 成 分 和 类 噪声成 分 , 其 中 准 周 期 成 分 可 以 根 据 测 量 前 一 帧 的 基 音 周 期 来 近 似 得 到 , 类 噪 声 成 分则 可 以 通 过 产 生 随 机 噪 声 得 到 , 二 者 的 能 量 比 例 也 可 以 借 鉴 前 一 帧 的 比 例 关 系 。因 此 , 首 先 要 对 前 一 帧 进 行 基 音 检 测 , 然 后 以 基 音 同 步 的 方 式 重 建 丢 失 帧 的 话 音部分,接着利用相关性得到类噪声的增益,最后进行混合以重建整个残差信号。dsp12 webrtc 语音引 擎 中 neteq 技术 的研 究 在连续 丢帧的 情况下 ,plc 所 补偿的 各个 语音帧具 有相同 的频谱 特性(相同的 lpc 造成)和基音频率,为了减少各个补偿帧之间的相关性,会将能量进行逐帧递减。 2.2.3 neteq 模块简介 neteq 模块主要包含 mcu 和 dsp 两大处理 单元、音频解码器模块以及抖动缓冲区(packet/jitter buffer ) 和语音缓冲区(speech buffer ) (如图 2.5 所示) 。 neteq 模 块mcu 模块dsp 模 块packet /jitterbuffer解码 缓冲 区解码器加 慢 正 融 丢共享 内存处速 速 常 合 包 理neteq 算 法缓 冲区 speech bufferplay buffer寄存 器 数 据流图2.5 neteq 模 块框 图 上图中,mcu (micro control unit )模块是 抖动缓冲区的微控制单元,由于抖动缓冲区 作用是暂存接收到的数据包, 因此 mcu 的主要作用是安排数据包的插入 并 控 制 数 据 包 的 输 出 。 数 据 包 的 插 入 主 要 是 确 定 来 自 网 络 的 新 到 达 的 数 据 包 在缓 冲 区 中 的 插 入 位 置 , 而 控 制 数 据 包 的 输 出 则 要 考 虑 什 么 时 候 需 要 输 出 数 据 , 以及输出哪一个插槽的数据包。抖动消除的算法思路在 mcu 控制模块中得以体现。 dsp 模块主要负责对从 mcu 中提取出来的 pcm 源数据包进行数字信号处理,包括解码、 信号处理、 数据输出等几个部分。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论