语音音效的处理方法、装置以及语音系统与流程

文档序号:17074777发布日期:2019-03-08 23:37阅读:228来源:国知局
语音音效的处理方法、装置以及语音系统与流程

本申请涉及游戏音效处理技术领域,具体而言,涉及一种语音音效的处理方法、装置以及语音系统。



背景技术:

多人实时语音系统是指多个用户使用计算机设备进行远程在线实时语音交流的一套软件系统。在实时语音系统中,用户a借助麦克风等采集设备,采集到自己的语音,通过网络传输给同一个语音流的其他用户,其他用户通过扬声器设备播放出来,就能听到a的语音。同时,用户a也能收听到其他人的发言。多人实时语音的一个典型的应用场景是rpg游戏,游戏用户之间通过语音来交流,达到相互协作的目的。

而针对场景较为复杂的游戏应用,为了提升用户的体验,语音交互需要结合游戏内的场景以进行一定的音效处理。举例说明,基于游戏角色之间的距离的语音衰减效果、基于游戏场景的回音效果、基于游戏角色需求的变声效果。

实现上述例子中的实时语音效果,需要对语音数据进行处理,即添加所需的语音音效。在现有技术中,由于相同音源在不同播放端的语音效果并不相同,因此语音效果处理不在采集语音的音源端进行,而是在接收语音的播放端进行,具体的,现有的实时语音效果的处理方法是:为语音系统设置进行数据传输的数据接口,以接收业务层(例如:游戏业务)提供的业务数据,进而令语音系统根据业务数据对音频数据进行加工处理,生成添加音效后的音频数据。

而上述处理方法会导致语音系统与游戏本身的耦合性过强的技术问题,而针对该技术问题目前尚未提出有效的解决方案。



技术实现要素:

本申请的主要目的在于提供一种语音音效的处理方法、装置以及语音系统,以解决相关技术中语音系统与游戏本身的耦合性过强的问题。

为了实现上述目的,根据本申请的一个方面,提供了一种语音音效的处理方法。该方法包括:获取目标应用对应的服务端发送的音频数据集合;在目标插件处于启用状态的情况下,将所述音频数据集合发送给所述目标插件;获取所述目标插件发送的待播放的目标数据集合,所述目标数据集合为所述目标插件根据所述目标应用的业务数据对所述音频数据集合进行音效处理而生成。

可选地,所述方法还包括:在所述目标插件处于停用状态的情况下,将所述服务端发送的音频数据集合确定为待播放的数据集合。

可选地,所述将所述音频数据集合发送给所述目标插件包括:将所述音频数据集合存储于目标存储器中,用于所述目标插件从所述目标存储器中读取所述音频数据集合;所述获取所述目标插件生成的待播放的目标数据集合包括:从所述目标存储器中读取所述目标数据集合,其中,所述目标数据集合为所述目标插件依据所述音频数据集合而生成并存储于所述目标存储器中的数据集合。

可选地,所述将所述音频数据集合存储于目标存储器中包括:获取所述目标存储器的写入区的访问权限;在获取到所述目标存储器的写入区的访问权限后,将所述音频数据集合存储于所述目标存储器的写入区中,其中,所述目标存储器的写入区的访问权限在任意时刻授予唯一对象;所述从所述目标存储器中读取所述目标插件生成的目标数据集合包括:每隔预设时间段获取所述目标存储器的读取区的访问权限;在获取到所述目标存储器的读取区的访问权项后,从所述目标存储器的读取区读取目标数据集合,其中,所述目标存储器的读取区的访问权限在任意时刻授予唯一对象。

可选地,在将所述音频数据集合发送给所述目标插件之后,所述方法还包括:确定所述目标插件对所述音频数据集合中的每个音频数据的处理时长;依据每个所述音频数据的处理时长,确定是否存在处理时长大于预设阈值的目标音频数据;在存在所述目标音频数据的情况下,确定停用处理所述目标音频数据的目标插件。

可选地,所述方法还包括:在确定启用指定的目标插件的情况下,生成启用指令并获取所述目标存储器的写入区的访问权限;在获取到所述目标存储器的写入区的访问权限后,将所述启用指令存储于所述目标存储器中,用于所述指定的目标插件在获取到所述目标存储器的读取区的访问权限且读取到所述启用指令时进入启用状态;在确定停用指定的目标插件的情况下,生成停用指令并获取所述目标存储器的写入区的访问权限;在获取到所述目标存储器的写入区的访问权项后,将所述停用指令存储于所述目标存储器中,用于所述指定的目标插件在获取到所述目标存储器的读取区的访问权限且读取到所述停用指令时进入停用状态。

为了实现上述目的,根据本申请的一个方面,提供了一种语音音效的处理方法。该方法包括:语音系统获取目标应用对应的服务端发送的音频数据集合;在目标插件处于启用状态的情况下,所述语音系统将所述音频数据集合发送给所述目标插件;所述目标插件接收所述音频数据集合,并根据所述目标应用的业务数据对接收的所述音频数据集合进行音效处理,得到目标数据集合并发送给所述语音系统;语音系统接收所述目标数据集合,并将所述目标数据集合作为待播放的数据集合。

可选地,所述语音系统将所述音频数据集合发送给所述目标插件包括:所述语音系统每隔预设时间段获取目标存储器的写入区的访问权限;以及在所述语音系统获取到所述目标存储器的写入区的访问权项后,将所述音频数据集合存储于所述目标存储器的写入区;所述目标插件接收所述音频数据集合包括:所述目标插件每隔预设时间段获取所述目标存储器的写入区的访问权限;以及在所述目标插件获取到所述目标存储器的写入区的访问权项后,读取所述目标存储器的写入区中存储的音频数据集合,所述目标存储器的写入区的访问权限在任意时刻授予唯一对象;所述目标插件将所述目标数据集合发送给所述语音系统包括:所述目标插件每隔预设时间段获取目标存储器的读取区的访问权限;以及在所述目标插件获取到所述目标存储器的读取区的访问权限后,将所述目标数据集合存储于所述目标存储器的读取区;所述语音系统接收所述目标数据集合包括:所述语音系统每隔预设时间段获取所述目标存储区的读取区的访问权限;以及在所述语音系统获取到所述目标存储器的读取区的访问权限后,读取所述目标存储器的读取区中存储的目标数据集合,所述目标存储器的读取区的访问权限在任意时刻授予唯一对象。

可选地,在所述目标插件为多个的情况下,所述方法还包括:若所述语音系统发送启用指令至指定的目标插件,则被指定的所述目标插件响应所述启用指令,进入启用状态;若所述语音系统发送停用指令至指定的目标插件,则被指定的所述目标插件响应所述停用指令,进入停用状态;在所述目标插件处于停用状态的情况下,所述语音系统将服务端发送的音频数据集合确定为待播放的数据集合。

为了实现上述目的,根据本申请的另一方面,提供了一种语音系统。该语音系统包括:第一获取单元,用于获取目标应用对应的服务端发送的音频数据集合;发送单元,用于在目标插件处于启用状态的情况下,将所述音频数据集合发送给所述目标插件;第二获取单元,用于获取所述目标插件发送的待播放的目标数据集合,所述目标数据集合为所述目标插件根据所述目标应用的业务数据对所述音频数据集合进行音效处理而生成。

为了实现上述目的,根据本申请的另一方面,提供了一种语音音效的处理装置。该装置包括:语音系统,用于获取目标应用对应的服务端发送的音频数据集合,并在目标插件处于启用状态的情况下,将所述音频数据集合存储于目标存储器中,以获取所述目标插件生成的待播放的目标数据集合;目标插件,用于读取目标存储器中存储的音频数据集合,并基于目标应用的业务数据对所述音频数据集合进行音效处理,得到目标数据集合,并将所述目标数据集合发送至所述语音系统。

为了实现上述目的,根据本申请的另一方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序执行上述任意一项所述的语音音效的处理方法。

为了实现上述目的,根据本申请的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的语音音效的处理方法。

通过本申请,采用以下步骤:获取目标应用对应的服务端发送的音频数据集合;在目标插件处于启用状态的情况下,将所述音频数据集合发送给所述目标插件;获取所述目标插件发送的待播放的目标数据集合,所述目标数据集合为所述目标插件根据所述目标应用的业务数据对所述音频数据集合进行音效处理而生成,解决了相关技术中语音系统与游戏本身的耦合性过强的技术问题。进而达到了在实现对音频数据集合进行音效处理的前提下,还实现降低语音系统与目标应用(如游戏应用)之间的强耦合性的技术效果。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是现有技术中语音音效的处理方法的示意图;

图2是本申请实施例提供的语音音效的处理方法的流程示意图;

图3是本申请实施例提供的另一种语音音效的处理方法的流程示意图;

图4是本申请实施例提供的另一种语音音效的处理方法的流程示意图;

图5是本申请实施例提供的另一种语音音效的处理方法的流程示意图;

图6是本申请实施例提供的另一种语音音效的处理方法的流程示意图;

图7是本申请实施例提供的语音系统的结构示意图;以及

图8是本申请实施例提供的语音装置的结构示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

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

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为了便于理解本申请所解决的技术问题,以下对现有技术所产生的技术问题进行细致分析:

首先,实时语音系统在一个游戏中是作为一个子系统的角色工作的,功能相对独立。在游戏业务设立之初,通常是由游戏业务控制语音系统执行采集语音流和播放语音流等功能,从而实现游戏运行过程中正常的实时语音功能,即语音系统内部并没有游戏业务的数据,也不会处理与游戏业务相关的内容。此时,该语音系统与快速迭代的游戏业务不同,该语音系统的功能和性能较为稳定。

而游戏行业在后续发展中,如图1所示,将语音音效与游戏业务场景紧紧结合。此时,语音系统需要暴露接口给游戏业务,让业务提供游戏数据,语音系统结合游戏数据和语音数据进行处理。同理,当游戏业务需要修改音效的实现时,如修改衰减系数,就需要对应修改语音系统内的音效处理,此时,频繁对语音系统进行修改会导致音频系统不稳定,容易发生宕机等异常情况,最终造成整个游戏系统的不稳定的情况发生。

其次,实时语音系统通常是一个功能通用性强、可移植程度高、即插即用的系统,其定位是一个专门性的功能系统。该语音系统的基础功能包括声音的采集、播放、混音、录音、静音、采集控制、屏蔽语音等,在游戏业务设立之初是可以用于大部分游戏系统中的。而游戏业务定制的音效,跟游戏本身的特点结合性强,跟语音系统基础功能相关性低。因此将游戏本身的业务内容放在语音系统中实现,破坏了语音系统的通用性,使得语音系统难以复用。

最后,游戏开发工作和语音系统开发工作由不同的开发人员承担,因此将游戏本身的业务内容放在语音系统中实现,会不利于分工合作、代码权限控制等。另外,游戏的实时语音系统未必是由游戏开发组开发的,可能是接入第三方提供的语音库。这种情况下,修改语音音效的实现会变得十分困难。

基于上述现有技术中存在的技术问题,根据本申请的实施例,提供了一种语音音效的处理方法。

图2是根据本申请实施例的语音音效的处理方法的流程图。如图2所示,该方法包括以下步骤:

步骤s102,获取目标应用对应的服务端发送的音频数据集合。

步骤s104,在目标插件处于启用状态的情况下,将音频数据集合发送给目标插件。

步骤s106,获取目标插件发送的待播放的目标数据集合,目标数据集合为目标插件根据目标应用的业务数据对音频数据集合进行音效处理而生成。

本申请实施例提供的语音音效的处理方法,通过获取目标应用对应的服务端发送的音频数据集合;在目标插件处于启用状态的情况下,将音频数据集合发送给目标插件;获取目标插件发送的待播放的目标数据集合,目标数据集合为目标插件根据目标应用的业务数据对音频数据集合进行音效处理而生成,解决了相关技术中语音系统与游戏本身的耦合性过强的技术问题。

也即,语音系统自身不再根据目标应用的业务数据对音频数据集合进行音效处理,而是在目标插件处于启用状态的情况下,将音频数据集合发送至独立设置的目标插件中,以获取目标插件依据根据目标应用的业务数据对音频数据集合进行音效处理而生成目标数据集合。此时,即实现了对音频数据集合进行音效处理,同时还实现了降低语音系统与目标应用(如游戏应用)之间的耦合性。

进而,在本申请所提供的技术方案中技术人员再对游戏业务进行迭代处理时,则无需对语音系统进行迭代,仅需修改目标插件中的相关数据即可,极大的降低了技术人员的工作负担,提升了语音系统的稳定性和通用性。

还需要说明的是:在本申请实施例提供的语音音效的处理方法中,方法还可以包括:在目标插件处于停用状态的情况下,将服务端发送的音频数据集合确定为待播放的数据集合。

也即,本申请实施例提供的语音音效的处理方法,在目标插件处于启用状态的情况下,将音频数据集合发送给目标插件,以便获取目标插件发送的待播放的目标数据集合;在目标插件处于停用状态的情况下,将服务端发送的音频数据集合确定为待播放的数据集合。即,若目标插件处于启用状态,则令目标插件对该音频数据集合进行音效处理,获取待播放的目标数据集合,若目标插件处于停用状态,则直接指定接收到的音频数据集合为待播放的数据集合,此时不再对该音频数据进行音效处理。

此时,表明在本申请实施例提供的语音音效的处理方法中,目标插件的运行与语音系统的运行相互独立,互不依赖。以及在目标插件处于停用状态的情况下,语音系统仍可以独立运行,实现正常实时语音播放的功能,达到了保证语音系统的通用性,以及保证语音系统在目标插件处于停用状态下仍可以播放实时语音的技术效果。

首先,对上述步骤s104和s106中的发送和获取步骤进行示意说明:

可选地,在本申请实施例提供的语音音效的处理方法中,将音频数据集合发送给目标插件包括:将音频数据集合存储于目标存储器中,用于目标插件从目标存储器中读取音频数据集合;获取目标插件生成的待播放的目标数据集合包括:从目标存储器中读取目标数据集合,其中,目标数据集合为目标插件依据音频数据集合而生成并存储于目标存储器中的数据集合。

也即,语音系统与目标插件之间的数据交互可以通过目标存储器得以实现。此时,在目标插件处于启用状态的情况下,语音系统将需要发送给目标插件的数据存储于目标存储器中,以便目标插件可以从该目标存储器中读取到语音系统需要发送至目标插件中的数据。同理,目标插件也会将需要发送至语音系统的数据存储于目标存储器中,以便语音系统可以从该目标存储器中读取到目标插件需要发送至语音系统中的数据。

进一步地,为了保证语音系统与目标插件之间进行正常的数据交互,在本申请实施例提供的语音音效的处理方法中,将音频数据集合存储于目标存储器中包括:获取目标存储器的写入区的访问权限;在获取到目标存储器的写入区的访问权限后,将音频数据集合存储于目标存储器的写入区中,其中,目标存储器的写入区的访问权限在任意时刻授予唯一对象;从目标存储器中读取目标插件生成的目标数据集合包括:每隔预设时间段获取目标存储器的读取区的访问权限;在获取到目标存储器的读取区的访问权项后,从目标存储器的读取区读取目标数据集合,其中,目标存储器的读取区的访问权限在任意时刻授予唯一对象。

具体说明,即为了避免语音系统和目标插件同时进行读写,导致数据异常的情况发生,即避免语音系统在目标存储器中写入数据消息时,目标插件同时读取该数据消息,导致目标插件读取出来的数据消息为异常消息的情况发生。在本申请实施例提供的语音音效的处理方法中,目标存储器虽然可以任由语音系统和目标插件进行读取存储操作,但是,目标存储器中的写入区/存储区的访问权限在任意时刻仅授予唯一对象,且目标插件和语音系统只有在获取访问权限的情况下,才能对目标存储器执行存储或读取操作。

需要说明的是:在本申请实施例提供的语音音效的处理方法中,语音系统与目标插件通过目标存储器来进行数据交互实现了以下技术效果:1、目标插件与语音系统通过指定的协议格式进行音频数据传递,因此耦合性低,保持了语音系统的封闭性;2、语音系统与目标插件之间通过目标存储器的方式进行数据传递,并且使用全局系统锁限制资源访问,提高了数据传输安全性。

其中,上述全局系统锁即为目标存储器中的写入区/存储区的访问权限在任意时刻仅授予唯一对象,且目标插件和语音系统只有在获取访问权限的情况下,才能对目标存储器执行存储或读取操作。

此外,为了避免了目标插件对某些音频数据进行音效处理时,目标插件出现宕机的情况发生,在本申请实施例提供的语音音效的处理方法中,在将音频数据集合发送给目标插件之后,方法还包括:确定目标插件对音频数据集合中的每个音频数据的处理时长;依据每个音频数据的处理时长,确定是否存在处理时长大于预设阈值的目标音频数据;在存在目标音频数据的情况下,确定停用处理目标音频数据的目标插件。

而在一个可选的示例中,在确定停用处理目标音频数据的目标插件之前,该方法还包括:对处理目标音频数据的目标插件进行重启处理,若该目标插件重启失败,则停用处理目标音频数据的目标插件。

可选地,在本申请实施例提供的语音音效的处理方法中,方法还包括:在确定启用指定的目标插件的情况下,生成启用指令并获取目标存储器的写入区的访问权限;在获取到目标存储器的写入区的访问权限后,将启用指令存储于目标存储器中,用于指定的目标插件在获取到目标存储器的读取区的访问权限且读取到启用指令时进入启用状态;在确定停用指定的目标插件的情况下,生成停用指令并获取目标存储器的写入区的访问权限;在获取到目标存储器的写入区的访问权项后,将停用指令存储于目标存储器中,用于指定的目标插件在获取到目标存储器的读取区的访问权限且读取到停用指令时进入停用状态,其中,上述指定的目标插件可以为多个。

需要说明的是:上述确定启用目标插件包含以下情景:用户发送启用指定目标插件的指令,以及由于目标插件处理音频数据的时长超过预设阈值,导致该目标插件被重启的情景。上述确定停用目标插件包含以下情景,用户发送停用指定目标插件的指令,以及由于目标插件处理音频数据的时长超过于预设阈值,导致该目标插件被停用/重启的情景。

在一个可选的示例中,在确定启用指定的目标插件的情况下,语音系统还会启用一个子进程,以便指定启用的目标插件在该子进程中运行,进而达到目标插件独立运行在语音系统启用的子进程中,不占用语音系统进行资源的技术效果。

还需要强调的是:在本申请实施例提供的语音音效的处理方法中,语音系统与目标插件之间进行停启指令交互时仍通过目标存储器进行,进而保证了以下技术效果:1、目标插件与语音系统通过指定的协议格式进行音频数据传递,因此耦合性低,保持了语音系统的封闭性;2、语音系统与目标插件之间通过目标存储器的方式进行数据传递,并且使用全局系统锁限制资源访问,提高了数据传输安全性;3、语音系统可以同时启用多个指定的目标插件,以便具备语音系统选择某个目标插件对音频数据进行音效处理的可能性,进而提高目标插件运行的灵活性。

此外,在本申请实施例提供的语音音效的处理方法中,如图3所示,在音频数据集合中的每个音频数据均为一条语音流的情况下,将音频数据集合发送给目标插件包括:将音频数据集合中的每条语音流分别发送至每条语音流指定的目标插件中,用于目标插件独立的对接收的语言流进行音效处理。以达到语音系统在接收到多条语音流的情况下,可以将每个语音流分别配送至不同的独立目标插件,使不同的目标插件分别独立加载多条语音流,其中,由于目标插件相互独立,因此语音流的音效处理也相互独立,互不影响。

最后需要说明的是:在本申请实施例提供的语音音效的处理方法中,在获取目标插件发送的待播放的目标数据集合之后,方法还包括:对获取到的目标数据集合中的多个目标数据进行混音处理,并播放经过混音处理的目标数据。

此外,根据本申请的实施例,还提供了一种语音音效的处理方法。

图4是根据本申请实施例的语音音效的处理方法的流程图。如图4所示,该方法包括以下步骤:

步骤s202,语音系统获取目标应用对应的服务端发送的音频数据集合。

步骤s204,在目标插件处于启用状态的情况下,语音系统将音频数据集合发送给目标插件。

步骤s206,目标插件接收音频数据集合,并根据目标应用的业务数据对接收的音频数据集合进行音效处理,得到目标数据集合并发送给语音系统。

步骤s208,语音系统接收目标数据集合,并将目标数据集合作为待播放的数据集合。

本申请实施例提供的语音音效的处理方法,通过语音系统获取目标应用对应的服务端发送的音频数据集合;在目标插件处于启用状态的情况下,语音系统将音频数据集合发送给目标插件;目标插件接收音频数据集合,并根据目标应用的业务数据对接收的音频数据集合进行音效处理,得到目标数据集合并发送给语音系统;语音系统接收目标数据集合,并将目标数据集合作为待播放的数据集合,解决了相关技术中语音系统与游戏本身的耦合性过强的技术问题。

也即,语音系统自身不再根据目标应用的业务数据对音频数据集合进行音效处理,而是在目标插件处于启用状态的情况下,将音频数据集合发送至独立设置的目标插件中,以获取目标插件依据根据目标应用的业务数据对音频数据集合进行音效处理而生成目标数据集合。此时,即实现了对音频数据集合进行音效处理,同时还实现了降低语音系统与目标应用(如游戏应用)之间的耦合性。

进而,在本申请所提供的技术方案中技术人员再对游戏业务进行迭代处理时,则无需对语音系统进行迭代,仅需修改目标插件中的相关数据即可,极大的降低了技术人员的工作负担,提升了语音系统的稳定性和通用性。

需要说明的是:在本申请实施例提供的语音音效的处理方法中,在步骤s202之前,即在语音系统获取目标应用对应的服务端发送的音频数据集合之前,为语音系统发送音频数据集合的服务器仍需要采集该音频数据集合。下面对服务器采集音频数据集合进行示意说明:

目标应用对应多个客户端,其中,开启语音采集模式的客户端为语言发送客户端。此时,语音发送客户端采集音频数据,并对该音频数据进行编码处理以发送至服务端。

在一个可选的示例中,语音发送客户端将音频数据发送至服务端,可以通过以下方式实现:

步骤a,语音发送客户端通过访问http接口等方式,以获取服务端的ip地址和端口,进而建立与服务端的连接链路,其中,在连接链路建立成功之后,语音发送客户端还向服务端发送身份验证信息,若验证成功则保持链路连接状态,若验证不成功则切断该连接链路。

步骤b,语音发送客户端的上层业务通过控制模块开启语音采集功能,此时,语音发送客户端使用麦克风等硬件装置对用户语音进行采集,以获取音频数据。

步骤c,语音发送客户端对采集到的音频数据进行滤波、编码等处理,其中,在进行采样、滤波处理时,音频数据的常用格式为pcm,在对pcm数据进行编码处理时,常用处理方式为将pcm数据压缩编码成适合网络传输的音频格式,例如aac、opus等。

步骤d,语音发送客户端对编码后的音频数据进行封装,并通过上述建立的连接链路发送至服务端,其中,对音频数据的封装处理可以为,将时间戳、uuid等用户信息作为音频数据的头部,进而封装成网络消息帧以发送至服务端。

需要说明的是:在上述语音采集功能开启的情况下,上述采集、滤波、编码、封装、发送等流程不断重复进行。

还需要说明的是:服务端接收多个语音发送客户端发送的音频数据,此时,服务端依据音频数据对应的用户信息,提取出多个待发送至语音系统所处的目标客户端的音频数据,并将该多个音频数据组合成音频数据集合发送至目标客户端。

举例说明,多个用户组建一个语音频道,并在该语音音频中进行语音沟通,此时,多个用户的客户端分别向服务端发送音频数据,服务端则接收到多个客户端发送的音频数据,并向语音接收客户端(如目标客户端)发送其他客户端对应的音频数据。

进一步地,在本申请实施例提供的语音音效的处理方法中,对步骤s102中语音系统获取目标应用对应的服务端发送的音频数据集合的具体步骤,进行示意说明:

在一个可选的示例中,语音系统所处的目标客户端接收服务端发送的音频数据集合可以通过以下方式实现:

步骤e,目标客户端通过访问http接口等方式,以获取服务端的ip地址和端口,进而建立于服务端的连接链路,其中,在连接链路建立成功之后,目标客户端还向服务端发送身份验证信息,若验证成功则保持链路连接状态,若验证不成功则切断该连接链路。

步骤f,目标客户端通过网络模块,接收到服务端传输的多个网络消息帧,其中,在接收到多个网络消息帧之后,还需要对每个网络消息帧进行解码处理,以得到每个网络消息帧中包含的用户信息和音频数据,其中,音频数据与用户信息一一对应。

进一步地,在语音系统获取到目标应用对应的服务端发送的音频数据集合的情况下,且目标插件处于启用状态的情况下,对语音系统与目标插件之间的数据交互进行解释说明:

在目标插件处于启用状态的情况下,语音系统与目标插件则通过目标存储器进行音频数据交互,其具体如下四种情况所示:

其一、语音系统将音频数据集合发送给目标插件包括:语音系统每隔预设时间段获取目标存储器的写入区的访问权限;以及在语音系统获取到目标存储器的写入区的访问权项后,将音频数据集合存储于目标存储器的写入区。

其二、目标插件接收音频数据集合包括:目标插件每隔预设时间段获取目标存储器的写入区的访问权限;以及在目标插件获取到目标存储器的写入区的访问权项后,读取目标存储器的写入区中存储的音频数据集合。

其三、目标插件将目标数据集合发送给语音系统包括:目标插件每隔预设时间段获取目标存储器的读取区的访问权限;以及在目标插件获取到目标存储器的读取区的访问权限后,将目标数据集合存储于目标存储器的读取区。

其四、语音系统接收目标数据集合包括:语音系统每隔预设时间段获取目标存储区的读取区的访问权限;以及在语音系统获取到目标存储器的读取区的访问权限后,读取目标存储器的读取区中存储的目标数据集合。

需要强调的是:语音系统与目标插件之间通讯的消息格式可以如图5所示,其中,cmd为消息类型;size为当前消息体的字节数;data为当前消息体内容本身,其中,消息类型包含数据消息和控制消息两种类型,音频数据和目标数据消息类型为数据消息;停用指令和启用指令消息类型为控制消息。

此外,语音系统与目标插件之间通讯的消息格式,又划分为描述环状存储信息的头部内容(header)和环状存储信息的数据内容(data),具体如图6所示,头部内容包含:表示当前环状存储起始位置的head部分、表示当前环状存储数据字节大小的size部分、以及表示环状存储能写入最大字节数的total部分;数据内容(date)就是语音系统与目标插件之间需要传输的数据本身,其中,当语音系统与目标插件之间需要传输的数据超过了环状存储的尾部时,则从环状存储的头部继续写入。

需要说明的是:上述技术方案容易出现语音系统和目标插件同时进行读写的情况,此种情况下会发生数据读写异常,也即,语音系统在目标存储器中写入数据消息时,目标插件同时读取该数据消息,此时目标插件读取出来的数据消息为异常消息。

为了避免上述情况发生,目标存储器的写入区的访问权限在任意时刻授予唯一对象,同理,目标存储器的读取区的访问权限在任意时刻也是仅授予唯一对象。也即,在音效系统和目标插件在目标存储器的写入区、读取区中进行读写的程序中均添加了一个互斥的全局系统锁,只有拿到访问权限(锁)的一方,才可以依据该访问权限访问目标存储器的写入区/读取区。

此外,目标插件与语音系统之间的交互内容还包括停启指令,即在目标插件为多个的情况下,语音系统与目标插件则通过目标存储器进行停启指令交互,其具体如下两种情况所示:

其一、若语音系统发送启用指令至指定的目标插件,则被指定的目标插件响应启用指令,进入启用状态。

其二、若语音系统发送停用指令至指定的目标插件,则被指定的目标插件响应停用指令,进入停用状态。

需要说明的是:在目标插件处于停用状态的情况下,语音系统将服务端发送的音频数据集合确定为待播放的数据集合。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例还提供了一种语音音效的处理方法,需要说明的是,本申请实施例的语音系统可以用于执行本申请实施例所提供的用于语音音效的处理方法。以下对本申请实施例提供的语音系统进行介绍。

图7是根据本申请实施例的语音系统的示意图。如图7所示,该语音系统包括:第一获取单元71、发送单元73和第二获取单元75。

第一获取单元71,用于获取目标应用对应的服务端发送的音频数据集合;

发送单元73,用于在目标插件处于启用状态的情况下,将音频数据集合发送给目标插件;

第二获取单元75,用于获取目标插件发送的待播放的目标数据集合,目标数据集合为目标插件根据目标应用的业务数据对音频数据集合进行音效处理而生成。

可选地,在本申请实施例提供的语音系统中,系统还包括:第一确定单元,用于在目标插件处于停用状态的情况下,将服务端发送的音频数据集合确定为待播放的数据集合。

可选地,在本申请实施例提供的语音系统中,发送单元包括:存储模块,用于将音频数据集合存储于目标存储器中,用于目标插件从目标存储器中读取音频数据集合;第二获取单元包括:读取模块,用于从目标存储器中读取目标数据集合,其中,目标数据集合为目标插件依据音频数据集合而生成并存储于目标存储器中的数据集合。

可选地,在本申请实施例提供的语音系统中,存储模块包括:第一获取子模块,用于获取目标存储器的写入区的访问权限;存储子模块,用于在获取到目标存储器的写入区的访问权限后,将音频数据集合存储于目标存储器的写入区中,其中,目标存储器的写入区的访问权限在任意时刻授予唯一对象;读取模块包括:第二获取子模块,用于每隔预设时间段获取目标存储器的读取区的访问权限;读取子模块,用于在获取到目标存储器的读取区的访问权项后,从目标存储器的读取区读取目标数据集合,其中,目标存储器的读取区的访问权限在任意时刻授予唯一对象。

可选地,在本申请实施例提供的语音系统中,在将音频数据集合发送给目标插件之后,语音系统还包括:第二确定单元,用于确定目标插件对音频数据集合中的每个音频数据的处理时长;第三确定单元,用于依据每个音频数据的处理时长,确定是否存在处理时长大于预设阈值的目标音频数据;第四确定单元,用于在存在目标音频数据的情况下,确定停用处理目标音频数据的目标插件。

可选地,在本申请实施例提供的语音系统中,语音系统还包括:第一生成单元,用于在确定启用指定的目标插件的情况下,生成启用指令并获取目标存储器的写入区的访问权限;第一存储单元,用于在获取到目标存储器的写入区的访问权限后,将启用指令存储于目标存储器中,用于指定的目标插件在获取到目标存储器的读取区的访问权限且读取到启用指令时进入启用状态;第二生成单元,用于在确定停用指定的目标插件的情况下,生成停用指令并获取目标存储器的写入区的访问权限;第二存储单元,用于在获取到目标存储器的写入区的访问权项后,将停用指令存储于目标存储器中,用于指定的目标插件在获取到目标存储器的读取区的访问权限且读取到停用指令时进入停用状态。

本申请实施例提供的语音系统,通过第一获取单元,用于获取目标应用对应的服务端发送的音频数据集合;发送单元,用于在目标插件处于启用状态的情况下,将音频数据集合发送给目标插件;第二获取单元,用于获取目标插件发送的待播放的目标数据集合,目标数据集合为目标插件根据目标应用的业务数据对音频数据集合进行音效处理而生成,解决了相关技术中语音系统与游戏本身的耦合性过强的技术问题。

也即,语音系统自身不再根据目标应用的业务数据对音频数据集合进行音效处理,而是在目标插件处于启用状态的情况下,将音频数据集合发送至独立设置的目标插件中,以获取目标插件依据根据目标应用的业务数据对音频数据集合进行音效处理而生成目标数据集合。此时,即实现了对音频数据集合进行音效处理,同时还实现了降低语音系统与目标应用(如游戏应用)之间的耦合性。

进而,在本申请所提供的技术方案中技术人员再对游戏业务进行迭代处理时,则无需对语音系统进行迭代,仅需修改目标插件中的相关数据即可,极大的降低了技术人员的工作负担,提升了语音系统的稳定性和通用性。

本申请实施例还提供了一种语音音效的处理方法,需要说明的是,本申请实施例的语音音效的处理装置可以用于执行本申请实施例所提供的用于语音音效的处理方法。以下对本申请实施例提供的语音音效的处理装置进行介绍。

图8是根据本申请实施例的语音音效的处理装置的示意图。如图8所示,该语音音效的处理装置包括:语音系统和目标插件。

语音系统,用于获取目标应用对应的服务端发送的音频数据集合,并在目标插件处于启用状态的情况下,将音频数据集合存储于目标存储器中,以获取目标插件生成的待播放的目标数据集合;

目标插件,用于读取目标存储器中存储的音频数据集合,并基于目标应用的业务数据对音频数据集合进行音效处理,得到目标数据集合,并将目标数据集合发送至语音系统。

本申请实施例提供的语音音效的处理装置,通过语音系统,用于获取目标应用对应的服务端发送的音频数据集合,并在目标插件处于启用状态的情况下,将音频数据集合存储于目标存储器中,以获取目标插件生成的待播放的目标数据集合;目标插件,用于读取目标存储器中存储的音频数据集合,并基于目标应用的业务数据对音频数据集合进行音效处理,得到目标数据集合,并将目标数据集合发送至语音系统,解决了相关技术中语音系统与游戏本身的耦合性过强的技术问题。

也即,语音系统自身不再根据目标应用的业务数据对音频数据集合进行音效处理,而是在目标插件处于启用状态的情况下,将音频数据集合发送至独立设置的目标插件中,以获取目标插件依据根据目标应用的业务数据对音频数据集合进行音效处理而生成目标数据集合。此时,即实现了对音频数据集合进行音效处理,同时还实现了降低语音系统与目标应用(如游戏应用)之间的耦合性。

进而,在本申请所提供的技术方案中技术人员再对游戏业务进行迭代处理时,则无需对语音系统进行迭代,仅需修改目标插件中的相关数据即可,极大的降低了技术人员的工作负担,提升了语音系统的稳定性和通用性。

可选地,在本申请实施例提供的语音音效的处理装置中,语音系统包括如下子单元:第一获取子单元,用于每隔预设时间段获取目标存储器的写入区的访问权限;第一存储子单元,用于在语音系统获取到目标存储器的写入区的访问权项后,将音频数据集合存储于目标存储器的写入区。

可选地,在本申请实施例提供的语音音效的处理装置中,语音系统包括如下子单元:第二获取子单元,用于每隔预设时间段获取目标存储器的写入区的访问权限;第一读取子单元,用于在目标插件获取到目标存储器的写入区的访问权项后,读取目标存储器的写入区中存储的音频数据集合。

此外,在本申请实施例提供的语音音效的处理装置中,目标插件还包括如下子单元:第一获取子单元,用于每隔预设时间段获取目标存储器的写入区的访问权限;第二存储子单元,用于在目标插件获取到目标存储器的读取区的访问权限后,将目标数据集合存储于目标存储器的读取区。

此外,在本申请实施例提供的语音音效的处理装置中,语音系统还包括如下子单元:第二获取子单元,用于每隔预设时间段获取目标存储器的写入区的访问权限;第二读取子单元,用于在语音系统获取到目标存储器的读取区的访问权限后,读取目标存储器的读取区中存储的目标数据集合,

其中,目标存储器的写入区的访问权限在任意时刻授予唯一对象;目标存储器的读取区的访问权限在任意时刻授予唯一对象。

可选地,在本申请实施例提供的语音音效的处理装置中,在目标插件为多个的情况下,若语音系统发送启用指令至指定的目标插件,则被指定的目标插件响应启用指令,进入启用状态;若语音系统发送停用指令至指定的目标插件,则被指定的目标插件响应停用指令,进入停用状态。

可选地,在本申请实施例提供的语音音效的处理装置中,在目标插件处于停用状态的情况下,语音系统用于将服务端发送的音频数据集合确定为待播放的数据集合。

此外,如图8所示,语音系统还可以包括如下模块:网络模块,用于与服务端建立连接链路,并传输音频数据;采集硬件,用于采集用户的语音数据;音频编码模块,用于对采集到的语言数据进行编码处理;音频解码模块,用于对服务端传输的音频数据进行解码处理;目标插件管理模块,用于对目标插件进行停用/启用处理,以及从目标存储器中读取/写入数据消息,以达到与目标插件进行数据交互的技术目的;混音模块,用于对待播放的目标数据进行混音处理;播放硬件,用于播放待播放的数据。

所述语音音效的处理装置包括处理器和存储器,上述语音系统和目标插件等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来处理相关技术中语音系统与游戏本身的耦合性过强的技术问题。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现上述任意一种的语音音效的处理方法。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一种的语音音效的处理方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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