语音信号的混音方法和装置制造方法及图纸

技术编号:5200606 阅读:387 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种混音方法和一种混音装置,所述方法包括:设置混音时长,所述混音时长小于预设的人耳可承受语音延时对应的混音时长边界值,且大于各参混码流的帧长最大者;对于帧长与混音时长不存在整数倍关系的码流,根据动态拼包原则进行拼包处理,动态拼包原则为:针对同一终端本次参混后产生的码流,令n个拼包所包含的语音时长大于或等于混音时长与n的乘积。使用本发明专利技术能够减少混音引入的系统时延,提高视频会议系统的实时性。

【技术实现步骤摘要】

本专利技术涉及语音信号处理技术,具体涉及语音信号的混音方法和装置
技术介绍
随着电信技术的发展,视频会议业务得到了越来越广泛的应用,视频会议系统中 一般包括用于会议控制的多点控制单元(MCU)和至少一个视频会议终端(简称终端)。通 常,目前的视频会议系统中终端通常都不止两个,其中一个终端的语音都可以传送至所有 其他终端,而每一个终端都同时可听到多个其他终端的声音。因此在视频会议系统中通常 都需要进行混音处理,即将多个终端的语音混合起来,以便任一终端都可同时听到其他终 端的声音。图1为MCU中一种混音单元的结构示意图。如图1所示,接口与MCU的上层单元 相连,MCU从网络上接收各路视频会议终端的码流,经上层处理后,通过接口下发到混音单 元,混音单元分别对各路码流进行拼包处理,每个语音包包含整数个语音帧,且每个语音包 所含语音帧的时长总和等于混音时长。例如,码流A的帧长为30ms,混音时长为60ms,则一 个语音包含有2个码流A的语音帧。然后,根据码流协议调用相应解码器对语音包进行解码,依据语音包所属终端,将 解码语音包分别缓存到各终端对应的输入缓存通道中。如图1所示,假设当前4个终端 (A D)中有3个终端(A C)参加混音,则输入缓存通道inChl、inCh2、inCh3中分别缓 存终端A、B、C的解码语音包。每隔一段时间间隔更新输入缓存通道中的数据,该时间间隔 等于混音时长。各输入缓存通道的长度通常设置为相等且每个输入缓存通道能够容纳一个 混音时长的语音数据。接着,混音单元从各输入缓存通道中取得解码语音包进行混音操作。对于参加混 音的每个参混终端,例如终端1来说,在混音时,需要将除终端1之外的其他几路语音混音, 得到非全混语音数据,从而使得终端1不听到自身会场的声音。同时,混音单元还需要将所 有参混终端的语音混音,得到全混语音数据,该全混语音数据提供给非参混终端,使其听到 所有参混终端所在会场的声音。如图1所示,对于终端A,混合终端B和C的语音数据,缓存 到输出缓存通道outChl,对于终端B,混合终端A和C的语音数据,缓存到outCh2,依此类 推;此外,还需混合终端A、B和C的语音数据,缓存到通道outChN+Ι中。之后,混音单元根据各终端(包括参混终端和非参混终端)采用的码流协议调用 相应编码器,对缓存在各输出缓存通道中的语音数据进行编码组包处理,得到的编码组包 包含整数倍帧长的混音数据,将编码组包通过接口发送给上层单元。如图1所示,OUtChl中 的语音数据经编码组包后发送给终端A ;outCh2中的语音数据经编码组包后发送给终端B, 依此类推;此外,outChN+Ι中的语音数据经编码组包后发送给非参混终端D。在上述混音过程中,为了保证混音效果,需要在拼包时保证各路语音包在时间上 对齐,从而确保后续执行混音操作是对同一时间段内的各路语音包进行混音。目前音频领域存在多种码流协议,如g. 711、g. 722、g. 723、g. 728、g. 729、g. 722. 1以及其它非G系列的音频协议,如动态图像专家组(MPGE,MovingPictures Experts Group) 系列。不同音频协议对应的语音帧长度可能不同,例如G系列的音频协议,其语音帧长度为 IOms或20ms或30ms,而mpeg系列音频协议的音频帧为2%is。由于在现有技术中,混音时长需要是帧长整数倍才能保证时间对齐,因此,如果各 视频会议终端采用相同的码流协议,则比较好处理,混音长度可以固定为音频帧的整数倍。 例如帧长均为10ms,则混音长度可以取60ms。如果各视频会议采用不同的码流协议,但不同码流协议对应的帧长存在匹配关 系,即各码流的帧长成整数倍关系,则可以采用最长的帧长或最长帧长的整数倍作为混音 时长。例如,码流A的帧长为10ms,码流B的帧长为30ms,则混音长度可以取30ms,或者 30ms的整数倍,例如60ms。图2示出了采用60ms作为混音时长时,码流A的拼包结果和码 流B的拼包结果。如果各视频会议不仅采用不同码流协议,且不同码流协议对应的帧长不存在匹配 关系,则通常的作法是,取各路码流帧长的最小公倍数作为混音时长。例如,码流A的帧长 为2%is,码流B的帧长为30ms,则按照最小公倍数关系,混音长度取120ms。在实际中,为了 使人耳感觉不到明显的延时,一般混音时长选择小于100ms,显然120ms不能满足要求,混 音效果不好,听者会感觉到明显延时,同时由于混音时长过长使得一次解码、混音和编码的 时间过长,从而消耗较多的系统资源,可能导致芯片性能不足。可见,现有技术在各路码流的帧长存在非匹配关系时,采用各路码流帧长的最小 公倍数作为混音长度,可能会向视频会议系统引入较大的系统时延,有时甚至是不可接受 的,从而无法保证视频会议系统的实时性。
技术实现思路
有鉴于此,本专利技术提供了一种混音方法,在各路码流的帧长存在非匹配关系时,能 够减少混音引入的系统时延,提高视频会议系统的实时性。该方法包括确定混音时长,所述混音时长小于预设的人耳可承受语音延时对应 的混音时长边界值,且大于各参混码流的帧长最大者;混音过程包括对各参混终端的码流进行拼包处理;所述拼包步骤包括对于帧长与混音时长不 存在整数倍关系的码流,以帧长的整数倍为拼包单位进行动态拼包处理;具体动态拼包原 则为针对同一终端本次参混后产生的码流,如果能够满足第i个拼包所包含的语音时长 与该码流前i-Ι个拼包所包含的语音时长之和Σ tpb等于混音时长与i的乘积Σ thy的条件, 则按照Σ tpb =Σ thy的关系构造第i个拼包;否则,按照Σ tpb >Σ、且I Σ tpb- Σ thy 小于该码流的一个帧长的关系构造第i个拼包;调用解码器对拼包后的码流进行解码,将解码获得的语音数据放入各参混终端对 应的输入缓存通道;每个输入缓存通道的容量大于或等于一个混音时长的数据量,且能够 容纳下任意一个拼包;从各输入缓存通道分别读取一个混音时长的语音数据进行混音处理,将混音得到 的混音数据分别存入各终端对应的输出缓存通道;每个输出缓存通道的容量大于或等于一 个混音时长的数据量,且能够容纳下任意一个拼包;调用编码器对各输出缓存通道中的混音数据进行编码组包处理;所述编码组包步 骤包括对于帧长与设定的混音时长不存在整数倍关系的码流,以帧长的整数倍为组包单 位进行动态编码组包处理;具体动态编码组包原则为针对同一终端本次参混后产生的码 流,如果能够满足第i个编码组包所包含的语音时长与该码流前i-Ι个编码组包所包含的 语音时长之和Σ tzb大于混音时长与i的乘积Σ thy的条件,则按照Σ tzb =Σ thy的关系构 造第i个编码组包;否则,按照Σ tzb <Σ、且I Σ tzb- Σ thy|小于该码流的一个帧长的 关系构造第i个编码组包。较佳地,所述混音时长尽可能多的与各参混终端所采用码流的帧长成整倍数关 系。其中,当参混终端中包括采用G系列码流协议和MPEG系列码流协议的终端时,所 述混音时长取60ms。其中,所述解码步骤包括每个输入缓存通道为一个解码缓存区;一个解码缓存 区容纳两个混音时长的语音数据;在开始向一解码缓存区存储相应码流的拼包时,初始化解本文档来自技高网
...

【技术保护点】
一种语音信号的混音方法,其特征在于,确定混音时长,所述混音时长小于预设的人耳可承受语音延时对应的混音时长边界值,且大于各参混码流的帧长最大者;混音过程包括:对各参混终端的码流进行拼包处理;所述拼包步骤包括:对于帧长与混音时长不存在整数倍关系的码流,以帧长的整数倍为拼包单位进行动态拼包处理;具体动态拼包原则为:针对同一终端本次参混后产生的码流,如果能够满足第i个拼包所包含的语音时长与该码流前i-1个拼包所包含的语音时长之和∑t↓[pb]等于混音时长与i的乘积∑t↓[hy]的条件,则按照∑t↓[pb]=∑t↓[hy]的关系构造第i个拼包;否则,按照∑t↓[pb]>∑t↓[hy]且|∑t↓[pb]-∑t↓[hy]|小于该码流的一个帧长的关系构造第i个拼包;调用解码器对拼包后的码流进行解码,将解码获得的语音数据放入各参混终端对应的输入缓存通道;每个输入缓存通道的容量大于或等于一个混音时长的数据量,且能够容纳下任意一个拼包;从各输入缓存通道分别读取一个混音时长的语音数据进行混音处理,将混音得到的混音数据分别存入各终端对应的输出缓存通道;每个输出缓存通道的容量大于或等于一个混音时长的数据量,且能够容纳下任意一个拼包;调用编码器对各输出缓存通道中的混音数据进行编码组包处理;所述编码组包步骤包括:对于帧长与设定的混音时长不存在整数倍关系的码流,以帧长的整数倍为组包单位进行动态编码组包处理;具体动态编码组包原则为:针对同一终端本次参混后产生的码流,如果能够满足第i个编码组包所包含的语音时长与该码流前i-1个编码组包所包含的语音时长之和∑t↓[zb]大于混音时长与i的乘积∑t↓[hy]的条件,则按照∑t↓[zb]=∑t↓[hy]的关系构造第i个编码组包;否则,按照∑t↓[zb]<∑t↓[hy]且|∑t↓[zb]-∑t↓[hy]|小于该码流的一个帧长的关系构造第i个编码组包。...

【技术特征摘要】
1.一种语音信号的混音方法,其特征在于,确定混音时长,所述混音时长小于预设的人 耳可承受语音延时对应的混音时长边界值,且大于各参混码流的帧长最大者;混音过程包括对各参混终端的码流进行拼包处理;所述拼包步骤包括对于帧长与混音时长不存在 整数倍关系的码流,以帧长的整数倍为拼包单位进行动态拼包处理;具体动态拼包原则为 针对同一终端本次参混后产生的码流,如果能够满足第i个拼包所包含的语音时长与该码 流前i_l个拼包所包含的语音时长之和Σ tpb等于混音时长与i的乘积Σ thy的条件,则按 照Σ tpb =Σ thy的关系构造第i个拼包;否则,按照Σ tpb >Σ、且I Σ tpb- Σ thy|小于 该码流的一个帧长的关系构造第i个拼包;调用解码器对拼包后的码流进行解码,将解码获得的语音数据放入各参混终端对应的 输入缓存通道;每个输入缓存通道的容量大于或等于一个混音时长的数据量,且能够容纳 下任意一个拼包;从各输入缓存通道分别读取一个混音时长的语音数据进行混音处理,将混音得到的混 音数据分别存入各终端对应的输出缓存通道;每个输出缓存通道的容量大于或等于一个混 音时长的数据量,且能够容纳下任意一个拼包;调用编码器对各输出缓存通道中的混音数据进行编码组包处理;所述编码组包步骤包 括对于帧长与设定的混音时长不存在整数倍关系的码流,以帧长的整数倍为组包单位进 行动态编码组包处理;具体动态编码组包原则为针对同一终端本次参混后产生的码流, 如果能够满足第i个编码组包所包含的语音时长与该码流前i_l个编码组包所包含的语音 时长之和Σ tzb大于混音时长与i的乘积Σ thy的条件,则按照Σ tzb =Σ thy的关系构造第 i个编码组包;否则,按照Σ tzb<E、且I Σ tzb-E thy小于该码流的一个帧长的关系构 造第i个编码组包。2.如权利要求1所述的方法,其特征在于,所述混音时长尽可能多的与各参混终端所 采用码流的帧长成整倍数关系。3.如权利要求2所述的方法,其特征在于,当参混终端中包括采用G系列码流协议和 MPEG系列码流协议的终端时,所述混音时长取60ms。4.如权利要求1所述的方法,其特征在于,所述解码步骤包括每个输入缓存通道为一 个解码缓存区;一个解码缓存区容纳两个混音时长的语音数据;在开始向一解码缓存区存储相应码流的拼包时,初始化解码缓存区,将相应码流的第1 个拼包作为有效码流保存到解码缓存区,并记录有效码流的起始地址和结束地址;后续拼 包以有效码流的结束地址为起点存放,并更新有效码流的结束地址;如果解码缓冲区满,则 循环存放;每次进行混音时,从有效码流的起始地址读取一个混音时长的语音数据,被读取 的语音数据变为无效码流,更新有效码流的起始地址。5.如权利要求4所述的方法,其特征在于,每个输出缓存通道包括两个混音输出缓存 区;每个混音输出缓存区容纳一个混音时长的语音数据;混音后输出的混音数据交替存放在两个混音输出缓存区内;进行编码时,从两个混音 输出缓存区交替读取一个混音时长的混音数据。6.如权利要求5所述的方法,其特征在于,将语音数据存入解码缓存区之前,进一步包 括当参混终端切换时,如果出现终端切换的解码缓存区中存在切换前终端的残留语音数据,则先初始化存在残留数据的解码缓存区,再存入切换后终端的解码数据;所述编码组包步骤进一步包括当参混终端切换时,对于切换的终端,如果切换前对应 的混音输出缓存区中存在残留语音数据,则执行以下步骤A和B之一A、丢弃所述残留数据,并在编码组包时,在所述残留语音数据的时间段补充静音包,再 进行编码组包处理;B、将所述残留数据和切换后对应的混音输出缓存区中的语音数据拼接,再进行编码组 包处理。7.如权利要求1所述的方法,其特征在于,所述拼包步骤进一步包括对于帧长与设定 的混音时长存在整数倍关系的码流,以混音时长为单位进行拼包处理,得到的每个语音包 包含一个混音时长的语音数据;所述编码组包步骤进一步包括对于帧长与...

【专利技术属性】
技术研发人员:毕永建邓凌
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1