CN111580975B - 用于语音合成的内存优化方法及系统 - Google Patents
用于语音合成的内存优化方法及系统 Download PDFInfo
- Publication number
- CN111580975B CN111580975B CN202010384423.3A CN202010384423A CN111580975B CN 111580975 B CN111580975 B CN 111580975B CN 202010384423 A CN202010384423 A CN 202010384423A CN 111580975 B CN111580975 B CN 111580975B
- Authority
- CN
- China
- Prior art keywords
- fork
- speech
- text
- parent
- child process
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 181
- 230000015572 biosynthetic process Effects 0.000 title claims abstract description 88
- 238000003786 synthesis reaction Methods 0.000 title claims abstract description 84
- 238000005457 optimization Methods 0.000 title claims abstract description 20
- 230000008569 process Effects 0.000 claims abstract description 120
- 230000007246 mechanism Effects 0.000 claims abstract description 12
- 238000013528 artificial neural network Methods 0.000 claims description 4
- 238000003860 storage Methods 0.000 description 14
- 238000011161 development Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/02—Methods for producing synthetic speech; Speech synthesisers
- G10L13/04—Details of speech synthesis systems, e.g. synthesiser structure or memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例提供一种用于语音合成的内存优化方法。该方法包括:将发音人资源集合加载至内存,确定发音人资源集合的物理地址;创建fork父子进程,通过fork父子进程内的fork调度父进程将物理地址共享给fork父子进程内的各fork文本转语音子进程,用于各fork文本转语音子进程之间对发音人资源集合的共享;接收客户端输入的语音合成请求,fork调度父进程通过均衡策略将语音合成请求分配至指定fork文本转语音子进程;接收指定fork文本转语音子进程合成的发音人音频。本发明实施例还提供一种用于语音合成的内存优化系统。本发明实施例在不修改第三方框架数据结构及代码的前提下,解决资源或模型不能共享及多线程机制设计系统缺点的问题,降低内存占用提高稳定性。
Description
技术领域
本发明涉及语音对话平台领域,尤其涉及一种用于语音合成的内存优化方法及系统。
背景技术
语音对话平台为各客户端提供语音合成、语音识别、语义理解等服务。通常是基于多线程的机制。即所有的对象共用语音合成、语音识别和语义理解系统的资源或模型。这种多线程方式在实际工程中使用的时候,会碰到一些问题:若某一线程内存访问越界、内存不足或者出现死锁等,整个服务进程将会被操作系统kill,进而影响整个内核服务的运行。除此之外,目前还有多数服务设计是基于多进程的机制,在内存访问出错的情况下,某个进程被操作系统kill,但不会影响到整体服务的稳定运行,其缺点是进程间的数据是相互隔离的,资源或模型不能被诸多进程有效的充分共享,这样便对硬件内存及缓存提出了较高的指标。
在实现本发明过程中,发明人发现相关技术中至少存在如下问题:
在实际的语音合成和语音识别等AI工程实现中,需调用诸多第三方框架才能完成功能的快速开发。若采用多进程通信机制的方式实现资源或模型的共享,不但会对硬件内存及缓存提出了较高的指标,同时需要修改第三方框架中的数据结构及代码,从而导致工程开发比较复杂,周期性比较长,且稳定性不可控。
发明内容
为了至少解决现有技术中多进程通信机制会对硬件内存及缓存提出了较高的指标,同时需要修改第三方框架中的数据结构及代码,从而导致工程开发比较复杂,周期性比较长,且稳定性不可控的问题。
第一方面,本发明实施例提供一种用于语音合成的内存优化方法,包括:
将发音人资源集合加载至内存,确定所述发音人资源集合的物理地址;
创建fork父子进程,通过所述fork父子进程内的fork调度父进程将所述物理地址共享给所述fork父子进程内的各fork文本转语音子进程,用于各fork文本转语音子进程之间对所述发音人资源集合的共享,其中,所述fork文本转语音子进程包括不修改数据结构以及代码的第三方框架;
接收客户端输入的语音合成请求,所述fork调度父进程通过均衡策略将所述语音合成请求分配至指定fork文本转语音子进程;
接收所述指定fork文本转语音子进程合成的发音人音频,其中,所述指定fork文本转语音子进程通过所述物理地址获取与所述语音合成请求对应的发音人资源。
第二方面,本发明实施例提供一种用于语音合成的内存优化系统,包括:
地址确定程序模块,用于将发音人资源集合加载至内存,确定所述发音人资源集合的物理地址;
共享程序模块,用于创建fork父子进程,通过所述fork父子进程内的fork调度父进程将所述物理地址共享给所述fork父子进程内的各fork文本转语音子进程,用于各fork文本转语音子进程之间对所述发音人资源集合的共享,其中,所述fork文本转语音子进程包括不修改数据结构以及代码的第三方框架;
调度程序模块,用于接收客户端输入的语音合成请求,所述fork调度父进程通过均衡策略将所述语音合成请求分配至指定fork文本转语音子进程;
语音合成程序模块,用于接收所述指定fork文本转语音子进程合成的发音人音频,其中,所述指定fork文本转语音子进程通过所述物理地址获取与所述语音合成请求对应的发音人资源。
第三方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的用于语音合成的内存优化方法的步骤。
第四方面,本发明实施例提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现本发明任一实施例的用于语音合成的内存优化方法的步骤。
本发明实施例的有益效果在于:在不修改第三方框架数据结构及代码的前提下,采用多进程fork写时拷贝复制技术的方式设计语音合成服务系统的开发,重点解决资源或模型不能共享及多线程机制设计系统缺点的问题。使得工程开发更加便捷,降低内存占用提高稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种用于语音合成的内存优化方法的流程图;
图2是本发明一实施例提供的一种用于语音合成的内存优化系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示为本发明一实施例提供的一种用于语音合成的内存优化方法的流程图,包括如下步骤:
S11:将发音人资源集合加载至内存,确定所述发音人资源集合的物理地址;
S12:创建fork父子进程,通过所述fork父子进程内的fork调度父进程将所述物理地址共享给所述fork父子进程内的各fork文本转语音子进程,用于各fork文本转语音子进程之间对所述发音人资源集合的共享,其中,所述fork文本转语音子进程包括不修改数据结构以及代码的第三方框架;
S13:接收客户端输入的语音合成请求,所述fork调度父进程通过均衡策略将所述语音合成请求分配至指定fork文本转语音子进程;
S14:接收所述指定fork文本转语音子进程合成的发音人音频,其中,所述指定fork文本转语音子进程通过所述物理地址获取与所述语音合成请求对应的发音人资源。
在本实施方式中,在语音合成多进程服务系统程序开发中,为了便于处理大量的客户端发来的语音合成请求,会准备大量的发音人资源集合。其中,这些发音人资源可以通过实际采集、语音合成、数据增强等方法来预备大量的发音人资源,以备处理各客户端的请求。
对于步骤S11,在初始化时,将这些发音人资源集合加载至内存中。由于是专用于语音对话平台处理语音合成操作的内存,其容量相比于个人PC的内存容量大数十倍至数百倍,以至于可以将这庞大的发音人资源集合加载至内存中。将发音人资源集合加载至内存后,由于存入实际的内存当中,其具有真实的地址,也就是物理地址。
例如在64位的机器上,物理空间的大小理论上可以达到2^64字节,便于理解,假如实际装了512的内存,那么其物理地址真正的有效部分只有512MB=512*1024KB=512*1024*1024B(0x00000000~0x1fffffff)。同样的,若语音对话平台的内存有128G,那么使用128G进行同样的计算,即可得到其物理地址真正的有效部分。
对于步骤S12,fork父子进程,此步骤利用利用fork写时复制技术实现资源或模型物理空间的共享,即父子进程用的是相同的物理空间(加载资源或模型到内存),操作系统内核只为新生成的文本转语音子进程创建虚拟空间结构,并复制于调度父进程的虚拟空间结构,但是不为文本转语音子进程分配物理内存,而是共享调度父进程的物理空间。
作为一种实施方式,所述通过所述fork父子进程内的fork调度父进程将所述物理地址共享给所述fork父子进程内的各fork文本转语音子进程包括:
所述fork调度父进程通过写时复制机制将所述物理地址共享给所述各fork文本转语音子进程。
具体的说,调用fork系统函数,此时会产生一个文本转语音子进程,此子进程会调用exec函数族,出于效率考虑,操作系统linux引入写时拷贝复制技术,相对于刚创建的文本转语音子进程来说,调度父进程空间各段内容均是变化的,此时会将调度父进程的内容复制拷贝一份给文本转语音子进程,供其使用。在fork之后执行exec函数族之前父子进程用的是相同的物理空间(加载资源或模型内存区),文本转语音子进程的代码段、数据段和堆栈均是指向父进程的物理空间,即主进程与文本转语音子进程虚拟空间不同,但对应物理空间是相同的。当父子进程执行不同任务操作exec函数族,若有更改相应段的行为发生时,会为文本转语音子进程相应的段分配新的物理空间。
其中,作为一种实施方式,所述第三方框架包括:基于隐马尔可夫模型的语音合成系统、基于深度神经网络的语音合成系统,TensorFlow、kaldi语音识别系统。
在基于在不修改第三方框架数据结构及代码的前提下,采用多进程fork写时拷贝复制技术的方式设计语音合成服务系统的开发,重点解决资源或模型不能共享及多线程机制设计系统缺点的问题。
对于步骤S13,语音对话平台会接收多个客户端输入的语音合成请求,fork调度父进程会采取相应的调度策略来进行分配,例如,轮询、加强轮询、hash算法、一致性hash算法、最小连接数、加权最小连接数。
进一步地,由于发音人资源都存在内存当中,在收到语音合成请求后,语音对话平台可以估算出相应的合成时间。由于语音合成请求不同,其所消耗的合成时间也不相同。虽然轮询、连接数,可以保证让每个文本转语音子进程的请求相同,但是由于合成时间不相同,有的文本转语音子进程可能只有两个请求,但是需要20分钟的合成时间、有的文本转语音子进程有8个请求,但是仅需要12分钟的合成时间。
因此,在收到接收客户端输入的语音合成请求后,计算所述语音合成请求的合成时间。在第一轮分配到各文本转语音子进程时就会实时记录每个文本转语音子进程的剩余时间。在后续的其他客户端输入语音合成请求时,计算所述其他客户端输入语音合成请求的语音合成时间。基于所述语音合成时间进行分配调度。
进一步地,发明人还考虑到,如果某个文本转语音子进程存在过多的短时间的语音合成请求时,在完成一个语音合成请求进入下一个语音合成请求时,也会损耗一定时间。因此,将所述语音合成时间作为第一参数、所述文本转语音子进程内的请求数量作为第二参数。基于服务器不同时段的状态切换不同的预设阈值,来对第一参数、第二参数进行综合调度。例如,白天工作时段(此时,大家都在上班,用户级别的使用较少,会使用语音合成请求的大部分都是企业级的大容量级别的语音合成)、夜间工作时段(此时,用户都回家了,会出现大量用户的小容量级别的语音合成)对于不同种类的请求来进行合理的参数加权。
对于步骤S14,接收到指定fork文本转语音子进程反馈的发音人音频后,将发音人音频返回给客户端。
通过对本方法进行试验对照:
旧方案实现原理:每个计算进程均会加载一次模型(发音人资源),即fork后,加载模型(可参考现有的代码)。
本方法实现原理:实现计算进程共享内存的方式,即先加载模型,再fork计算进程。
结论:旧方案一个计算进程占用0.9G左右内存,本方法一个计算进程占用0.2G左右。
测试前提:每个子进程均加载30个后端模型,且一次轮询利用此模型合成,每个大小28M左右。
测试结果如下:
子进程个数 | 旧方案 | 本方法 |
10 | 9G | 2G |
30 | 28G | 6G |
60 | 58G | 12G |
90 | 86G | 17G |
120 | 118G | 23G |
通过该实施方式可以看出,在不修改第三方框架数据结构及代码的前提下,采用多进程fork写时拷贝复制技术的方式设计语音合成服务系统的开发,重点解决资源或模型不能共享及多线程机制设计系统缺点的问题。使得工程开发更加便捷,降低内存占用提高稳定性。
作为一种实施方式,在本实施例中,所述创建fork父子进程还包括:
获取cpu的核数量,当所述cpu为多核时,为所述各fork文本转语音子进程分别绑定一个cpu核,对所述发音人资源集合进行cache缓存。
在本实施方式中,由于cpu分为多核,例如,双核、四核、八核等,根据不同的cpu机器,在利用fork技术的前提下,创建每个文本转语音子进程各绑定一个cpu,这样可以充分减少上下文切换的开销,可充分利用cache缓存,进一步提高语音合成系统的响应时间。
如图2所示为本发明一实施例提供的一种用于语音合成的内存优化系统的结构示意图,该系统可执行上述任意实施例所述的用于语音合成的内存优化方法,并配置在终端中。
本实施例提供的一种用于语音合成的内存优化系统包括:地址确定程序模块11,共享程序模块12,调度程序模块13和语音合成程序模块14。
其中,地址确定程序模块11用于将发音人资源集合加载至内存,确定所述发音人资源集合的物理地址;共享程序模块12用于创建fork父子进程,通过所述fork父子进程内的fork调度父进程将所述物理地址共享给所述fork父子进程内的各fork文本转语音子进程,用于各fork文本转语音子进程之间对所述发音人资源集合的共享,其中,所述fork文本转语音子进程包括不修改数据结构以及代码的第三方框架;调度程序模块13用于接收客户端输入的语音合成请求,所述fork调度父进程通过均衡策略将所述语音合成请求分配至指定fork文本转语音子进程;语音合成程序模块14用于接收所述指定fork文本转语音子进程合成的发音人音频,其中,所述指定fork文本转语音子进程通过所述物理地址获取与所述语音合成请求对应的发音人资源。
进一步地,所述共享程序模块用于:
获取cpu的核数量,当所述cpu为多核时,为所述各fork文本转语音子进程分别绑定一个cpu核,对所述发音人资源集合进行cache缓存。
进一步地,所述各fork文本转语音子进程的虚拟地址互不相同。
进一步地,所述共享程序模块用于:
所述fork调度父进程通过写时复制机制将所述物理地址共享给所述各fork文本转语音子进程。
进一步地,所述第三方框架包括:基于隐马尔可夫模型的语音合成系统、基于深度神经网络的语音合成系统,TensorFlow、kaldi语音识别系统。
本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的用于语音合成的内存优化方法;
作为一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,计算机可执行指令设置为:
将发音人资源集合加载至内存,确定所述发音人资源集合的物理地址;
创建fork父子进程,通过所述fork父子进程内的fork调度父进程将所述物理地址共享给所述fork父子进程内的各fork文本转语音子进程,用于各fork文本转语音子进程之间对所述发音人资源集合的共享,其中,所述fork文本转语音子进程包括不修改数据结构以及代码的第三方框架;
接收客户端输入的语音合成请求,所述fork调度父进程通过均衡策略将所述语音合成请求分配至指定fork文本转语音子进程;
接收所述指定fork文本转语音子进程合成的发音人音频,其中,所述指定fork文本转语音子进程通过所述物理地址获取与所述语音合成请求对应的发音人资源。
作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的方法对应的程序指令/模块。一个或者多个程序指令存储在非易失性计算机可读存储介质中,当被处理器执行时,执行上述任意方法实施例中的用于语音合成的内存优化方法。
非易失性计算机可读存储介质可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据装置的使用所创建的数据等。此外,非易失性计算机可读存储介质可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,非易失性计算机可读存储介质可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的用于语音合成的内存优化方法的步骤。
本申请实施例的客户端以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如平板电脑。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器,掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)其他具有语音处理的电子装置。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种用于语音合成的内存优化方法,包括:
将发音人资源集合加载至内存,确定所述发音人资源集合的物理地址;
创建fork父子进程,通过所述fork父子进程内的fork调度父进程将所述物理地址共享给所述fork父子进程内的各fork文本转语音子进程,用于各fork文本转语音子进程之间对所述发音人资源集合的共享,其中,所述fork文本转语音子进程包括不修改数据结构以及代码的第三方框架;
接收客户端输入的语音合成请求,所述fork调度父进程通过均衡策略将所述语音合成请求分配至指定fork文本转语音子进程;
接收所述指定fork文本转语音子进程合成的发音人音频,其中,所述指定fork文本转语音子进程通过所述物理地址获取与所述语音合成请求对应的发音人资源。
2.根据权利要求1所述的方法,其中,所述创建fork父子进程还包括:
获取cpu的核数量,当所述cpu为多核时,为所述各fork文本转语音子进程分别绑定一个cpu核,对所述发音人资源集合进行cache缓存。
3.根据权利要求1所述的方法,其中,所述各fork文本转语音子进程的虚拟地址互不相同。
4.根据权利要求1所述的方法,其中,所述通过所述fork父子进程内的fork调度父进程将所述物理地址共享给所述fork父子进程内的各fork文本转语音子进程包括:
所述fork调度父进程通过写时复制机制将所述物理地址共享给所述各fork文本转语音子进程。
5.根据权利要求1所述的方法,其中,所述第三方框架包括:基于隐马尔可夫模型的语音合成系统、基于深度神经网络的语音合成系统,TensorFlow、kaldi语音识别系统。
6.一种用于语音合成的内存优化系统,系统:
地址确定程序模块,用于将发音人资源集合加载至内存,确定所述发音人资源集合的物理地址;
共享程序模块,用于创建fork父子进程,通过所述fork父子进程内的fork调度父进程将所述物理地址共享给所述fork父子进程内的各fork文本转语音子进程,用于各fork文本转语音子进程之间对所述发音人资源集合的共享,其中,所述fork文本转语音子进程包括不修改数据结构以及代码的第三方框架;
调度程序模块,用于接收客户端输入的语音合成请求,所述fork调度父进程通过均衡策略将所述语音合成请求分配至指定fork文本转语音子进程;
语音合成程序模块,用于接收所述指定fork文本转语音子进程合成的发音人音频,其中,所述指定fork文本转语音子进程通过所述物理地址获取与所述语音合成请求对应的发音人资源。
7.根据权利要求6所述的系统,其中,所述共享程序模块用于:
获取cpu的核数量,当所述cpu为多核时,为所述各fork文本转语音子进程分别绑定一个cpu核,对所述发音人资源集合进行cache缓存。
8.根据权利要求6所述的系统,其中,所述各fork文本转语音子进程的虚拟地址互不相同。
9.根据权利要求6所述的系统,其中,所述共享程序模块用于:
所述fork调度父进程通过写时复制机制将所述物理地址共享给所述各fork文本转语音子进程。
10.根据权利要求6所述的系统,其中,所述第三方框架包括:基于隐马尔可夫模型的语音合成系统、基于深度神经网络的语音合成系统,TensorFlow、kaldi语音识别系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010384423.3A CN111580975B (zh) | 2020-05-07 | 2020-05-07 | 用于语音合成的内存优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010384423.3A CN111580975B (zh) | 2020-05-07 | 2020-05-07 | 用于语音合成的内存优化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111580975A CN111580975A (zh) | 2020-08-25 |
CN111580975B true CN111580975B (zh) | 2022-07-08 |
Family
ID=72112004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010384423.3A Active CN111580975B (zh) | 2020-05-07 | 2020-05-07 | 用于语音合成的内存优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111580975B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527234B (zh) * | 2020-11-05 | 2021-08-17 | 北京百度网讯科技有限公司 | 音频帧的输出方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105607901A (zh) * | 2015-12-11 | 2016-05-25 | Tcl集团股份有限公司 | 系统内存的优化方法、装置及终端设备 |
CN107291495A (zh) * | 2017-06-01 | 2017-10-24 | 努比亚技术有限公司 | 一种共享资源加载方法、终端及计算机可读存储介质 |
CN108073452A (zh) * | 2016-11-10 | 2018-05-25 | 阿里巴巴集团控股有限公司 | 一种动态语言的运行时环境处理方法、装置和设备 |
US20190306082A1 (en) * | 2018-03-29 | 2019-10-03 | The Toronto-Dominion Bank | Systems and methods for allocating shared resources |
-
2020
- 2020-05-07 CN CN202010384423.3A patent/CN111580975B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105607901A (zh) * | 2015-12-11 | 2016-05-25 | Tcl集团股份有限公司 | 系统内存的优化方法、装置及终端设备 |
CN108073452A (zh) * | 2016-11-10 | 2018-05-25 | 阿里巴巴集团控股有限公司 | 一种动态语言的运行时环境处理方法、装置和设备 |
CN107291495A (zh) * | 2017-06-01 | 2017-10-24 | 努比亚技术有限公司 | 一种共享资源加载方法、终端及计算机可读存储介质 |
US20190306082A1 (en) * | 2018-03-29 | 2019-10-03 | The Toronto-Dominion Bank | Systems and methods for allocating shared resources |
Also Published As
Publication number | Publication date |
---|---|
CN111580975A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113377540A (zh) | 集群资源调度方法及装置、电子设备和存储介质 | |
US20160306680A1 (en) | Thread creation method, service request processing method, and related device | |
CN111866054A (zh) | 一种云主机的搭建方法、装置、电子设备及可读存储介质 | |
CN112699040B (zh) | 压力测试方法、装置、设备及计算机可读存储介质 | |
WO2014146441A1 (en) | Method, server and system for processing task data | |
EP4060496A2 (en) | Method, apparatus, device and storage medium for running inference service platform | |
CN116185623A (zh) | 任务分配方法、装置、电子设备及存储介质 | |
CN111580975B (zh) | 用于语音合成的内存优化方法及系统 | |
CN113742009A (zh) | 桌面云环境资源调度方法、装置、设备及存储介质 | |
Patel et al. | A survey on load balancing in cloud computing | |
CN114416357A (zh) | 容器组的创建方法、装置、电子设备和介质 | |
CN110096352B (zh) | 进程管理方法、装置及计算机可读存储介质 | |
CN111026532B (zh) | 用于语音数据的消息队列管理方法 | |
CN117539594A (zh) | 一种面向像素流程序并发渲染的负载均衡方法 | |
CN106648895A (zh) | 一种处理数据的方法、装置及终端 | |
Zhuang et al. | Impact of instance seeking strategies on resource allocation in cloud data centers | |
CN116795492A (zh) | 云平台的资源调度方法、装置、设备及可读存储介质 | |
CN107045452B (zh) | 虚拟机调度方法和装置 | |
CN116360994A (zh) | 分布式异构资源池的调度方法、装置、服务器及存储介质 | |
CN114780228B (zh) | 一种混合云资源创建方法及系统 | |
CN111158889A (zh) | 一种批量任务处理方法及系统 | |
CN112687261B (zh) | 语音识别训练和应用方法及装置 | |
WO2013138982A1 (zh) | 一种并行处理方法和装置 | |
CN111124672A (zh) | 基于Redis集群的数据分配的方法及相关设备 | |
CN113095645B (zh) | 针对任务分布不均的紧急场景的异构无人机任务分配方法 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province Applicant after: Sipic Technology Co.,Ltd. Address before: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province Applicant before: AI SPEECH Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |