基于 BREW 平台的 PoC 解决方案的语音处理.doc
《基于 BREW 平台的 PoC 解决方案的语音处理.doc》由会员分享,可在线阅读,更多相关《基于 BREW 平台的 PoC 解决方案的语音处理.doc(6页珍藏版)》请在三一文库上搜索。
1、精品论文推荐基于 BREW 平台的 PoC 解决方案的语音处理刘文 北京邮电大学光通信与光电子学研究院,北京 (100876) E-mail: 摘要:随着通信与计算机技术的日新月异,移动增值业务的开发越来越引起大家的关注。移动增值业务通常有两种主流开发平台:J2ME 和 BREW。BREW 是高通公司于 2001 年推 出的无线应用开发平台,是一项比 J2ME 更底层的技术。PoC 是手机一键通,也就是在手机 上实现对讲机的功能,属于手机的一种半双工 VoIP 服务。由于目前没有广泛承认的 PoC 统 一标准,各种 PoC 的解决方案相继涌现。本文介绍了基于 BREW 平台的 PoC 解决方案
2、,给 出了这种方案的语音功能的实现,具体包括语音接口的介绍和选择、实现流程以及部分源代 码。经过在实际环境下的手机测试,该语音处理方案被证明是良好的。 关键词:BREW;PoC;语音编码;语音解码中图分类号:TP311.521. 引言近年来,手机移动增值业务开发如火如荼,其中基于 BREW 平台的开发占有相当比重。 运营商 POC 业务的开展,引起众多开发商的兴趣和投入。由于目前没有被广泛承认的 POC 统一标准,各种面向 PoC 的解决方案相继涌现。基于 BREW 平台的 CDMA 制式手机的 POC 方案就是其中一种。在 PoC 的解决方案中,语音功能是否完美实现,直接影响方案的最终结果。
3、因此,实 现语音功能是 PoC 方案中首要解决的问题。2. BREW 平台以及 PoC 业务介绍2.1 BREW 开发平台的简介BREW,就是 Binary Runtime Environment for Wireless(无线二进制运行环境)的简称, 是美国高通公司(Qualcomm)为无线数据应用程序开发和执行提供的通用接口平台。目前 中国联通的神奇宝典中的游戏多为 BREW 游戏。BREW 包含了 PK(Porting Kit,BREW 移植包)和 SDK 两部分,PK 是集成在移动通 讯设备代码映像里的,SDK 是基于 Windows 的开发工具包1。组成整个 BREW 系统的要素可分
4、为开发平台、运行平台和服务器。开发平台就是平时 所使用的 BREW SDK,用来在 PC 端开发可以在运行平台运行的程序。运行平台就是指可 以运行 BREW 应用程序的移动通讯设备上的 BREW 运行环境,它的核心是 BREW 的 Porting Kit。服务器是连接开发和运行平台的一个“连接器”,开发平台所开发出的 BREW 应用程序 放在服务器上,以便于运行平台的用户通过无线通讯网络下载应用程序。2.2 基于 BREW 平台 PoC 业务的综述PoC,Push to Talk over Cellular,手机无线一键通,就是把生活中的对讲机功能移植到 蜂窝手机通信网络上,如同对讲机的一按即
5、通一样,在手机上实现“一对一”、“一对多”的通 话。通过POC业务,用户只需按下一个键就能方便地进行个人或群组通话2 。就业务性质来 说,PoC属于一种手机的半双工VoIP服务。基于 BREW 平台的 PoC 系统如图 1 所示,网络通信仍然采用客户端-服务器端的 CS 模 式。在整个 PoC 方案中,语音的编码解码与网络功能模块都非常重要,两者缺一不可,否- 6 -则就不能保证通话的流畅。3. 语音功能的实现3.1 BREW 提供的语音接口图 1 基于 BREW 平台的 POC 系统3.1.1 IMedia 接口类IMedia 接口类为所有 BREW 多媒体对象提供了一个抽象基类3。 它可以
6、提供一种多 媒体格式或通过特定设备播放的格式。例如,执行 MIDI 播放的 IMediaMIDI 对象和渲染 MPEG4 内容的 IMediaMPEG4 对象。 BREW 多媒体对象可以包含音频、视频和卡拉 OK 文本的组合。IMedia 接口可提供播放、录音以及执行播放或录音控制函数(如定位、停止、 暂停、恢复等)等功能。3.1.2 IVocoder 接口IVocoder 接口使用默认的声音路径,以捕获和播放声码器帧3。 IVocoder 使用的设备 也可以用来执行语音呼叫,因此使用 IVocoder 的应用程序必须注意并集成 TAPI 通知,以 便在启动语音呼叫时适时停止使用声码器。IVo
7、coder 要求以实时的方式进行有效操作。例如,CDMA 声码器帧的持续时间为 20ms。 如果在 IVocoder 流化时,该应用程序或其它应用程序大量使用 CPU,会对语音质量产生 不良影响,但不会导致手持设备出现问题。正确的语音服务选项呼叫操作取决于正确的 ITAPI 处理应用程序实现。应用程序必须 能够在呼叫状态变为 PS_INCOMING(手机设备存在呼叫进入)或 PS_ORIG(手机设备正 发起呼叫)时释放声码器(配置为 VOC_NONE)。IVocoder 接口注册 ITAPI_OnCallStatus(), 并在呼叫进入对话状态时调用 voc_register_packet_c
8、lients 删除回调,在呼叫退出对话状态 时建立回调。IVocoder 接口提供了新的回调函数 VocoderAvailable,并在返回声码器时调用 此函数。这样应用程序可以在发生更改时执行操作3.2 POC 方案中语音接口的选择由上文可知,BREW 为语音处理提供两个接口:IMedia 接口类和 IVocoder 接口。使用 IMedia 类能轻松的调用声码器进行录制音频,过程较为简单,但不支持实时双向操作。因 此在语音要求实时交互的 POC 方案里,只能采用 IVocoder 接口。3.3 POC 方案中语音功能的实现3.3.1 POC 方案中语音数据的流程 客户端作为呼叫方,对讲时的
9、说话方时,语音经麦克风传入编码器,编码器按照应用配置的声码器算法把语音编译成编码帧并依次写入缓冲区,语音数据被打包成网络数据包发送至服务器端。 客户单作为被叫方,对讲时的受听方时,服务器端发送来的数据包接收,去包头后,数据帧排队写入缓冲区,由解码器解码排队帧,最后经扬声器播出。 整个编解码器的每一步操作都由 BREW 提供的 IVocoder 接口函数实现控制。3.3.2 IVocoder 接口实现流程IVocoder 接口实现的基本流程如下:1)创建 IVocoder 接口的用户实例。从系统层面上来看,这是给 IVocoder 开辟一段内存空间,内存空间的使用根据应用的 需要来设置。2)配置
10、 IVocoder 的用例,包括声码器算法、数据速率、回调参数等。目前 CDMA 制式提供三种声码器类型:EVRC(IS-127)、8K QCELP(IS-96)和 13K QCELP(IS-733)。在 POC 方案中采用第一种,增强可变速率声码器 EVRC(IS-127)可以 很好的提高语音质量。实时的数据速率实质上由 CDMA 手机底层的声码器根据信噪比和语音空闲度控制,在 程序里无法强制其按某速率进行编码,但 BREW 仍要求设置上限和下限速率。BREW 是单线程的,无法使用通常的基于时间片运行的多进程或多线程来实习多任务 的之间的切换。BREW 的协作式多任务特性是通过回调机制来实现
11、的4。调用声码器也不例 外。当与调用声码器相关的事件发生时,都要向系统注册一个相关的回调函数在系统执行队 列中排队。当系统执行到该回调函数时,系统可以根据回调函数的内容来决定是否继续、中 断或者结束声码器的操作,当然决定的过程也是新事件产生的过程,也就意味着又注册一个 回调函数。也就是说,声码器的回调函数是用户自定义但却是系统自动调用的函数。回调函 数的配置好坏,直接关系着整个语音的流程顺畅与否。3)启动并进行语音的编码。(1) 由接口函数 IVOCODER_VocInStart()启动声码器进行编码语音帧;如果成功则调用 已经配置的回调函数 HavaDataCB。回调函数 HavaDataC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 BREW 平台的 PoC 解决方案的语音处理 平台 解决方案 语音 处理
链接地址:https://www.31doc.com/p-3626039.html