CN113488019B - 基于语音房的混音系统、方法、服务器和存储介质 - Google Patents

基于语音房的混音系统、方法、服务器和存储介质 Download PDF

Info

Publication number
CN113488019B
CN113488019B CN202110950107.2A CN202110950107A CN113488019B CN 113488019 B CN113488019 B CN 113488019B CN 202110950107 A CN202110950107 A CN 202110950107A CN 113488019 B CN113488019 B CN 113488019B
Authority
CN
China
Prior art keywords
mixing
server
voice
room
target media
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
CN202110950107.2A
Other languages
English (en)
Other versions
CN113488019A (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.)
Bigo Technology Pte Ltd
Original Assignee
Bigo Technology Pte 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 Bigo Technology Pte Ltd filed Critical Bigo Technology Pte Ltd
Priority to CN202110950107.2A priority Critical patent/CN113488019B/zh
Publication of CN113488019A publication Critical patent/CN113488019A/zh
Application granted granted Critical
Publication of CN113488019B publication Critical patent/CN113488019B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10KSOUND-PRODUCING DEVICES; METHODS OR DEVICES FOR PROTECTING AGAINST, OR FOR DAMPING, NOISE OR OTHER ACOUSTIC WAVES IN GENERAL; ACOUSTICS NOT OTHERWISE PROVIDED FOR
    • G10K15/00Acoustics not otherwise provided for
    • G10K15/08Arrangements for producing a reverberation or echo sound

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了基于语音房的混音系统、方法、服务器和存储介质。其中,该系统包括:服务守护进程、媒体服务中心、媒体服务集群和混音服务集群;服务守护进程根据混音服务集群内每一混音服务器的服务信息,向媒体服务中心通知当前语音房在混音服务集群内的各关联混音服务器;媒体服务中心将各关联混音服务器对应分配给当前语音房在媒体服务集群内指向的各目标媒体服务器,以使每一目标媒体服务器所分配的关联混音服务器为该目标媒体服务器在当前语音房内的每一关联用户生成对应的混音语音流。本发明可以实现当前语音房内各用户在不同关联混音服务器上的分区混音,降低当前语音房在每一关联混音服务器上的混音开销,提高当前语音房混音的高效性。

Description

基于语音房的混音系统、方法、服务器和存储介质
技术领域
本发明实施例涉及语音直播技术领域,尤其涉及一种基于语音房的混音系统、方法、服务器和存储介质。
背景技术
由于语音聊天的实时性和互动性需求,语音房间已经广泛应用到人们的日常生活中,语音房间内丰富的主题玩法也受到越来越多用户的喜欢。此时,服务端通常会对语音房间内上麦用户上报的多路语音流进行混音,从而向语音房间内的各个用户对应发送混音后的一路语音流,以降低语音房间内各用户接收下行语音流时的占用带宽。
目前,对于同一语音房间内的多路语音流进行混音时,通常会先为该语音房间分配一个对应的混音服务器,该混音服务器针对每一上麦用户,会对其他上麦用户上报的多路语音流进行混音,得到该上麦用户对应的一路混音语音流,同时对所有上麦用户上报的多路语音流进行混音,得到普通听众对应的一路混音语音流。
但是,采用该语音房间所分配的一个混音服务器对语音房间内每一上麦用户和普通听众对应的多路语音流进行混音,存在极大的混音计算开销,降低了多路语音流的混音效率,从而影响到语音房间内的互动实时性。
发明内容
本发明实施例提供了一种基于语音房的混音系统、方法、服务器和存储介质,实现当前语音房内各用户在不同关联混音服务器上的分区混音,极大降低当前语音房在每一关联混音服务器上的混音开销,提高当前语音房混音的高效性
第一方面,本发明实施例提供了一种基于语音房的混音系统,该系统包括:服务守护进程、媒体服务中心、媒体服务集群和混音服务集群,所述服务守护进程管理所述混音服务集群内每一混音服务器的服务信息;其中,
所述服务守护进程根据所述混音服务集群内每一混音服务器的服务信息,向所述媒体服务中心通知当前语音房在所述混音服务集群内的各关联混音服务器;
所述媒体服务中心将各所述关联混音服务器对应分配给所述当前语音房在所述媒体服务集群内指向的各目标媒体服务器,以通过每一目标媒体服务器所分配的关联混音服务器,为所述当前语音房内与该目标媒体服务器关联的每一用户生成对应的混音语音流。
第二方面,本发明实施例提供了一种基于语音房的混音方法,应用于上述第一方面提供的基于语音房的混音系统中,该方法包括:
在当前语音房开启时,通过混音服务集群内每一混音服务器的服务信息,向媒体服务中心通知所述当前语音房在混音服务集群内的各关联混音服务器,所述混音服务集群内每一混音服务器的服务信息存储于服务守护进程内;
通过所述媒体服务中心将各所述关联混音服务器对应分配给所述当前语音房在媒体服务集群内指向的各目标媒体服务器;
通过每一目标媒体服务器所分配的关联混音服务器,为所述当前语音房内与该目标媒体服务器关联的每一用户生成对应的混音语音流。
第三方面,本发明实施例提供了一种服务器,该服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的基于语音房的混音方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的基于语音房的混音方法。
本发明实施例提供的一种基于语音房的混音系统、方法、服务器和存储介质,在当前语音房开启时,服务守护进程根据混音服务集群内每一混音服务器的服务信息,从混音服务集群内为当前语音房分配多个关联混音服务器,然后媒体服务中心将各个关联混音服务器对应分配给当前语音房在媒体服务集群内指向的各目标媒体服务器,使得每一目标媒体服务器分配有对应的关联混音服务器,此时每一目标媒体服务器所分配的关联混音服务器为该目标媒体服务器在当前语音房内的每一关联用户生成对应的混音语音流,从而实现当前语音房内各用户在不同关联混音服务器上的分区混音,无需采用同一混音服务器生成语音房内全部用户的混音语音流,极大降低当前语音房在每一关联混音服务器上的混音开销,提高当前语音房混音的高效性,进而增强当前语音房内各用户的语音下行效率,提升当前语音房内语音互动的实时性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1A为本发明实施例一提供的一种基于语音房的混音系统的原理架构图;
图1B为本发明实施例一提供的语音房混音处理的示例性原理图;
图2为本发明实施例二提供的一种基于语音房的混音方法的流程图;
图3为本发明实施例三提供的一种基于语音房的混音方法的流程图;
图4为本发明实施例四提供的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
图1A为本发明实施例一提供的一种基于语音房的混音系统的原理架构图,本实施例可适用于对于任一语音房内各个上麦用户的上行语音流进行相应混音的情况中。参照图1A,本实施例中的基于语音房的混音系统可以包括服务守护进程110、媒体服务中心120、媒体服务集群130和混音服务集群140。
其中,服务守护进程110管理混音服务集群140内每一混音服务器的服务信息。
具体的,服务守护进程110根据混音服务集群140内每一混音服务器的服务信息,向媒体服务中心120通知当前语音房在混音服务集群140内的各关联混音服务器;媒体服务中心120将各关联混音服务器对应分配给当前语音房在媒体服务集群130内指向的各目标媒体服务器,以使每一目标媒体服务器所分配的关联混音服务器,为当前语音房内与该目标媒体服务器关联的每一用户生成对应的混音语音流。
在本实施例中,服务守护进程110可以用于维护语音房涉及的各个前端进程的服务发现,记为ServerDaemon。因此,为了准确检测语音房相关的各个服务器的工作服务情况,媒体服务中心120、媒体服务集群130内的每一媒体服务器和混音服务集群140内的每一混音服务器均会向服务守护进程110发起对应的注册请求,以成功注册到该服务守护进程110内。然后,服务守护进程110可以在相应数据库内记录其上所注册的媒体服务中心120、媒体服务集群130内的每一媒体服务器和混音服务集群140内的每一混音服务器的服务信息,以便对各个服务器的服务信息进行高效管理。
而且,考虑到语音房内各个用户所处机房会设置在不同区域内,使得各个用户在加入该语音房时,可能会采用不同机房对应的媒体服务器来登录该语音房,因此本实施例会利用媒体服务集群130内的各个媒体服务器实现语音房的用户全面性。并且,会采用媒体服务中心120来管理媒体服务集群130内各个媒体服务器的服务工作,例如为每一媒体服务器分配对应的混音服务器等。
进一步的,为了保证语音房混音处理的高效性,本实施例会设置对应的混音服务集群140,服务守护进程110可以通过分析混音服务集群140内每一混音服务器的工作状态和负载情况等,来为媒体服务集群130内的各个媒体服务器分配对应的混音服务器,以便采用多个混音服务器来执行语音房内各个用户的混音操作。
下面对于本实施例中为当前开启的语音房内各个用户生成相应混音语音流的具体混音过程进行示例性的描述:
首先,媒体服务中心120可以实时检测是否存在当前开启的语音房,在每检测到某一语音房的开启指令后,会将该语音房作为本实施例中的当前语音房,并确定当前语音房的房间类型和房间标识(groupId)等房间属性信息。此时,当前语音房开启后,会不断加入参与本次语音聊天的各个用户,其中包括上麦用户和普通听众两种。由于当前语音房内各个用户所处机房的区域会存在不同,使得当前语音房内的各个用户可以通过媒体服务集群130内多个不同的媒体服务器来登录该当前语音房。因此,媒体服务中心120可以根据当前语音房内各个用户的登录信息,从媒体服务集群130内查找出当前语音房指向的各个目标媒体服务器,并且按照用户登录信息,每一目标媒体服务器在当前语音房内会存在多个关联用户,每一关联用户通过该目标媒体服务器加入到当前语音房内。
然后,媒体服务中心120在确定对于当前语音房内用户的上行语音流需要执行相应的混音操作时,会要求为当前语音房在媒体服务集群130内指向的各个目标媒体服务器分配对应的混音服务器,以便对各个目标媒体服务器接收到的各上麦用户发出的上行语音流进行相应的混音操作。
示例性的,当前语音房在媒体服务集群130内指向的各个目标媒体服务器会向媒体服务中心120发起对应的混音分配请求,以请求为各个目标媒体服务器分配对应的混音服务器。媒体服务中心120会向服务守护进程110转发当前语音房的混音分配请求,服务守护进程110响应于该混音分配请求,会对其上管理的混音服务集群140内每一混音服务器的服务信息进行分析,以判断混音服务集群140内每一混音服务器的工作状态和负载情况等。然后,服务守护进程110根据混音服务集群140内每一混音服务器的工作状态和负载情况等,可以从混音服务集群140内筛选出适合为当前语音房执行相应混音操作的多个混音服务器,作为本实施例中当前语音房在混音服务集群140内的各个关联混音服务器,并将各个关联混音服务器通知给媒体服务中心120,以便媒体服务中心120与各个关联混音服务器进行连接。然后,各个关联混音服务器会向媒体服务中心120上报该关联混音服务器已负责混音的语音房标识(S_ID),以便获知各个关联混音服务器的混音工作情况。
最后,媒体服务中心120会按照各个关联混音服务器的混音工作情况,将各个关联混音服务器对应分配给当前语音房在媒体服务集群130内指向的各个目标媒体服务器,使得每一目标媒体服务器能够与所分配的关联混音服务器进行连接。然后,每一目标媒体服务器所分配的关联混音服务器会确定该目标媒体服务器在当前语音房内的各个关联用户,也就是将当前语音房的全部用户按照用户所在的目标媒体服务器对应划分给不同的关联混音服务器,进行对应的混音处理,使得每一目标媒体服务器所分配的关联混音服务器只需要生成该目标媒体服务器在当前语音房内的每一关联用户的混音语音流即可,而无需生成其他目标媒体服务器在当前语音房内的各个关联用户的混音语音流,从而将当前语音房内全部用户的混音处理流程对应分发给不同的关联混音服务器来执行,实现当前语音房内各用户在不同关联混音服务器上的分区混音,无需采用同一混音服务器生成语音房内全部用户的混音语音流,极大降低当前语音房在每一关联混音服务器上的混音开销。
此外,为了保证当前语音房对于每一用户的混音准确性,本实施例中每一目标媒体服务器在接收到该目标媒体服务器在当前语音房内的关联用户内的上麦用户发送的上行语音流后,会将所接收到的上行语音流转发给其他目标媒体服务器,使得每一目标媒体服务器都能够接收当前语音房内每一上麦用户发送的上行语音流,确保当前语音房的混音全面性。
示例性的,如图1B所示,如果当前语音方包括3个上麦用户和2个听众,上麦用户1和上麦用户2通过目标媒体服务器1加入当前语音房,上麦用户3、听众4和听众5通过目标媒体服务器2加入当前语音房,目标媒体服务器1分配有关联混音服务器1,目标媒体服务器2分配有关联混音服务器2。此时,目标媒体服务器1会接收到上麦用户1和上麦用户2发送的两路上行语音流,目标媒体服务器2会接收到上麦用户3发送的一路上行语音流,目标媒体服务器1和目标媒体服务器2之间对于所接收到的上行语音流进行互相转发,使得目标媒体服务器1和目标媒体服务器2均能够收到上麦用户1、2和3发送的三路上行语音流。然后,关联混音服务器1会对上麦用户2和上麦用户3发送的两路上行语音流进行混音处理,生成上麦用户1的混音语音流,并且,关联混音服务器1还会对上麦用户1和上麦用户3发送的两路上行语音流进行混音处理,生成上麦用户2的混音语音流,而不会生成上麦用户3、听众4和听众5的混音语音流;然而,关联混音服务器2会对上麦用户1和上麦用户2发送的两路上行语音流进行混音处理,生成上麦用户3的混音语音流,并且,关联混音服务器1还会对上麦用户1、上麦用户2和上麦用户3发送的三路上行语音流进行混音处理,生成听众4和听众5的混音语音流,而不会生成上麦用户1和上麦用户2的混音语音流,从而实现当前语音房内各用户在不同关联混音服务器上的分区混音。
需要说明的是,为了保证每一目标媒体服务器所分配的关联混音服务器的高可用性,本实施例中媒体服务中心120将各个关联混音服务器对应分配给当前语音房在媒体服务集群130内指向的各个目标媒体服务器时,每一目标媒体服务器所分配的关联混音服务器均可以采用主备方式部署。也就是说,每一目标媒体服务器均可以被分配至少两个关联混音服务器,其中划分为主关联混音服务器和备用关联混音服务器。在对当前语音房内各个用户下行语音流的混音过程中,每一目标媒体服务器会向所分配的主关联混音服务器发送对应的心跳包,来检测该主关联混音服务器的运行状态,或者,每一目标媒体服务器所分配的主关联混音服务器检测自身的负载状态,使得在某一目标媒体服务器所分配的主关联混音服务器运行异常或者负载过高时,能够执行该目标媒体服务器所分配的关联混音服务器的主备切换操作,将该目标媒体服务器从主关联混音服务器切换连接到备用关联混音服务器,以通过该目标媒体服务器所分配的备用关联混音服务器为该目标媒体服务器在当前语音房内的每一关联用户生成对应的混音语音流。
而且,媒体服务中心120为每一目标媒体服务器对应分配关联混音服务器时,目标媒体服务器和关联混音服务器之间可以采用多对多分配模式,也就是一个目标媒体服务器支持分配多个关联混音服务器,一个关联混音服务器支持被分配给多个目标媒体服务器。
此外,媒体服务中心120在将某一关联混音服务器分配给某一目标媒体服务器时,该关联混音服务器可以根据自身负载情况来选择是否接受与该目标媒体服务器间的分配连接。但是,在混音服务集群140内不存在可用的关联混音服务器时,媒体服务中心120也就无法为各个目标媒体服务器分配对应的混音服务器,各个目标媒体服务器会定时向媒体服务中心120发起对应的混音分配请求,以便在混音服务集群140内存在可用的关联混音服务器时,能够及时分配给各个目标媒体服务器。
而且,媒体服务中心120从服务守护进程110请求到的当前语音房在混音服务集群140内的各个关联混音服务器可以为混音服务集群140内的空闲混音服务器。
同时,本实施例中判断当前语音方是否需要进行混音,可以通过当前语音房的房间类型和上麦用户数量两种方式确定。
1)如果当前语音房为高音质语音房,说明当前语音方对于语音流的码率要求较高,因此为了降低下行语音流的占用流量,保证语音房互动的实时性,需要对当前语音方内各个用户的下行语音流进行混音处理,因此通过媒体服务中心120向服务守护进程110发送当前语音房的混音分配请求。
2)在当前语音房内的上麦用户数量超出预设阈值时,说明当前语音房的上行语音流较多,为了保证语音房互动的实时性,需要对当前语音方内各个用户的下行语音流进行混音处理,因此通过媒体服务中心120向服务守护进程110发送当前语音房的混音分配请求。
需要说明的是,当前语音房内各个用户的上麦状态可以通过当前语音房内每一用户的上麦信令和上行语音流两种方式判断,以保证当前语音房内用户上麦的准确性,避免混音处理时遗漏某一上麦用户的上行语音流,导致混音出现失误的情况。
本实施例提供的技术方案,在当前语音房开启时,服务守护进程根据混音服务集群内每一混音服务器的服务信息,从混音服务集群内为当前语音房分配多个关联混音服务器,然后媒体服务中心将各个关联混音服务器对应分配给当前语音房在媒体服务集群内指向的各目标媒体服务器,使得每一目标媒体服务器分配有对应的关联混音服务器,此时每一目标媒体服务器所分配的关联混音服务器为该目标媒体服务器在当前语音房内的每一关联用户生成对应的混音语音流,从而实现当前语音房内各用户在不同关联混音服务器上的分区混音,无需采用同一混音服务器生成语音房内全部用户的混音语音流,极大降低当前语音房在每一关联混音服务器上的混音开销,提高当前语音房混音的高效性,进而增强当前语音房内各用户的语音下行效率,提升当前语音房内语音互动的实时性。
实施例二
图2为本发明实施例二提供的一种基于语音房的混音方法的流程图。本实施例可适用于对于任一语音房内各个上麦用户的上行语音流进行相应混音的情况中,可应用于上述实施例提供的基于语音房的混音系统中。本实施例提供的一种基于语音房的混音方法可以由本发明实施例提供的服务器来执行,该服务器可以是相应的服务集群,由执行相应功能的服务守护进程、媒体服务中心、媒体服务集群和混音服务集群共同集合而成。
具体的,如图2所示,该方法可以包括如下步骤:
S210,在当前语音房开启时,通过服务守护进程内管理的混音服务集群内每一混音服务器的服务信息,向媒体服务中心通知当前语音房在混音服务集群内的各关联混音服务器。
在本实施例中,通过媒体服务中心可以实时检测是否存在当前开启的语音房,在每检测到某一语音房的开启指令后,会将该语音房作为本实施例中的当前语音房。
此时,当前语音房开启后,会不断加入参与本次语音聊天的各个用户,其中包括上麦用户和普通听众两种。其中,为了保证当前语音房内上麦用户的全面性,本实施例可以实时检测当前语音房内每一用户的上麦信令和上行语音流,以设定该用户在当前语音房内的上麦状态,也就是通过上麦信令和上行语音流两种方式来设定当前语音房内各个用户的上麦状态,避免出现由于当前语音房内上麦用户的遗漏,而导致当前语音房内各用户的混音失误的问题。
由于当前语音房内各个用户所处机房的区域会存在不同,使得当前语音房内的各个用户可以通过媒体服务集群内多个不同的媒体服务器来登录该当前语音房。因此,媒体服务中心可以根据当前语音房内各个用户的登录信息,从媒体服务集群内查找出当前语音房指向的各个目标媒体服务器,并且按照用户登录信息,每一目标媒体服务器在当前语音房内会存在多个关联用户,每一关联用户通过该目标媒体服务器加入到当前语音房内。
具体的,通过媒体服务中心确定对于当前语音房内用户的上行语音流需要执行相应的混音操作时,会要求为当前语音房在媒体服务集群内指向的各个目标媒体服务器分配对应的混音服务器,以便对各个目标媒体服务器接收到的各上麦用户发出的上行语音流进行相应的混音操作。
因此,通过媒体服务中心向服务守护进程发送当前语音房的混音分配请求,然后响应于该混音分配请求,通过服务守护进程对其上管理的混音服务集群内每一混音服务器的服务信息进行分析,以判断混音服务集群内每一混音服务器的工作状态和负载情况等。然后,通过服务守护进程根据混音服务集群内每一混音服务器的工作状态和负载情况等,可以从混音服务集群内筛选出适合为当前语音房执行相应混音操作的多个混音服务器,作为本实施例中当前语音房在混音服务集群内的各个关联混音服务器,并将各个关联混音服务器通知给媒体服务中心,以便通过媒体服务中心与各个关联混音服务器进行连接。然后,各个关联混音服务器会向媒体服务中心上报该关联混音服务器已负责混音的语音房标识(S_ID),以便获知各个关联混音服务器的混音工作情况。
S220,通过媒体服务中心将各关联混音服务器对应分配给当前语音房在媒体服务集群内指向的各目标媒体服务器。
在媒体服务中心获知各个关联混音服务器的混音工作情况后,通过媒体服务中心可以按照各个关联混音服务器的混音工作情况,将各个关联混音服务器对应分配给当前语音房在媒体服务集群内指向的各个目标媒体服务器,使得每一目标媒体服务器能够与所分配的关联混音服务器进行连接。
此时,为了保证每一目标媒体服务器所分配的关联混音服务器的高可用性,本实施例中媒体服务中心将各个关联混音服务器对应分配给当前语音房在媒体服务集群内指向的各个目标媒体服务器时,每一目标媒体服务器所分配的关联混音服务器均可以采用主备方式部署。也就是说,每一目标媒体服务器均可以被分配至少两个关联混音服务器,其中划分为主关联混音服务器和备用关联混音服务器。在对当前语音房内各个用户下行语音流的混音过程中,本实施例会通过每一目标媒体服务器的心跳包检测该目标媒体服务器所分配的主关联混音服务器的运行状态,或者,检测每一目标媒体服务器所分配的主关联混音服务器的负载状态;如果该目标媒体服务器所分配的主关联混音服务器运行异常或者负载过高,则执行该目标媒体服务器所分配的关联混音服务器的主备切换操作,以通过该目标媒体服务器所分配的备用关联混音服务器为该目标媒体服务器在所述当前语音房内的每一关联用户生成对应的混音语音流。
也就是说,每一目标媒体服务器会向所分配的主关联混音服务器发送对应的心跳包,来检测该主关联混音服务器的运行状态,或者,每一目标媒体服务器所分配的主关联混音服务器检测自身的负载状态,使得在某一目标媒体服务器所分配的主关联混音服务器运行异常或者负载过高时,能够执行该目标媒体服务器所分配的关联混音服务器的主备切换操作,将该目标媒体服务器从主关联混音服务器切换连接到备用关联混音服务器,以通过该目标媒体服务器所分配的备用关联混音服务器为该目标媒体服务器在当前语音房内的每一关联用户生成对应的混音语音流。
而且,通过媒体服务中心为每一目标媒体服务器对应分配关联混音服务器时,目标媒体服务器和关联混音服务器之间可以采用多对多分配模式,也就是一个目标媒体服务器支持分配多个关联混音服务器,一个关联混音服务器支持被分配给多个目标媒体服务器。
此外,在通过媒体服务中心将某一关联混音服务器分配给某一目标媒体服务器时,该关联混音服务器可以根据自身负载情况来选择是否接受与该目标媒体服务器间的分配连接。但是,在混音服务集群内不存在可用的关联混音服务器时,也就无法通过媒体服务中心为各个目标媒体服务器分配对应的混音服务器,各个目标媒体服务器会定时向媒体服务中心发起对应的混音分配请求,以便在混音服务集群内存在可用的关联混音服务器时,能够及时分配给各个目标媒体服务器。
S230,通过每一目标媒体服务器所分配的关联混音服务器,为当前语音房内与该目标媒体服务器关联的每一用户生成对应的混音语音流。
本实施例中,每一目标媒体服务器所分配的关联混音服务器会确定该目标媒体服务器在当前语音房内的各个关联用户,也就是将当前语音房的全部用户按照用户所在的目标媒体服务器对应划分给不同的关联混音服务器,进行对应的混音处理,使得每一目标媒体服务器所分配的关联混音服务器只需要生成该目标媒体服务器在当前语音房内的每一关联用户的混音语音流即可,而无需生成其他目标媒体服务器在当前语音房内的各个关联用户的混音语音流,从而将当前语音房内全部用户的混音处理流程对应分发给不同的关联混音服务器来执行,实现当前语音房内各用户在不同关联混音服务器上的分区混音,无需采用同一混音服务器生成语音房内全部用户的混音语音流,极大降低当前语音房在每一关联混音服务器上的混音开销。
本实施例提供的技术方案,在当前语音房开启时,通过服务守护进程根据混音服务集群内每一混音服务器的服务信息,从混音服务集群内为当前语音房分配多个关联混音服务器,然后通过媒体服务中心将各个关联混音服务器对应分配给当前语音房在媒体服务集群内指向的各目标媒体服务器,使得每一目标媒体服务器分配有对应的关联混音服务器,此时每一目标媒体服务器所分配的关联混音服务器为该目标媒体服务器在当前语音房内的每一关联用户生成对应的混音语音流,从而实现当前语音房内各用户在不同关联混音服务器上的分区混音,无需采用同一混音服务器生成语音房内全部用户的混音语音流,极大降低当前语音房在每一关联混音服务器上的混音开销,提高当前语音房混音的高效性,进而增强当前语音房内各用户的语音下行效率,提升当前语音房内语音互动的实时性。
实施例三
图3为本发明实施例三提供的一种基于语音房的混音方法的流程图。本实施例是在上述实施例的基础上进行优化。如图3所示,本实施例主要对于当前语音房内各用户对应的混音语音流的具体混音过程进行详细的解释说明。
可选的,如图3所示,该方法可以包括如下步骤:
S310,通过媒体服务中心检测到当前语音房开启时,通过媒体服务中心向服务守护进程发送当前语音房的混音分配请求。
可选的,本实施例通过媒体服务中心来实时检测是否存在当前开启的语音房,并将当前开启的语音房作为本实施例中的当前语音房。在检测到当前语音房开启,且确定当前语音房需要执行混音操作时,会通过媒体服务中心向服务守护进程发送当前语音房的混音分配请求,以便服务守护进程响应于该混音分配请求,从混音服务集群中为当前语音房分配对应的关联混音服务器。
需要说明的是,本实施例中判断当前语音方是否需要进行混音,可以通过当前语音房的房间类型和上麦用户数量两种方式确定。如果当前语音房为高音质语音房,或者当前语音房内的上麦用户数量超出预设阈值,则通过媒体服务中心向服务守护进程发送当前语音房的混音分配请求。
示例性的,在当前语音房从低音质语音房切换到高音质语音房时,会生成对应的混音分配请求,来申请混音服务;而当前语音房从高音质语音房切换到低音质语音房时,也会生成对应的混音取消请求,来释放混音服务。
而且,在当前语音房的上麦用户数量超出预设阈值时,当前语音房会切换到混音模式,此时会向每一目标媒体服务器所分配的关联混音服务器同步该目标媒体服务器的关联用户内各个上麦用户的状态,以便对该目标媒体服务器的每一关联用户进行混音处理;而当前语音房的上麦用户数量低于预设阈值时,当前语音房会切换到非混音模式,也就是当前语音房不需要进行混音处理,此时会向每一目标媒体服务器所分配的关联混音服务器通知对应的下麦消息,以便每一目标媒体服务器所分配的关联混音服务器能够退出当前语音房,并销毁当前语音房之前的混音资源。
S320,响应于混音分配请求,根据服务守护进程内管理的混音服务集群内每一混音服务器的服务信息,从混音服务集群内查找出对应的空闲混音服务器,作为当前语音房在混音服务集群内的关联混音服务器,并通知给媒体服务中心。
在本实施例中,为了保证当前语音房的混音高效性,本实施例响应于混音分配请求,会对服务守护进程内管理的混音服务集群内每一混音服务器的服务信息进行分析,判断每一混音服务器的工作状态和负载情况,进而从混音服务集群内查找出对应的空闲混音服务器,并将各个空闲混音服务器作为当前语音房在混音服务集群内的关联混音服务器,并通知给媒体服务中心,以便通过媒体服务中心将各个关联混音服务器对应分配给当前语音房在媒体服务集群内指向的各个目标媒体服务器。
S330,通过媒体服务中心将各关联混音服务器对应分配给当前语音房在媒体服务集群内指向的各目标媒体服务器。
S340,确定每一目标媒体服务器在当前语音房内的关联用户。
可选的,在通过每一目标媒体服务器所分配的关联混音服务器为该目标媒体服务器在当前语音房内的每一关联用户进行混音处理时,首先会按照当前语音房内各个用户的登录信息,确定每一目标媒体服务器在当前语音房内的关联用户,每一目标媒体服务器的关联用户均通过该目标媒体服务器加入到当前语音房内。其中,每一目标媒体服务器的关联用户可以包括当前语音房的上麦用户和听众中的至少一个。
S350,通过每一目标媒体服务器向其他目标媒体服务器转发该目标媒体服务器的关联用户内各上麦用户的上行语音流,以使每一目标媒体服务器接收当前语音房内全部上麦用户的上行语音流。
在确定出每一目标媒体服务器在当前语音房内的关联用户后,每一目标媒体服务器会接收到该目标媒体服务器的关联用户内的各个上麦用户发送的上行语音流。因此,为了保证当前语音房对于每一用户的混音准确性,本实施例中每一目标媒体服务器在接收到该目标媒体服务器在当前语音房内的关联用户内的各上麦用户发送的上行语音流后,会将所接收到的上行语音流转发给其他目标媒体服务器,使得每一目标媒体服务器都能够接收当前语音房内每一上麦用户发送的上行语音流,确保当前语音房的混音全面性。
S360,针对每一目标媒体服务器的每一关联用户,通过该目标媒体服务器所分配的关联混音服务器对当前语音房内除该关联用户外的各上麦用户的上行语音流进行混音,得到该关联用户的混音语音流。
可选的,每一目标媒体服务器所分配的关联混音服务器接收到当前语音房内每一上麦用户的上行语音流后,针对该目标媒体服务器的每一关联用户,通过该目标媒体服务器所分配的关联混音服务器均会对除该关联用户之外的各个上麦用户的上行语音流进行混音处理,生成该关联用户的混音语音流。此时,通过该目标媒体服务器所分配的关联混音服务器对于每一关联用户分别执行上述步骤,即可得到该目标媒体服务器的每一关联用户的混音语音流。
需要说明的是,每一目标媒体服务器在当前语音房内的关联用户分为上麦用户和听众两种,上麦用户也存在发送上行语音流和未发送上行语音流两种情况。此时,本实施例中针对每一目标媒体服务器的不同类型关联用户的混音过程可以分为如下三种:
1)如果每一目标媒体服务器的关联用户内包含听众,则通过该目标媒体服务器所分配的关联混音服务器对当前语音房内全部上麦用户的上行语音流进行混音,得到该听众的混音语音流。
对于每一目标媒体服务器关联的每一听众而言,需要通过该目标媒体服务器所分配的关联混音服务器对当前语音房内所有上麦用户的上行语音流进行混音,得到听众的混音语音流,以确保听众混音的全面性。然后,通过该目标媒体服务器该听众的混音语音流分发给该目标媒体服务器的关联用户内的每一听众。
2)如果每一目标媒体服务器的关联用户内包含存在上行语音流的第一上麦用户,则通过该目标媒体服务器所分配的关联混音服务器对当前语音房内除第一上麦用户外的各其他上麦用户的上行语音流进行混音,得到第一上麦用户的混音语音流。
对于每一目标媒体服务器的关联用户内包含的存在上行语音流的每一第一上麦用户而言,不需要对自身的上行语音流进行混音,因此通过该目标媒体服务器所分配的关联混音服务器可以对当前语音房内除该第一上麦用户外的各其他上麦用户的上行语音流进行混音,即可得到该第一上麦用户的混音语音流。通过该目标媒体服务器所分配的关联混音服务器对于该目标媒体服务器的关联用户内包含的存在上行语音流的每一第一上麦用户,均执行上述步骤,即可得到该目标媒体服务器的关联用户内每一第一上麦用户的混音语音流。
3)如果每一目标媒体服务器的关联用户内包含未存在上行语音流的第二上麦用户,则将该目标媒体服务器在当前语音房内听众的混音语音流作为第二上麦用户的混音语音流。
对于每一目标媒体服务器的关联用户内包含的未存在上行语音流的每一第二上麦用户而言,该第二上麦用户的混音处理与该目标媒体服务器内听众的混音处理一致,因此为了避免混音处理的消耗,可以直接将该目标媒体服务器在当前语音房内的听众的混音语音流作为该第二上麦用户的混音语音流,无需对该第二上麦用户进行额外的混音处理,保证语音房混音的高效性。
本实施例提供的技术方案,在当前语音房开启时,通过服务守护进程根据混音服务集群内每一混音服务器的服务信息,从混音服务集群内为当前语音房分配多个关联混音服务器,然后通过媒体服务中心将各个关联混音服务器对应分配给当前语音房在媒体服务集群内指向的各目标媒体服务器,使得每一目标媒体服务器分配有对应的关联混音服务器,此时每一目标媒体服务器所分配的关联混音服务器为该目标媒体服务器在当前语音房内的每一关联用户生成对应的混音语音流,从而实现当前语音房内各用户在不同关联混音服务器上的分区混音,无需采用同一混音服务器生成语音房内全部用户的混音语音流,极大降低当前语音房在每一关联混音服务器上的混音开销,提高当前语音房混音的高效性,进而增强当前语音房内各用户的语音下行效率,提升当前语音房内语音互动的实时性。
实施例四
图4为本发明实施例四提供的一种服务器的结构示意图,如图4所示,该服务器包括处理器40、存储装置41和通信装置42;服务器中处理器40的数量可以是一个或多个,图4中以一个处理器40为例;服务器中的处理器40、存储装置41和通信装置42可以通过总线或其他方式连接,图4中以通过总线连接为例。
本实施例提供的一种服务器可用于执行上述任意实施例提供的基于语音房的混音方法,具备相应的功能和有益效果。
实施例五
本发明实施例五还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例中的基于语音房的混音方法。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于语音房的混音方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于语音房的混音系统,其特征在于,包括:服务守护进程、媒体服务中心、媒体服务集群和混音服务集群,所述服务守护进程管理所述混音服务集群内每一混音服务器的服务信息;其中,
所述服务守护进程根据所述混音服务集群内每一混音服务器的服务信息,向所述媒体服务中心通知当前语音房在所述混音服务集群内的各关联混音服务器;
所述媒体服务中心将各所述关联混音服务器对应分配给所述当前语音房在所述媒体服务集群内指向的各目标媒体服务器,以通过每一目标媒体服务器所分配的关联混音服务器,为所述当前语音房内与该目标媒体服务器关联的每一用户生成对应的混音语音流。
2.一种基于语音房的混音方法,其特征在于,应用于权利要求1所述的基于语音房的混音系统中,包括:
在当前语音房开启时,通过混音服务集群内每一混音服务器的服务信息,向媒体服务中心通知所述当前语音房在混音服务集群内的各关联混音服务器,所述混音服务集群内每一混音服务器的服务信息存储于服务守护进程内;
通过所述媒体服务中心将各所述关联混音服务器对应分配给所述当前语音房在媒体服务集群内指向的各目标媒体服务器;
通过每一目标媒体服务器所分配的关联混音服务器,为所述当前语音房内与该目标媒体服务器关联的每一用户生成对应的混音语音流。
3.根据权利要求2所述的方法,其特征在于,所述通过每一目标媒体服务器所分配的关联混音服务器,为所述当前语音房内与该目标媒体服务器关联的每一用户生成对应的混音语音流,包括:
确定每一目标媒体服务器在所述当前语音房内的关联用户,所述关联用户包括所述当前语音房的上麦用户和听众中的至少一个;
通过每一目标媒体服务器向其他目标媒体服务器转发该目标媒体服务器的关联用户内各上麦用户的上行语音流,以使每一目标媒体服务器接收所述当前语音房内全部上麦用户的上行语音流;
针对每一目标媒体服务器的每一关联用户,通过该目标媒体服务器所分配的关联混音服务器对所述当前语音房内除该关联用户外的各上麦用户的上行语音流进行混音,得到该关联用户的混音语音流。
4.根据权利要求2所述的方法,其特征在于,所述在当前语音房开启时,通过混音服务集群内每一混音服务器的服务信息,向媒体服务中心通知所述当前语音房在混音服务集群内的各关联混音服务器,包括:
通过媒体服务中心检测到当前语音房开启时,通过所述媒体服务中心向所述服务守护进程发送所述当前语音房的混音分配请求;
响应于所述混音分配请求,根据所述服务守护进程内管理的混音服务集群内每一混音服务器的服务信息,从所述混音服务集群内查找出对应的空闲混音服务器,作为所述当前语音房在混音服务集群内的关联混音服务器,并通知给所述媒体服务中心。
5.根据权利要求4所述的方法,其特征在于,所述通过所述媒体服务中心向所述服务守护进程发送所述当前语音房的混音分配请求,包括:
如果所述当前语音房为高音质语音房,或者所述当前语音房内的上麦用户数量超出预设阈值,则通过所述媒体服务中心向所述服务守护进程发送所述当前语音房的混音分配请求。
6.根据权利要求3所述的方法,其特征在于,针对每一目标媒体服务器的每一关联用户,通过该目标媒体服务器所分配的关联混音服务器对所述当前语音房内除该关联用户外的各上麦用户的上行语音流进行混音,得到该关联用户的混音语音流,包括:
如果每一目标媒体服务器的关联用户内包含听众,则通过该目标媒体服务器所分配的关联混音服务器对所述当前语音房内全部上麦用户的上行语音流进行混音,得到该听众的混音语音流;
如果每一目标媒体服务器的关联用户内包含存在上行语音流的第一上麦用户,则通过该目标媒体服务器所分配的关联混音服务器对所述当前语音房内除第一上麦用户外的各其他上麦用户的上行语音流进行混音,得到第一上麦用户的混音语音流;
如果每一目标媒体服务器的关联用户内包含未存在上行语音流的第二上麦用户,则将该目标媒体服务器在所述当前语音房内听众的混音语音流作为第二上麦用户的混音语音流。
7.根据权利要求2所述的方法,其特征在于,每一目标媒体服务器所分配的关联混音服务器均采用主备方式部署;相应的,在通过每一目标媒体服务器所分配的关联混音服务器,为所述当前语音房内与该目标媒体服务器关联的每一用户生成对应的混音语音流时,还包括:
通过每一目标媒体服务器的心跳包检测该目标媒体服务器所分配的主关联混音服务器的运行状态,或者,检测每一目标媒体服务器所分配的主关联混音服务器的负载状态;
如果该目标媒体服务器所分配的主关联混音服务器运行异常或者负载过高,则执行该目标媒体服务器所分配的关联混音服务器的主备切换操作,以通过该目标媒体服务器所分配的备用关联混音服务器,为所述当前语音房内与该目标媒体服务器关联的每一用户生成对应的混音语音流。
8.根据权利要求2所述的方法,其特征在于,所述目标媒体服务器和所述关联混音服务器之间采用多对多分配模式,一个目标媒体服务器支持分配多个关联混音服务器,一个关联混音服务器支持被分配给多个目标媒体服务器。
9.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求2-8中任一所述的基于语音房的混音方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求2-8中任一所述的基于语音房的混音方法。
CN202110950107.2A 2021-08-18 2021-08-18 基于语音房的混音系统、方法、服务器和存储介质 Active CN113488019B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110950107.2A CN113488019B (zh) 2021-08-18 2021-08-18 基于语音房的混音系统、方法、服务器和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110950107.2A CN113488019B (zh) 2021-08-18 2021-08-18 基于语音房的混音系统、方法、服务器和存储介质

Publications (2)

Publication Number Publication Date
CN113488019A CN113488019A (zh) 2021-10-08
CN113488019B true CN113488019B (zh) 2023-09-08

Family

ID=77946857

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110950107.2A Active CN113488019B (zh) 2021-08-18 2021-08-18 基于语音房的混音系统、方法、服务器和存储介质

Country Status (1)

Country Link
CN (1) CN113488019B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060069060A (ko) * 2004-12-17 2006-06-21 한국전자통신연구원 멀티미디어 다자통화 서비스 제공 시스템 및 방법
KR20090017161A (ko) * 2007-08-14 2009-02-18 (주)제너시스템즈 미디어 시스템의 믹싱 처리 장치 및 방법.
CN103151045A (zh) * 2012-10-30 2013-06-12 贵阳朗玛信息技术股份有限公司 语音服务器及其语音处理方法
CN105007213A (zh) * 2015-06-02 2015-10-28 贵阳语玩科技有限公司 一种实现网络聊天室的方法及服务器
WO2016130834A1 (en) * 2015-02-12 2016-08-18 Dolby Laboratories Licensing Corporation Reverberation generation for headphone virtualization
CN110035078A (zh) * 2019-04-09 2019-07-19 中国电子科技集团公司第四十八研究所 一种音频系统
CN110121102A (zh) * 2019-03-18 2019-08-13 视联动力信息技术股份有限公司 一种音频数据处理方法及装置
CN111107390A (zh) * 2019-12-31 2020-05-05 广州市百果园网络科技有限公司 直播服务系统及直播连接的建立方法
CN112019488A (zh) * 2019-05-31 2020-12-01 广州市百果园信息技术有限公司 一种语音处理的方法、装置、设备和存储介质
CN112767936A (zh) * 2021-01-06 2021-05-07 镁佳(北京)科技有限公司 语音对话方法、装置、存储介质及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8199942B2 (en) * 2008-04-07 2012-06-12 Sony Computer Entertainment Inc. Targeted sound detection and generation for audio headset

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060069060A (ko) * 2004-12-17 2006-06-21 한국전자통신연구원 멀티미디어 다자통화 서비스 제공 시스템 및 방법
KR20090017161A (ko) * 2007-08-14 2009-02-18 (주)제너시스템즈 미디어 시스템의 믹싱 처리 장치 및 방법.
CN103151045A (zh) * 2012-10-30 2013-06-12 贵阳朗玛信息技术股份有限公司 语音服务器及其语音处理方法
WO2016130834A1 (en) * 2015-02-12 2016-08-18 Dolby Laboratories Licensing Corporation Reverberation generation for headphone virtualization
CN105007213A (zh) * 2015-06-02 2015-10-28 贵阳语玩科技有限公司 一种实现网络聊天室的方法及服务器
CN110121102A (zh) * 2019-03-18 2019-08-13 视联动力信息技术股份有限公司 一种音频数据处理方法及装置
CN110035078A (zh) * 2019-04-09 2019-07-19 中国电子科技集团公司第四十八研究所 一种音频系统
CN112019488A (zh) * 2019-05-31 2020-12-01 广州市百果园信息技术有限公司 一种语音处理的方法、装置、设备和存储介质
CN111107390A (zh) * 2019-12-31 2020-05-05 广州市百果园网络科技有限公司 直播服务系统及直播连接的建立方法
CN112767936A (zh) * 2021-01-06 2021-05-07 镁佳(北京)科技有限公司 语音对话方法、装置、存储介质及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
嵌入式Linux环境下多路音频流混音设备的研究与设计;刘文;《中国优秀硕士学位论文全文数据库》;全文 *

Also Published As

Publication number Publication date
CN113488019A (zh) 2021-10-08

Similar Documents

Publication Publication Date Title
US7937442B2 (en) Multipoint control unit (MCU) failure detection and rollover
US8325896B2 (en) System and method for dynamic audio conference call configuration and management
US7849138B2 (en) Peer-to-peer multi-party voice-over-IP services
CN109067578B (zh) 一种组播快速切换的方法和装置
US20140368605A1 (en) Remote Conference Control Method, Terminal Equipment, MCU, and Video Conferencing System
CN108847976B (zh) 配网控制方法、移动终端、设备及计算机可读存储介质
US11251981B2 (en) Communication method and apparatus
US8868658B2 (en) Client assisted multicasting for audio and video streams
US20180242230A1 (en) Switching between unicast service and multicast-broadcast service
US10476746B2 (en) Network management method, device, and system
JP2020167708A (ja) グループ通信システムにおけるmbmsベアラセットアップ
CN113488019B (zh) 基于语音房的混音系统、方法、服务器和存储介质
WO2021110167A1 (zh) 自组网级联方法、音频采集设备、会议系统、存储介质
CN109889549B (zh) 媒体数据下发方法及装置、关键任务一键通系统
US9912782B2 (en) Method and apparatus for recovery in a communication system employing redundancy
US8180358B2 (en) Joining a session in a communication network supporting multimedia group calls
US20210160292A1 (en) Chat system and chat management apparatus
CN110730172B (zh) 一种视频会议的实现方法及设备
CN113115065A (zh) 一种基于直播的数据处理方法及装置
CN114554230B (zh) 连麦状态处理方法、装置、终端、计算机设备及存储介质
CN108737480B (zh) 基于软件媒体服务器的会议级联方法、服务器及存储介质
US10321434B1 (en) Managing signaling resources using hidden public land mobile network signals
CN112565057B (zh) 一种可扩展业务的语聊房服务方法及装置
CN115086401B (zh) 服务提供方法、系统、装置、设备和存储介质
US11985072B2 (en) Multimedia data stream processing method, electronic device, and storage medium

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