CN109729109B - 语音的传输方法和装置、存储介质、电子装置 - Google Patents

语音的传输方法和装置、存储介质、电子装置 Download PDF

Info

Publication number
CN109729109B
CN109729109B CN201711025125.XA CN201711025125A CN109729109B CN 109729109 B CN109729109 B CN 109729109B CN 201711025125 A CN201711025125 A CN 201711025125A CN 109729109 B CN109729109 B CN 109729109B
Authority
CN
China
Prior art keywords
account
voice
target
scene map
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711025125.XA
Other languages
English (en)
Other versions
CN109729109A (zh
Inventor
张晓春
付强
王学强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201711025125.XA priority Critical patent/CN109729109B/zh
Priority to PCT/CN2018/111915 priority patent/WO2019080901A1/zh
Publication of CN109729109A publication Critical patent/CN109729109A/zh
Application granted granted Critical
Publication of CN109729109B publication Critical patent/CN109729109B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)

Abstract

本发明公开了一种语音的传输方法和装置、存储介质、电子装置。其中,该方法包括:获取第一帐号的第一语音,第一帐号为目标应用中的帐号,第一帐号用于标识目标应用的场景地图中的第一对象,第一对象在场景地图中的位置为第一位置;获取目标应用中的第二帐号,第二帐号用于标识场景地图中允许听到第一对象的语音的第二对象,第二对象为场景地图的第一区域中的对象,第一区域由第一位置确定;将第一语音发送给第二帐号。本发明解决了相关技术中的语音解决方案容易造成语音服务器超过最大负荷的技术问题。

Description

语音的传输方法和装置、存储介质、电子装置
技术领域
本发明涉及互联网领域,具体而言,涉及一种语音的传输方法和装置、存储介质、电子装置。
背景技术
目前,越来越多的线上应用(如线上游戏、即时通讯应用)可以实现语音聊天功能,其原理如下:应用客户端采集麦克风的PCM(英文全称为Pulse Code Modulation,中文名称为脉冲编码调制)音频数据,对PCM数据进行前期优化(如去噪、判断是否静音等),然后使用语音压缩库压缩,并通过UDP(英文全称为User Datagram Protocol,中文名称为用户数据报协议)方式发送到语音服务器。语音服务器接收到语音包后,判断玩家所处的频道,向处于同一频道中的其他客户端转发语音包。收到语音包的客户端解压缩音频后进行播放。
现在的语音解决方案是以语音组(同一语音组的成员位于同一频道中)的形式出现的,当语音组的成员数量过多时,由于传输带宽及服务器承载能力有限,当语音服务器将语音发送至语音组中所有成员时,有可能会导致语音服务器超过最大负载,影响语音音质的情况。
针对相关技术中的语音解决方案容易造成语音服务器超过最大负荷的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种语音的传输方法和装置、存储介质、电子装置,以至少解决相关技术中的语音解决方案容易造成语音服务器超过最大负荷的技术问题。
根据本发明实施例的一个方面,提供了一种语音的传输方法,该方法包括:获取第一帐号的第一语音,第一帐号为目标应用中的帐号,第一帐号用于标识目标应用的场景地图中的第一对象,第一对象在场景地图中的位置为第一位置;获取目标应用中的第二帐号,第二帐号用于标识场景地图中允许听到第一对象的语音的第二对象,第二对象为场景地图的第一区域中的对象,第一区域由第一位置确定;将第一语音发送给第二帐号。
根据本发明实施例的一个方面,还提供了一种语音的传输方法,该方法包括:在目标应用的第二客户端上登录目标应用的第二帐号,其中,第二帐号用于标识目标应用的场景地图中的第二对象;在第二客户端上接收第一帐号通过服务器转发的第一语音,其中,第一帐号用于标识位于场景地图中第一位置的第一对象,服务器用于根据第一位置确定场景地图中允许听到第一对象的语音的第一区域,第二对象为第一区域中的对象。
根据本发明实施例的另一方面,提供了一种语音的传输装置,该装置包括:第一获取单元,用于获取第一帐号的第一语音,其中,第一帐号为目标应用中的帐号,第一帐号用于标识目标应用的场景地图中的第一对象,第一对象在场景地图中的位置为第一位置;第二获取单元,用于获取目标应用中的第二帐号,其中,第二帐号用于标识场景地图中允许听到第一对象的语音的第二对象,第二对象为场景地图的第一区域中的对象,第一区域由第一位置确定;第一发送单元,用于将第一语音发送给第二帐号。
根据本发明实施例的另一方面,还提供了一种语音的传输装置,该装置包括:登录单元,用于在目标应用的第二客户端上登录目标应用的第二帐号,其中,第二帐号用于标识目标应用的场景地图中的第二对象;接收单元,用于在第二客户端上接收第一帐号通过服务器转发的第一语音,其中,第一帐号用于标识位于场景地图中第一位置的第一对象,服务器用于根据第一位置确定场景地图中允许听到第一对象的语音的第一区域,第二对象为第一区域中的对象。
在本发明实施例中,获取目标应用中的第一帐号的第一语音,第一帐号用于标识位于目标应用的场景地图中第一位置的第一对象,获取目标应用中的第二帐号,第二帐号用于标识场景地图中允许听到第一对象的语音的第二对象,第二对象为场景地图中由第一位置确定的第一区域内的对象,将第一语音发送给位于第一区域内的第二帐号,从而实现了基于位置的语音转发,可以解决相关技术中的语音解决方案容易造成语音服务器超过最大负荷的技术问题,进而达到了降低语音服务器的负载的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的语音的传输方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的语音的传输方法的流程图;
图3是根据本发明实施例的一种可选的语音的传输方法的流程图;
图4是根据本发明实施例的一种可选的语音系统架构的示意图;
图5是根据本发明实施例的一种可选的语音系统架构的示意图;
图6是根据本发明实施例的一种可选的声音传播范围的示意图;
图7是根据本发明实施例的一种可选的声音衰减的流程图;
图8是根据本发明实施例的一种可选的声音衰减的流程图;
图9是根据本发明实施例的一种可选的语音的传输方法的流程图;
图10是根据本发明实施例的一种可选的虚拟现实场景的示意图;
图11是根据本发明实施例的一种可选的客户端界面的示意图;
图12是根据本发明实施例的一种可选的语音的传输装置的示意图;
图13是根据本发明实施例的一种可选的语音的传输装置的示意图;以及
图14是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
干声:从麦克风采集,未经过任何处理的原始声音。
湿声:根据需求,对采集的声波进行处理过的声音。
根据本发明实施例,提供了一种语音的传输方法的方法实施例。
可选地,在本实施例中,上述语音的传输方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的语音的传输方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的语音的传输方法也可以是由安装在其上的客户端来执行。
当本发明实施例的语音的传输方法由服务器或终端来单独执行时,直接在服务器或终端上来执行与本申请的方法对应的程序代码即可。
当本发明实施例的语音的传输方法由服务器和终端共同来执行时,由一终端发送语音至服务器,此时,由服务器来执行与本申请的方法对应的程序代码,将语音转发至符合位置要求的终端。
下面以在服务器上来执行与本申请的方法对应的程序代码为例详述本申请的实施例,图2是根据本发明实施例的一种可选的语音的传输方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,获取第一帐号的第一语音,第一帐号为目标应用中的帐号,第一帐号用于标识目标应用的场景地图中的第一对象,第一对象在场景地图中的位置为第一位置。
上述的目标应用包括但不局限于社交应用、游戏应用、生活应用。目标应用能够实现对其场景地图中对象所在位置的识别,在场景地图为二维的2D地图时,识别到的位置为该对象的二维的位置信息(如二维坐标),在场景地图为三维的3D地图时,识别到的位置为该对象的三维的位置信息(如三维坐标)。
上述的第一语音即第一帐号发送的语音,在目标应用中,被当做是场景地图中的第一对象在第一位置发出的语音。
步骤S204,获取目标应用中的第二帐号,第二帐号用于标识场景地图中允许听到第一对象的语音的第二对象,第二对象为场景地图的第一区域中的对象,第一区域由第一位置确定。
上述的第一区域是根据第一位置确定的允许听到从第一位置发出的语音的区域,服务器获取到第一帐号的第一语音时,查找到该区域内的所有第二对象的第二帐号,以将第一语音发送给第二帐号。
步骤S206,将第一语音发送给第二帐号。
在相关技术中,语音解决方案是以语音组的形式出现的,当语音组的成员数量过多时,由于传输带宽及服务器承载能力有限,当语音服务器将语音发送至语音组中所有成员时,有可能会导致语音服务器超过最大负载,影响语音音质的情况。
而在本申请的上述技术方案中,提供了一种全新的语音转发策略,当第一对象发送语音时,仅仅只会将语音转发给临近该对象的第二对象,而不会将语音转发给场景地图中所有的对象,从而降低了语音服务器的负载。
通过上述步骤S202至步骤S206,获取目标应用中的第一帐号的第一语音,第一帐号用于标识位于目标应用的场景地图中第一位置的第一对象,获取目标应用中的第二帐号,第二帐号用于标识场景地图中允许听到第一对象的语音的第二对象,第二对象为场景地图中由第一位置确定的第一区域内的对象,将第一语音发送给位于第一区域内的第二帐号,从而实现了基于帐号位置的语音转发,可以解决相关技术中的语音解决方案容易造成语音服务器超过最大负荷的技术问题,进而达到了降低语音服务器的负载的技术效果。
相关技术中基于语音房间的方案比较适合人数有限的游戏场景,其局限性体现在:同时说话人数有上限,一般为6为左右,多于该人数,网络数据转发压力过大,就会产生声音顿卡及延迟增大的问题;说话对象不灵活,要经过建房、加房、退房的流程才能切换聊天对象,在mmorpg(英文全称为Massive或Massively Multiplayer Online Role-PlayingGame,中文名称为大型多人在线角色扮演游戏)等类型游戏中用户体验不好;语音都是纯2D语音,跟普通的3D场景难以融入,缺乏代入感。
针对以上局限性,本申请提出了一种新的语音解决方案,它具备如下特征:去除传统语音房间的概念,没有最大人数限制,玩家交流自由度大大提高;去除同时说话最大人数限制,通过玩家相对位置动态转发语音数据,避免同时说话人数多造成了语音转发的卡顿的问题;用3D音频技术模拟真实语音传播,大大提高语音环境的真实感,解决了大规模玩家同时在线时的语音交互问题。
在本申请的技术方案中,不设置玩家上限,根据玩家位置动态确定语音对象,所见即所聊;没有语音房间概念,所有玩家在一个世界,每个人都可能相互交流;玩家的声音加入空间感,与玩家所处的3D环境相匹配,增加了沉浸感。
下面结合步骤如图2所示的步骤详述本申请的实施例:
在步骤S202提供的技术方案中,语音服务器获取第一帐号的第一语音,此处的第一帐号是类指,是指目标应用中当前时刻发送语音的帐号,可以为一个或多个,此处对第一帐号的数量没有限定。
可选地,对于语音服务器,在同时接收到多个第一帐号的第一语音时,可以通过多个并行运行的线程来处理,每个线程处理一个第一帐号的第一语音,并执行后续的步骤(包括但不局限于步骤S204至S206),如查找对应的第二帐号,发送语音(如上述的第一语音)至第二帐号等。
在步骤S204提供的技术方案中,语音服务器获取目标应用中的第二帐号时,可在场景地图中的对象中查找位于第一区域中的第二对象,并获取用于标识第二对象的第二帐号,第一区域是根据第一语音以第一位置为起点在场景地图中向目标方向传播的距离确定的区域。
(一)关于区域边界的确定
上述的目标方向为一个或多个,若第一对象所在的区域相对较简单,如为开阔没有障碍物的区域,那么第一声音在该区域内任意一个方向的传播距离是基本相等的,此时的目标方向可以为一个任意朝向的方向,得到的第一区域是半径为R的圆形区域,R为语音在目标方向上的传播距离。
若第一对象所在的区域相对较复杂,如存在障碍物、处于狭长峡谷中等,那么目标方向为多个不同的方向,以便于测量出在这多个方向的传播距离,进而确定第一区域。
对于以上情况,可以通过以下的方式确定第一区域包括:
步骤S11,在场景地图中以第一位置为起点的目标方向上不存在障碍物的情况下,使用第一衰减模型确定第一语音在目标方向上的第一传输距离,第一衰减模型用于表示语音在第一介质中传播的距离与音强衰减之间的关系,第一介质为第一语音在目标方向上的传输介质。
第一衰减模型可以为线性模型和非线性模型,二者原理基本类似,可以根据实际需求进行选择,下面以线性模型为例进行详述,如第一语音的音强与传输距离成反比:y1=a-k1*x,其中,y1为音强为a的第一语音经过传输距离x后剩余的音强,k1表示在当前介质中单位距离音强的衰减量。此处音强的单位可以为dB,距离单位为米。
假设a=100,k1=1,人耳朵能听见的最小音强为c(如10),那么可以计算出第一传输距离x=(100-10)/1=90米。
步骤S12,在场景地图中以第一位置为起点的目标方向上存在障碍物的情况下,按照第一衰减模型和第二衰减模型确定第一语音在目标方向上的第一传输距离,第二衰减模型用于表示语音在障碍物中传播的距离与音强衰减之间的关系。
需要说明的是,上述的障碍物是指第一音频的传播范围内的障碍物,如在上述的假设中,距离第一位置90米内的障碍物。
可选地,上述的第二衰减模型也可以为线性模型和非线性模型,二者原理基本类似,可以根据实际需求进行选择,下面以线性模型为例进行详述,如第一语音的音强与传输距离成反比:y2=b-k2*x,其中,y2为音强为b的第一语音经过传输距离x后剩余的音强,k2表示在障碍物中单位距离音强的衰减量。
上述的y2是指第一语音传输至障碍物时的音强,具体可以参照第一衰减模型的计算公式计算得到,如获取第一位置与障碍物之间的距离。
在步骤S12中,存在以下两种结果,一种是第一语音不能透过障碍物,此时可通过第二衰减模型计算第一语音能在障碍物中传播的距离l2=[(a-k1*l1)-c]/k2,其中,l1为第一位置与障碍物之间的距离。
另一种是,第一语音能透过障碍物,此时步骤S12可以通过如下子步骤实现:
步骤S121,通过使用第一衰减模型确定第一语音传输至障碍物时的第一音强,y1=a-k1*x,其中x的取值为l1,得到y1的取值为(a-k1*l1);
步骤S122,在第一音强大于目标音强的情况下,通过使用第二衰减模型确定第一语音通过障碍物时的第二音强,目标音强为允许被目标应用中的对象听见的最小音强(也即人耳朵能听见的最小音强),y2=(a-k1*l1)-k2*x,x的取值为障碍物在目标方向上的长度或距离l3,得到y2的取值为(a-k1*l1)-k2*l3;
步骤S123,在第二音强大于目标音强的情况下,通过使用第一衰减模型确定第一语音通过障碍物后、且衰减至目标音强时所传输的第二距离l4=[(a-k1*l1)-k2*l3-c)]/k1;
步骤S124,将第一位置与障碍物之间的距离、障碍物在目标方向上的长度以及第二距离之和作为第一传输距离。
步骤S13,将以第一位置为起点向目标方向上传输第一传输距离后的位置作为第一区域的区域边界。
若第一对象所在的区域相对较简单,那么第一区域则是以第一传输距离为半径的圆;若第一对象所在的区域相对较复杂,那么第一区域包括第一位置,且在第一位置的任意方向上计算出的第一传输距离所到达的位置即该方向上的区域边界。
(二)关于第二帐号的查找
第二帐号的查找包括但不局限于以下两种实现方式,其一是服务器在接收到语音时根据位置关系查找到相关的第二帐号;第二是由客户端指定与之关联的帐号(即该帐号附近的帐号),下面分别就这两种方式进行详述。
(1)服务器实时查找帐号
步骤S21,服务器在场景地图中通过上述的方式确定第一区域(即步骤S121至步骤S124)。
步骤S22,服务器查找位于第一区域中的第二对象,并获取用于标识第二对象的第二帐号。
(2)服务器通过事先维护好的目标关系表(即帐号列表)来查找帐号
步骤S31,创建目标关系表,在目标对象(即场景地图中的任意一个对象)的位置发生变化的情况下,对目标关系表进行更新,目标对象为目标关系表中的帐号所标识的对象。
对于目标关系表的维护,包括但不局限于如下两种方式:
方式一由客户端进行目标关系表的维护
上述的目标对象包括第一对象、第二对象以及第三对象中的至少之一,其中,在服务器对目标关系表进行更新时,获取目标应用的第一客户端发送的更新信息,并根据更新信息对目标关系表进行更新,第一帐号在第一客户端上使用,其中,更新信息包括第一信息、第二信息以及第三信息中的至少之一。
上述的第一信息用于指示第三帐号,第三帐号标识的第三对象为场景地图中发生位置变化的对象,由第一客户端实时监测第一区域中的对象的位置变化,在第三对象位于位置变化前的位置(即位于第一区域内)的情况下,允许第三对象听到第一对象的语音,在第三对象位于位置变化后的位置(即第三对象运动出了第一区域)的情况下,不允许第三对象听到第一对象的语音,此时由第一客户端产生第一消息并发送给服务器。
上述的第二信息用于指示第二帐号,第二帐号标识的第二对象为场景地图中发生位置变化的对象,在第二对象位于位置变化前的位置(即不在第一区域)的情况下,不允许第二对象听到第一对象的语音,在第二对象位于位置变化后的位置(即在第一区域)的情况下,允许第二对象听到第一对象的语音,此时产生上述的第二信息。
第三信息用于指示第四帐号,第四帐号用于标识允许听到位于第二位置的第一对象的语音的对象,第二位置为第一对象发生位置变化后在场景地图中的位置,第一对象发生位置变化前位于场景地图中的第一位置,在第一对象运动至第二位置后,重新计算上述的第一区域,并将重新计算后的第一区域内的对象的第四帐号通过第三消息发送给服务器。
在上述实施例中,引发目标关系表中与第一帐号关联的帐号发生变化的情况分为三种,相应地,根据更新信息对目标关系表进行更新,也存在三种情况:
其一是在第三对象在场景地图中发生位置变化的情况下,服务器在目标关系表中解除第一信息指示的第三帐号与第一帐号的关联。
其二是在第二对象在场景地图中发生位置变化的情况下,服务器在目标关系表中将第二信息指示的第二帐号设置为与第一帐号相关联。
其三是在第一对象在场景地图中发生位置变化的情况下,服务器在目标关系表中将第三信息指示的第四帐号设置为与第一帐号相关联。
方式二由服务器进行目标关系表的维护
上述的目标对象包括第一对象、第二对象以及第三对象中的至少之一,服务器对目标关系表进行更新时,获取目标对象的位置变化信息,并根据位置变化信息对目标关系表进行更新,位置变化信息用于指示第二位置、第三位置以及第四位置中的至少之一。
上述的第二位置为第一对象在场景地图中发生位置变化后所在的位置,由第一客户端进行上报。
上述的第三位置为第二对象在场景地图中发生位置变化后所在的位置,在第二对象位于位置变化前的位置(即位于第一区域外)的情况下,不允许第二对象听到第一对象的语音,在第二对象位于位置变化后的第三位置(即位于第一区域内)的情况下,允许第二对象听到第一对象的语音,第三位置由第二帐号所在的第二客户端进行上报。
上述的第四位置为第三对象在场景地图中发生位置变化后所在的位置,在第三对象位于位置变化前的位置(即位于第一区域内)的情况下,允许第三对象听到第一对象的语音,在第三对象位于位置变化后的第四位置(即位于第一区域外)的情况下,不允许第三对象听到第一对象的语音,第三对象为目标应用的第三帐号所标识的位于场景地图中的对象,第四位置由第三帐号所在的第三客户端进行上报。
在上述实施例中,引发目标关系表中与第一帐号关联的帐号发生变化的情况分为三种,相应地,根据更新信息对目标关系表进行更新,也存在三种情况:
其一是在第三对象的位置发生变化的情况下,服务器根据位置变化信息,在目标关系表中解除第三帐号与第一帐号的关联。
其二是在第二对象的位置发生变化的情况下,根据位置变化信息,服务器在目标关系表中将第二帐号设置为与第一帐号相关联。
其三是在第一对象的位置发生变化的情况下,服务器根据位置变化信息,在目标关系表中将第四帐号设置为与第一帐号相关联,其中,第一对象发生位置变化后位于场景地图中的第二位置,第四帐号用于标识允许听到位于第二位置的第一对象的语音的对象。
步骤S32,在需要时服务器从目标关系表中查找与第一帐号相关联的第二帐号,在允许第二帐号标识的第二对象听到第一对象的语音的情况下,目标关系表中的第二帐号被设置为与第一帐号相关联。
在步骤S206提供的技术方案中,服务器将第一语音发送给第二帐号,是将为3D类型的第一语音发送至第二客户端,第二帐号在目标应用的第二客户端上使用。
下面以在终端上来执行与本申请的方法对应的程序代码为例详述本申请的实施例,图3是根据本发明实施例的一种可选的语音的传输方法的流程图,如图3所示,该方法可以包括以下步骤:
步骤S302,在目标应用的第二客户端上登录目标应用的第二帐号,第二帐号用于标识目标应用的场景地图中的第二对象。
步骤S304,在第二客户端上接收第一帐号通过服务器转发的第一语音,第一帐号用于标识位于场景地图中第一位置的第一对象,服务器用于根据第一位置确定场景地图中允许听到第一对象的语音的第一区域,第二对象为第一区域中的对象。
通过上述步骤S302至步骤S304,获取目标应用中的第一帐号的第一语音,第一帐号用于标识位于目标应用的场景地图中第一位置的第一对象,获取目标应用中的第二帐号,第二帐号用于标识场景地图中允许听到第一对象的语音的第二对象,第二对象为场景地图中由第一位置确定的第一区域内的对象,将第一语音发送给位于第一区域内的第二帐号,从而实现了基于位置的语音转发,可以解决相关技术中的语音解决方案容易造成语音服务器超过最大负荷的技术问题,进而达到了降低语音服务器的负载的技术效果。
下面结合步骤如图3所示的步骤详述本申请的实施例:
在步骤S302提供的技术方案中,在目标应用的第二客户端上登录目标应用的第二帐号。
可选地,在目标应用的第二客户端上登录目标应用的第二帐号之后,用户(即第二帐号)可通过第二客户端进行语音的接收和发送。
当第二帐号发送语音时,在第二客户端中获取第二帐号的第二语音。若第二语音不是悄悄话,那么第二语音会根据第二对象的当前位置发送至响应的帐号;若第二语音是悄悄话,第二语音会被发送给第二帐号指定发送的第五帐号(具体是通过服务器将第二语音发送给第五帐号)。
需要说明的是,在上述实施例中,在目标应用的第二客户端上登录目标应用的第二帐号之后,第二帐号可在第二客户端中进行设置,设置悄悄话的发送对象(即第五帐号)。
可选地,上述的第五帐号可以为多个,那么通过服务器将第二语音发送给第五帐号时,服务器将第二语音分别发送给多个第五帐号,每个第五帐号用于标识虚拟现实的场景地图中的一个第五对象,目标应用为虚拟现实的应用。
在步骤S304提供的技术方案中,在第二客户端接收语音时,在第二客户端上接收第一帐号通过服务器转发的第一语音,在第二客户端上接收到的可以为3D类型的第一语音。
可选地,第二帐号可以在第二客户端中指定对某一帐号禁言(如第一帐号),将这些禁言的帐号设置为指定类型的帐号,在第二客户端上接收第一帐号通过服务器转发的第一语音之后,判断第一帐号的类型,在第一帐号为指定类型的帐号的情况下,不在第二客户端中播放第一语音,指定类型的帐号为第二帐号指定的禁言的帐号。
若判断出第一帐号不为指定类型的帐号的情况下,在第二客户端上接收为3D类型的第一语音之后,则第二客户端获取第一语音的第三音强,第三音强是第一语音从第一位置传输至第二对象所在的第五位置时所衰减至的音强;在第二客户端上至少按照第三音强对第一语音进行播放。
可选地,上述步骤“在第二客户端上至少按照第三音强对第一语音进行播放”可以是在第二客户端上按照第三音强和第一语音的声源信息对第一语音进行播放。
(一)音强的确定
第二客户端获取第一语音的第三音强包括以下两种方式:
(1)方式一由客户端实时计算
在第二客户端上根据第五位置和第一位置确定或计算出第三音强。
在第二客户端根据第五位置和第一位置确定第三音强时,第二客户端确定第二对象所在的第五位置与第一位置之间的第二传输距离,第二客户端使用衰减模型确定第一语音在经过第二传输距离的传输后所衰减至的第三音强,衰减模型用于表示语音传播的距离与音强衰减之间的关系。
此处的衰减模型可以为上述的第一衰减模型和/或第二衰减模型,具体的计算方式参照前一实施例。
(2)方式二由服务器计算后下发给第二客户端
第二客户端从服务器获取服务器根据第五位置和第一位置确定的第三音强。
此处的音强获取可以是第二客户端主动向服务器请求,也可以是在服务器下发第一语音时一起下发的。
服务器的计算方式与上述第二客户端的计算方式相同或者类似,在此不再赘述。
(二)声源信息的确定
类似地,在第二客户端上按照第三音强和第一语音的声源信息对第一语音进行播放之前,第二客户端按照如下两种方式获取声源信息:
(1)方式一由客户端实时计算
第二客户端根据第一位置和第二对象的第五位置确定声源信息时,先根据第一位置和第五位置确定第一语音的传输方向(即由第一位置指向第五位置的方向);再获取传输方向与目标方向之间的夹角为声源角,目标方向为与第二对象的双耳之间的连线所垂直的直线所在的方向,声源信息包括声源角。
(2)方式二由服务器计算后下发给第二客户端
第二客户端获取服务器根据第一位置和第五位置确定的声源信息。
服务器计算声源信息的过程与第二客户端计算的过程相同或类似,在此不再赘述。
(三)关于语音的播放
在第二客户端上按照第三音强和第一语音的声源信息对第一语音进行播放时,第二客户端按照第三音强、目标双耳时间差、目标双耳强度差以及目标频谱变化中的至少之一对第一语音进行播放。
上述的目标双耳时间差是根据声源信息指示的声源角、第二对象的脑部半径、声音传输速度确定的;目标双耳强度差是根据声源角和第一语音的声音频率确定的;目标频谱变化是根据声源角、声源仰角、声源与第一对象的距离、声源角速度以及第二对象的脑部尺寸确定的。
作为一种可选的实施例,下面从技术侧详述本申请的实施例:
本申请的技术方案改进了相关技术中语音系统的语音转发策略及语音播放方式,一种可选的语音系统架构图如图4所示,本申请的语音系统架构图如图5所示。两者在客户端逻辑、服务器逻辑及两者之间通信数据方面都有所不同。
在一种可选的基于语音房间的语音系统中,语音的处理逻辑是如下:
步骤S41,客户端(如客户端1和客户端2)通过麦克风采集语音(得到麦克风数据),压缩编码并通过网络传到语音服务器。
步骤S42,语音服务器实时收集各个客户端的语音数据,并对其进行静音检测(VOD)及混合处理,将其变为一路混音数据向房间内的所有客户端发送。
步骤S43,客户端在收到从网络下发的语音数据后,进行解压解码处理,并通过对应硬件平台的音频接口来播放(此处直接播放不区分该语音来自哪个帐号对象,采用相同方式播放)。
可选地,从系统框架来说,在以上流程基础上可做如下改进:
(1)客户端在采集麦克风数据的基础上,采集对象在场景地图内的相对位置信息。
(2)客户端通过位置信息来决定要发送语音的帐号(即MemberID,或玩家帐号ID),并定期更新将其发送到服务器,当然,该功能也可由服务器来执行。
(3)服务器不是向所有玩家发送语音,而且通过判断客户端上传的帐号ID列表来决策是否发送给指定玩家。
(4)帐号的客户端收到服务器推送到的数据,说明自己能听到该数据对应的语音,于是在本地使用3D播放策略来播放语音。
针对每一个环节的语音处理,下面进行详细阐述:
(一)客户端对声音传播对象的上报
在真实的自然环境中,声音作为一种波,会随着在介质中传播而衰减,表现出来的现象就是声音会随着距离的增加而越来越小,到一定衰减范围,声音几乎不能被感知。在本申请中通过利用这个原理,可以屏蔽衰减范围外的玩家,这样在一个大场景中就可以大大减小数据的发送量。
如图6所示,预定义每个玩家的声音传播范围,或者根据环境的变化(比如空气中跟水传播范围不同,室内跟旷野中的传播范围也不同,是否有障碍物等)动态调整,假设玩家1(帐号ID1)在当前的传播范围为R1,玩家2(帐号ID2)的传播范围为R2,每个玩家都有一个传播对象列表MemberIdList,如玩家1的列表中包括ID3、ID4、ID8,该列表代表了声音要传递的其它玩家的帐号ID。现在假设有另一个玩家角色在游戏场景中移动,下面结合图6中的移动轨迹的变化过程模拟了一个典型的玩家位置关系变化的过程。
步骤S51,在客户端1上,主角是玩家1,玩家8(对应于帐号ID8)从外面进入玩家1的传播范围R1,玩家1的MemberIdList1添加ID8,并触发MemberIdList变动事件。
步骤S52,根据该事件,将MemberIdList1上传到服务器,知会服务器发送对象发生变化。
步骤S53,玩家8继续在R1范围内移动,此时发送关系没变,不做任何处理。
步骤S54,玩家8移动并离开R1范围,玩家1将其从MemberIdList1中移除,并触发MemberIdList变动事件,同样上传服务器并更新发送策略。
对于其它玩家和其它客户端,变化过程与上述过程类似。
(二)服务器的语音转发策略
服务器转发所有玩家的策略,参照表1,服务器转发过程描述如下:
表1
ID1 ID2 ID3 ID4 ID5
ID1 0 1 0 0 1
ID2 1 0 1 0 1
ID3 0 1 0 1 0
ID4 0 0 1 0 0
ID5 1 1 0 0 0
步骤S61,应用启动,创建一张空的二维表,横向跟纵向都代表不同的玩家ID。
步骤S62,所有玩家加入则横纵方向都添加一项,玩家退出则删除之前的表项。
步骤S63,以玩家ID1为例,如果当前范围R1内有三个玩家ID2和ID5,则服务器端根据该信息更新表项,如表1中“1”代表发送,“0”代表不发送。
步骤S64,服务器根据每个玩家上传的信息动态维护这张转发表。
步骤S65,在转发数据时,根据转发表的流向去动态发送语音数据,为“0”则不向对应玩家发送,如对于玩家ID5的语音,仅需向玩家ID1和玩家ID2发送。
显而易见的,在玩家非常多的情况下,上述转发策略生成的往往是一个稀疏矩阵,可以大大减少服务器的转发压力。
(三)客户端对真实声音的模拟
通过服务器的转发策略可以看出,服务器传到客户端的声音是经过距离筛选的,它充分的利用了声音衰减的特性,那在客户端表现上,可以去表现这种衰减的效果,同时加入3D声音效果,使玩家的语音更具渲染感。可把这个过程描述为干声(Dry Sound)向湿声(Wet Sound)的转换,主要通过两个阶段来完成。
(1)距离建模(Distance Modeling)
距离感可以通过声音的响度衰减(Attenuation)来实现,响度又称为音量、音强,它是人耳对所听到的声音大小强弱的主观感受,其客观评价尺度是声音的振幅大小。这种感受源自物体振动时所产生的压力,即声压。为了对声音的感受量化成可以监测的指标,就把声压分成“级”(声压级),以便能客观的表示声音的强弱,其单位称为“分贝”(dB)。
如图7所示,以最简单的线性衰减为例,假设声音的衰减半径为100m,声音的最大响度(音量)为100,最小响度为0,那么,玩家在距离声音30m处,能听到的响度就为70,在距离声音110m处响度为0,即听不到声音,在距离声音0m即声源处,听到的响度最大为100。这样,玩家就可以通过声音的响度变化来感知声源距离。
上面只是以线性衰减方式为例讲述原理,在实际实现中,为了模拟更加真实的环境,可采取多种不同的衰减曲线来使用在不同的环境下,如图8所示的对数曲线衰减。
(2)方向建模(Orientation Modeling)
对于声音方向感建模,可以参照人脑的声音定位机理,一个声音的方位信息可以通过以下三个途径被人脑获得并解析:
其一是:声音传到左右耳的时间差(英文全称为Interaural Time Difference,可简称为ITD),这个是由于左右耳距离不同导致的。
其二是:声音传到左右耳的强度差(英文全称为Interaural Level Difference,可简称为ILD),这个是因为声音被头部遮挡,导致左右耳声音强度不同。
其三是:声音从人脑周围不同方位传过来的频谱过滤,这个是因为声音从外部传入耳廓过程中被不同身体部位(如躯干、肩膀、耳廓等)遮挡过滤,从而出现的声音变化。
下面依次用这三种方式来修改声音的传播,以模拟人脑的定位方式。
(2.1)双耳时间差
申请人根据大量的实验验证,双耳之前的时间差跟声音的频率是相关的。假设音源频率为f、音源相对于人脑的角位置为θ,人脑的半径为r,声音的速度为c,那ITD时间差与r和sin(θ)成正比,与c成反比。
一种可选的ITD的计算公式是:
ITD=300*r*sin(θ)/c,(f≤4000Hz);
ITD=200*r*sin(θ)/c,(f>4000Hz)。
(2.2)双耳强度差
申请人认识到,位于脑部右边的声音传到右耳的声音强度要比传入左耳的声音强度大,这个是由于左耳被脑袋遮挡的原因,即所谓的头影(Head Shadow)现象,并且,随着声音自身频率的变化,ILD也会发生变化。声音频率f越高,ILD就越明显。大量的理论研究表明,ILD是一个关于频率f和声音角位置θ的函数,与f和sin(θ)成正比。
一种可选的ILD的计算公式是:
ILD=1+(f/1000)0.8*sin(θ)。
根据上述公式计算得到ITD和ILD后,就可以将实时将ITD应用到左右声道的时间变化上,将ILD应用到左右声道的强度变化上,从而初步实现声音的定位功能。
(2.3)HRTF算法(英文全称为Head Related Transfer Function,中文名称为头相关变换函数)。
如前所述,人脑除了通过区分声音传入双耳的时间差和强度差外,还可以针对声音从不同方位传过来时产生的频谱变化来判断声音的方向。为了模拟这个声音变化过程,使用头部相关传递函数(HRTF)来表示。HRFT表示的将任意一个方位的声音频谱转换到耳廓位置所听到频谱的过程。针对左右耳,可以分别用如下公式表示:
HL=HL(r,θ,ψ,ω,α)=PL(r,θ,ψ,ω,α)/P0(r,ω)
HR=HR(r,θ,ψ,ω,α)=PR(r,θ,ψ,ω,α)/P0(r,ω)
其中,L和R分别代表左右耳,PL和PR分别代表了在左右耳孔入口的声音频谱。P0代表了人头中心位置声音的频谱,并且这个地方现在没有听众影响。HL和HR是关于以下参数的函数,声源角位置θ,声源仰角ψ,声源和脑袋中心的距离r,声源角速度ω,以及头部尺寸α。
HFTF需要大量准确的数据测量,可采用MIT_KEMAR数据库,它采集的数据在垂直-40度到+90度,水平360度的范围内采集到710个不同的位置,记录下了HL和HR函数,在使用时,通过以下方式反向计算PL和PR值。
PL(r,θ,ψ,ω,α)=HL(r,θ,ψ,ω,α)*P0(r,ω)
PR(r,θ,ψ,ω,α)=HR(r,θ,ψ,ω,α)*P0(r,ω)
可选地,还可以使用LISTEN、CIPIC、FIU等公司提供的数据库实现上述计算。具体处理过程如图9所示:
步骤S901,利用距离模型对接收到的干声进行响度衰减,计算得到上述衰减后的音强。
步骤S902,传送衰减后的声音给方向模型。
步骤S903,方向模型按照上述方式计算ITD和ILD,然后得到湿声,并由客户端进行播放。
上述的距离模型和方向模型可以集成到客户端中。
通过HRTF的方式,可以对更加真实的模拟音源从不同发出来的声音的变化,结合前面的ITD和ILD,这三个方式就可以让玩家体验到通过声音来定位的神奇效果。
本发明还提供了一种优选实施例,下面从产品侧详述本申请的实施例:
本申请的技术方案适用于基于3D场景的多人语音交互场景,应用于各类应用,如3D类应用、VR虚拟现实类应用、AR增强现实类应用等,这些类型的应用包括但不局限于游戏、社交。
如将本方案将应用于VR游戏业务,该VR游戏可以是基于VR的社交游戏,使用了本申请的技术方案之后,其高自由度的语音交互是其一大亮点。
(1)玩家(如图10所示的玩家1)登录该VR游戏业务,进入一个VR场景中,便会自动匹配到与之对应的语音房间这中,在该游戏场景中仅此一个语音房间,所以玩家都在一个虚拟房间中,即一个虚拟世界对应一个虚拟语音房间。
(2)玩家可以随意跟周围的玩家说话,不用考虑之间分组的概念(即“所见即所聊”),由服务器来根据位置关系进行语音的转发。
(3)在客户端上,接收到的玩家的声音会模拟现实声音的3D定位及衰减,这样超出一定范围的玩家声音即被隐去,既方便定位也可以避免同时过多声音带来的嘈杂问题。
(4)基于该系统,如图11所示,玩家还可以对某个的玩家聊天做一些上层的逻辑处理,可以通过系统设置实现,比如禁言(通过禁言设置实现),私聊等。
在本申请的技术方案中,如在3D游戏中,同时支持大量玩家在同一个大场景中通话,避免了传统方案中只能小组聊天的局限性,同时3D声效的引入会使玩家的游戏体验大大提升。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例,还提供了一种用于实施上述语音的传输方法的语音的传输装置。图12是根据本发明实施例的一种可选的语音的传输装置的示意图,如图12所示,该装置可以包括:第一获取单元1201、第二获取单元1203以及第一发送单元1205。
第一获取单元1201,用于获取第一帐号的第一语音,其中,第一帐号为目标应用中的帐号,第一帐号用于标识目标应用的场景地图中的第一对象,第一对象在场景地图中的位置为第一位置。
上述的目标应用包括但不局限于社交应用、游戏应用、生活应用。目标应用能够实现对其场景地图中对象所在位置的识别,在场景地图为二维的2D地图时,识别到的位置为该对象的二维的位置信息(如二维坐标),在场景地图为三维的3D地图时,识别到的位置为该对象的三维的位置信息(如三维坐标)。
上述的第一语音即第一帐号发送的语音,在目标应用中,被当做是场景地图中的第一对象在第一位置发出的语音。
第二获取单元1203,用于获取目标应用中的第二帐号,其中,第二帐号用于标识场景地图中允许听到第一对象的语音的第二对象,第二对象为场景地图的第一区域中的对象,第一区域由第一位置确定。
上述的第一区域是根据第一位置确定的允许听到从第一位置发出的语音的区域,服务器获取到第一帐号的第一语音时,查找到该区域内的所有第二对象的第二帐号,以将第一语音发送给第二帐号。
第一发送单元1205,用于将第一语音发送给第二帐号。
在相关技术中,语音解决方案是以语音组的出现的,当语音组的成员数量过多时,由于传输带宽及服务器承载能力有限,当语音服务器将语音发送至语音组中所有成员时,有可能会导致语音服务器超过最大负载,影响语音音质的情况。
而在本申请的上述技术方案中,提供了一种全新的语音转发策略,当第一对象发送语音时,仅仅只会将语音转发给临近该对象的第二对象,而不会将语音转发给场景地图中所有的对象,从而降低了语音服务器的负载。
需要说明的是,该实施例中的第一获取单元1201可以用于执行本申请实施例中的步骤S202,该实施例中的第二获取单元1203可以用于执行本申请实施例中的步骤S204,该实施例中的第一发送单元1205可以用于执行本申请实施例中的步骤S206。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,获取目标应用中的第一帐号的第一语音,第一帐号用于标识位于目标应用的场景地图中第一位置的第一对象,获取目标应用中的第二帐号,第二帐号用于标识场景地图中允许听到第一对象的语音的第二对象,第二对象为场景地图中由第一位置确定的第一区域内的对象,将第一语音发送给位于第一区域内的第二帐号,从而实现了基于位置的语音转发,可以解决相关技术中的语音解决方案容易造成语音服务器超过最大负荷的技术问题,进而达到了降低语音服务器的负载的技术效果。
可选地,第一获取单元获取多个第一帐号的多个第一语音,一个第一帐号用于标识虚拟现实中的一个第一对象,目标应用为虚拟现实的应用。
可选地,第二获取单元还用于在场景地图中的对象中查找位于第一区域中的第二对象,并获取用于标识第二对象的第二帐号,其中,第一区域是根据第一语音以第一位置为起点在场景地图中向目标方向传播的距离确定的区域。
上述的第二获取单元可通过如下方式确定第一区域:在场景地图中以第一位置为起点的目标方向上不存在障碍物的情况下,使用第一衰减模型确定第一语音在目标方向上的第一传输距离,其中,第一衰减模型用于表示语音在第一介质中传播的距离与音强衰减之间的关系,第一介质为第一语音在目标方向上的传输介质;在场景地图中以第一位置为起点的目标方向上存在障碍物的情况下,按照第一衰减模型和第二衰减模型确定第一语音在目标方向上的第一传输距离,其中,第二衰减模型用于表示语音在障碍物中传播的距离与音强衰减之间的关系;将以第一位置为起点向目标方向上传输第一传输距离后的位置作为第一区域的区域边界。
上述的第二获取单元按照第一衰减模型和第二衰减模型确定第一语音在目标方向上的第一传输距离时,通过使用第一衰减模型确定第一语音传输至障碍物时的第一音强;在第一音强大于目标音强的情况下,通过使用第二衰减模型确定第一语音通过障碍物时的第二音强,其中,目标音强为允许被目标应用中的对象听见的最小音强;在第二音强大于目标音强的情况下,通过使用第一衰减模型确定第一语音通过障碍物后、且衰减至目标音强时所传输的第二距离;将第一位置与障碍物之间的距离、障碍物在目标方向上的长度以及第二距离之和作为第一传输距离。
上述的第二获取单元在场景地图中的对象中查找位于第一区域中的第二对象,并获取用于标识第二对象的第二帐号时,可在场景地图中通过上述方式确定第一区域;并查找位于第一区域中的第二对象,并获取用于标识第二对象的第二帐号。
上述的第二获取单元在场景地图中的对象中查找位于第一区域中的第二对象,并获取用于标识第二对象的第二帐号时,还可从目标关系表中查找与第一帐号相关联的第二帐号,其中,在允许第二帐号标识的第二对象听到第一对象的语音的情况下,目标关系表中的第二帐号被设置为与第一帐号相关联。
可选地,在第二获取单元获取用于标识第二对象的第二帐号之前,本申请的装置可包括:维护单元,用于创建目标关系表;并在目标对象的位置发生变化的情况下,对目标关系表进行更新,其中,目标对象为目标关系表中的帐号所标识的对象。
上述的目标对象包括第一对象、第二对象以及第三对象中的至少之一,其中,维护单元对目标关系表进行更新时,获取目标应用的第一客户端发送的更新信息,并根据更新信息对目标关系表进行更新,第一帐号在第一客户端上使用,其中,更新信息包括第一信息、第二信息以及第三信息中的至少之一。
上述的第一信息用于指示第三帐号,其中,第三帐号标识的第三对象为场景地图中发生位置变化的对象,在第三对象位于位置变化前的位置的情况下,允许第三对象听到第一对象的语音,在第三对象位于位置变化后的位置的情况下,不允许第三对象听到第一对象的语音。
上述的第二信息用于指示第二帐号,其中,第二帐号标识的第二对象为场景地图中发生位置变化的对象,在第二对象位于位置变化前的位置的情况下,不允许第二对象听到第一对象的语音,在第二对象位于位置变化后的位置的情况下,允许第二对象听到第一对象的语音。
上述的第三信息用于指示第四帐号,其中,第四帐号用于标识允许听到位于第二位置的第一对象的语音的对象,第二位置为第一对象发生位置变化后在场景地图中的位置,第一对象发生位置变化前位于场景地图中的第一位置。
维护单元根据更新信息对目标关系表进行更新时,在第三对象在场景地图中发生位置变化的情况下,在目标关系表中解除第一信息指示的第三帐号与第一帐号的关联;在第二对象在场景地图中发生位置变化的情况下,在目标关系表中将第二信息指示的第二帐号设置为与第一帐号相关联;在第一对象在场景地图中发生位置变化的情况下,在目标关系表中将第三信息指示的第四帐号设置为与第一帐号相关联。
上述的目标对象包括第一对象、第二对象以及第三对象中的至少之一,其中,维护单元对目标关系表进行更新时,获取目标对象的位置变化信息,并根据位置变化信息对目标关系表进行更新,位置变化信息用于指示第二位置、第三位置以及第四位置中的至少之一。
上述的第二位置为第一对象在场景地图中发生位置变化后所在的位置第三位置为第二对象在场景地图中发生位置变化后所在的位置,在第二对象位于位置变化前的位置的情况下,不允许第二对象听到第一对象的语音,在第二对象位于位置变化后的第三位置的情况下,允许第二对象听到第一对象的语音。
上述的第四位置为第三对象在场景地图中发生位置变化后所在的位置,其中,在第三对象位于位置变化前的位置的情况下,允许第三对象听到第一对象的语音,在第三对象位于位置变化后的第四位置的情况下,不允许第三对象听到第一对象的语音,第三对象为目标应用的第三帐号所标识的位于场景地图中的对象。
维护单元根据位置变化信息对目标关系表进行更新时,包括以下几种情况:在第三对象的位置发生变化的情况下,根据位置变化信息,在目标关系表中解除第三帐号与第一帐号的关联;在第二对象的位置发生变化的情况下,根据位置变化信息,在目标关系表中将第二帐号设置为与第一帐号相关联;在第一对象的位置发生变化的情况下,根据位置变化信息,在目标关系表中将第四帐号设置为与第一帐号相关联,其中,第一对象发生位置变化后位于场景地图中的第二位置,第四帐号用于标识允许听到位于第二位置的第一对象的语音的对象。
可选地,第一发送单元还用于将为3D类型的第一语音发送至第二客户端,第二帐号在目标应用的第二客户端上使用。
根据本发明实施例,还提供了一种用于实施上述语音的传输方法的语音的传输装置。图13是根据本发明实施例的一种可选的语音的传输装置的示意图,如图13所示,该装置可以包括:登录单元1301以及接收单元1303。
登录单元1301,用于在目标应用的第二客户端上登录目标应用的第二帐号,其中,第二帐号用于标识目标应用的场景地图中的第二对象。
接收单元1303,用于在第二客户端上接收第一帐号通过服务器转发的第一语音,其中,第一帐号用于标识位于场景地图中第一位置的第一对象,服务器用于根据第一位置确定场景地图中允许听到第一对象的语音的第一区域,第二对象为第一区域中的对象。
需要说明的是,该实施例中的登录单元1301可以用于执行本申请实施例中的步骤S302,该实施例中的接收单元1303可以用于执行本申请实施例中的步骤S304。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,获取目标应用中的第一帐号的第一语音,第一帐号用于标识位于目标应用的场景地图中第一位置的第一对象,获取目标应用中的第二帐号,第二帐号用于标识场景地图中允许听到第一对象的语音的第二对象,第二对象为场景地图中由第一位置确定的第一区域内的对象,将第一语音发送给位于第一区域内的第二帐号,从而实现了基于位置的语音转发,可以解决相关技术中的语音解决方案容易造成语音服务器超过最大负荷的技术问题,进而达到了降低语音服务器的负载的技术效果。
可选地,本申请的上述装置还可以包括第三获取单元,用于在目标应用的第二客户端上登录目标应用的第二帐号之后,在第二客户端中获取第二帐号的第二语音,其中,第二语音被第二帐号指定发送给目标应用中的第五帐号;第二发送单元,用于通过服务器将第二语音发送给第五帐号。
上述的第五帐号可以为多个,第二发送单元通过服务器将第二语音发送给第五帐号时,通过服务器将第二语音分别发送给多个第五帐号,其中,每个第五帐号用于标识虚拟现实的场景地图中的一个第五对象,目标应用为虚拟现实的应用。
可选地,第二帐号可以在第二客户端中指定对某一帐号禁言(如第一帐号),将这些禁言的帐号设置为指定类型的帐号,在第二客户端上接收第一帐号通过服务器转发的第一语音之后,判断第一帐号的类型,在第一帐号为指定类型的帐号的情况下,不在第二客户端中播放第一语音,指定类型的帐号为第二帐号指定的禁言的帐号。
若判断出第一帐号不为指定类型的帐号的情况下,接收单元在第二客户端上接收为3D类型的第一语音之后,则第二客户端获取第一语音的第三音强,第三音强是第一语音从第一位置传输至第二对象所在的第五位置时所衰减至的音强;播放单元在第二客户端上至少按照第三音强对第一语音进行播放。
可选地,在第二客户端上至少按照第三音强对第一语音进行播放时,在第二客户端上按照第三音强和第一语音的声源信息对第一语音进行播放。
上述第二客户端获取第一语音的第三音强的方式包括:第二客户端根据第五位置和第一位置确定第三音强;或,第二客户端从服务器获取服务器根据第五位置和第一位置确定的第三音强。
第二客户端根据第五位置和第一位置确定第三音强时,确定第五位置与第一位置之间的第二传输距离;使用衰减模型确定第一语音在经过第二传输距离的传输后所衰减至的第三音强,其中,衰减模型用于表示语音传播的距离与音强衰减之间的关系。
在第二客户端上按照第三音强和第一语音的声源信息对第一语音进行播放之前,播放单元按照如下方式获取声源信息:根据第一位置和第二对象的第五位置确定声源信息;或,获取服务器根据第一位置和第五位置确定的声源信息。
播放单元还用于根据第一位置和第二对象的第五位置确定声源信息,首先根据第一位置和第五位置确定第一语音的传输方向;然后获取传输方向与目标方向之间的夹角为声源角,其中,目标方向为与第二对象的双耳之间的连线所垂直的直线所在的方向,声源信息包括声源角。
在播放时,播放单元按照第三音强、目标双耳时间差、目标双耳强度差以及目标频谱变化中的至少之一对第一语音进行播放,其中,目标双耳时间差是根据声源信息指示的声源角、第二对象的脑部半径、声音传输速度确定的;目标双耳强度差是根据声源角和第一语音的声音频率确定的;目标频谱变化是根据声源角、声源仰角、声源与第一对象的距离、声源角速度以及第二对象的脑部尺寸确定的。
相关技术中基于语音房间的方案比较适合人数有限的游戏场景,其局限性体现在:同时说话人数有上限,一般为6为左右,多于该人数,网络数据转发压力过大,就会产生声音顿卡及延迟增大的问题;说话对象不灵活,要经过建房、加房、退房的流程才能切换聊天对象,在mmorpg(英文全称为Massive或Massively Multiplayer Online Role-PlayingGame,中文名称为大型多人在线角色扮演游戏)等类型游戏中用户体验不好;语音都是纯2D语音,跟普通的3D场景难以融入,缺乏代入感。
针对以上局限性,本申请提出了一种新的语音解决方案,它具备如下特征:去除传统语音房间的概念,没有最大人数限制,玩家交流自由度大大提高;去除同时说话最大人数限制,通过玩家相对位置动态转发语音数据,避免同时说话人数多造成了语音转发的卡顿的问题;用3D音频技术模拟真实语音传播,大大提高语音环境的真实感,解决了大规模玩家同时在线时的语音交互问题。
在本申请的技术方案中,不设置玩家上限,根据玩家位置动态确定语音对象,所见即所聊;没有语音房间概念,所有玩家在一个世界,每个人都可能相互交流;玩家的声音加入空间感,与玩家所处的3D环境相匹配,增加沉浸感。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本发明实施例,还提供了一种用于实施上述语音的传输方法的服务器或终端。
图14是根据本发明实施例的一种终端的结构框图,如图14所示,该终端可以包括:一个或多个(图14中仅示出一个)处理器1401、存储器1403、以及传输装置1405(如上述实施例中的发送装置),如图14所示,该终端还可以包括输入输出设备1407。
其中,存储器1403可用于存储软件程序以及模块,如本发明实施例中的语音的传输方法和装置对应的程序指令/模块,处理器1401通过运行存储在存储器1403内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的语音的传输方法。存储器1403可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1403可进一步包括相对于处理器1401远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置1405用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1405包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1405为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器1403用于存储应用程序。
处理器1401可以通过传输装置1405调用存储器1403存储的应用程序,以执行下述步骤:
获取第一帐号的第一语音,第一帐号为目标应用中的帐号,第一帐号用于标识目标应用的场景地图中的第一对象,第一对象在场景地图中的位置为第一位置;获取目标应用中的第二帐号,第二帐号用于标识场景地图中允许听到第一对象的语音的第二对象,第二对象为场景地图的第一区域中的对象,第一区域由第一位置确定;将第一语音发送给第二帐号。
处理器1401还用于执行下述步骤:
在目标应用的第二客户端上登录目标应用的第二帐号,其中,第二帐号用于标识目标应用的场景地图中的第二对象;在第二客户端上接收第一帐号通过服务器转发的第一语音,其中,第一帐号用于标识位于场景地图中第一位置的第一对象,服务器用于根据第一位置确定场景地图中允许听到第一对象的语音的第一区域,第二对象为第一区域中的对象。
采用本发明实施例,获取目标应用中的第一帐号的第一语音,第一帐号用于标识位于目标应用的场景地图中第一位置的第一对象,获取目标应用中的第二帐号,第二帐号用于标识场景地图中允许听到第一对象的语音的第二对象,第二对象为场景地图中由第一位置确定的第一区域内的对象,将第一语音发送给位于第一区域内的第二帐号,从而实现了基于位置的语音转发,可以解决相关技术中的语音解决方案容易造成语音服务器超过最大负荷的技术问题,进而达到了降低语音服务器的负载的技术效果。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图14所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图14其并不对上述电子装置的结构造成限定。例如,终端还可包括比图14中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图14所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行语音的传输方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S71,获取第一帐号的第一语音,第一帐号为目标应用中的帐号,第一帐号用于标识目标应用的场景地图中的第一对象,第一对象在场景地图中的位置为第一位置;
S72,获取目标应用中的第二帐号,第二帐号用于标识场景地图中允许听到第一对象的语音的第二对象,第二对象为场景地图的第一区域中的对象,第一区域由第一位置确定;
S73,将第一语音发送给第二帐号。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S81,在目标应用的第二客户端上登录目标应用的第二帐号,其中,第二帐号用于标识目标应用的场景地图中的第二对象;
S82,在第二客户端上接收第一帐号通过服务器转发的第一语音,其中,第一帐号用于标识位于场景地图中第一位置的第一对象,服务器用于根据第一位置确定场景地图中允许听到第一对象的语音的第一区域,第二对象为第一区域中的对象。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (23)

1.一种语音的传输方法,其特征在于,包括:
获取第一帐号的第一语音,其中,所述第一帐号为目标应用中的帐号,所述第一帐号用于标识所述目标应用的场景地图中的第一对象,所述第一对象在所述场景地图中的位置为第一位置;
获取所述目标应用中的第二帐号,其中,所述第二帐号用于标识所述场景地图中允许听到所述第一对象的语音的第二对象,所述第二对象为所述场景地图的第一区域中的对象,所述第一区域由所述第一位置确定;
将所述第一语音发送给所述第二帐号;
其中,所述第一帐号的第一语音同时存在多个时,语音服务器通过多个并行运行的线程来处理所述第一帐号的第一语音,在所述第一帐号为所述第二帐号指定的禁言的帐号的情况下,不允许所述第一语音在所述第二帐号中播放,其中,通过以下步骤确定所述第一区域:
在所述场景地图中以所述第一位置为起点的目标方向上不存在障碍物的情况下,使用第一衰减模型确定所述第一语音在所述目标方向上的第一传输距离,其中,所述第一衰减模型用于表示语音在第一介质中传播的距离与音强衰减之间的关系,所述第一介质为所述第一语音在所述目标方向上的传输介质;
在所述场景地图中以所述第一位置为起点的所述目标方向上存在障碍物的情况下,按照第一衰减模型和第二衰减模型确定所述第一语音在所述目标方向上的第一传输距离,其中,所述第二衰减模型用于表示语音在所述障碍物中传播的距离与音强衰减之间的关系;
将以所述第一位置为起点向所述目标方向上传输所述第一传输距离后的位置作为所述第一区域的区域边界。
2.根据权利要求1所述的方法,其特征在于,获取所述目标应用中的第二帐号包括:
在所述场景地图中的对象中查找位于所述第一区域中的所述第二对象,并获取用于标识所述第二对象的所述第二帐号,其中,所述第一区域是根据所述第一语音以所述第一位置为起点在所述场景地图中向目标方向传播的距离确定的区域。
3.根据权利要求1所述的方法,其特征在于,按照所述第一衰减模型和第二衰减模型确定所述第一语音在所述目标方向上的所述第一传输距离包括:
通过使用所述第一衰减模型确定所述第一语音传输至所述障碍物时的第一音强;
在所述第一音强大于目标音强的情况下,通过使用所述第二衰减模型确定所述第一语音通过所述障碍物时的第二音强,其中,所述目标音强为允许被所述目标应用中的对象听见的最小音强;
在所述第二音强大于目标音强的情况下,通过使用所述第一衰减模型确定所述第一语音通过所述障碍物后、且衰减至所述目标音强时所传输的第二距离;
将所述第一位置与所述障碍物之间的距离、所述障碍物在所述目标方向上的长度以及所述第二距离之和作为所述第一传输距离。
4.根据权利要求2所述的方法,其特征在于,在所述场景地图中的对象中查找位于所述第一区域中的所述第二对象,并获取用于标识所述第二对象的所述第二帐号,包括:
在所述场景地图中确定所述第一区域;
查找位于所述第一区域中的所述第二对象,并获取用于标识所述第二对象的所述第二帐号。
5.根据权利要求2所述的方法,其特征在于,在所述场景地图中的对象中查找位于所述第一区域中的所述第二对象,并获取用于标识所述第二对象的所述第二帐号,包括:
从目标关系表中查找与所述第一帐号相关联的所述第二帐号,其中,在允许所述第二帐号标识的所述第二对象听到所述第一对象的语音的情况下,所述目标关系表中的所述第二帐号被设置为与所述第一帐号相关联。
6.根据权利要求5所述的方法,其特征在于,在获取用于标识所述第二对象的所述第二帐号之前,所述方法还包括:
创建所述目标关系表;
在目标对象的位置发生变化的情况下,对所述目标关系表进行更新,其中,所述目标对象为所述目标关系表中的帐号所标识的对象。
7.根据权利要求6所述的方法,其特征在于,所述目标对象包括所述第一对象、所述第二对象以及第三对象中的至少之一,其中,对所述目标关系表进行更新包括:
获取所述目标应用的第一客户端发送的更新信息,并根据所述更新信息对所述目标关系表进行更新,所述第一帐号在所述第一客户端上使用,其中,所述更新信息包括第一信息、第二信息以及第三信息中的至少之一,
所述第一信息用于指示第三帐号,其中,所述第三帐号标识的第三对象为所述场景地图中发生位置变化的对象,在所述第三对象位于位置变化前的位置的情况下,允许所述第三对象听到所述第一对象的语音,在所述第三对象位于位置变化后的位置的情况下,不允许所述第三对象听到所述第一对象的语音;
所述第二信息用于指示所述第二帐号,其中,所述第二帐号标识的所述第二对象为所述场景地图中发生位置变化的对象,在所述第二对象位于位置变化前的位置的情况下,不允许所述第二对象听到所述第一对象的语音,在所述第二对象位于位置变化后的位置的情况下,允许所述第二对象听到所述第一对象的语音;
所述第三信息用于指示第四帐号,其中,所述第四帐号用于标识允许听到位于第二位置的所述第一对象的语音的对象,所述第二位置为所述第一对象发生位置变化后在所述场景地图中的位置,所述第一对象发生位置变化前位于所述场景地图中的所述第一位置。
8.根据权利要求7所述的方法,其特征在于,根据所述更新信息对所述目标关系表进行更新包括以下至少之一:
在所述第三对象在所述场景地图中发生位置变化的情况下,在所述目标关系表中解除所述第一信息指示的所述第三帐号与所述第一帐号的关联;
在所述第二对象在所述场景地图中发生位置变化的情况下,在所述目标关系表中将所述第二信息指示的所述第二帐号设置为与所述第一帐号相关联;
在所述第一对象在所述场景地图中发生位置变化的情况下,在所述目标关系表中将所述第三信息指示的所述第四帐号设置为与所述第一帐号相关联。
9.根据权利要求6所述的方法,其特征在于,所述目标对象包括所述第一对象、所述第二对象以及第三对象中的至少之一,其中,对所述目标关系表进行更新包括:
获取所述目标对象的位置变化信息,并根据所述位置变化信息对所述目标关系表进行更新,所述位置变化信息用于指示第二位置、第三位置以及第四位置中的至少之一,其中,
所述第二位置为所述第一对象在所述场景地图中发生位置变化后所在的位置;
所述第三位置为所述第二对象在所述场景地图中发生位置变化后所在的位置,在所述第二对象位于位置变化前的位置的情况下,不允许所述第二对象听到所述第一对象的语音,在所述第二对象位于位置变化后的所述第三位置的情况下,允许所述第二对象听到所述第一对象的语音;
所述第四位置为所述第三对象在所述场景地图中发生位置变化后所在的位置,其中,在所述第三对象位于位置变化前的位置的情况下,允许所述第三对象听到所述第一对象的语音,在所述第三对象位于位置变化后的所述第四位置的情况下,不允许所述第三对象听到所述第一对象的语音,所述第三对象为所述目标应用的第三帐号所标识的位于所述场景地图中的对象。
10.根据权利要求9所述的方法,其特征在于,根据所述位置变化信息对所述目标关系表进行更新包括以下至少之一:
在所述第三对象的位置发生变化的情况下,根据所述位置变化信息,在所述目标关系表中解除所述第三帐号与所述第一帐号的关联;
在所述第二对象的位置发生变化的情况下,根据所述位置变化信息,在所述目标关系表中将所述第二帐号设置为与所述第一帐号相关联;
在所述第一对象的位置发生变化的情况下,根据所述位置变化信息,在所述目标关系表中将第四帐号设置为与所述第一帐号相关联,其中,所述第一对象发生位置变化后位于所述场景地图中的第二位置,所述第四帐号用于标识允许听到位于所述第二位置的所述第一对象的语音的对象。
11.根据权利要求1所述的方法,其特征在于,将所述第一语音发送给所述第二帐号包括:
将为3D类型的所述第一语音发送至第二客户端,其中,所述第二帐号在所述目标应用的所述第二客户端上使用。
12.根据权利要求1所述的方法,其特征在于,获取第一帐号的第一语音包括:
获取多个所述第一帐号的多个所述第一语音,其中,所述第一帐号用于标识虚拟现实中的所述第一对象,所述目标应用为所述虚拟现实的应用。
13.一种语音的传输方法,其特征在于,包括:
在目标应用的第二客户端上登录所述目标应用的第二帐号,其中,所述第二帐号用于标识所述目标应用的场景地图中的第二对象;
在所述第二客户端上接收第一帐号通过服务器转发的第一语音,其中,所述第一帐号用于标识位于所述场景地图中第一位置的第一对象,所述服务器用于根据所述第一位置确定所述场景地图中允许听到所述第一对象的语音的第一区域,所述第二对象为所述第一区域中的对象;
其中,所述第一帐号的第一语音同时存在多个时,语音服务器通过多个并行运行的线程来处理所述第一帐号的第一语音,在所述第一帐号为所述第二帐号指定的禁言的帐号的情况下,不允许所述第一语音在所述第二帐号中播放,其中,通过以下步骤确定所述第一区域:
在所述场景地图中以所述第一位置为起点的目标方向上不存在障碍物的情况下,使用第一衰减模型确定所述第一语音在所述目标方向上的第一传输距离,其中,所述第一衰减模型用于表示语音在第一介质中传播的距离与音强衰减之间的关系,所述第一介质为所述第一语音在所述目标方向上的传输介质;
在所述场景地图中以所述第一位置为起点的所述目标方向上存在障碍物的情况下,按照第一衰减模型和第二衰减模型确定所述第一语音在所述目标方向上的第一传输距离,其中,所述第二衰减模型用于表示语音在所述障碍物中传播的距离与音强衰减之间的关系;将以所述第一位置为起点向所述目标方向上传输所述第一传输距离后的位置作为所述第一区域的区域边界。
14.根据权利要求13所述的方法,其特征在于,在所述第二客户端上接收第一帐号通过服务器转发的第一语音包括:
在所述第二客户端上接收为3D类型的所述第一语音。
15.根据权利要求14所述的方法,其特征在于,在所述第二客户端上接收为3D类型的所述第一语音之后,所述方法还包括:
所述第二客户端获取所述第一语音的第三音强,其中,所述第三音强是所述第一语音从所述第一位置传输至所述第二对象所在的第五位置时所衰减至的音强;
在所述第二客户端上至少按照所述第三音强对所述第一语音进行播放。
16.根据权利要求15所述的方法,其特征在于,在所述第二客户端上至少按照所述第三音强对所述第一语音进行播放包括:
在所述第二客户端上按照所述第三音强和所述第一语音的声源信息对所述第一语音进行播放。
17.根据权利要求13所述的方法,其特征在于,在目标应用的第二客户端上登录所述目标应用的第二帐号之后,所述方法还包括:
在所述第二客户端中获取所述第二帐号的第二语音,其中,所述第二语音被所述第二帐号指定发送给所述目标应用中的第五帐号;
通过所述服务器将所述第二语音发送给所述第五帐号。
18.根据权利要求17所述的方法,其特征在于,所述第五帐号为多个,其中,通过所述服务器将所述第二语音发送给所述第五帐号包括:
通过所述服务器将所述第二语音分别发送给多个所述第五帐号,其中,每个所述第五帐号用于标识虚拟现实的所述场景地图中的一个第五对象,所述目标应用为所述虚拟现实的应用。
19.根据权利要求13所述的方法,其特征在于,在所述第二客户端上接收第一帐号通过服务器转发的第一语音之后,所述方法还包括:
在所述第一帐号为指定类型的帐号的情况下,不在所述第二客户端中播放所述第一语音,其中,所述指定类型的帐号为所述第二帐号指定的禁言的帐号。
20.一种语音的传输装置,其特征在于,包括:
第一获取单元,用于获取第一帐号的第一语音,其中,所述第一帐号为目标应用中的帐号,所述第一帐号用于标识所述目标应用的场景地图中的第一对象,所述第一对象在所述场景地图中的位置为第一位置;
第二获取单元,用于获取所述目标应用中的第二帐号,其中,所述第二帐号用于标识所述场景地图中允许听到所述第一对象的语音的第二对象,所述第二对象为所述场景地图的第一区域中的对象,所述第一区域由所述第一位置确定;
第一发送单元,用于将所述第一语音发送给所述第二帐号;
所述装置还用于执行如下操作:所述第一帐号的第一语音同时存在多个时,语音服务器通过多个并行运行的线程来处理所述第一帐号的第一语音,在所述第一帐号为所述第二帐号指定的禁言的帐号的情况下,不允许所述第一语音在所述第二帐号中播放,其中,通过以下步骤确定所述第一区域:
在所述场景地图中以所述第一位置为起点的目标方向上不存在障碍物的情况下,使用第一衰减模型确定所述第一语音在所述目标方向上的第一传输距离,其中,所述第一衰减模型用于表示语音在第一介质中传播的距离与音强衰减之间的关系,所述第一介质为所述第一语音在所述目标方向上的传输介质;
在所述场景地图中以所述第一位置为起点的所述目标方向上存在障碍物的情况下,按照第一衰减模型和第二衰减模型确定所述第一语音在所述目标方向上的第一传输距离,其中,所述第二衰减模型用于表示语音在所述障碍物中传播的距离与音强衰减之间的关系;
将以所述第一位置为起点向所述目标方向上传输所述第一传输距离后的位置作为所述第一区域的区域边界。
21.一种语音的传输装置,其特征在于,包括:
登录单元,用于在目标应用的第二客户端上登录所述目标应用的第二帐号,其中,所述第二帐号用于标识所述目标应用的场景地图中的第二对象;
接收单元,用于在所述第二客户端上接收第一帐号通过服务器转发的第一语音,其中,所述第一帐号用于标识位于所述场景地图中第一位置的第一对象,所述服务器用于根据所述第一位置确定所述场景地图中允许听到所述第一对象的语音的第一区域,所述第二对象为所述第一区域中的对象;
所述装置还用于执行如下操作:所述第一帐号的第一语音同时存在多个时,语音服务器通过多个并行运行的线程来处理所述第一帐号的第一语音,在所述第一帐号为所述第二帐号指定的禁言的帐号的情况下,不允许所述第一语音在所述第二帐号中播放,其中,通过以下步骤确定所述第一区域:
在所述场景地图中以所述第一位置为起点的目标方向上不存在障碍物的情况下,使用第一衰减模型确定所述第一语音在所述目标方向上的第一传输距离,其中,所述第一衰减模型用于表示语音在第一介质中传播的距离与音强衰减之间的关系,所述第一介质为所述第一语音在所述目标方向上的传输介质;
在所述场景地图中以所述第一位置为起点的所述目标方向上存在障碍物的情况下,按照第一衰减模型和第二衰减模型确定所述第一语音在所述目标方向上的第一传输距离,其中,所述第二衰减模型用于表示语音在所述障碍物中传播的距离与音强衰减之间的关系;
将以所述第一位置为起点向所述目标方向上传输所述第一传输距离后的位置作为所述第一区域的区域边界。
22.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至19中任一项所述的方法。
23.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求1至19中任一项所述的方法。
CN201711025125.XA 2017-10-27 2017-10-27 语音的传输方法和装置、存储介质、电子装置 Active CN109729109B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711025125.XA CN109729109B (zh) 2017-10-27 2017-10-27 语音的传输方法和装置、存储介质、电子装置
PCT/CN2018/111915 WO2019080901A1 (zh) 2017-10-27 2018-10-25 交互界面的显示方法和装置、存储介质、电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711025125.XA CN109729109B (zh) 2017-10-27 2017-10-27 语音的传输方法和装置、存储介质、电子装置

Publications (2)

Publication Number Publication Date
CN109729109A CN109729109A (zh) 2019-05-07
CN109729109B true CN109729109B (zh) 2020-11-10

Family

ID=66246224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711025125.XA Active CN109729109B (zh) 2017-10-27 2017-10-27 语音的传输方法和装置、存储介质、电子装置

Country Status (2)

Country Link
CN (1) CN109729109B (zh)
WO (1) WO2019080901A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110673810B (zh) * 2019-09-27 2024-05-14 杭州鸿雁智能科技有限公司 显示设备及其显示方法、装置、存储介质和处理器
CN110780598B (zh) * 2019-10-24 2023-05-16 深圳传音控股股份有限公司 一种智能设备控制方法、装置、电子设备及可读存储介质
CN110827818B (zh) * 2019-11-20 2024-04-09 腾讯科技(深圳)有限公司 一种智能语音设备的控制方法、装置、设备及存储介质
CN111475022A (zh) * 2020-04-03 2020-07-31 上海唯二网络科技有限公司 一种在多人vr场景中对交互式语音数据进行处理的方法
CN114024954B (zh) * 2021-10-27 2024-02-06 北京达佳互联信息技术有限公司 信息传输方法、装置、服务器及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009577A (zh) * 2006-12-28 2007-08-01 北京金山数字娱乐科技有限公司 实现音频播放的方法与装置
CN103335644A (zh) * 2013-05-31 2013-10-02 王玉娇 街景地图的声音播放方法及相关设备
CN103874019A (zh) * 2014-03-11 2014-06-18 腾讯科技(深圳)有限公司 语音交互方法和装置
CN106211017A (zh) * 2016-06-20 2016-12-07 北京奇幻科技有限公司 一种3d声场构建方法
CN106774830A (zh) * 2016-11-16 2017-05-31 网易(杭州)网络有限公司 虚拟现实系统、语音交互方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101904151A (zh) * 2007-12-17 2010-12-01 皇家飞利浦电子股份有限公司 控制在通信系统的至少两个用户之间通信的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009577A (zh) * 2006-12-28 2007-08-01 北京金山数字娱乐科技有限公司 实现音频播放的方法与装置
CN103335644A (zh) * 2013-05-31 2013-10-02 王玉娇 街景地图的声音播放方法及相关设备
CN103874019A (zh) * 2014-03-11 2014-06-18 腾讯科技(深圳)有限公司 语音交互方法和装置
CN106211017A (zh) * 2016-06-20 2016-12-07 北京奇幻科技有限公司 一种3d声场构建方法
CN106774830A (zh) * 2016-11-16 2017-05-31 网易(杭州)网络有限公司 虚拟现实系统、语音交互方法及装置

Also Published As

Publication number Publication date
CN109729109A (zh) 2019-05-07
WO2019080901A1 (zh) 2019-05-02

Similar Documents

Publication Publication Date Title
CN109729109B (zh) 语音的传输方法和装置、存储介质、电子装置
US10979842B2 (en) Methods and systems for providing a composite audio stream for an extended reality world
US20230033891A1 (en) Method and System for Surround Sound Processing in an Audio Device
US9826331B2 (en) Method and apparatus for sound processing in three-dimensional virtual scene
JP5563014B2 (ja) オーディオシーン作成用装置および方法
CN112316427B (zh) 语音播放方法、装置、计算机设备及存储介质
US20230251819A1 (en) Audio apparatus, audio distribution system and method of operation therefor
DE102019129896A1 (de) Anwendung geometrischer akustik für immersive virtuelle realität (vr)
CN114143700B (zh) 一种音频处理方法、装置、设备、介质及程序产品
JP2005322125A (ja) 情報処理システム、情報処理方法、プログラム
US20200228911A1 (en) Audio spatialization
CN107301028A (zh) 一种基于多人远程通话的音频数据处理方法及装置
CN113827954B (zh) 区域语音通信方法、装置、存储介质及电子设备
WO2021196337A1 (zh) 一种在多人vr场景中对交互式语音数据进行处理的方法
CN111713118A (zh) 音频数据的处理方法、设备、系统及存储介质
EP3038319B1 (de) Kommunikationssystem für eine interaktive avatar-kommunikation
CN116887174A (zh) 一种虚拟空间中的声音混响方法、混响装置以及存储介质
CN117528392A (zh) 音频处理方法、装置、设备及存储介质
CN115738265A (zh) 音频播放控制方法及装置
CN117492686A (zh) 一种数据处理方法和相关装置
CN117714968A (zh) 音频渲染方法和系统
CN116741164A (zh) 语音交互的控制方法和装置、存储介质及电子设备
CN117998274A (zh) 音频处理方法、装置及存储介质
CN112737535A (zh) 声音信号的处理方法和装置
Song Final Review: 3D SOUND SOURCE LOCALIZATION PLUG-IN FOR WORLD OF WARCRAFT ARENA

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant