多人语音通信方法、装置、终端设备和存储介质与流程

文档序号:14846833发布日期:2018-06-30 16:47阅读:263来源:国知局
多人语音通信方法、装置、终端设备和存储介质与流程

本发明涉及多人语音通信领域,尤其涉及一种多人语音通信方法、装置、终端设备和存储介质。



背景技术:

多人语音通信是指多个用户使用手机、PC等终端设备上的客户端,使用语音实时地通过网络进行通信交流。若两个用户能听到彼此的声音,则认为这两名用户参与到同一语音通信中。新用户加入一个已经存在的语音通信中,能与已经存在于该语音通信中的其他用户交流。不同的语音通信之间互不干扰。

现有技术中,常见的多人语音通信方案是由每一客户端接收其他多个客户端的实时语音信息,然后在本地将接收到的多个所述实时语音信息进行混音,得到本地混合语音信息,从而使用户可以通过所述本地混合语音信息来获知其他用户的发言情况。

在实践中发明人发现,现有技术的多人语音通信方案,虽然能够实现多名用户在同一语音通信下的语音交流,但是由于每一用户的客户端需要接收其他多个客户端的多个实时语音信息,因此在参与同一语音通信的用户较多的情况下,每一用户的客户端需要占用较多的带宽和消耗大量的数据流量以实现对所述多个实时语音信息的接收,可能导致其他在线工作受到影响,如在线游戏和在线视频等。并且,由于所述客户端还需要完成对接收到的所述多个实时语音信息的混合,因此在参与同一语音通信用户较多的情况下,所述客户端需要占用大量的系统资源以完成对所述多个实时语音信息的混合处理,可能导致系统卡顿等不良后果。



技术实现要素:

经发明人研究发现,在现有技术的多人语音通信方案中,由于每一客户端需要接受同一语音通信下的其他多名用户的实时语音信息,还需要对接收到的实时语音信息进行混合,存在占用过多网络资源和占用过多系统资源的技术问题。

为了解决现有技术中存在的上述技术问题,本发明提出了一种多人语音通信。

为了实现上述多人语音通信,本发明实施例的目的是提供一种多人语音通信方法、装置、终端设备和存储介质,能够在服务器端实现多个客户端对应的混合语音信息的生成并发送到对应的所述客户端,减少了多人语音通信的客户端占用的网络资源和系统资源,并且减少了客户端在通信过程中的流量消耗,同时提高语音通信的质量,减少多人语音通信中的干扰,比如,避免了由于说话者收到的混合语音信息中包含了自己的语音而导致的说话者听到重音的现象发生,提高了用户体验。

为实现上述目的,本发明实施例提供了一种多人语音通信方法,包括步骤:

接收参与语音通信的多个客户端发送的实时语音信息;

根据接收到的所述实时语音信息生成每一所述客户端对应的混合语音信息;其中,每一所述客户端对应的所述混合语音信息通过将接收到的除该客户端以外的其他所述客户端的所述实时语音信息混合生成;

向每一所述客户端发送对应的所述混合语音信息。

作为上述方案的改进,每一所述客户端为具有发言权限的客户端或不具有发言权限的客户端;所述接收参与语音通信的多个客户端发送的实时语音信息具体为:

接收多个具有发言权限的客户端发送的实时语音信息。

优选地,所述根据接收到的所述实时语音信息生成每一所述客户端对应的混合语音信息具体包括:

针对任一所述具有发言权限的客户端,将接收到的除该具有发言权限的客户端以外的其他所述实时语音信息进行混合,以得到该具有发言权限的客户端对应的混合语音信息;

针对任一所述不具有发言权限的客户端,将接收到的全部实时语音信息进行混合后的混合语音信息作为该不具有发言权限的客户端对应的混合语音信息。

作为上述方案的改进,其特征在于,所述接收多个客户端发送的实时语音信息包括:

识别接收到的每一所述实时语音信息对应的所述客户端,并判断是否存在与所述客户端对应的语音缓存单元,若判断存在对应的语音缓存单元,则将接收到的所述实时语音信息存入所述语音缓存单元,否则创建与该客户端对应的语音缓存单元以存入所述实时语音信息;其中,语音发送状态为停止的所述客户端对应的语音缓存单元被销毁。

优选地,所述将接收到的所述实时语音信息存入所述语音缓存单元还包括:

对每一所述语音缓存单元中缓存的实时语音信息的数据量进行判断,若所述数据量大于第一预设值,删除所述语音缓存单元中最先存入的预定量的数据。

优选地,通过如下方法识别所述客户端的语音发送状态为停止:

检测当前客户端对应的所述语音缓存单元中存储的数据是否包括结束标记,当检测到所述结束标记时,则认为该客户端的语音发送状态为停止;或

当未接收到所述当前客户端的实时语音信息的时间超过所述预设的停止时间阈值,则判定该客户端的语音发送状态为停止。

优选地,生成所述混合语音信息所需的所述实时语音信息从相应的所述语音缓存单元中读取;

其中,通过以下步骤从所述语音缓存单元中读取所述实时语音信息:

比较待读取的语音缓存单元中存储的所述实时语音信息的数据量与第二预设值的大小;

当该数据量大于或等于所述第二预设值时,发出启动信号以启动从该语音缓存单元中读取述实时语音信息;

当该数据量小于所述第二预设值时,发出停止信号以停止从该语音缓存单元中读取实时语音信息的。

进一步地,所述第二预设值的具体数值通过如下方法进行调整:

当停止读取所述待读取的语音缓存单元中存储的所述实时语音信息时,获取上一次发出所述启动信号之后发出所述停止信号的次数;

根据所述发出停止信号的次数、所述第二预设值的初始值、预设的调整步长和第一预设值确定新的第二预设值的具体数值,并更新所述第二预设值的具体数值。

更佳地,以所述第一预设值与对比值中的较小者作为所述新的第二预设值的具体数值;其中,所述对比值等于所述预设的调整步长与所述发出停止信号的次数的乘积加上所述第二预设值的初始值之和。

作为上述方案的改进,所述根据接收到的所述实时语音信息生成每一所述客户端对应的混合语音信息具体包括:

针对每一所述客户端,获取从其他所述客户端接收到的所述实时语音信息并进行混合,以得到该客户端对应的原始混合语音信息;

获取所述原始混合语音信息的语音采样频率,将所述语音采样频率与预设采样频率进行比较;

当所述语音采样频率不等于所述预设采样频率时,根据所述预设采样频率对所述原始混合语音信息进行重采样,以得到该客户端对应的混合语音信息;

当所述语音采样频率等于所述预设采样频率时,将所述原始混合语音信息作为该客户端对应的混合语音信息。

本发明的另一实施例还提供了一种多人语音通信方法,包括步骤:

获取音频采集设备采集到的音频信息;

对所述音频信息进行处理以得到本地实时语音信息,并将所述本地实时语音信息发送到服务器;

接收所述服务器发送的混合语音信息;其中,所述混合语音信息由所述服务器将接收到的参与语音通信的多个客户端发送的除所述本地实时语音信息以外的其他实时语音信息混合生成。

作为上述方案的改进,所述获取音频采集设备采集到的音频信息具体为:

判断当前客户端是否具有发言权限;

当所述当前客户端不具有发言权限时,关闭音频采集设备;当所述当前客户端具有发言权限时,启动所述音频采集设备以获取音频信息。

优选地,通过如下方法判断所述当前客户端是否具有发言权限:

通过网络连接到所述服务器,并发送所述当前客户端的验证信息;

获取所述服务器对所述验证信息的反馈信息,并根据所述反馈信息判断所述当前客户端是否具有发言权限。

作为上述方案的改进,根据与所述服务器之间的网络延迟状况,调整与所述服务器连接协议。

进一步地,将所述音频信息压缩成预设格式,以获取所述音频信息对应的实时语音信息。

更佳地,所述接收所述服务器发送到客户端的混合语音信息还包括:

将接收到的所述混合语音信息转换成与所述音频信息格式相同的音频文件。

相应地,本发明的另一实施例还提供了第一种多人语音通信装置,包括:

接收模块,用于接收参与语音通信的多个客户端发送的实时语音信息;

混音模块,用于根据接收到的所述实时语音信息生成每一所述客户端对应的混合语音信息;其中,每一所述客户端对应的所述混合语音信息通过将接收到的除该客户端以外的其他所述客户端的所述实时语音信息混合生成;

发送模块,用于向每一所述客户端发送对应的所述混合语音信息。

作为上述方案的改进,所述多人语音通信装置为服务器。

相应地,本发明的另一实施例还提供了第二种多人语音通信装置,包括:

采集模块,用于获取音频采集设备采集到的音频信息;

发送模块,用于对所述音频信息进行处理以得到本地实时语音信息,并将所述本地实时语音信息发送到服务器;

接收模块,用于接收所述服务器发送的混合语音信息;其中,所述混合语音信息由所述服务器将接收到的参与语音通信的多个客户端发送的除所述本地实时语音信息以外的其他实时语音信息混合生成。

作为上述方案的改进,所述多人语音通信装置为客户端。

本发明的另一实施例还提供了一种多人语音通信系统,包括服务器和多个客户端,其中,所述服务器包括如上任一项所述的第一种多人语音通信装置,每一所述客户端包括如上任一项所述的第二种多人语音通信装置。

本发明的另一实施例还提供了一种多人语音通信终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上任意一项所述的多人语音通信方法。

本发明的另一实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上任意一项所述的多人语音通信方法。

与现有技术相比,本发明实施例提供的一种多人语音通信方法、装置、终端设备及存储介质,通过将服务器端接收的多个客户端的实时语音信息进行混合,以生成对应每一所述客户端的混合语音信息,将所述混合语音信息发送给对应的所述客户端,解决了客户端在进行多人语音通信的过程中,需要同时接收大量的实时语音信息,还需要对所述大量的实时语音信息进行混合处理的技术问题,从而减少了多人语音通信的客户端占用的网络资源和系统资源,并且减少了客户端在通信过程中的流量消耗,同时还提高了多人语音通信的质量,减少了多人语音通信中的干扰。

附图说明

图1是本发明实施例1中一种多人语音通信方法的流程示意图。

图2是本发明实施例2中一种多人语音通信方法的流程示意图。

图3是本发明实施例3中一种多人语音通信装置的结构示意图。

图4是本发明实施例4中一种多人语音通信装置的结构示意图。

图5是本发明实施例5中一种多人语音通信系统的结构示意图。

图6是本发明实施例6中一种多人语音通信终端设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,是本发明实施例1提供的一种多人语音通信方法的流程示意图。如图1所示,本实施例提供的多人语音通信方法包括如下所述的步骤S110~步骤 130。

S110、接收参与语音通信的多个客户端发送的实时语音信息。

其中,所述参与语音通信的多个客户端指参与同一语音通信的多个客户端;所述实时语音信息可以仅包含语音数据的音频流,还可以包括客户端信息和指令标记等相关信息中的一种或多种;对所述实时语音信息的接收可以是通过与所述多个客户端构建通信连接,包括但不限于有线连接和无线连接等连接方式。

具体地,在所述多个客户端中的每一客户端为具有发言权限的客户端或不具有发言权限的客户端的情况下,接收多个具有发言权限的客户端发送的实时语音信息。对于不具有发言权限的客户端,可以是不接收所述不具有发言权限的客户端发送的实时语音信息,或是与所述不具有发言权限的客户端配合,所述不具有发言权限的客户端不发送所述实时语音信息,均不影响本发明取得的有益效果。

在实施例1的优选实施方案中,还包括对接收到所述多个客户端发送的实时语音信息进行识别,以判断接收到的每一实时语音信息是否存在对应的语音缓存单元,其中,每一所述语音缓存单元还分别对应于一个所述客户端。当判断该实时语音信息存在对应的语音缓存单元时,则将该实时语音信息存入所述对应的语音缓存单元;否则,创建与该实时语音信息相应的客户端对应的语音缓存单元,以作为该实时语音信息对应的语音缓存单元,并将该实时语音信息存入该语音缓存单元。对于每一语音缓存单元,在该语音缓存单元对应的客户端的语音发送状态为停止的情况下,销毁该语音缓存单元,以避免语音缓存单元的数量无限制的增长,提高系统资源的利用率。

针对每一所述语音缓存单元,进一步地,还可以对该语音缓存单元中存储的数据的数据量进行判断,以判定该语音缓存单元中的存储的数据量是否大于第一预设值,并且在该数据量大于所述第一预设值的情况下,将该语音缓存单元中最先存入的预定量的数据删除,以确保该语音缓存单元中存储最新的实时语音信息,提高语音通信的及时性。

针对每一客户端,进一步地,可以通过检测该客户端对应的语音缓存单元中存储的数据是否包括结束标记,若包括结束标记,则判定该客户端的语音发送状态为停止;或者,检测未接收到该客户端的实时语音信息的时间是否超过预设的停止时间阈值,若超过所述停止时间阈值,则判定该客户端的语音发送状态为停止。

下面以包括五个客户端的多人语音通信为例,对本实施例1的优选实施方案进行更详细的描述。服务器端接收到所述五个客户端发送的实时语音信息,所述五个客户端分别为客户端A、客户端B、客户端C、客户端D和客户端E,识别所述五个客户端发送的所述实时语音信息,以判断是否存在对应的语音缓存单元。以客户端A为例,在客户端A首次发送实时语音信息时,客户端A对应的语音缓存单元尚未创建,因此判断不存在接收到的客户端A的实时语音信息对应的语音缓存单元,进而创建客户端A对应的语音缓存单元,设为语音缓存单元A,并将接收到的客户端A的实时语音信息存入语音缓存单元A中。在客户端A继续发送实时语音信息的情况下,由于存在对应的语音缓存单元,因此将接收到的客户端A的语音缓存单元存入语音缓存单元A中。在客户端A的语音发送状态为停止的情况下,销毁语音缓存单元A,以释放语音缓存单元A占用的所述服务器端的资源,并在下一次接收到客户端A的实时语音信息时再次创建对应的语音缓存单元。

在语音缓存单元A中存储的数据的数据量大于第一预设值的情况下,如设第一预设值为10MB,语音缓存单元A中存储的数据量大于10MB,设此时语音缓存单元A中按照时间先后存入了实时语音信息A1、实时语音信息A2和实时语音信息A3,实时语音信息A4待存入,删除语音缓存单元A中最先存入的实时语音信息A1,存入实时语音信息A4,使语音缓存单元A中存储的实时语音信息为A2、 A3和A4。

对于所述五个客户端中的任一客户端,如客户端A,可以通过检测语音缓存单元A中存储的数据是否包括结束标记,当未包括所述结束标记时,则判定客户端A的语音发送状态不为停止;当包括所述结束标记时,判定客户端A的语音发送状态为停止,并销毁语音缓存单元A。作为判定客户端的语音发送状态的另一种方式,以客户端A为例,也可以检测未接收客户端A的实时语音信息的时间是否超过预设的停止时间阈值,如设所述停止时间阈值为10秒,当未接收到客户端A的实时语音信息的时间在10秒以内时,判定客户端A的语音发送状态不为停止;当超过10秒未接收到客户端A的实时语音信息,则判定客户端A 的语音发送状态为停止,并销毁语音缓存单元A。

结合客户端的发言权限,如客户端A、客户端B和客户端C为具有发言权限的客户端,客户端D和客户端E为不具有发言权限的客户端的情况下,对接收到的客户端B或客户端C的实时语音信息的处理与上述对客户端A的实时语音信息的处理相似,在此不作赘述。针对客户端D或客户端E,由于客户端D和客户端E均不具有发言权限,在一种情况下,可以是服务器端拒绝接收客户端D 或客户端E的实时语音信息,因此不存在客户端D或客户端E对应的语音缓存单元;在另一种情况下,也可以是客户端D或客户端E不发送实时语音信息到所述服务器端,从而所述服务器端未接收到客户端D或客户端E的实时语音信息,因此不存在客户端D或客户端E对应的语音缓存单元,可以理解地,上述两种情况仅作为举例,不构成对本发明方案的限定。

S120、根据接收到的所述实时语音信息生成每一所述客户端对应的混合语音信息;其中,每一所述客户端对应的所述混合语音信息通过将接收到的除该客户端以外的其他所述客户端的所述实时语音信息混合生成。

在每一所述客户端均具有发言权限的情况下,可以是所述服务器端接收每一所述客户端的实时语音信息,然后针对每一所述客户端,从接收到的多个实时语音信息中剔除该客户端的实时语音信息,并将其他客户端的实时语音信息进行混合,生成该客户端对应的混合语音信息。

进一步地,在参与语音通信的多个客户端中,包括具有发言权限的客户端和不具有发言权限的客户端的情况下,所述服务器端接收每一具有发言权限的客户端的实时语音信息,针对每一具有发言权限的客户端,根据上述情况的方式生成每一具有发言权限的客户端对应的混合语音信息;对于所有不具有发言权限的客户端,将接收到的多个实时语音信息进行混合,以生成所有不具有发言权限的客户端对应的混合语音信息,当所述多个客户端中包括多个不具有发言权限的客户端时,通过一次混合处理即可生成所有不具有发言权限的客户端对应的混合语音信息。在有n个具有发言权限的客户端和m个不具有发言权限的客户端的情况下,只需要生成n+1份混合语音信息,节省了大量的系统资源,提高了对实时语音信息的处理效率,进而降低了多人语音通信的延迟。

在生成每一所述客户端对应的混合语音信息的过程中,进一步地,还可以将上述通过混合生成的语音信息作为原始混合语音信息,通过获取所述原始混合语音信息的语音采样频率,并将所述语音采样频率与预设采样频率进行比较,在所述语音采样频率与所述预设采样频率不同时,根据所述预设采样频率对所述原始混合语音信息进行重采样,并以重采样得到的语音信息作为该客户端对应的混合语音信息;在所述语音采样频率与所述预设采样频率相同时,以所述原始混合语音信息作为该客户端对应的混合语音信息。

在实施例1的优选实施方案中,生成所述混合语音信息所需的实时语音信息从相应的所述语音缓存单元中读取。

针对每一所述语音缓存单元,进一步地,从该语音缓存单元中读取生成所述混合语音信息所需的实时语音信息之前,需要将该语音缓存单元中存储的实时语音信息的数据量与第二预设值进行比较,在该数据量大于或等于所述第二预设值时,发出启动信号以启动从该语音缓存单元读取实时语音信息;在该数据量小于所述第二预设值时,由于该语音缓存单元中存储的实时语音信息的数据量不足,如果启动读取可能导致后续处理不能连续进行,从而使生成的混合语音信息断断续续,影响用户体验,因此发出停止信号以停止从该语音缓存单元中读取实时语音信息。其中,所述启动从该语音缓存单元中读取实时语音信息,可以是启动所述服务器端的处理模块读取该语音缓存单元中存储的实时语音信息,也可以是启动该语音缓存单元向所述服务器端的处理模块发送所述实时语音信息;对应地,所述停止从该语音缓存单元中读取实时语音信息,可以是停止所述服务器端的处理模块读取该语音缓存单元中存储的实时语音信息,也可以是停止该语音缓存单元向所述服务器端的处理模块发送所述实时语音信息,均不影响本发明取得的有益效果。

其中,所述第二预设值的具体数值的调整,可以通过预先设置初始值和调整步长,并在每次停止读取待读取的语音缓存单元中存储的实时语音信息时,获取从上一次发出启动信号至今,发出停止信号的次数,并根据所述发出停止信号的次数、所述初始值、所述调整步长和所述第一预设值确定新的所述第二预设值的具体数值。具体地,可以是以所述调整步长与所述发出停止信号的次数的乘积加上所述第二预设值的初始值之和作为对比值,并计算出所述对比值与所述第一预设值中的较小者,以所述较小者作为所述新的第二预设值的具体数值。通过动态调整所述第二预设值的具体数据,以提高对实时语音信息读取的连续性,进而提高多人语音通信的及时性。

下面以包括五个客户端的多人语音通信为例,对本实施例1的优选实施方案进行更详细的描述,所述五个客户端分别为客户端A、客户端B、客户端C、客户端D和客户端E。在所述五个客户端均具有发言权限的情况下,生成客户端 A对应的混合语音信息,需要从其他客户端对应的语音缓存单元中读取所需的实时语音信息,即从语音缓存单元B中读取实时语音信息B1、从语音缓存单元C 中读取实时语音信息C1、从语音缓存单元D中读取实时语音信息D1、从语音缓存单元E中读取实时语音信息E1,并将B1、C1、D1和E1进行混合以得到客户端A对应的混合语音信息A0,其他客户端对应的混合语音信息的生成与此相似,在此不作赘述。

在所述五个客户端中包括具有发言权限的客户端和不具有发言权限的客户端的情况下,如客户端A、客户端B和客户端C为具有发言权限的客户端,客户端D和客户端E为不具有发言权限的客户端。在生成所述具有发言权限的客户端对应的混合语音信息时,以客户端A为例,从语音缓存单元B中读取实时语音信息B1、从语音缓存单元C中读取实时语音信息C1,将B1和C1进行混合以得到客户端A对应的混合语音信息A0',客户端B对应的混合语音信息和客户端 C对应的混合语音信息的生成过程与此类似,在此不作赘述。对于所述不具有发言权限的客户端,从语音缓存单元A中读取实时语音信息A1、从语音缓存单元 B中读取实时语音信息B1、从语音缓存单元C中读取实时语音信息C1,并将A1、 B1和C1混合以生成混合语音信息Z0,以混合语音信息Z0作为每一所述不具有发言权限的客户端所对应的混合语音信息,即混合语音信息Z0为客户端D对应的混合语音信息,且混合语音信息Z0也是客户端E对应的混合语音信息。

针对每一所述语音缓存单元,以语音缓存单元A作进一步的方案举例,设第二预设值的初始值为5MB,调整步长为0.5MB,第一预设值为10MB。假设语音缓存单元A中存储的实时语音信息的数据量为8MB,由于该数据量大于5MB,因此发出启动信号以启动从语音缓存单元A读取实时语音信息。假设在下一次进行比较时,语音缓存单元A中存储的实时语音信息的数据量为4MB,由于该数据量小于5MB,因此发出停止信号以停止从语音缓存单元A中读取实时语音信息。优选地,记录此时发出停止信号的次数为1,并计算所述对比值DB1=5+0.5*1,可得对比值DB1=5.5,由于对比值DB1小于所述第一预设值,因此以对比值DB1 作为新的第二预设值的具体数值。假设又一次进行比较时,语音缓存单元A中存储的实时语音信息的当前数据量小于5.5MB,则继续发出所述停止信号,并对所述第二预设值的具体数值再次进行调整,直至再次发出启动信号,将所述发出停止信号的次数清零。

结合对生成每一所述客户端对应的混合语音信息的过程的改进,在上述获得混合语音信息的基础上,如以获得混合语音信息A0为例,以混合语音信息A0 作为客户端A的原始混合语音信息,假设混合语音信息A0的语音采样频率为 44.1kHz,预设采样频率为22.05kHz,所述语音采样频率与所述预设采样频率不同,则以22.05kHz作为采样频率对混合语音信息A0进行重采样,获得采样频率为22.05kHz的混合语音信息A0",并将混合语音信息A0"作为客户端A对应的混合语音信息;另一种情况下,假设混合语音信息A0的语音采样频率为 22.05kHz,预设采样频率亦是22.05kHz,所述语音采样频率与所述预设采样频率相同,则将混合语音信息A0作为客户端A对应的混合语音信息。

S130、向每一所述客户端发送对应的所述混合语音信息。

本发明实施例1提供的一种多人语音通信方法,通过将服务器端接收的多个客户端的实时语音信息进行混合,以生成对应每一所述客户端的混合语音信息,将所述混合语音信息发送给对应的所述客户端,解决了客户端在进行多人语音通信的过程中,需要同时接收大量的实时语音信息,还需要对所述大量的实时语音信息进行混合处理的技术问题,从而减少了多人语音通信的客户端占用的网络资源和系统资源,并且减少了客户端在通信过程中的流量消耗,同时还提高了多人语音通信的质量,减少了多人语音通信中的干扰。

参见图2,是本发明实施例2提供的一种多人语音通信方法的流程示意图。如图2所示,本实施例提供的多人语音通信方法包括如下所述的步骤S210~步骤 230。

S210、获取音频采集设备采集到的音频信息。

具体地,在参与同一语音通信的用户中包括听说用户(即采用具有发言权限的客户端)和只听用户(即采用不具有发言权限的客户端)的情况下,还可以判断当前客户端是否具有发言权限,在该客户端为不具有发言权限的客户端时,关闭所述音频采集设备以停止采集声音;在该客户端为具有发言的客户端时,启动所述音频采集设备进行声音采集,以获取所述音频信息。

进一步地,可以通过网络连接到的服务器端,以将当前客户端的验证信息发送到所述服务器端,例如用户登录,或是客户端认证等。获取所述服务器端返回的对所述验证信息的反馈信息,通过所述反馈信息以判断该客户端是否具有发言权限,可以是在用户登录成功时,在该反馈信息中包括该用户的权限,例如只听用户登录时反馈信息中记录了该客户端应作为不具有发言权限的客户端的相关内容等。

针对客户端与服务器端的连接方式,进一步地,可以根据网络延迟状况,调整所述服务器端与所述客户端的连接方式,例如根据所述网络延迟状况,将所述服务器端与所述客户端的下行连接在TCP协议和UDP协议间动态切换,以提高所述客户端的信息发送和接收的效率,提高多人语音通信的及时性。

S220、对所述音频信息进行处理以得到本地实时语音信息,并将所述本地实时语音信息发送到服务器。

具体地,对所述音频信息的处理可以是将所述音频信息压缩成预设格式,以得到对应的实时语音信息。例如所述音频信息为PCM音频数据,可以通过对所述PCM音频数据压缩成预设的音频格式,如AAC格式、MP3格式和OPUS格式等音频格式中的一种或多种。并且的所述PCM音频数据进行压缩之前,还可以对所述PCM音频数据文件进行消除回声、降噪和混响等预处理,不影响本发明取得的有益效果。

S230、接收所述服务器发送的混合语音信息;其中,所述混合语音信息由所述服务器将接收到的参与语音通信的多个客户端发送的除所述本地实时语音信息以外的其他实时语音信息混合生成。

具体地,在每一所述客户端均具有发言权限的情况下,可以是所述服务器端接收每一所述客户端的实时语音信息,然后针对每一所述客户端,从接收到的多个实时语音信息中剔除该客户端的实时语音信息,并将其他客户端的实时语音信息进行混合,生成该客户端对应的混合语音信息。

进一步地,在参与语音通信的多个客户端中,包括具有发言权限的客户端和不具有发言权限的客户端的情况下,所述服务器端接收每一具有发言权限的客户端的实时语音信息,针对每一具有发言权限的客户端,根据上述情况的方式生成每一具有发言权限的客户端对应的混合语音信息;对于所有不具有发言权限的客户端,将接收到的多个实时语音信息进行混合,以生成所有不具有发言权限的客户端对应的混合语音信息。

生成所述混合语音方法的具体过程可以参考实施例1的内容,在此不作赘述。

优选地,在接收到所述服务器发送的混合语音信息之后,还包括将接收到的混合语音信息转码成与所述音频信息格式相同的音频文件,以将所述接收到的混合语音信息的语音内容进行播放。

本发明实施例2提供的一种多人语音通信方法,通过在服务器端将多个客户端的实时语音信息进行混合,以生成对应每一所述客户端的混合语音信息,将所述混合语音信息发送给对应的所述客户端,解决了客户端在进行多人语音通信的过程中,需要同时接收大量的实时语音信息,还需要对所述大量的实时语音信息进行混合处理的技术问题,从而减少了多人语音通信的客户端占用的网络资源和系统资源,并且减少了客户端在通信过程中的流量消耗,同时还提高了多人语音通信的质量,减少了多人语音通信中的干扰。

参见图3,是本发明实施例3提供的一种多人语音通信装置30的结构示意图,所述多人语音通信装置30包括

接收模块31,用于接收参与语音通信的多个客户端发送的实时语音信息;

混音模块32,用于根据接收到的所述实时语音信息生成每一所述客户端对应的混合语音信息;其中,每一所述客户端对应的所述混合语音信息通过将接收到的除该客户端以外的其他所述客户端的所述实时语音信息混合生成;

发送模块33,用于向每一所述客户端发送对应的所述混合语音信息。

其中,本实施例的多人语音通信装置的具体工作过程可参考实施例1的内容,在此不作赘述。

参见图4,是本发明实施例4提供的一种多人语音通信装置40的结构示意图,所述多人语音通信装置40包括:

采集模块41,用于获取音频采集设备采集到的音频信息;

发送模块42,用于对所述音频信息进行处理以得到本地实时语音信息,并将所述本地实时语音信息发送到服务器;

接收模块43,用于接收所述服务器发送的混合语音信息;其中,所述混合语音信息由所述服务器将接收到的参与语音通信的多个客户端发送的除所述本地实时语音信息以外的其他实时语音信息混合生成。

其中,本实施例的多人语音通信装置的具体工作过程可参考实施例2的内容,在此不作赘述。

参见图5,是本发明实施例5提供的一种多人语音通信系统50的结构示意图,其中所述多人语音通信系统50包括服务器51和多个客户端52A~52E。

其中,所述服务器51包括如实施例3所述的多人语音通信装置;每一所述客户端包括如实施例4所述的多人语音通信装置。

本发明实施例5提供的一种多人语音通信系统,通过在服务器端将多个客户端的实时语音信息进行混合,以生成对应每一所述客户端的混合语音信息,将所述混合语音信息发送给对应的所述客户端,解决了客户端在进行多人语音通信的过程中,需要同时接收大量的实时语音信息,还需要对所述大量的实时语音信息进行混合处理的技术问题,从而减少了多人语音通信的客户端占用的网络资源和系统资源,并且减少了客户端在通信过程中的流量消耗,同时还提高了多人语音通信的质量,减少了多人语音通信中的干扰。

参见图6,是本发明实施例6提供的多人语音通信终端设备60的示意图。所述多人语音通信终端设备60包括:处理器61、存储器62以及存储在所述存储器62中并可在所述处理器61上运行的计算机程序,例如多人语音通信的控制程序。所述处理器61执行所述计算机程序时实现上述各个多人语音通信方法实施例中的步骤,例如图1或图2所示的多人语音通信方法的步骤。或者,所述处理器61执行所述计算机程序时实现上述各装置实施例中各模块的功能,例如实施例3或实施例4所述的多人语音通信装置的各模块的功能。

示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器62中,并由所述处理器61执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述多人语音通信终端设备60中的执行过程。例如,所述计算机程序可以被分割成接收模块、混音模块和发送模块,各模块具体功能如下:接收模块,用于接收参与语音通信的多个客户端发送的实时语音信息;混音模块,用于根据接收到的所述实时语音信息生成每一所述客户端对应的混合语音信息;其中,每一所述客户端对应的所述混合语音信息通过将接收到的除该客户端以外的其他所述客户端的所述实时语音信息混合生成;发送模块,用于向每一所述客户端发送对应的所述混合语音信息。又如,所述计算机程序还可以被分割为采集模块、发送模块和接收模块,各模块具体功能如下:采集模块,用于获取音频采集设备采集到的音频信息;发送模块,用于对所述音频信息进行处理以得到本地实时语音信息,并将所述本地实时语音信息发送到服务器;接收模块,用于接收所述服务器发送的混合语音信息;其中,所述混合语音信息由所述服务器将接收到的参与语音通信的多个客户端发送的除所述本地实时语音信息以外的其他实时语音信息混合生成。

所述多人语音通信终端设备60可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述多人语音通信终端设备60可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是多人语音通信终端设备60的示例,并不构成对多人语音通信终端设备60的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述多人语音通信终端设备60还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器61是所述多人语音通信终端设备60的控制中心,利用各种接口和线路连接整个多人语音通信终端设备60的各个部分。

所述存储器62可用于存储所述计算机程序或模块,所述处理器61通过运行或执行存储在所述存储器62内的计算机程序或模块,以及调用存储在存储器内的数据,实现所述多人语音通信终端设备60的各种功能。所述存储器62可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字 (Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述多人语音通信终端设备60集成的模块或单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器 (ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本发明实施例6提供的一种多人语音通信终端设备及存储介质,在运行时通过将服务器端接收的多个客户端的实时语音信息进行混合,以生成对应每一所述客户端的混合语音信息,将所述混合语音信息发送给对应的所述客户端,解决了客户端在进行多人语音通信的过程中,需要同时接收大量的实时语音信息,还需要对所述大量的实时语音信息进行混合处理的技术问题,从而减少了多人语音通信的客户端占用的网络资源和系统资源,并且减少了客户端在通信过程中的流量消耗,同时还提高了多人语音通信的质量,减少了多人语音通信中的干扰。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1