[发明专利]用于tcp协议的基于能量阈值的语音缓冲丢包处理方法有效
申请号: | 201610243138.3 | 申请日: | 2016-04-19 |
公开(公告)号: | CN105743806B | 公开(公告)日: | 2019-02-26 |
发明(设计)人: | 刘鹏 | 申请(专利权)人: | 浙江万朋教育科技股份有限公司 |
主分类号: | H04L12/823 | 分类号: | H04L12/823;H04L12/863;H04L29/06;G10L25/78 |
代理公司: | 杭州君度专利代理事务所(特殊普通合伙) 33240 | 代理人: | 杜军 |
地址: | 310013 浙江省杭州市西*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种用于tcp协议的基于能量阈值的语音缓冲丢包处理方法。本发明通过主动丢掉不重要的音频数据包来自动降低延迟。本发明包含丢包判定模块、采集发送端、服务器转发端、接收播放端四部分,采集发送端、服务器转发端、接收播放端三部分使用相同的丢包判定算法,互相配合完成整个系统的基于tcp传输协议的语音缓冲丢包处理。本本发明从简单实用的角度出发,实际测试效果能够满足大多情况下的需求,在满足实用性的情况下尽量降低了算法的复杂程度。 | ||
搜索关键词: | 用于 tcp 协议 基于 能量 阈值 语音 缓冲 处理 方法 | ||
【主权项】:
1.用于tcp协议的基于能量阈值的语音缓冲丢包处理方法,其特征在于包括如下步骤:步骤1、针对采集发送端,具体的:1‑1、从麦克风采集音频数据帧frame;1‑2、计算音频数据帧frame的能量值frame_energy:先用vad算法判断音频数据帧frame是否含有人的语音;如果不含语音,则认为是不重要的数据,将该frame的能量值frame_energy设置为0,如果含有语音则通过能量计算公式计算该frame能量值frame_energy;frame_energy=|sample[0]|+…+|sample[count‑1]| 公式(1)其中,count是自然数,为步骤1‑1中所述音频数据帧frame一帧中含有的采样点的个数,|sample[count‑1]|表示其中一个采样点的能量值;1‑3、直接获取当前发送队列中的语音缓冲长度buffer_ms1;1‑4、使用语音缓冲长度buffer_ms1和能量值frame_energy,通过丢包判定模块判断该帧是否需要丢掉,如果不需要丢掉,则将该frame和frame_energy填加到发送队列,如果需要丢掉,则将该帧丢掉;1‑5、发送线程每隔时间T定时检查发送队列中是否有数据,如果有数据,则从发送队列取一帧frame数据出来,将frame编码压缩后和frame_energy一起打包成音频数据包,并发送到服务器转发端;所述的时间T是麦克风采集到的数据帧时长的一半;步骤2、针对服务器转发端,具体的:2‑1、服务器转发端接收采集发送端发过来的音频数据包,2‑2、从接收到的音频数据包中解析出该帧能量frame_energy2‑3、取得当前转发队列中的语音缓冲长度buffer_ms22‑4、使用buffer_ms2和frame_energy,通过丢包判定模块判断该音频数据包是否需要丢包,如果不需要丢包,则将该包填加到当前转发队列,如果需要丢包,则将该包丢掉;2‑5、转发线程每隔时长T1定时检查转发队列中是否有数据,如果有数据,则从转发队列取出一个从发送端接收到的音频数据包转发给接收播放端;所述的时间T1与麦克风采集到的数据帧时长相等;步骤3、针对接收播放端,具体的:3‑1、接收从服务器转发端转发过来的音频数据包3‑2、从接收到的音频数据包中解析出该帧能量frame_energy3‑3、取得当前播放队列中的语音缓冲长度buffer_ms33‑4、使用buffer_ms3和frame_energy,通过丢包判定模块判断该音频数据包是否需要丢包,如果不需要丢包,则将该包填加到播放队列,如果需要丢包,则将该包丢掉;3‑5、播放线程持续时长T3定时检测是否需要向播放设备中添加音频数据包,如果需要添加,则先判断播放队列的缓冲状态isBuffering:如果播放队列正在缓冲,即缓冲状态isBuffering==true,则判断当前播放队列中的语音缓冲长度buffer_ms3是否大于初始缓冲阈值min_ms;如果语音缓冲长度buffer_ms3大于等于初始缓冲阈值min_ms,则缓冲完成,将isBuffering设置成false,然后继续添加音频数据包;否则添加空数据包;如果播放队列中缓冲状态isBuffering==false,且语音缓冲长度buffer_ms3大于0,则从播放队列中取出一帧frame进行解码,并将解码后的音频数据帧添加到播放,否则,播放空数据并设置isBuffering=true所述的时间T3是麦克风采集到的数据帧时长的一半。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江万朋教育科技股份有限公司,未经浙江万朋教育科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610243138.3/,转载请声明来源钻瓜专利网。