一种网络语音同步消噪通讯方法_2

文档序号:9754977阅读:来源:国知局
的方法,由于speex算法是c语言编写,要 在java应用层调用就需要将speex算法做成JNI库文件,如图所示,先从speex中提取接口函 数封装JNI函数,回音消除主要是speex_echo_cancellation函数,该函数通过对比录制和 播放的声音,从录制的声音中滤除播放(回声)的声音;编解码主要是speex_bi ts_wr i te压 缩函数和speex_bits_read_from解压函数。
[0037]各层封装函数请参阅表1,将JNI封装文件编译成.so库文件,在应用层加载这个 库,封装应用接口函数,在应用层调用表1中java应用层封装函数进行回音消除和音频编解 码。
[0038]表1开源的speex算法中的各层封装函数 [0039]
[0040]请参阅图4,本发明实施例网络语音同步消噪通讯的具体流程图。网络接收和发送 同时运行。在发送端,通过音频录制模块从麦克风录制音频流,按照预定的缓冲值为一帧存 储在录制缓冲区,打开回音消除线程锁,将音频流送入回音消除线程中,同时在回音消除线 程中接收远端传输过来的音频流作为过滤回声的参考声音,当存放录制的音频流的缓冲区 接收到了数据,并且存放播放的音频流的缓冲区接收到了数据时,送入回音消除 SpeexDspAEC函数中滤除回音,经过多次试验,当录制缓冲区接收到6帧数据,并且播放缓冲 区接收到7帧数据时,消除效果最佳;将得到的干净的声音送入编码模块,在编码模块中,由 于音频的压缩时间长,所以为了防止数据阻塞,每次接收新的音频数据时都确保当前正在 进行编码的音频数据已经编码完成,也就是接收数据和编码进行同步,编码后的音频数据 通过网络发送出去。
[0041]在接收端,接收网络传送过来的音频数据,送解码模块将音频流还原,然后送播放 模块,而播放的声音一部分被重新录入,被录入的这部分就是回声,也就是参考声音,将参 考声音每次按照表2中预定的缓冲值作为一帧存入缓存列表中,经过多次试验,当列表中有 7帧数据时才开始送入回音消除线程效果最佳,保证每次都有一帧(预定的缓冲值)的参考 声音。如此反复进行,实现了网络对讲。
[0042] 预定的缓冲值如表2所示,是本实施例中的一帧数据大小,也是回音消除以及编解 码每次所能处理的数据大小,缓存也是根据这个大小为一帧进行的。在发送端和接收端,都 需要对音频数据进行缓存,在本系统中,接收到音频流大小为预定的缓冲值时为一帧,收到 一帧数据后放入列表中进行缓存,而在处理音频数据时从列表的第一帧开始取出,直到列 表中的数据全部取完为止。
[0043] 表 2
[0044]
[0045] 如图5所示是本发明实施例提供的一种网络语音同步消噪通讯装置的模块结构 图。网络语音同步消噪通讯装置10包括同步模块110、回声消除模块120、编码模块130以及 发送模块140。同步模块110用于对本地录制的音频流和对端发送的音频流进行数据同步; 回声消除模块120用于将对端发送的音频流作为参考音频流对本地录制的音频流中的回声 进行过滤;音频编码模块130用于对过滤后的音频流进行编码压缩;发送模块140用于将编 码压缩的音频流通过网络进行发送。
[0046] 网络语音同步消噪通讯装置10还包括录制模块100,用于录制本地的音频流。
[0047] 同步模块110包括录制缓冲区1101、参考缓冲区1101和数据同步单元1103,其中:
[0048] 录制缓冲区1101,用于对本地录制的音频流进行缓存;
[0049] 参考缓冲区1102,用于对对端发送的音频流作为参考音频流进行缓存;
[0050] 数据同步单元1103,用于当参考缓冲区接收到数据时,对本地录制的音频流和参 考音频流进行数据同步。
[0051] 回音消除模块120具体用于:根据预设的固定间隔的时间段,检查对端发送的音频 流的帧数据,当帧数据小speex算法预定的缓冲值时,通过speex算法将本地录制的音频流 中的回声进行过滤;当对端发送的音频流的帧数据大于speex算法预定的缓冲值时,贝lj丢弃 部分帧数据。
[0052]音频编码模块130具体用于:对过滤后的音频流逐帧进行缓存和编码压缩。
[0053] 如图6所示是本发明实施例提供的一种网络语音同步消噪通讯系统的结构示意 图,该系统包括上文的网络语音同步消噪通讯装置10以及接收装置20。其中,接收装置20包 括接收模块210、音频解码模块220和音频播放模块230,接收模块210用于接收编码压缩后 的音频流,音频解码模块220用于还原接收到的编码压缩后的音频流,音频播放模块230播 放还原的音频流。网络语音同步消噪通讯装置10与上述实施例相同,这里不再重复。
[0054] 本发明实施例通过对录制的音频流和接收的对端音频流进行数据同步,将接收的 对端音频流作为过滤回声的参考音频,优化了编解码并消除了回声,提高了网络语音的对 讲通话质量。
[0055] 以上参照【附图说明】了本发明的优选实施例,并非因此局限本发明的权利范围。本 领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明,比如作为一 个实施例的特征可用于另一实施例而得到又一实施例。凡在运用本发明的技术构思之内所 作的任何修改、等同替换和改进,均应在本发明的权利范围之内。
【主权项】
1. 一种网络语音同步消噪通讯的方法,其特征在于,该方法包括: 对本地录制的音频流和对端发送的音频流进行数据同步; 将所述对端发送的音频流作为参考音频流对所述本地录制的音频流中的回声进行过 滤; 对过滤后的音频流进行编码压缩并通过网络进行发送。2. 根据权利要求1所述的网络语音同步消噪通讯方法,其特征在于,所述对本地录制的 音频流和对端发送的音频流进行数据同步的步骤,具体包括: 设置用于对所述本地录制的音频流进行缓存的录制缓冲区,以及对所述参考音频流进 行缓存的参考缓冲区;当所述参考缓冲区接收到数据时,对所本地录制的音频流和所述参 考音频流进行数据同步。3. 根据权利要求2所述的网络语音同步消噪通讯方法,其特征在于,所述录制缓冲区能 够对N帧所述录制的音频流数据进行缓存,所述参考缓冲区能够对Μ帧所述参考音频流的数 据进行缓存;其中Μ>Ν,且Μ和Ν为自然数。4. 根据权利要求1或2所述的网络语音同步消噪通讯方法,其特征在于,所述将所述对 端发送的音频流作为参考音频流对所述本地录制的音频流中的回声进行过滤的步骤,具体 包括:根据预设的固定间隔的时间段,检查对端发送的音频流的帧数据,当帧数据小于 speex算法预定的缓冲值时,通过speex算法将所述本地录制的音频流中的回声进行过滤; 当对端发送的音频流的帧数据大于speex算法预定的缓冲值时,则丢弃部分帧数据。5. 根据权利要求1所述的网络语音同步消噪通讯方法,其特征在于,所述对过滤后的音 频流进行编码压缩包括:对过滤后的音频流逐帧进行缓存和编码压缩。
【专利摘要】本发明公开了一种网络语音同步消噪通讯方法,该方法包括:对本地录制的音频流和对端发送的音频流进行数据同步;将对端发送的音频流作为参考音频流对本地录制的音频流中的回声进行过滤;对过滤后的音频流进行编码压缩并通过网络进行发送。本发明的优点在于:采用本发明的方法,对本地录制的音频流和对端发送的音频流进行数据同步,并将对端发送的音频流作为过滤回声的参考音频,优化了编解码并消除了回声,提高了网络语音的对讲通话质量。
【IPC分类】H04M9/08, H04L7/00
【公开号】CN105516524
【申请号】CN201510971744
【发明人】陈拥权, 李建中, 郑荣稳, 鲁加旺
【申请人】合肥寰景信息技术有限公司
【公开日】2016年4月20日
【申请日】2015年12月18日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1