混音方法及设备的制作方法

文档序号:2825167阅读:324来源:国知局
专利名称:混音方法及设备的制作方法
技术领域
本发明涉及语音技术领域,尤其涉及一种混音方法及设备。
背景技术
语音混音时多媒体会议中一个重要的组成部分,目前的混音方案采用了传统的解码-混音-编码模式。然而现有的混音方法,若采用在服务器侧实现的方式,则必须要求各客户端所传送的语音数据的编解码方式、采样率和声道一致;换言之,即服务器不能对客户端发送来的各种不同编码规格、长度的数据进行混音。从而使得现有的服务器在处理混音时存在诸多的限制。

发明内容
本发明的主要目的在于公开了一种混音方法及设备,以解决现有服务器在处理混音时受诸多条件限制的缺陷。为达上述目的,本发明公开一种混音方法,包括服务器接收并解码至少两个源客户端发送的语音编码数据,解码后的数据统一为 PCM格式;所述服务器判断所有源客户端所传送的语音编码数据的采样率和声道是否与标准一致,如果不一致,基于标准采样率对与之不同的源客户端的语音数据进行重新采样,并基于标准声道对与之不同的所有源客户端的语音数据进行扩展或合并;根据时间戳对齐所述采样率和声道统一的语音数据;将对齐后的语音数据进行混音处理后发送给宿客户端。为达上述目的,本发明还公开一种服务器,用于处理多人会议中的混音,包括接收解码模块,用于接收并解码至少两个源客户端发送的语音编码数据,解码后的数据统一为PCM格式;判断模块,用于判断所有源客户端所传送的语音编码数据的采样率和声道是否与标准一致;重新采样模块,用于在所述判断模块判断源客户端的语音数据的采样率与标准采样率不一样时,基于标准采样率对与之不同的源客户端的语音数据进行重新采样;声道转换模块,用于在所述判断模块判断源客户端的语音数据的声道与标准声道不一样时,基于标准声道对与之不同的所有源客户端的语音数据进行扩展或合并;对齐模块,用于根据时间戳对齐所述采样率和声道统一的语音数据;混音模块,用于将对齐后的语音数据进行混音处理后发送给宿客户端;其中所述接收解码模块与所述判断模块及对齐模块电性连接,所述判断模块与所述对齐模块、所述声道转换模块和所述重新采样模块电性连接,所述重新采样模块与所述声道转换模块电性连接,所述对齐模块与所述混音模块、所述重新采样模块和所述声道转换模块电性连接。
与现有技术相比,本发明实施例至少具有以下优点不同客户端根据上行带宽和客户端设备编码处理能力的不同,可以选择最适合的采样规格和编码方式,从而让客户端上行的语音质量达到最佳。在混音处理时,服务器通过对不同编码类型、不同采样规格的语音数据进行整合、对齐,实现了服务器对异构语音编码数据的混音处理。


图1是本发明实施例公开的混音方法的流程图;图2是本发明实施例客户端上传语音数据的示意图;图3是本发明实施例服务器进行混音处理的方式一的示意图;图4是本发明实施例服务器进行混音处理的方式二的示意图;图5为本发明实施例公开的防溢出衰减因子的逻辑流程图;图6为本发明实施例公开的混音设备的结构图。
具体实施例方式本发明公开一种混音方法及设备。以下针对说明书附图对本发明的具体实施方式
做详细说明。实施例一本实施例公开一种混音方法,如图1所示,该方法包括步骤Si、服务器接收至少两个源客户端发送的语音编码数据。本发明中,源客户端指的是提供语音数据的客户端,即发送端;宿客户端指的是接收语音数据的客户端,即接收端;在VOIP多人会议等使用场景中,其中任一客户端既可以是源客户端,又可以是宿客户端,后续不再赘述。步骤S2、服务器将接收的编码数据统一解码为PCMbulse-codemodulation,脉冲编码调制)格式。值得注意的是,后续步骤所述的语音数据如无特殊说明,均指代解码后的PCM格式的语音数据。步骤S3、服务器判断所有源客户端所传送的语音编码数据的采样率和声道是否与标准一致。如果不一致,转步骤S4,否则,转步骤S5。步骤S4、服务器基于标准采样率对与之不同的源客户端的语音数据进行重新采样,并基于标准声道对与之不同的所有源客户端的语音数据进行扩展或合并。该步骤中,上述标准采样率可以是上述宿客户端默认的语音采样率,也可以是上述服务器统一设置的采样率,较佳的,该服务器统一设置的采样率为源客户端的最大采样率;同理,上述标准声道可以为上述宿客户端默认的声道,也可以为上述服务器统一设置的声道。本发明中,每一路(即源、宿客户端不同的)混音数据的标准采样率和标准声道可以是各自独立的,也可以是和其他任一路混音数据统一的;具体请参照后续附图4和附图3相应的文字及

,此处先不做详细说明。在该步骤中,当上述步骤S3判断任一源客户端所传送的语音数据与标准采样率和标准声道都不一致时,该服务器可以是先对该源客户端的语音数据进行重新采样后再进行声道转换,也可是先对该语音数据进行声道转换后再进行重新采样。其中,当任一源客户端的语音数据的采样率与标准采样率一致,而声道与标准声道不一致时,该服务器只需要对该源客户端的语音数据进行声道的转换处理;同理,当任一源客户端的语音数据的采样率与标准采样率不一致,而声道与标准声道一致时,该服务器只需要对该源客户端的语音数据进行重新采样处理。步骤S5、根据时间戳对齐采样率和声道统一的语音数据。步骤S6、将对齐后的语音数据进行混音处理后发送给宿客户端。如图2至图4所示,图2示出了 A、B、C、D四个用户通过各自的客户端A、B、C、D向服务器所发送的语音数据分别为16k采样率、单声道和Speex编码的语音数据;Ilk采样率、单声道和nellymoser编码的语音数据;22k采样率、双声道和mp3编码的语音数据;44k采样率、双声道和aac编码的语音数据。当服务器将各客户端所接收的数据统一转换为PCM数据后,服务器执行上述的步骤S3和步骤S4,如图3及图4所示图3示出了在服务器侧,服务器进行重新采样和声道转换的一种方式。在该方式中,该服务器所设置的标准采样率和声道统一为44k采样率和双声道,该标准与客户端D的配置方式一致,因此,服务器在数据处理时,只需要对客户端A、B、C解码后的PCM数据进行重新采样和/或声道转换。实现过程中,重新采样和声道转换的处理可以调用FFMPEG库 (项目的名称来自MPEG视频编码标准,前面的“FF“代表‘‘Fast Forward ;FFMPEG是一个开源免费跨平台的视频和音频流方案,属于自由软件,它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。)中的av_resample函数; 在该函数中,有输入采样率、输入声道和输出采样率和输出声道四个参数可设置。其中,在声道转换时,当单声道扩展为双声道时,相当于将原有的单声道PCM数据复制成两份;而在将双声道合并为单声道时,即相当于对该双声道进行混音处理。图4示出了在服务器侧,服务器进行重新采样和声道转换的另一种方式。在该方式中,该服务器所设置的标准采样率和声道为宿客户端默认的采样率和声道(即该宿客户端作为源客户端时所传送数据的采样率和声道),其中当宿客户端不一样时,与之对应的标准也不一样。在图4所示的场景中,服务器执行下述的处理将源客户端B、C、D的语音数据转换成待混音以发送给宿客户端A的1 采样率、 单声道的PCM数据;将源客户端A、C、D的语音数据转换成待混音以发送给宿客户端B的Ilk采样率、 单声道的PCM数据;将源客户端A、B、D的语音数据转换成待混音以发送给宿客户端C的2 采样率、 双声道的PCM数据;将源客户端A、B、C的语音数据转换成待混音以发送给宿客户端D的44k采样率、 双声道的PCM数据。比较图3和图4的两种方式,前者降低了服务器侧数据处理的复杂度,后者则降低了宿客户端侧数据处理的复杂度。在将源客户端的采样率和声道转换成标准的采样率和声道后,该服务器对转换后的语音数据进行对齐处理。即根据时间戳将原客户端各时间段的语音数据按秩序存入缓存中,且各个客户端的语音数据各对应一个缓存,以便于服务器在执行上述步骤S6中的混音处理时,将源客户端各缓存内同一时间段的语音数据进行叠加。其中,服务器在执行上述步骤S6的过程中,包括将客户端A、B、C对齐后的语音数据混音后发送给客户端D,将客户端A、C、D对齐后的语音数据混音后发送给客户端B,将客户端A、B、D对齐后的语音数据混音后发送给客户端C,将客户端B、C、D对齐后的语音数据混音后发送给客户端A。本实施例所述的混音方法,不同客户端根据上行带宽和客户端设备编码处理能力的不同,可以选择最适合的采样规格和编码方式,从而让客户端上行的语音质量达到最佳。 在混音处理时,服务器通过对不同编码类型、不同采样规格的语音数据进行整合、对齐,实现了服务器对异构语音编码数据的混音处理。实施例二本实施例是对上述实施例一所做的改进。即在服务器的混音处理过程中,增加了图5所示的防溢出处理。如图5所示,本实施例所公开的混音处理包括以下步骤步骤S10、将对齐后的所有源客户端的PCM数据进行叠加。步骤S20、判断叠加后的当前语音帧是否溢出。如果溢出,转下述步骤S30 ;如果不溢出(图中未示出),衰减因子为1,对当前语音帧不做衰减处理,且截止于后续开始溢出语音帧之前的一语音帧,其衰减因子都为1。步骤S30、计算当前语音帧的衰减因子,该衰减因子为溢出门限与最大溢出值的比值,并根据该衰减因子对当前的语音帧进行衰减处理。处理完成后转步骤S40。步骤S40、将上一语音帧的衰减因子与一步长(程序语言中的名词,让一个数值在每次运算中加上某个数(此即步长)重复执行此项运算。例如对参数N的某项运算,假设步长为M,对N做一次运算,然后将N+M赋值给N,再用新的N值(上一步运算中的N+M)进行一次运算,如此重复。)相加后作为下一语音帧的衰减因子。其中,当根据步长计算后的衰减因子的值大于1时,将该语音帧的衰减因子当成1处理。步骤S50、检测下一语音帧是否到来。当下一语音帧到来时,转步骤S60。步骤S60、判断叠加后的下一语音帧的PCM数据与步骤S40所确定的衰减因子之积是否溢出。如果溢出,转步骤S30 ;否则,转步骤S70。步骤S70、根据上述步骤S40所确定的衰减因子对该下一语音帧进行衰减处理。处理完成后转步骤S40,以对下下一语音帧进行衰减处理,以此类推,直至步骤S60判断存在溢出时为止。为了防止溢出,历史上曾提出过几种混音算法,比如算术平均算法,即把各个输入语音流的采样值进行算术平均,这样确实防止了溢出,但是这种算法把每个用户的语音都减小到了原始音量的1/η (η为混音用户数),如果用户的声音本来就不大,那么这个用户的语音进一步削弱以后就更听不清了。相比较之下,本实施例所公开的混音方法,在实现防溢出的同时还确保了混音后声音的质量。
实施例三与上述方法实施例一对应的,本实施例公开一种处理多人会议中的混音的服务器。如图6所示,该服务器包括接收解码模块100,用于接收并解码至少两个源客户端发送的语音编码数据,解码后的数据统一为PCM格式;判断模块200,用于判断所有源客户端所传送的语音编码数据的采样率和声道是否与标准一致;声道转换模块300,用于在判断模块200判断源客户端的语音数据的声道与标准声道不一样时,基于标准声道对与之不同的所有源客户端的语音数据进行扩展或合并;重新采样模块400,用于在判断模块200判断源客户端的语音数据的采样率与标准采样率不一样时,基于标准采样率对与之不同的源客户端的语音数据进行重新采样;对齐模块500,用于根据时间戳对齐采样率和声道统一的语音数据;混音模块600,用于将对齐后的语音数据进行混音处理后发送给宿客户端;其中接收解码模块100与判断模块200及对齐模块500电性连接,判断模块200 与对齐模块500、声道转换模块300和重新采样模块400电性连接,重新采样模块400与声道转换模块300电性连接,对齐模块500与混音模块600、重新采样模块400和声道转换模块300电性连接。根据上述的电性连接关系,当上述判断模块200判断任一源客户端所传送的语音数据与标准采样率和标准声道都不一致时,该服务器可以是先对该源客户端的语音数据进行重新采样后再进行声道转换,也可是先对该语音数据进行声道转换后再进行重新采样。 其中,当任一源客户端的语音数据的采样率与标准采样率一致,而声道与标准声道不一致时,该服务器只需要对该源客户端的语音数据进行声道的转换处理;同理,当任一源客户端的语音数据的采样率与标准采样率不一致,而声道与标准声道一致时,该服务器只需要对该源客户端的语音数据进行重新采样处理。本实施例中,上述重新采样模块400所设置的标准采样率可以为宿客户端默认的语音采样率,也可以为服务器统一设置的采样率,较佳的,该服务器统一设置的采样率为源客户端的最大采样率。同理,上述声道转换模块300所设置的标准声道可以为宿客户端默认的声道,也可以为该服务器统一设置的声道。本实施例公开的服务器,不同客户端根据上行带宽和客户端设备编码处理能力的不同,可以选择最适合的采样规格和编码方式,从而让客户端上行的语音质量达到最佳。在混音处理时,服务器通过对不同编码类型、不同采样规格的语音数据进行整合、对齐,实现了服务器对异构语音编码数据的混音处理。与上述实施例二对应的,上述混音模块600还可以进一步包括叠加单元61,用于将对齐模块500对齐后的所有源客户端的PCM数据进行叠加;第一判断单元62,用于判断叠加单元61叠加后的当前语音帧是否溢出;第一衰减因子计算单元63,用于在第一判断模块62判断存在叠加后溢出时,根据溢出门限与最大溢出值的比值计算衰减因子;第二衰减因子计算单元64,用于按步长递增第一衰减因子计算单元63所计算出的衰减因子,当递增后的衰减因子大于1时,将该语音帧的衰减因子当成1处理;
第二判断单元65,用于判断以第二衰减因子计算单元64所计算出的衰减因子对与之对应的叠加后的语音帧进行衰减后是否溢出,如果溢出,指令第一衰减因子计算单元和第二衰减因子计算单元重新计算衰减因子;衰减单元66,用于根据第一衰减处理单元63计算得出的衰减因子对叠加后溢出的语音帧进行衰减处理,或者根据第二衰减因子计算单元64计算得出的衰减因子对第二判断单元65判断不存在溢出的语音帧进行衰减处理。在上述混音模块600的作用下,实现了在防溢出的同时还确保了混音后声音的质量。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1.一种混音方法,其特征在于,包括服务器接收并解码至少两个源客户端发送的语音编码数据,解码后的数据统一为PCM 格式;所述服务器判断所有源客户端所传送的语音编码数据的采样率和声道是否与标准一致,如果不一致,基于标准采样率对与之不同的源客户端的语音数据进行重新采样,并基于标准声道对与之不同的所有源客户端的语音数据进行扩展或合并; 根据时间戳对齐所述采样率和声道统一的语音数据; 将对齐后的语音数据进行混音处理后发送给宿客户端。
2.根据权利要求1所述的混音方法,其特征在于,所述服务器在处理混音时,包括 将对齐后的所有源客户端的PCM数据进行叠加;判断当前语音帧叠加后的数据是否溢出,如果溢出,计算本次语音帧的衰减因子,所述衰减因子为溢出门限与最大溢出值的比值,并根据该衰减因子对当前的语音帧进行衰减处理;将上述语音帧的衰减因子与一步长相加后作为下一语音帧的衰减因子; 当处理下一语音帧的混音时,判断下一语音帧的叠加后的PCM数据与其对应的衰减因子之积是否溢出,如果溢出,重新根据溢出门限与最大溢出值的比值计算衰减因子,否则, 将所述下一语音帧的衰减因子与一步长相加后作为下下一语音帧的衰减因子,以此类推, 直至存在溢出时,再根据溢出门限与当前的最大溢出值的比值重新计算衰减因子;其中,上述衰减因子的值小于或等于1,当根据步长计算后的值大于1时,将该语音帧的衰减因子当成1处理。
3.根据权利要求1或2所述的混音方法,其特征在于,所述标准采样率为所述宿客户端默认的语音采样率,或为所述服务器统一设置的采样率;以及所述标准声道为所述宿客户端默认的声道,或者为所述服务器统一设置的声道。
4.根据权利要求3所述的混音方法,其特征在于,所述服务器统一设置的标准采样率为所有源客户端的最大采样率,所述服务器统一设置的标准声道数为所述源客户端的最大声道。
5.一种服务器,用于处理多人会议中的混音,其特征在于,包括接收解码模块,用于接收并解码至少两个源客户端发送的语音编码数据,解码后的数据统一为PCM格式;判断模块,用于判断所有源客户端所传送的语音编码数据的采样率和声道是否与标准一致;重新采样模块,用于在所述判断模块判断源客户端的语音数据的采样率与标准采样率不一样时,基于标准采样率对与之不同的源客户端的语音数据进行重新采样;声道转换模块,用于在所述判断模块判断源客户端的语音数据的声道与标准声道不一样时,基于标准声道对与之不同的所有源客户端的语音数据进行扩展或合并; 对齐模块,用于根据时间戳对齐所述采样率和声道统一的语音数据; 混音模块,用于将对齐后的语音数据进行混音处理后发送给宿客户端; 其中所述接收解码模块与所述判断模块及对齐模块电性连接,所述判断模块与所述对齐模块、所述声道转换模块和所述重新采样模块电性连接,所述重新采样模块与所述声道转换模块电性连接,所述对齐模块与所述混音模块、所述重新采样模块和所述声道转换模块电性连接。
6.根据权利要求5所述的服务器,其特征在于,所述混音模块包括叠加单元,用于将所述对齐模块对齐后的所有源客户端的PCM数据进行叠加;第一判断单元,用于判断所述叠加单元叠加后的语音帧是否溢出;第一衰减因子计算单元,用于在所述第一判断模块判断存在叠加后溢出时,根据溢出门限与最大溢出值的比值计算衰减因子;第二衰减因子计算单元,用于按步长递增所述第一衰减因子计算单元所计算出的衰减因子,当递增后的衰减因子大于1时,将该语音帧的衰减因子当成1处理;第二判断单元,用于判断以所述第二衰减因子计算单元所计算出的衰减因子对与之对应的叠加后的语音帧进行衰减后是否溢出,如果溢出,指令所述第一衰减因子计算单元和第二衰减因子计算单元重新计算衰减因子;衰减单元,用于根据第一衰减处理单元计算得出的衰减因子对叠加后溢出的语音帧进行衰减处理,或者根据第二衰减因子计算单元计算得出的衰减因子对所述第二判断单元判断不存在溢出的语音帧进行衰减处理;其中所述叠加单元与所述第一判断单元电性连接,所述第一判断单元与所述第一衰减因子计算单元电性连接,所述第一衰减因子计算单元与所述衰减单元和所述第二衰减因子计算单元电性连接,所述第二衰减因子计算单元与所述第二判断单元和所述衰减单元电性连接,所述第二判断单元也与所述衰减单元电性连接。
7.根据权利要求5或6所述的服务器,其特征在于,所述重新采样模块所设置的标准采样率为所述宿客户端默认的语音采样率,或为所述服务器统一设置的采样率;以及所述声道转换模块所设置的标准声道为所述宿客户端默认的声道,或者为所述服务器统一设置的声道。
8.根据权利要求7所述的服务器,其特征在于,所述服务器统一设置的采样率为所述源客户端的最大采样率。
9.根据权利要求7所述的服务器,其特征在于,所述服务器统一设置的标准声道数为所述源客户端的最大声道。
10.根据权利要求8所述的服务器,其特征在于,所述服务器统一设置的标准声道数为所述源客户端的最大声道。
全文摘要
本发明公开了一种混音方法及设备,以解决现有服务器在处理混音时受诸多条件限制的缺陷。本发明公开的混音方法包括服务器接收并解码至少两个源客户端发送的语音编码数据,解码后的数据统一为PCM格式;所述服务器判断所有源客户端所传送的语音编码数据的采样率和声道是否与标准一致,如果不一致,基于标准采样率对与之不同的源客户端的语音数据进行重新采样,并基于标准声道对与之不同的所有源客户端的语音数据进行扩展或合并;根据时间戳对齐所述采样率和声道统一的语音数据;将对齐后的语音数据进行混音处理后发送给宿客户端。本发明公开的技术方案可以广泛应用于VOIP多人会议中。
文档编号G10L19/00GK102226944SQ20111013635
公开日2011年10月26日 申请日期2011年5月25日 优先权日2011年5月25日
发明者周平, 晏利平, 李晓鹏, 李锐, 潘年华, 王伟, 王海, 胡海, 黄国宏 申请人:贵阳朗玛信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1