TD-LTE调度台中AMR语音实时传输的C++软件实现(专利).docVIP

TD-LTE调度台中AMR语音实时传输的C++软件实现(专利).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种数字集群系统调度台单呼选择性录音方法 这种选择性录音方法可以完成任意时刻开始录音、任意时刻停止录音功能,并可根据实际需要可重复多次,最终保存的录音文件是通过过程中调度台多次录音片段的拼接。 该选择性录音方法的实现是在AMR实时语音传输程序的基础上实现。 图1 TD-LTE集群调度台语音实时传输系统总体架构TD-LTE集群调度台DC(Dispatch Console)上语音实时传输系统的软件实现主要包括总体架构方案的设计、语音采集和播放模块的实现、语音编解码的实现、网络通信模块的设计以及多线程和缓冲队列的设计等。 采用C++面向对象设计思想,整体架构如图1。系统按功能主要分为7大模块:语音采集、语音播放、编码与封包、解码与拆包、套接口发送、套接口接收、录音处理。 语音采集模块从声卡采集数据并转换为PCM编码数据包送入缓冲队列1;编码与封包模块从队列2中取出数据包,采用自适应多速率(AMR)语音编码压缩标准对语音进行压缩,并且封装RTP头与DTP头形成完整的语音包送入缓冲队列2;套接口发送模块从队列2中取出语音包采用UDP Socket的方式发送至网络,从而实现语音发送的完整过程。 套接口接收模块采用UDP Socket的方式从网络中接收到语音包并将语音包送入缓冲队列3;解码与拆包模块从队列3中取出语音包,进行RTP与DTP拆包并AMR语音解码得到PCM语音数据,然后将语音包送入缓冲队列4;语音播放模块从队列4中取出PCM语音包,将PCM数据送至声卡完成语音播放。 pPCMSendBuffer,当语音数据帧每次积累满10kb大小时触发事件EventPCMS;播放线程会把接收的每一帧PCM编码语音都放入缓冲区pPCMReceiveBuffer,当语音数据帧每次积累满10kb大小时触发事件EventPCMR;录音线程会采用WaitForMultiObject()机制等待收发两路语音的事件EventPCMS与EventPCMR,收到两事件触发信号之后,录音线程才继续进行后续的收发两路语音数据的混音合成、文件拼接工作。 RecordThread录音线程按照Wav音频文件的标准定义来写录音文件,Wav音频文件标准定义按照文件中的出现位置包括:RIFF WAVE Chunk, Format Chunk, Fact Chunk(可选), Data ChunkpPCMSendBuffer与pPCMReceiveBuffer两路语音合成,合成后清空收发语音缓冲区,最后将合成后的语音数据补充到上次录音保存的wav音频文件数据块尾,并更新Wav文件中的数据大小字段;当录音状态为停止状态时,Wav文件的数据块段尾不补充数据。 这样,Delphi界面用户可以任意时刻发出开始录音请求、任意时刻发出停止录音请求,并重复多次开启与关闭录音请求。开始录音请求时录音线程将语音混音合成后写入wav文件数据块尾,停止录音请求时wav数据块不补充语音数据。当通话结束后,录音线程会获取通话结束状态字的状态,判断为结束通话状态后执行文件保存的相关代码,最终生成多次录音片段的拼接语音文件。

文档评论(0)

ww90055 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档