本发明涉及语音合成技术领域,尤其涉及一种语音获取方法、装置以及计算机可读存储介质。
背景技术:
tts系统(语音合成系统)把文本信息转换成语音信息,其过程需要花费一定的时间开销。如果tts系统采用最先进的神经网络模型(诸如tacotron,wavenet,wavernn,lpcnet等等),其合成速度也十分缓慢,很多情况下无法达到快速合成。
技术实现要素:
本发明实施例提供了一种语音获取方法、装置以及计算机可读存储介质,能减少语音合成系统的计算开销,提高获取语音的效率。
本发明一方面提供一种语音获取方法,所述方法包括:获取文本信息;将所获取的文本信息进行拆分,得到多个拆分文本;将所得到的多个拆分文本逐一判断是否存在于第一语音缓存中;若判定所述第一语音缓存中存在所述拆分文本,则从第一语音缓存中提取对应于所述拆分文本的语音信息。
在一可实施方式中,所述方法还包括:若判定所述第一语音缓存中不存在所述拆分文本,则对其进行语音合成,得到对应的语音信息。
在一可实施方式中,所述方法还包括:将所述文本信息和对应的语音信息存入到第二语音缓存中。
在一可实施方式中,在将所获取的文本信息进行拆分,得到多个拆分文本之前,所述方法还包括:判断所述文本信息是否存在于第二语音缓存中;若判定所述文本信息存在于所述第二语音缓存中,则从所述第二语音缓存中获取对应于所述文本信息的语音信息;若判定所述问信息不存在于所述第二语音缓存中,则将所获取的文本信息进行拆分,得到多个拆分文本。
在一可实施方式中,在判断所述文本信息是否存在于第二语音缓存中之前,所述方法还包括:判断所述文本信息是否存在于语音数据库中;若判定所述文本信息存在于所述语音数据库中,则从所述语音数据库中获取对应于所述文本信息的语音信息;若判定所述文本信息不存在于所述语音数据库中,则判断所述文本信息是否存在于所述第二语音缓冲中。
在一可实施方式中,所述语音数据库为共享资源,所述第一语音缓存和第二语音缓存为独享资源。
本发明另一方面提供一种语音获取装置,所述装置包括:文本获取模块,用于获取文本信息;文本拆分模块,用于将所获取的文本信息进行拆分,得到多个拆分文本;拆分文本判断模块,用于将所得到的多个拆分文本逐一判断是否存在于第一语音缓存中;语音提取模块,用于若经所述拆分文本判断模块判定所述第一语音缓存中存在所述拆分文本,则从第一语音缓存中提取对应于所述拆分文本的语音信息。
在一可实施方式中,在所述文本拆分模块将所获取的文本信息进行拆分,得到多个拆分文本之前,所述装置还包括:缓存判断模块,用于判断所述文本信息是否存在于第二语音缓存中;若判定所述文本信息存在于所述第二语音缓存中,则从所述第二语音缓存中获取对应于所述文本信息的语音信息;若判定所述问信息不存在于所述第二语音缓存中,则将所获取的文本信息进行拆分,得到多个拆分文本。
在一可实施方式中,在所述缓存判断模块判断所述文本信息是否存在于第二语音缓存中之前,所述方法还包括:数据库判断模块,用于判断所述文本信息是否存在于语音数据库中;若判定所述文本信息存在于所述语音数据库中,则从所述语音数据库中获取对应于所述文本信息的语音信息;若判定所述文本信息不存在于所述语音数据库中,则判断所述文本信息是否存在于所述第二语音缓冲中。
本发明另一方面提供一种计算机可读存储介质,所述存储介质包括一组计算机可执行指令,当所述指令被执行时用于执行上述任一项所述的语音获取方法。
在本发明实施例中,通过事先将一些短语以及对应的语音信息存入到第一语音缓存中。由此,在接收到文本信息之后,将文本进行拆分,得到多个拆分文本,并判断多个拆分文本是否存在于第一语音缓存中,如判定第一语音缓存中存在拆分文本,则直接提取对应的语音信息,对于不存在于第一语音缓存中的拆分文本进行后续处理。
由此,在接收到文本信息之后,可快速地反馈对应的语音信息,减少语音合成系统的计算开销,大大提高了语音获取的效率。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1为本发明实施例一种语音获取方法的实现流程示意图;
图2为本发明实施例一种语音获取方法的具体实现流程示意图;
图3为本发明实施例一种语音获取装置的结构组成示意图。
具体实施方式
为使本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一种语音获取方法的实现流程示意图。
如图1所示,本发明一方面提供一种语音获取方法,方法包括:
步骤101,获取文本信息;
步骤102,将所获取的文本信息进行拆分,得到多个拆分文本;
步骤103,将所得到的多个拆分文本逐一判断是否存在于第一语音缓存中;
步骤104,若判定第一语音缓存中存在拆分文本,则从第一语音缓存中提取对应于拆分文本的语音信息。
本实施例中,首先获取到文本信息,其中,文本信息可以由用户提供。
接着将所获取到的文本信息进行拆分,得到多个拆分文本,其中拆分方式可以按照文本信息中的标点符号来拆分,也可以利用现有的分词工具对其进行分词处理。
然后将所得到的多个拆分文本逐一判断是否存在于第一语音缓存中;其中,第一语音缓存用于存储一些常用短语和对应的语音消息,例如:“你好,我是xxx”和“你好,请问xxx”,这两句话中的“你好”为经常出现的短语,则事先提取这两句话中的相同部分,并将其生成对应的语音信息,将该文本信息和对应的语音信息存储到第一语音缓存中。
然后将多个拆分文本逐一判断是否存在于第一语音缓存中;
若判定第一语音缓存中存在拆分文本,则提取对应该拆分文本的语音信息。
由此,在接收到文本信息之后,可快速地反馈对应的语音信息,减少语音合成系统的计算开销,大大提高了语音获取的效率。
在一可实施方式中,方法还包括:
若判定第一语音缓存中不存在拆分文本,则对其进行语音合成,得到对应的语音信息。
本实施例中,若多个拆分文本中有一个或者多个不存在于第一语音缓存中,则利用语音合成技术将其转换得到对应的语音信息,再将得到的语音信息反馈给用户。
在一可实施方式中,方法还包括:
将文本信息和对应的语音信息存入到第二语音缓存中。
本实施例中,经过上述步骤之后,将整个文本信息和对应的语音信息存入到第二语音缓存中。其中,第二语音缓存主要用于存储最近用户所请求合成的文本信息和语音信息。
在一可实施方式中,在将所获取的文本信息进行拆分,得到多个拆分文本之前,方法还包括:
判断文本信息是否存在于第二语音缓存中;
若判定文本信息存在于第二语音缓存中,则从第二语音缓存中获取对应于文本信息的语音信息;
若判定问信息不存在于第二语音缓存中,则将所获取的文本信息进行拆分,得到多个拆分文本。
本实施例中,在将所获取的文本信息进行拆分,得到多个拆分文本之前,先判断文本信息是否存在于第二语音缓存中,若在第二语音缓存中存在该文本信息,则直接提取该文本信息所对应的语音信息,若判定第二语音缓存中不存在该文本信息,则再将该文本信息进行拆分,得到多个拆分文本,再继续后续步骤。
由此,当文本信息存在于第二语音缓存中,就可以直接提取对应的语音信息,并将该语音信息反馈给用户,提升了语音获取效率。
在一可实施方式中,在判断文本信息是否存在于第二语音缓存中之前,方法还包括:
判断文本信息是否存在于语音数据库中;
若判定文本信息存在于语音数据库中,则从语音数据库中获取对应于文本信息的语音信息;
若判定文本信息不存在于语音数据库中,则判断文本信息是否存在于第二语音缓冲中。
本实施例中,在判断文本信息是否存在于第二语音缓存中之前,先判断文本信息是否存在于语音数据库中,其中,语音数据库用于大量存储使用频率较大的文本信息和对应的语音信息。存储时,对所有历史文本信息按照频率从高到低排序,选取频率较高的几万条文本信息以及对应的语音信息存入到语音数据库中。
当用户输入文本信息之后,首先判断文本信息是否存在于语音数据库中,若判定语音数据库中存在该文本信息,则从语音数据库中提取对应的语音信息,若判定语音数据库中不存在该文本信息,则继续判断文本信息是否存在于第二语音缓存中。
由此,当文本信息存在于语音数据库中,就可以直接提取对应的语音信息,并将该语音信息反馈给用户,提升了语音获取效率。
在一可实施方式中,语音数据库为共享资源,第一语音缓存和第二语音缓存为独享资源。
本实施例中,语音数据库为共享资源,供分布式服务器访问;第一语音缓存和第二语音缓存均为独享资源,位于每个服务器中。
图2为本发明实施例一种语音获取方法的具体实现流程示意图。
如图2所示,当用户本地端输入文本信息之后,本地端将输入的文本信息传输到某个服务器中,该服务器首先将该文本信息传输到redis(remotedictionaryserver存储系统)中,该存储系统也就是上文中提到的语音数据库,存储系统中存有键值对信息,键信息为文本信息,值信息为对应的语音信息。在存储系统中搜寻是否存在该文本信息,若存储系统中存在该文本信息,则提取对应文本信息的语音信息,再将语音信息反馈给服务器,服务器再将语音信息反馈给本地端。
若在存储系统中不存在该文本信息,存储系统反馈给服务器未找到的指令,服务器将该文本信息在lrucache(leastrecentlyused,最近最少使用算法),lrucache即为上文中提到的第二语音缓存,用于存储最近访问过的文本信息和对应的语音信息。服务器判断文本信息是否存在于lrucache中,若lrucache中存在该文本信息,则提取文本信息所对应的语音信息,并将语音信息反馈给本地端。
若lrucache中不存在该文本信息,则将文本信息进行拆分,得到多个拆分文本,再判断服务器中的prefixcache(前缀缓存)是否存在多个拆分文本,prefixcache也就是上文中提到的第一语音缓存,主要用于存储短语以及对应的语音信息。将多个拆分文本有存在于prefixcache的,则直接提取对应的语音信息,若有拆分文本不存在于prefixcache的,则利用语音合成系统将其转换为对应的语音信息,并将所得到的语音信息反馈给本地端。
通过设置redis、lrucache、prefixcache,可快速地搜寻到对应的语音信息,减少语音合成系统的计算开销,大大提高了语音获取的效率,给用户一种秒回的感觉。
图3为本发明实施例一种语音获取装置的结构组成示意图。
如图3所示,本发明实施例另一方面提供一种语音获取装置,装置包括:
文本获取模块201,用于获取文本信息;
文本拆分模块202,用于将所获取的文本信息进行拆分,得到多个拆分文本;
拆分文本判断模块203,用于将所得到的多个拆分文本逐一判断是否存在于第一语音缓存中;
语音提取模块204,用于若经拆分文本判断模块203判定第一语音缓存中存在拆分文本,则从第一语音缓存中提取对应于拆分文本的语音信息。
本实施例中,首先通过文本获取模块201获取到文本信息,其中,文本信息可以由用户提供。
接着通过文本拆分模块202将所获取到的文本信息进行拆分,得到多个拆分文本,其中拆分方式可以按照文本信息中的标点符号来拆分,也可以利用现有的分词工具对其进行分词处理。
然后通过拆分文本判断模块203将所得到的多个拆分文本逐一判断是否存在于第一语音缓存中;其中,第一语音缓存用于存储一些常用短语和对应的语音消息,例如:“你好,我是xxx”和“你好,请问xxx”,这两句话中的“你好”为经常出现的短语,则事先提取这两句话中的相同部分,并将其生成对应的语音信息,将该文本信息和对应的语音信息存储到第一语音缓存中。然后将多个拆分文本逐一判断是否存在于第一语音缓存中;
若经拆分文本判断模块203判定第一语音缓存中存在拆分文本,则通过语音提取模块204提取对应该拆分文本的语音信息。
由此,在接收到文本信息之后,可快速地反馈对应的语音信息,减少语音合成系统的计算开销,大大提高了语音获取的效率。
在一可实施方式中,在文本拆分模块202将所获取的文本信息进行拆分,得到多个拆分文本之前,装置还包括:
缓存判断模块2012,用于判断文本信息是否存在于第二语音缓存中;
若判定文本信息存在于第二语音缓存中,则从第二语音缓存中获取对应于文本信息的语音信息;
若判定问信息不存在于第二语音缓存中,则将所获取的文本信息进行拆分,得到多个拆分文本。
本实施例中,在文本拆分模块202将所获取的文本信息进行拆分,得到多个拆分文本之前,先通过缓存判断模块2012判断文本信息是否存在于第二语音缓存中,若在第二语音缓存中存在该文本信息,则直接提取该文本信息所对应的语音信息,若判定第二语音缓存中不存在该文本信息,则再通过文本拆分模块202将该文本信息进行拆分,得到多个拆分文本,再继续后续步骤。
由此,当文本信息存在于第二语音缓存中,就可以直接提取对应的语音信息,并将该语音信息反馈给用户,提升了语音获取效率。
在一可实施方式中,在缓存判断模块2012判断文本信息是否存在于第二语音缓存中之前,方法还包括:
数据库判断模块2011,用于判断文本信息是否存在于语音数据库中;
若判定文本信息存在于语音数据库中,则从语音数据库中获取对应于文本信息的语音信息;
若判定文本信息不存在于语音数据库中,则判断文本信息是否存在于第二语音缓冲中。
本实施例中,在缓存判断模块2012判断文本信息是否存在于第二语音缓存中之前,先通过数据库判断模块2011判断文本信息是否存在于语音数据库中,其中,语音数据库用于大量存储使用频率较大的文本信息和对应的语音信息。存储时,对所有历史文本信息按照频率从高到低排序,选取频率较高的几万条文本信息以及对应的语音信息存入到语音数据库中。
当用户输入文本信息之后,首先数据库判断模块2011判断文本信息是否存在于语音数据库中,若判定语音数据库中存在该文本信息,则从语音数据库中提取对应的语音信息,若判定语音数据库中不存在该文本信息,则继续通过缓存判断模块2012判断文本信息是否存在于第二语音缓存中。
由此,当文本信息存在于语音数据库中,就可以直接提取对应的语音信息,并将该语音信息反馈给用户,提升了语音获取效率。
本发明另一方面提供一种计算机可读存储介质,存储介质包括一组计算机可执行指令,当指令被执行时用于执行上述任一项的语音获取方法。
在本发明实施例中计算机可读存储介质包括一组计算机可执行指令,当指令被执行时用于,获取文本信息;将所获取的文本信息进行拆分,得到多个拆分文本;将所得到的多个拆分文本逐一判断是否存在于第一语音缓存中;若判定所述第一语音缓存中存在所述拆分文本,则从第一语音缓存中提取对应于所述拆分文本的语音信息。
由此,在接收到文本信息之后,可快速地反馈对应的语音信息,减少语音合成系统的计算开销,大大提高了语音获取的效率。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
1.一种语音获取方法,其特征在于,所述方法包括:
获取文本信息;
将所获取的文本信息进行拆分,得到多个拆分文本;
将所得到的多个拆分文本逐一判断是否存在于第一语音缓存中;
若判定所述第一语音缓存中存在所述拆分文本,则从第一语音缓存中提取对应于所述拆分文本的语音信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若判定所述第一语音缓存中不存在所述拆分文本,则对其进行语音合成,得到对应的语音信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述文本信息和对应的语音信息存入到第二语音缓存中。
4.根据权利要求1或3所述的方法,其特征在于,在将所获取的文本信息进行拆分,得到多个拆分文本之前,所述方法还包括:
判断所述文本信息是否存在于第二语音缓存中;
若判定所述文本信息存在于所述第二语音缓存中,则从所述第二语音缓存中获取对应于所述文本信息的语音信息;
若判定所述问信息不存在于所述第二语音缓存中,则将所获取的文本信息进行拆分,得到多个拆分文本。
5.根据权利要求4所述的方法,其特征在于,在判断所述文本信息是否存在于第二语音缓存中之前,所述方法还包括:
判断所述文本信息是否存在于语音数据库中;
若判定所述文本信息存在于所述语音数据库中,则从所述语音数据库中获取对应于所述文本信息的语音信息;
若判定所述文本信息不存在于所述语音数据库中,则判断所述文本信息是否存在于所述第二语音缓冲中。
6.根据权利要求5所述的方法,其特征在于,所述语音数据库为共享资源,所述第一语音缓存和第二语音缓存为独享资源。
7.一种语音获取装置,其特征在于,所述装置包括:
文本获取模块,用于获取文本信息;
文本拆分模块,用于将所获取的文本信息进行拆分,得到多个拆分文本;
拆分文本判断模块,用于将所得到的多个拆分文本逐一判断是否存在于第一语音缓存中;
语音提取模块,用于若经所述拆分文本判断模块判定所述第一语音缓存中存在所述拆分文本,则从第一语音缓存中提取对应于所述拆分文本的语音信息。
8.根据权利要求7所述的装置,其特征在于,在所述文本拆分模块将所获取的文本信息进行拆分,得到多个拆分文本之前,所述装置还包括:
缓存判断模块,用于判断所述文本信息是否存在于第二语音缓存中;
若判定所述文本信息存在于所述第二语音缓存中,则从所述第二语音缓存中获取对应于所述文本信息的语音信息;
若判定所述问信息不存在于所述第二语音缓存中,则将所获取的文本信息进行拆分,得到多个拆分文本。
9.根据权利要求8所述的装置,其特征在于,在所述缓存判断模块判断所述文本信息是否存在于第二语音缓存中之前,所述方法还包括:
数据库判断模块,用于判断所述文本信息是否存在于语音数据库中;
若判定所述文本信息存在于所述语音数据库中,则从所述语音数据库中获取对应于所述文本信息的语音信息;
若判定所述文本信息不存在于所述语音数据库中,则判断所述文本信息是否存在于所述第二语音缓冲中。
10.一种计算机可读存储介质,其特征在于,所述存储介质包括一组计算机可执行指令,当所述指令被执行时用于执行权利要求1-6任一项所述的一种语音获取方法。
技术总结