一种语音混音处理方法及装置\n技术领域\n[0001] 本发明涉及音频处理技术领域,尤其涉及一种语音混音处理方法及装置。\n背景技术\n[0002] 近年来,随着通信网络技术的迅速发展,在线教育受到越来越多的关注,人们逐渐习惯从网络上获取知识,互联网教育整合了更多优秀教学资源,将资源分配到世界各个角落,对促进知识传播、教育公平起到推进作用。因此,促进互联网教育的配套软硬件设施成为重要的研究内容。在互联网教育中,音视频教育是即时教育的必须部分,尤其是语音,不论是一对一还是一对多教学,都会涉及到多人同时通话,也就是说,所有通话者的语音信号都可以被传送到其他通话方,而每一个通话者也都能够同时听到多个其他通话方的声音。\n这样一来,在教学中就需要进行混音处理,使得网络课堂上所有人都可同时听到当前所有通话者的声音。\n[0003] 传统的混音方法是将正在讲话的通话者的所有语音信号线性叠加,然后取平均值。这样做的缺点是,叠加后的音频流可能会溢出,产生噪音,溢出的音频部分则需要进行滤波处理,这种方法虽然简单高效,但存在两方面的问题,首先是声音范围的最大值和最小值部分波形会被强行切断,造成较大波形失真,听觉上引起嘈杂,容易出现刺耳的爆破音,而随着同时通话者的人数增加,音频溢出的频率增大,采用这种叠加方式的混音一般不能突破4路输入音频流的限制,否则无法分辨出语音内容。其次,多路输入音频中音频流的能量强弱不同,由于人耳的掩蔽域效应,使得能量强的语音信号与能量弱的语音信号同时存在时,能量弱的语音信号无法被人耳有效识别,因此,在实际的多人语音应用中,当多个人同时发言时,通常只有少数音量大的语音可以被人耳有效识别。\n[0004] 本发明的发明人发现,在实际的大规模直播教学系统中,通常包括教师、助教、参与人和听众。其中,教师是一直发言、教师的话是需要一直保留的,而助教是偶尔插话,但助教的话也是需要一直保留的。参与人最好的情况则是需要发言的时候才让播放出来,不发言的时候则不进行处理。同时也要考虑一种“重叠”的情况,即多人同时发言。\n[0005] 采用目前的混音处理方法对大规模直播教学系统中的语音进行处理时,通常有以下缺点:\n[0006] 教学过程中,教师和助教的声音会起到提示或引导性作用,他们的声音应该确保被课堂上所有的听众清楚听到,因此更加重要,但是,采用目前的混音处理方法,在混音后,无法保证教师和助教的声音被听众接收到,造成语音信号的丢失。\n发明内容\n[0007] 本发明实施例提供一种语音混音处理方法及装置,用于实现对基于语音属性的语音的混音处理。\n[0008] 一种语音混音处理方法,包括以下步骤:\n[0009] 对接收到的语音信号进行解析,获得所述语音信号的信息,所述信息中包含所述语音信号的用户信息;\n[0010] 将所述语音信号的用户信息与预设的用户信息对比,并将与所述预设的用户信息一致的用户信息所对应的语音信号确定为待混音的语音信号;\n[0011] 对所述待混音的语音信号进行混音处理。\n[0012] 本发明实施例的一些有益效果可以包括:实现了多路混音系统中对语音信号进行混音的效果,预设用户为重要发言人,且要对预设用户进行优先混音处理,通过将重要发言人作为高优先级预先设定,并将预设的用户的发言内容通过混音处理清晰地播放出来,从而保证重要信息被多个用户同时听到。\n[0013] 所述语音信号的信息包括:用户信息、能量值以及数据内容,所述用户信息包括用户身份标识ID、用户角色和用户发言次数。\n[0014] 本发明实施例的一些有益效果可以包括:根据语音信号的信息所包含的信息内容确定需要进行混音处理的语音信号,从而对重要发言人的发言内容进行混音,确保重要信息被多个用户同时听到。\n[0015] 所述将所述语音信号的用户信息与预设的用户信息对比,并将与所述预设的用户信息一致的用户信息所对应的语音信号确定为待混音的语音信号,包括:\n[0016] 将所述语音信号的用户身份标识ID与预设的用户身份标识ID对比,并将与所述预设的用户身份标识ID一致的用户身份标识ID所对应的语音信号确定为待混音的语音信号;\n或\n[0017] 将所述语音信号的用户角色与预设的用户角色对比,并将与所述预设的用户角色一致的用户角色所对应的语音信号确定为待混音的语音信号。\n[0018] 本发明实施例的一些有益效果可以包括:将语音信号的用户身份标识ID或者用户角色与预设的用户身份标识ID或用户角色进行对比,准确地判断所接收到的语音信号是否为预设用户的语音信号,若语音信号的用户ID或者用户角色与预设的用户ID或用户角色一致,则说明该语音信号为预设用户的语音信号,通过确定预设用户的语音信号,可将重要的语音信号作为高优先级进行混音,进而保证重要的信息被多个用户同时听到。\n[0019] 所述将所述语音信号的用户信息与预设的用户信息对比,并将与所述预设的用户信息一致的用户信息所对应的语音信号确定为待混音的语音信号,还包括:\n[0020] 当所述语音信号的用户身份标识ID与预设的用户身份标识ID不一致,或所述语音信号的用户角色与预设的用户角色不一致时,根据解析后获得的所述语音信号的用户发言次数选择语音信号;\n[0021] 将选择的语音信号确定为待混音的语音信号。\n[0022] 本发明实施例的一些有益效果可以包括:根据用户发言次数将不经常说话的人作为优先级别,即使发言人偶尔插话,也能保证语音信息不被丢失,发言内容被听众清楚听到。\n[0023] 所述对所述待混音的语音信号进行混音处理包括:\n[0024] 对所述待混音的语音信号进行归一化处理;\n[0025] 计算归一化后语音信号的动态因子;\n[0026] 根据所述动态因子对所述语音信号进行混音计算。\n[0027] 本发明实施例的一些有益效果可以包括:根据语音信号的能量值及属性来进行混音,将语音信号归一化,从而获得稳定的音量,避免出现信号溢出导致的噪音和刺耳声音,进一步改善听觉效果。\n[0028] 所述计算归一化后语音信号的动态因子包括:\n[0029] 根据下列公式计算归一化后语音信号的动态因子:\n[0030] r=(1-Ai.energy_Normalization)/p,\n[0031] 其中,r为所述语音信号归一化后的动态因子,Ai.energy_Normalization为第i个用户的语音信号归一化后的能量值,p为所述待混音的语音信号的个数。\n[0032] 本发明实施例的一些有益效果可以包括:根据语音信号归一化后的动态因子,对语音信号进行混音计算,从而获取稳定的音量,改善听觉效果。\n[0033] 所述根据所述动态因子对所述语音信号进行混音计算包括:\n[0034] 根据下列公式对所述语音信号进行混音计算:\n[0035]\n[0036] 其中,Ai.data为第i个用户的语音信号的的数据内容,n为所述接收到的语音信号的个数。\n[0037] 本发明实施例的一些有益效果可以包括:对特定角色及不经常说话的发言人的语音内容进行混音处理,保证重要的语言信息不被丢失,且获得稳定的音量。\n[0038] 一种语音混音处理装置,包括:\n[0039] 接收模块,用于对接收到的语音信号进行解析,获得所述语音信号的信息,所述信息中包含所述语音信号的用户信息;\n[0040] 对比模块,用于将所述语音信号的用户信息与预设的用户信息对比;\n[0041] 确定模块,用于将与所述预设的用户信息一致的用户信息所对应的语音信号确定为待混音的语音信号;\n[0042] 处理模块,用于对所述待混音的语音信号进行混音处理。\n[0043] 所述接收模块,用于接收所述语音信号的用户信息、能量值以及数据内容,所述用户信息包括用户身份标识ID、用户角色和用户发言次数。\n[0044] 所述对比模块,用于将所述语音信号的用户身份标识ID与预设的用户身份标识ID对比,或将所述语音信号的用户角色与预设的用户角色对比;\n[0045] 所述确定模块,用于将与所述预设的用户身份标识ID一致的用户身份标识ID所对应的语音信号确定为待混音的语音信号,或将与所述预设的用户角色一致的用户角色所对应的语音信号确定为待混音的语音信号。\n[0046] 所述对比模块,还用于当所述语音信号的用户身份标识ID与预设的用户身份标识ID不一致,或所述语音信号的用户角色与预设的用户角色不一致时,根据解析后获得的所述语音信号的用户发言次数选择语音信号;\n[0047] 所述确定模块,用于将选择的语音信号确定为待混音的语音信号。\n[0048] 所述处理模块包括:\n[0049] 归一化单元,用于对所述待混音的语音信号进行归一化处理;\n[0050] 动态因子计算单元,用于计算归一化后语音信号的动态因子;\n[0051] 混音计算单元,用于根据所述动态因子对所述语音信号进行混音计算。\n[0052] 所述动态因子计算单元根据下列公式计算归一化后语音信号的动态因子:\n[0053] r=(1-Ai.energy_Normalization)/p\n[0054] 其中,r为所述语音信号归一化后的动态因子,Ai.energy_Normalization为第i个用户的语音信号归一化后的能量值,p为所述待混音的语音信号的个数。\n[0055] 所述混音计算单元根据下列公式对所述语音信号进行混音计算:\n[0056]\n[0057] 其中,Ai.data为第i个用户的语音信号的的数据内容,n为所述接收到的语音信号的个数。\n[0058] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。\n[0059] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。\n附图说明\n[0060] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:\n[0061] 图1为一种语音混音处理方法的示例性流程图;\n[0062] 图2为对语音信号进行前端处理的示例性流程图;\n[0063] 图3为服务器端接收数据包并进行解析的示例性流程图;\n[0064] 图4为对混音列表中的语音信号进行混音处理的示例性流程图;\n[0065] 图5为一具体实施例中语音混音处理的示例性流程图;\n[0066] 图6为语音混音处理装置的示例性结构图;\n[0067] 图7为语音混音处理装置中处理模块的示例性结构图;\n[0068] 图8为服务器的示例性结构图。\n具体实施方式\n[0069] 以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。\n[0070] 在一个实施例中,本发明提供了一种语音混音处理方法,如图1所示,包括以下步骤:\n[0071] 步骤S101,对接收到的语音信号进行解析,获得语音信号的信息,该信息包含语音信号的用户信息;\n[0072] 步骤S102,将语音信号的用户信息与预设的用户信息对比,并将与预设的用户信息一致的语音信号添加到混音列表中;\n[0073] 步骤S103,对混音列表中的语音信号进行混音处理。\n[0074] 采用本发明的方案,实现了多路混音系统中对语音信号进行混音的效果,预设用户为重要发言人,且要对预设用户进行优先混音处理,通过将重要发言人作为高优先级预先设定,并将预设的用户的发言内容通过混音处理清晰地播放出来,从而保证重要信息被多个用户同时听到。\n[0075] 在步骤S101之前,首先在麦克风侧对语音信号进行前端处理,即对语音信号进行编码和打包,语音信号以数据包的形式发送至服务器端。如图2所示为对语音信号进行前端处理的流程图,包括以下步骤:\n[0076] 步骤S201,获取语音信号;可周期性地获取语音信号,例如,每隔30ms(毫秒)获取一次。\n[0077] 步骤S202,对语音信号进行A/D转换(模数转换)以及数据采样;\n[0078] 步骤S203,对采样的数据进行编码,并计算语音信号的能量值;\n[0079] 步骤S204,将编码后的信息打包成数据包;\n[0080] 步骤S205,发送语音信号的数据包。\n[0081] 当发言人发言时,麦克风获取到语音信号,首先将获取到的语音信号转换为模拟信号,然后对该模拟信号进行A/D转换,即将模拟信号转换为数字信号,然后对转换后的数字信号进行数据采样,并对采样到的数据进行编码,进而对编码后的信息进行分析和处理。\n由麦克风侧对编码后的信息进行打包,最后,将打包好的数据包发送给服务器端,并返回步骤S201,继续获取语音信号,重复上述对语音信号的处理,直到发言人结束发言。或者,每获取一次语音信号,则继续步骤S202,然后可以继续获取语音信号,不需要等到步骤S205结束后再获取。\n[0082] 其中,每当麦克风获取到语音信号,就会对该语音信号对应的用户的发言次数进行计数,接收到一次语音信号,用户发言次数就加一。可预先设定一个时间间隔,例如10s,当用户发言中断,且中断时间超过预设时间10s时,则认为该语音信号结束,麦克风侧将该用户的发言次数计一,用户再次发言时,计为下一个语音信号。如果用户发言不中断或者中断时间不超过10s,则认为该语音信号未结束。每一个麦克风的IP(Internet Protocol,网络协议)地址对应一个用户角色。步骤S205中,发送给服务器端的语音信号的数据包中包括协议头、用户角色、用户发言次数、能量值和数据内容等,协议头中包含有麦克风的IP地址。\n当麦克风侧将打包好的数据包发送给服务器端,由服务器端对语音信号的数据包进行接收并解析,服务器端将数据包中协议头包含的IP地址提取出来,根据IP地址确定用户ID,进而获得解析后的语音信号的各个信息,包括用户ID、用户角色、用户发言次数、语音信号的能量值以及数据内容等。用户ID与用户角色一一对应。\n[0083] 在一个实施例中,步骤S102中,通过解析后获得的语音信号的用户信息,判断是否是预设的用户,用户信息包括用户ID、用户角色以及用户发言次数。例如,在大规模的直播教学系统中,可根据语音信号的用户信息将教师或助教设为预设的用户。将接收到的语音信号的用户信息与预设的用户信息进行对比,如果是一致的,那么将该用户的语音信号确定为待混音的语音信号,若不一致,则不进行处理。可将待混音的语音信号以列表的形式添加至混音列表中,也可以其他形式进行添加。该步骤中,接收语音信号需要打开服务器端的监听器,图3为服务器端接收数据包并进行解析的流程图。\n[0084] 步骤S301,接收语音信号的数据包;\n[0085] 步骤S302,对语音信号的数据包进行解析,获得语音信号的用户信息和数据信息;\n[0086] 步骤S303,存储语音信号的用户信息和数据信息。\n[0087] 在步骤S302中,解析后的用户信息包括用户ID、用户角色和用户发言次数,数据信息包括表示语音是否静音的标识、能量值、数据内容以及包序列号。其中,用户信息和数据信息一一对应。步骤S303中,用ui{id,role,nTalkNum}表示第i个用户的用户ID、用户角色及用户发言次数所构成的集合(即用户信息),并将ui{id,role,nTalkNum}存储到users{u1,u2,…,uN}中。用Ai{bMute,energy,data,seqnum}表示第i个用户的语音信号的数据信息集合,其中,bMute表示是否静音,energy表示语音信号的能量值,data表示语音信号的数据内容,seqnum表示语音信号的包序列号,并将Ai{bMute,energy,data,seqnum}存储到AudioPack{A1,A2,…,AN}中,然后返回步骤S301,继续接收由麦克风侧发送的语音信号,循环上述步骤。\n[0088] 在一个实施例中,当多个发言人同时发言时,多个麦克风同时获取语音信号,或一段时间间隔内有多个麦克风获取到语音信号,并将多个麦克风获取到的语音信号的数据包发送给服务器端,服务器端将多个语音信号的用户信息及数据信息分别存储到用户信息集合及数据信息集合中,进而对集合中的语音信号的信息进行遍历分析,进行后续的混音处理,从而保证对接收到的语音信号都进行了分析,不会造成语音信号的丢失。\n[0089] 在该实施例中,判断用户是否是预设用户时,可将语音信号的用户ID与预设的用户ID对比,如果语音信号的用户ID与预设的用户ID一致,则说明该用户为预设的用户;或者将语音信号的用户角色与预设的用户角色对比,如果语音信号的用户角色与预设的用户角色一致,则说明该用户为预设的用户。\n[0090] 在一个实施例中,步骤S202中,根据数据包中bMute的值首先判断接收到的语音信号是否是静音,即是否是不发言状态,可用逻辑数字0和1来表示,例如bMute为0时表示静音,即为不发言状态,此时不对语音信号进行处理,bMute为1时表示不静音,即为发言状态,此时将该语音信号的用户信息添加到activeUsers{u1,u2,…,uN}中。将activeUsers{u1,u2,…,uN}中的所有语音信号的用户信息与预设的用户信息进行对比,当语音信号的用户ID与预设的用户ID一致,或语音信号的用户角色与预设的用户角色一致时,将该语音信号添加到混音列表中,用mixer{A1,A2,…,AP}表示混音列表,混音列表中的语音信号为待混音的语音信号,p为混音列表中语音信号的个数。\n[0091] 当语音信号的用户信息与预设的用户信息不一致时,根据解析后的语音信号的用户发言次数来选择需要混音的语音信号,ui.nTalkNum的值代表用户的发言次数,通常,按照ui.nTalkNum的值降序排列语音信号,并从中提取activeUsers{u1,u2,…,uN}中ui.nTalkNum的值最小的用户ui的语音信号,并将该语音信号添加到混音列表mixer{A1,A2,…,AP}中,同时从activeUsers{u1,u2,…,uN}中删除用户ui的语音信号,遍历所有的语音信号,得到混音列表mixer{A1,A2,…,AP};或者,从按照用户发言次数降序排列的语音信号中选择多个发言次数较少的语音信号,并将这些语音信号添加到混音列表中,同时从activeUsers{u1,u2,…,uN}中删除,遍历所有语音信号,最终得到混音列表。\n[0092] 在一个实施例中,步骤S103中,对混音列表mixer{A1,A2,…,AP}中的语音信号进行混音处理,如图4所示,包括以下步骤:\n[0093] 步骤S1031,对混音列表中的语音信号进行归一化处理;\n[0094] 步骤S1032,计算归一化后语音信号的动态因子;\n[0095] 步骤S1033,根据动态因子对语音信号进行混音计算。\n[0096] 步骤S1032中,根据公式(1)计算归一化后语音信号的动态因子r,[0097] r=(1-Ai.energy_Normalization)/p (1)\n[0098] 其中,Ai.energy_Normalization为第i个用户的语音信号归一化后的能量值,即对Ai{bMute,energy,data,seqnum}中energy所表示的值进行归一化后的值,p为混音列表mixer{A1,A2,…,AP}中语音信号的个数。\n[0099] 步骤S1033中,根据步骤S1032中求得的语音信号归一化后的动态因子对语音信号进行混音计算,计算公式如下:\n[0100]\n[0101] 公式(2)中,Ai.data表示语音信号的的数据内容,即Ai{bMute,energy,data,seqnum}中data所表示的信息内容,n为列表activeUsers{u1,u2,…,uN}中的语音信号的个数。\n[0102] 图5为一具体实施例中语音混音处理的流程图,包括以下步骤:\n[0103] 启动扬声器,设置定时器触发时间,当开始发言时,触发定时器。\n[0104] 步骤S501,接收语音信号;开始混音处理;\n[0105] 步骤S502,将接收到的语音信号加入到语音池signals{A1,A2,…,AN}中;\n[0106] 步骤S503,遍历语音池signals{A1,A2,…,AN}中所有的语音信号,将处于发言状态的语音信号的Ai所对应的用户信息添加到activeUsers{u1,u2,…,uN}中;\n[0107] 步骤S504,判断Ai的用户角色是否是预设的教师或助教,若是,执行步骤S506,若不是,执行步骤S505;本实施例以教育场景为例,预先设定教师和助教为重要的用户角色;\n[0108] 步骤S505,根据用户的发言次数降序排列用户角色不是教师或助教的所有用户的语音信号,选择其中用户发言次数最少的Ai;继续执行步骤S506;\n[0109] 步骤S506,将Ai添加到混音列表mixer{A1,A2,…,AP}中,并从activeUsers中删除Ai所对应的语音信号;\n[0110] 步骤S507,对混音列表中p个语音信号做归一化处理,获得语音信号归一化后的能量值;\n[0111] 步骤S508,根据语音信号归一化后的能量值计算混音列表中p个语音信号的动态因子;\n[0112] 步骤S509,对混音列表中p个语音信号做混音计算。\n[0113] 其中,步骤S505中,教师或助教的用户信息是预先设定的,用户信息中每一个用户ID对应一个用户角色,通过用户ID来预设教师或助教的用户角色,并通过将语音信号的用户角色与预设的用户角色进行对比,或将语音信号的用户ID与预设的用户ID进行对比,来判断用户是否是教师或助教。步骤S509中,对混音列表中的语音信号进行混音计算后,返回步骤S501,继续接收语音信号,重复上述步骤,对重新接收的语音信号继续作混音处理。步骤S505中,对activeUsers{u1,u2,…,uN}中判断为不是预设用户的所有用户的语音信号根据用户发言次数进行降序排列,并从排列后的语音信号集合中提取发言次数较少的几个用户,或者,当只需提取出发言次数最少的一个用户时,无需对判断为不是预设用户的语音信号进行排列,而只需要遍历集合中的语音信号,选择出用户发言次数最少的语音信号。步骤S509中,对混音列表中的语音信号进行混音处理后,返回步骤S501,继续接收语音信号,重复上述处理过程。\n[0114] 通过将本公开的方案用于大规模直播教学系统中,可达到两方面的效果:\n[0115] 首先,通过从所接收到的语音信号中将预先设定的教师或助教,以及不经常发言的听众的语音信号提取出来,可将教师或助教的发言作为高优先级,这样,即使教师或助教说话不多,或者音频能量较弱,也保证了重要语音信息不会丢失,更真实的反应了实际场景。\n[0116] 其次,在语音混音处理过程中,根据语音信号的数据信息对语音信号进行混音,通过将语音信号进行归一化处理,可获得稳定的音量,从而避免出现信号溢出导致的噪音和刺耳声音,进一步改善了听觉效果。\n[0117] 在另一实施例中,本公开还公开了一种语音混音处理装置,如图6所示,包括:\n[0118] 接收模块61,用于对接收到的语音信号进行解析,获得语音信号的信息,该信息中包含语音信号的用户信息;\n[0119] 对比模块62,用于将语音信号的用户信息与预设的用户信息对比,当语音信号的用户信息与预设的用户信息不一致时,根据解析后获得的语音信号的用户发言次数选择语音信号;\n[0120] 确定模块63,用于将与预设的用户信息一致的用户信息所对应的语音信号确定为待混音的语音信号,以及将根据用户发言次数选择的语音信号确定为带混音的语音信号;\n[0121] 处理模块64,用于对待混音的语音信号进行混音处理。\n[0122] 其中,接收模块61还用于接收语音信号的用户信息和数据信息,用户信息包括用户ID、用户角色和用户发言次数,数据信息包括语音信号的能量值和数据内容等。对比模块\n62用于将语音信号的用户ID与预设的用户ID对比,或将语音信号的用户角色与预设的用户角色对比,进而判断用户是否为预设的用户。\n[0123] 如图7所示,处理模块64还包括:\n[0124] 归一化单元641,用于对待混音的语音信号进行归一化处理;\n[0125] 动态因子计算单元642,用于计算归一化后语音信号的动态因子;\n[0126] 混音计算单元643,用于根据动态因子对语音信号进行混音计算。\n[0127] 在一个实施例中,大规模的直播教学系统中,教师或助教的ID与角色身份预先设定,当有语音信号发出时,语音混音处理装置的接收模块61首先接收语音信号的数据包,数据包中包括用户ID、用户角色、用户发言次数、能量值和数据内容等。接收模块61对接收到的数据包进行解析,得到语音信号的用户信息和数据信息。对比模块62根据语音信号的用户信息与预设的用户信息进行对比,可将语音信号的用户ID与预设的与用户ID进行对比,也可将语音信号的用户角色与预设的用户角色进行对比。如果语音信号的用户信息与预设的用户信息相一致,则通过确定模块63将该语音信号确定为待混音的语音信号。此外,对比模块62将与预设的用户信息不一致的语音信号按照用户发言次数的多少进行排列,可按照用户发言次数的多少降序排列,并选择出其中发言次数最少的语音信号,或选择其中多个发言次数较少的语音信号,通过添加模块63添加到混音列表中。最后,通过处理模块64对混音列表中的语音信号进行混音计算,过程如下:归一化单元641根据语音信号的能量值对混音列表中的语音信号进行归一化处理,动态因子计算单元642根据归一化后的语音信号的能量值来计算其动态因子,混音计算单元643根据计算得出的动态因子对语音信号进行混音计算。\n[0128] 在该实施例中,动态因子计算单元642通过公式r=(1-Ai.energy_Normalization)/p计算语音信号的动态因子,混音计算单元643根据公式 对语音信号进行混音计算。其中,r为语音信号的动态因子,Ai.energy_Normalization为第i个用户的语音信号归一化后的能量值,p为混音列表中语音信号的个数,Ai.data为第i个用户的语音信号的的数据内容,n为接收到的语音信号的个数。\n[0129] 图8是本发明实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序\n1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。\n[0130] 服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。\n[0131] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。\n[0132] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。\n[0133] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。\n[0134] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。\n[0135] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。