一种网络语音同步消噪通讯装置的制造方法

文档序号:9828419阅读:691来源:国知局
一种网络语音同步消噪通讯装置的制造方法
【技术领域】
[0001] 本发明涉及通信技术领域,尤其涉及一种网络语音同步消噪通讯装置。
【背景技术】
[0002] 随着科学技术的不断发展,人们对生活的要求越来越高,相互之间的联系更是频 繁,伴随着android系统和4G网络的广泛应用,android系统上的网络语音通话越来越普遍, 人们可以通过以太网进行正常的语音对讲通讯,而免费、方便、清晰、流畅的通话系统是当 今网络语音通话发展的一个方向。目前android系统上有一些较成熟的应用,能够满足对讲 要求,但基本上都是收费的,而且很少能够做到实时、无噪声、流畅的通话,用户体验不是非 常满意,能够满足这些要求的一般通过硬件来处理,但这种方式不通用,也增加了成本。
[0003] 网络语音通讯系统,能够在两台或者多台设备之间通过以太网进行正常的语音对 讲。网络语音通讯系统分为发送端和接收端,在发送端,音频录制模块通过MIC将声音转为 pcm音频流,送入编码模块压缩音频数据,最后通过网络将编码后的数据发送出去;在接收 端,通过接收模块获取编码的音频数据,送入解码模块,还原音频流数据,最后送入播放模 块将接收到的音频流播放出来。在实际的使用过程中,网络语音通讯会产生回声,而且会有 延时,造成通话质量不高。

【发明内容】

[0004] 有鉴于此,本发明要解决的技术问题是提供一种网络语音同步消噪通讯装置,以 解决网络语音对讲中的回声造成通话质量不高的问题。
[0005] 本发明解决上述技术问题所采用的技术方案如下:一种网络语音同步消噪通讯装 置,该装置包括同步模块、回声消除模块、音频编码模块以及发送模块,其中:
[0006] 同步模块,用于对本地录制的音频流和对端发送的音频流进行数据同步;
[0007] 回声消除模块,将对端发送的音频流作为参考音频流对本地录制的音频流中的回 声进行过滤;
[0008] 音频编码模块,用于对过滤后的音频流进行编码压缩;
[0009]发送模块,用于将编码压缩的音频流通过网络进行发送。
[0010]优选地,同步模块包括录制缓冲区、参考缓冲区和数据同步单元,其中:
[0011]录制缓冲区,用于对本地录制的音频流进行缓存;
[0012] 参考缓冲区,用于对参考音频流进行缓存;
[0013] 数据同步单元,用于当参考缓冲区接收到数据时,对本地录制的音频流和参考音 频流进行数据同步。
[0014] 优选地,回声消除模块具体用于:根据预设的固定间隔的时间段,检查对端发送的 音频流的帧数据,当帧数据小于speex算法预定的缓冲值时,通过speex算法将本地录制的 音频流中的回声进行过滤;当对端发送的音频流的帧数据大于speex算法预定的缓冲值时, 则丢弃部分帧数据。
[0015] 优选地,音频编码模块具体用于:对过滤后的音频流逐帧进行缓存和编码压缩。
[0016] 本发明的优点在于:本发明实施例的装置,对本地录制的音频流和对端发送的音 频流进行数据同步,将对端发送的音频流作为过滤回声的参考音频,优化了编解码并消除 了回声,提高了网络语音的对讲通话质量。
【附图说明】
[0017] 图1是相关技术中回音产生的原理示意图;
[0018] 图2是本发明实施例提供的一种网络语音对讲方法流程图。
[0019]图3是本发明实施例在应用层调用speex算法接口函数示意图;
[0020] 图4是本发明实施例提供的一种网络语音对讲方法的具体流程图。
[0021] 图5是本发明实施例提供的一种网络语音同步消噪通讯装置的模块结构图。
[0022] 图6是本发明实施例提供的一种网络语音对讲系统的结构示意图。
【具体实施方式】
[0023] 为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结 合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅 用以解释本发明,并不用于限定本发明。
[0024] 在网络语音对讲中,影响通话质量的主要是回音和延时。请参与图1,在A端,人声a 通过麦克风b录入,喇机c播放B端传输过来的声音,c播放的一部分声音e也被麦克风b录入, 声音e就是回声,这样声音e和声音a都被传输到了 B端,喇叭j播放的声音就包括了人声a和 声音e,而声音e是由B端传输过来的,所以B端播放的声音能够听到自己的声音e,同理,在A 端也能够听到自己的声音h。根据这个原理可知,回音消除就是在麦克风录制之后滤除掉图 1中的声音e和声音h。根据回音产生的原理,消除回音将播放的对端音频流作为参考音频, 将麦克风录制的音频流中回声那部分通过一定算法(例如speex算法)滤除掉。但是如果参 考的音频不正确,就难以滤除回声。
[0025] 如图2所示是本发明实施例提供的一种网络语音对讲的方法,该方法包括:
[0026] S201、对本地录制的音频流和对端发送的音频流进行数据同步;
[0027] 优选地,本步骤可以通过以下方式实现:
[0028] 设置用于对本地录制的音频流进行缓存的录制缓冲区,以及对参考音频流进行缓 存的参考缓冲区;当参考缓冲区接收到数据时,对所本地录制的音频流和参考音频流进行 数据同步。录制缓冲区能够对N帧录制的音频流数据进行缓存,参考缓冲区能够对M帧参考 音频流的数据进行缓存;其中M>N,且M和N为自然数。
[0029] S202、将对端发送的音频流作为参考音频流对本地录制的音频流中的回声进行过 滤;
[0030] S203、对过滤后的音频流进行编码压缩并通过网络进行发送;
[0031] 优选地,本步骤可以对过滤后的音频流逐帧进行缓存和编码压缩。编码压缩后的 音频流用于对端接收并还原进行播放。
[0032]具体来说,设置录制音频流的缓冲区和存放对端音频流的缓冲区,同时都有接收 到数据时,进行数据同步。即当录制的音频流的缓冲区接收到数据,且存放播放的对端音频 流的缓冲区接收到数据时,可认为此时的数据是同步的,采用此时的对端音频流作为参考 音频。在实际应用中,当录制的音频流的缓冲区接收到N帧数据,且播放的对端音频流的缓 冲区接收到N+1帧数据时,效果较好。其中,帧数据与编码采样率成正比,例如:若编码采样 率为8KB,一帧大小为160字节;若采样率为16KB,一帧大小为320字节;若采样率为32KB,一 帧大小为640字节。
[0033]优选地,本发明实施例中的回声消除可采用一定算法的过滤,例如speex算法。由 于本地录制的音频流是均匀稳定的,而网络传送过来的远端音频流的速度是不稳定的,可 每间隔固定的时间段,检查作为参考音频的对端发送的音频流的帧数据大小,如果大于 speex算法预定的缓冲值,则丢弃部分,以更好的选择参考音频;如果小于speex算法预定的 缓冲值,贝1J可以采用speex算法进行回声过滤。
[0034]由于音频的编码需要一段时间,按照8K采样,每帧160字节,编码需要大约20ms左 右的时间,压缩音频数据与回音消除同步可减少延迟。可通过将缓存的一帧过滤后的音频 流数据完成编码压缩后,再缓存新的一帧过滤后的音频流数据的方式来减少延迟。
[0035]以下以基于android平台,采用开源的speex算法做回音消除和音频编解码来进一 步阐述本发明。Speex算法是专门针对音频的编解码的算法,该算法也在不断的更新,现在 已经有了回音消除模块,经过实践证明,speex可以较好的实现音频编解码和消除回声。 [00 36]请参阅图3, java应用层获取speex库函数的方法,由于spe
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1