WO2023184874A1 - 语音合成方法和装置 - Google Patents
语音合成方法和装置 Download PDFInfo
- Publication number
- WO2023184874A1 WO2023184874A1 PCT/CN2022/118072 CN2022118072W WO2023184874A1 WO 2023184874 A1 WO2023184874 A1 WO 2023184874A1 CN 2022118072 W CN2022118072 W CN 2022118072W WO 2023184874 A1 WO2023184874 A1 WO 2023184874A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- prosodic
- target
- sequence
- clause
- phoneme
- Prior art date
Links
- 238000001308 synthesis method Methods 0.000 title claims abstract description 58
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 185
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 185
- 230000011218 segmentation Effects 0.000 claims description 192
- 238000000034 method Methods 0.000 claims description 126
- 238000012545 processing Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 20
- 238000012549 training Methods 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 6
- 238000002372 labelling Methods 0.000 claims 1
- 230000033764 rhythmic process Effects 0.000 abstract description 18
- 230000002194 synthesizing effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000004904 shortening Methods 0.000 description 8
- 238000001228 spectrum Methods 0.000 description 8
- 238000013518 transcription Methods 0.000 description 8
- 230000035897 transcription Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000012827 research and development Methods 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 4
- 230000001020 rhythmical effect Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 101100011382 Aspergillus niger eglB gene Proteins 0.000 description 2
- 101100285402 Danio rerio eng1a gene Proteins 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000037433 frameshift Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/02—Methods for producing synthetic speech; Speech synthesisers
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/06—Elementary speech units used in speech synthesisers; Concatenation rules
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/08—Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/08—Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
- G10L13/10—Prosody rules derived from text; Stress or intonation
Abstract
本申请涉及语音合成领域,提供一种语音合成方法,包括:切分目标文本的韵律音素序列,生成多个分句序列,韵律音素序列包括与目标文本对应的多个音素以及位于相邻音素之间的韵律标识符,每个分句序列包括至少一个音素;对多个分句序列中的第一子韵律音素序列进行语音合成,得到第一语音信息;输出第一语音信息且对多个分句序列中的第二子韵律音素序列进行语音合成,生成第二语音信息,第二子韵律音素序列为在韵律音素序列中位于第一子韵律音素序列之后的至少一个分句序列。本申请的语音合成方法,有效加快系统在接收到网络语音合成服务请求后的反馈速度,缩短用户的等待时间。
Description
相关申请的交叉引用
本申请要求于2022年3月31日在中国知识产权局提交的标题为“语音合成方法和语音合成装置”中国专利申请No.202210344448X、于2022年3月31日在中国知识产权局提交的标题为“语音拼接方法和语音拼接装置”中国专利申请No.2022103461146的优先权、于2022年3月31日在中国知识产权局提交的标题为“音视频文件大小的获取方法和装置”中国专利申请No.2022103460976的优先权、于2022年3月31日在中国知识产权局提交的标题为“文本转写方法和文本转写装置”中国专利申请No.2022103460942的优先权、于2022年3月31日在中国知识产权局提交的标题为“文本的切分方法和文本的切分装置”中国专利申请No.2022103444564的优先权,通过引用将该中国专利申请公开的全部内容并入本文。
本申请涉及语音合成技术领域,尤其涉及语音合成方法和语音合成装置、语音拼接方法和语音拼接装置、音视频文件大小的获取方法和装置、文本转写方法和文本转写装置、以及文本的切分方法和文本的切分装置。
从文本到语音(Text To Speech,TTS)技术被广泛应用于语音合成领域。相关技术中,在进行语音合成时,通常是直接对整段待合成文本进行语音合成,对于一些较长的待合成文本,在进行语音合成时则需要耗费更长的时间,这也意味着用户需等待较长的时间才能获取所合成的语音,语音合成性能较低,既浪费了用户的时间,也影响了用户的使用体验。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出了一种语音合成方法和语音合成装置。
根据本申请的第一方面,提供了一种语音合成方法,包括:对目标文本的韵律音素序列进行切分,生成多个分句序列,韵律音素序列包括与目标文本对应的多个音素以及位于相邻音素之间的韵律标识符,每个分句序列包括至少一个音素;对多个分句序列中的第一子韵律音素序列进行语音合成,得到第一语音信息;输出第一语音信息且对多个分句序列中的第二子韵律音素序列进行语音合成,生成第二语音信息,第二子韵律音素序列为在韵律音素序列中位于第一子韵律音素序列之后的至少一个分句序列。
根据本申请的第二方面,提供了一种语音合成装置,包括:第一处理模块,用于对目标文本的韵律音素序列进行切分,生成多个分句序列,韵律音素序列包括与目标文本对应的多个音素以及位于相邻音素之间的韵律标识符,每个分句序列包括至少一个音素;第二处理模块,用于对多个分句序列中的第一子韵律音素序列进行语音合成,得到第一语音信息;第三处理模块,用于输出第一语音信息且对多个分句序列中的第二子韵律音素序列进行语音合成,生成第二语音信息,第二子韵律音素序列为在韵律音素序列中位于第一子韵律音素序列之后的至少一个分句序列。
根据本申请的第三方面,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述的语音合成方法。
根据本申请的第四方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述的语音合成方法。
根据本申请的第五方面,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现如上述的语音合成方法。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的语音合成方法的流程示意图之一;
图2是根据本申请实施例的语音合成方法的流程示意图之二;
图3是根据本申请实施例的语音合成装置的结构示意图;
图4是根据本申请实施例的电子设备的结构示意图;
图5是根据本申请实施例的语音拼接方法的流程示意图之一;
图6是根据本申请实施例的语音拼接方法的流程示意图之二;
图7是根据本申请实施例的音视频文件大小的获取方法的流程示意图之一;
图8是根据本申请实施例的音视频文件大小的获取方法的流程示意图之二;
图9是根据本申请实施例的文本转写方法的流程示意图之一;
图10是根据本申请实施例的文本转写方法的流程示意图之二;
图11是根据本申请实施例的文本的切分方法的流程示意图之一;
图12是根据本申请实施例的文本的切分方法的流程示意图之二;
图13是根据本申请实施例的文本的切分方法的流程示意图之三。
下面结合附图和实施例对本申请的实施方式作进一步详细描述。以下实施例用于说明本申请,但不能用来限制本申请的范围。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
下面结合图1-图2描述本申请实施例的语音合成方法。
该语音合成方法的执行主体可以为语音合成装置,或者为服务器,或者还可以为用户的终端,包括但不限于手机、平板电脑、pc端、车载终端以及家用智能电器等。
如图1所示,该语音合成方法包括:步骤110、步骤120和步骤130。
步骤110、切分目标文本的韵律音素序列,生成多个分句序列;
在该步骤中,目标文本为当前用于进行语音合成的文本。
韵律音素序列为用于表征目标文本的韵律特征和音素特征的序列。
韵律音素序列包括位于相邻音素之间的韵律标识符和与目标文本对应的多个音素。
其中,音素可以为一个或多个根据语音的自然属性划分出来的语音单位的组合,语音单位可以为一个汉字对应的拼音、声母或韵母或者一个英文单词、英文音标或英文字母。
韵律标识符为用于表征目标文本中每一个音素所对应的韵律特征的标识符,韵律特征包括但不限于:音素对应的声调、音节、韵律词、韵律短语、语调短语、静音以及停顿等特征。
其中,用于表征停顿的韵律标识符的细粒度高于用于表征语调短语的韵律的标识符的细粒度,用于表征语调短语的细粒度高于用于表征韵律短语的细粒度,用于表征韵律短语的细粒度高于用于表征韵律词的细粒度,用于表征韵律词的细粒度高于用于表征音节的细粒度。
在实际执行过程中,可以用不同的符号表示不同细粒度等级的韵律特征。
例如,对于目标文本“上海市今天阴转多云东南风三到四级”,可以将其转化为韵律音素序列:sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3 dong1 #0 nan2 #0 feng1 #2 san1 #0 dao4 #1 si4 #0 ji2 #4 sil。
可以理解的是,对于该韵律音素序列,韵律标识符可以包括:各相邻的拼音之间的数字、符号以及英文音素;音素可以包括每一个汉字对应的拼音。
其中,sil为韵律音素序列中代表句首和句末的静音,#0代表音节、#1代表韵律词、#2代表韵律短语、#3代表语调短语以及#4代表句末,每个音素后面的数字代表该音素的声调,如shang4中的4代表拼音“shang”的声调为第四声。
可以理解的是,一整段韵律音素序列是由依次相连的分句序列连接而成。
在一些实施例中,步骤110可以包括:将目标文本转化为韵律音素序列;基于多个韵律标识符中的至少部分切分韵律音素序列,生成多个分句序列。
在该实施例中,目标文本为当前用于进行语音合成的文本。
对于一整段韵律音素序列,包括有多个音素和多个韵律标识符,多个韵律标识符中包括对应不同细粒度等级的韵律标识符。
在实际执行过程中,可以基于实际情况选择合适的细粒度等级作为切分标准,并将该细粒度等级对应的韵律标识符在韵律音素序列中的位置作为切分点,对韵律音素序列进行切分,以得到多个分句序列。
需要说明的是,每个分句序列包括切分点处的韵律标识符以及至少一个音素。
可以理解的是,对于每段韵律音素序列,对应至少一个切分点,则可以得到至少两个分句序列。
例如,对于韵律音素序列“sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3 dong1 #0 nan2 #0 feng1 #2 san1 #0 dao4 #1 si4 #0 ji2 #4 sil”,基于实际需求确定在#3处进行切分,则分别在韵律音素序列中含有#3的位置进行切分,并保留韵律分割符#3至前一个拼接单元,从而可以将该韵律音素序列切分为以下多个分句序列:
分句序列1:sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3;
分句序列2:dong1 #0 nan2 #0 feng1 #2 san1 #0 dao4 #1 si4 #0 ji2 #4 sil。
切分点的确定过程将在后续实施例中进行说明,在此暂不作赘述。
步骤120、对多个分句序列中的第一子韵律音素序列进行语音合成,得到第一语音信息;
在该步骤中,第一子韵律音素序列为韵律音素序列的第一个切分点之前的韵律音素序列。
继续以上述实施例中的分句序列1和分句序列2为例,第一子韵律音素序列即为分句序列1:sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3。
在实际执行过程中,可以采用声码器对第一子韵律音素序列进行语音合成,以生成该第 一子韵律音素序列对应的第一语音信息。
步骤130、输出第一语音信息且对多个分句序列中的第二子韵律音素序列进行语音合成,生成第二语音信息,第二子韵律音素序列为在韵律音素序列中位于第一子韵律音素序列之后的至少一个分句序列。
在该步骤中,在生成第一语音信息后,将第一语音信息返回至客户端进行输出,以供用户播放该第一语音信息。
在输出第一语音信息的过程中,后台继续对第二子韵律音素序列进行语音合成,以生成第二子韵律音素序列对应的第二语音信息。
其中,第二子韵律音素序列为在韵律音素序列中位于第一子韵律音素序列之后的至少一个分句序列,对于上述实施例中的分句序列1和分句序列2,第二子韵律音素序列即为分句序列2:dong1 #0 nan2 #0 feng1 #2 san1 #0 dao4 #1 si4 #0 ji2 #4 sil。
在其他实施例中,该方法还可以包括:确定多个分句序列中的任一待匹配分句序列与缓存的目标分句序列匹配,从缓存中获取与目标分句序列对应的目标分句语音,将待匹配分句序列对应的语音确定为目标分句语音;确定多个分句序列中的任一待匹配分句序列与缓存的目标分句序列不匹配,对待匹配分句序列进行语音合成,生成第二分句语音。
例如,从预先缓存的多个分句序列中匹配与第一子韵律音素序列或者第二子韵律音素序列匹配的分句序列,获取预先生成并缓存的与经匹配所确定的分句序列对应的语音,得到第一子韵律音素序列或者第二子韵律音素序列对应的合成后的语音。这样,首先从缓存中匹配对应的语音而不需要实时合成,提高了语音合成的效率。
在一些实施例中,该方法还可以包括:对目标文本的韵律音素序列进行切分,生成多个候选序列;将多个候选序列中的目标候选序列与相邻候选序列进行组合,生成分句序列对应的细粒度大小以及多个分句序列。
例如,对句子“希望这首歌|能让你喜欢|为您播放|XX”的韵律音素序列“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3| neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 | wei4 #0 nin2 #1 bo1 #0 fang4 #1 | EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”进行切分,可以得到多个候选序列:“xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3”、“neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1”、“wei4 #0 nin2 #1 bo1 #0 fang4 #1”以及“EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4”。
分别将候选序列中的任一候选序列作为目标候选序列,将其与相邻的其他候选序列进行组合,从而可以得到如下多个分句序列(两个“|”之间的为一个分句序列):
“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 | neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 | wei4 #0 nin2 #1 bo1 #0 fang4 #1 | EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”
“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 | wei4 #0 nin2 #1 bo1 #0 fang4 #1 | EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”
“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 | neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1 | EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”
“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1 | EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”
“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 | neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 | wei4 #0 nin2 #1 bo1 #0 fang4 #1 EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”
“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 | neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1 EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”
“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1 EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”
基于分句序列对应的细粒度大小,对多个分句序列进行降序排序。具体地,细粒度越大,则其对应的分句序列排在越前面,例如将“xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1 EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4(希望这首歌能让你喜欢为您播放XX的X)”排在“xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1(希望这首歌能让你喜欢为您播放)”的前面。
在一些实施例中,还可以基于降序排序的次序,从前至后依次将多个分句序列与缓存中的目标分句序列进行匹配,并将匹配成功的目标分句序列的语音确定为分句序列的语音。
在该实施例中,基于所生成的降序排序的顺序,从前到后依次将分句序列与目标分句序列进行精确匹配,例如先将分句序列“xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1 EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4(希望这首歌能让你喜欢为您播放XX的X)”与目标分句进行精确匹配,在匹配成功的情况下,则将该分句序列确定为第一分句序列,并将与该第一分句序列匹配的目标分句对应的目标分句语音确定为该第一分句序列对应的语音,结束比较。
在匹配不成功的情况下,则再将分句序列“xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1(希望这首歌能让你喜欢为您播放)”与目标分句进行比较,并重复上述过程,直至确定某一分句序列与目标分句能够实现精确匹配,则结束比较。
申请人在研发过程中发现,相关技术中,在进行语音合成时,通常是直接对整段待合成文本进行语音合成。考虑到语音具有时间特性,通常系统转化的时间和输入文本的长度成正比,越长的句子合成所需的时间就越长。
对于几十到数百字级别的输入,目前最快的深度学习模型合成时间也有几秒~几十秒级别,而对于一些较长的待合成文本,在进行语音合成时则需要耗费更长的时间,这也意味着用户需等待较长的时间才能获取所合成的语音,既浪费了用户的时间,也影响了用户的使用体验。
申请人在研发过程中还发现,为解决以上问题,相关技术中还存在一种将待合成文本切分为多个子文本,并通过系统并行合成的方式对多个子文本进行语音合成,但该方法仅限于GPU上的操作,而在CPU服务器上,该方法未能提升合成性能,仍需耗费大量的时间。
而在本申请中,通过将目标文本切分为多个分句序列,优先对第一子韵律音素序列进行语音合成并优先输出经第一子韵律音素序列合成的第一语音信息,在输出第一语音信息的过程中再合成第一子韵律音素序列之后的分句序列,从而有效加快系统在接收到网络语音合成服务请求后的反馈速度,缩短用户的等待时间,有助于提高用户的使用体验。
在实际执行过程中,对多个分句序列中的第二子韵律音素序列进行语音合成,可以表现为基于每一个分句序列在目标文本中的切分顺序,依次对各分句序列进行语音合成。
例如,在将目标文本顺次切分为第一分句序列、第二分句序列和第三分句序列后,第一分句序列为第一子韵律音素序列,优先对第一分句序列进行语音合成生成第一语音信息;在输出第一语音信息的同时,再对第二分句序列进行语音合成,在生成第二分句序列对应的第二语音信息之后,再对第三分句序列进行语音合成。
对多个分句序列中的第二子韵律音素序列进行语音合成,还可以表现为同时对各分句序列进行语音合成。
例如,在将目标文本顺次切分为第一分句序列、第二分句序列和第三分句序列后,第一分句序列为第一子韵律音素序列,优先对第一分句序列进行语音合成生成第一语音信息;在 输出第一语音信息的同时,利用系统的并行合成能力,并行合成第二分句序列和第三分句序列。
根据本申请实施例提供的语音合成方法,通过将目标文本切分为多个分句序列,优先对第一个分句序列进行语音合成生成第一语音信息,在输出第一语音信息的过程中继续对后续分句序列进行语音合成,有效加快了系统在接收到网络语音合成服务请求后的反馈速度,缩短了用户的等待时间,从而有助于提高用户的使用体验。
如图2所示,根据本申请的一些实施例,在步骤110之前,该方法还可以包括:获取待合成文本;在待合成文本的大小超过目标阈值的情况下,切分待合成文本,生成目标文本,目标文本的大小不大于目标阈值。
在该实施例中,待合成文本为需要进行语音合成的原始文本。
待合成文本的文本级别可以为数十至数百级别的常规文本,也可以为数千或数万级别的超长文本。
目标阈值可以基于系统的算力和语音合成模型的能力上限中的至少一种确定,例如可以将目标阈值确定为几百字的范围。
在实际执行过程中,对于获取的待合成文本,优先判断该待合成文本的大小,并将其大小与目标阈值进行比较,在待合成文本的大小不超过目标阈值的情况下,则直接将整个待合成文本确定为目标文本。
在待合成文本的大小超过目标阈值的情况下,则基于获取的系统的算力和语音合成模型的能力信息中的至少一种,先对待合成文本进行切分,以得到多段第一文本,使得每一段第一文本的大小均不超过目标阈值,并将多段第一文本中的第一段文本确定为目标文本。
根据本申请实施例提供的语音合成方法,基于目标阈值对待合成文本进行切分以生成目标文本,能够充分考虑到服务器的实际能力,以提供在服务器的处理能力范围内的目标文本进行语音合成,从而提升语音合成的性能。
在一些实施例中,步骤110可以包括:获取目标文本的句末信息、语调短语、韵律短语、韵律词和音节;基于句末信息、语调短语、韵律短语、韵律词和音节中的至少两种标记目标文本,生成韵律音素序列。
在该实施例中,音节是语流中的语音单位,也是人们听觉上最容易分辨出来的语音单位,例如,音节可以为目标文本中的每一个汉字。
韵律词是一组在实际语流中联系密切且联在一起发音的音节。
韵律短语是介于韵律词和语调短语之间的中等节奏组块,韵律短语中可以包括多个韵律词和语气词,且组成该韵律短语的多个韵律词听起来是共用一个节奏群。
语调短语为将多个韵律短语按照一定的句调模式连接起来所组成的句子,用于表征较大的停顿。
句末信息用于表征每一个长句的结束。
例如,对于目标文本“上海市今天阴转多云东南风三到四级”,其中如“上”、“海”以及“市”等每一个汉字均为该目标文本对应的音节;“上海市”、“今天”以及“阴转多云”等单词或由单词组成的短语即为该目标文本对应的韵律短语;而由韵律短语“上海市”、“今天”以及“阴转多云”所组成的句子“上海市今天阴转多云”,则为该目标文本对应的语调短语。
在获取得到目标文本的句末信息、语调短语、韵律短语、韵律词和音节等信息后,基于其中的至少两种对目标文本进行标记,即可生成韵律音素序列。
申请人在研发过程中发现,相关技术中,往往是通过采用句子中的标点符号来表征句子的韵律,如在句子中的逗号或句号所在的位置处对句子进行切分,以得到多个分句。该方法 一方面无法满足对无标点的文本的切分,另一方面还会导致切分后的两端不均衡,切分效果不佳。
而在本申请中,采用句末信息、语调短语、韵律短语、韵律词和音节至少两项来表征句子的韵律,并以此为基准对目标文本进行切分,不会出现在一次整词中间切断的情况,使得切分后得到的分句停顿和韵律均较为自然。
在一些实施例中,基于句末信息、语调短语、韵律短语、韵律词和音节中的至少两种标记目标文本,生成韵律音素序列,包括:将目标文本转化为音素序列;基于句末信息、语调短语、韵律短语、韵律词和音节中的至少两种,生成多个韵律标识符;基于多个韵律标识符对音素序列进行标记,生成韵律音素序列。
在该实施例中,音素序列为由目标文本中的每个汉字或英文对应的发音标记,包括拼音、声调或英文注音所连接而成的序列。
例如,对于目标文本“上海市今天阴转多云东南风三到四级”,可以将其转化为音素序列:shang4 hai3 shi4 jin1 tian1 yin1 zhuan3 duo1 yun2 dong1 nan2 feng1 san1 dao4 si4 ji2。
韵律标识符为用于表征目标文本中每一个音素所对应的韵律特征的标识符,也即,韵律标识符为用于表征句末信息、语调短语、韵律短语、韵律词和音节的符号。
在实际执行过程中,可以采用特殊符号与数字组合的形式或特定字母组合来表示韵律标识符,例如分别用“#0”、“#1”、“#2”、“#3”以及“#4”来表示韵律标识符,不同的组合表征不同的细粒度级别。
如:#0代表着音节、#1代表韵律词、#2代表韵律短语、#3代表语调短语以及#4代表句末,在该实施例中,细粒度由小到大依次为:#0<#1<#2<#3<#4。
在得到目标文本对应的音素序列以及韵律标识符后,将韵律标识符插入音素序列中的相应位置,如将用于表征音节的韵律标识符#0插入至音素序列中每一个音节所对应的拼音之后,将用于表征韵律短语的韵律标识符#2插入至音素序列中每一句韵律短语之后,从而将音素序列转化为韵律音素序列。
例如,分别采用#0”、“#1”、“#2”、“#3”以及“#4”对音素序列“shang4 hai3 shi4 jin1 tian1 yin1 zhuan3 duo1 yun2 dong1 nan2 feng1 san1 dao4 si4 ji2”进行标记,从而生成韵律音素序列:sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3 dong1 #0 nan2 #0 feng1 #2 san1 #0 dao4 #1 si4 #0 ji2 #4 sil。
其中,sil表征句首和句末的静音。
根据本申请实施例提供的语音合成方法,通过将目标文本转化为音素序列,并基于句末信息、语调短语、韵律短语、韵律词和音节中的至少两种所对应的韵律标识符对音素序列进行标记以生成韵律音素序列,能够提供一种更加精细的韵律表征,从而有助于提高后续切分过程中的切分细腻度与准确性。
继续参考图2,根据本申请的一些实施例,该方法还可以包括:基于韵律音素序列,生成第三语音信息的目标文件大小;
步骤130可以包括:基于目标文件大小生成第二语音信息。
在该实施例中,第三语音信息为对由目标文本所对应的多个分句序列的中的至少两个分句序列所合成的语音信息进行合成所生成的语音信息,其中,该至少两个分句序列中的一个为第一子韵律音素序列。
目标文件大小为经预测得到的,第三语音信息的文件大小。
目标文件大小可以为文件体积信息,或者也可以为第三语音信息的语音长度信息,本申请不做限定。
在得到第三语音信息的目标文件大小后,基于目标文件大小对基于第二子韵律音素序列所生成的语音数据进行数据补齐,从而生成第二语音信息。
在一些实施例中,基于韵律音素序列,生成第三语音信息的目标文件大小,可以包括:基于韵律音素序列,生成第三语音信息的预测文件大小;基于目标残差值校正预测文件大小,生成目标文件大小。
在该实施例中,预测文件大小为基于韵律音素序列预测得到的,未经校正的经目标文本合成的语音的初始文件大小值。
目标残差值用于对预测文件大小进行校正,以提高最终所生成的目标文件大小的准确性。
目标残差值基于样本文件大小和预测的样本文本对应的样本音频文件的大小确定的,样本文件大小为样本文本对应的样本音频文件的实际大小。目标文件大小为基于韵律音素序列预测,且经校正后的经目标文本合成的语音的文件大小值。可以理解的是,目标文件大小的准确性高于预测文件大小。
目标残差值为预先确定的数值,例如目标残差值可以为最大残差值。
在该实施例中,通过对预测文件大小进行增补残差处理,以对预测文件大小进行校正,从而提高最终生成的目标文件大小的准确性。
在一些实施例中,目标残差值可以通过如下步骤确定:
获取样本文本、样本音频文件对应的样本文件大小和样本文本对应的样本音频文件,样本音频文件为对样本文本进行语音合成所生成的;
将样本文本转化为样本韵律音素序列;
基于样本韵律音素序列对样本音频文件的大小进行预测,生成样本音频文件的样本预测文件大小;
将样本文件大小和样本预测文件大小的差值的绝对值,确定为目标残差值。
在该实施例中,样本文本可以为数十至数百级别的常规文本,也可以为数千或数万级别的超长文本。
样本音频文件为对样本文本进行语音合成,所最终生成的音频文件。
样本文件大小为样本音频文件的实际大小值或实际音频时长。
例如,可以采用语音合成系统计算样本文本对应的样本音频文件的真实wav文件大小或音频时长。
样本预测文件大小为经预测得到的,未经校正的样本音频文件的大小值或音频时长。
需要说明的是,样本预测文件大小的生成方式应与预测文件大小的生成方式保持一致。
计算样本预测文件大小减去样本文件大小的差值的绝对值,作为目标残差值。
可以理解的是,在执行过程中,可以对样本韵律音素序列进行多次预测,以得到多个样本预测文件大小。分别计算每一个样本预测文件大小与样本文件大小的差值,得到多个候选差值;然后从多个候选差值中选择最小值的绝对值,确定为目标残差值,以提高目标残差值的准确度。
根据本申请实施例提供的语音合成方法,基于韵律音素序列预测由该目标文本所合成的目标音频文件的大小信息,并基于目标残差值对预测值进行校正,既能够在目标音频文件生成之前即可实现该目标文件的大小值的预测,且预测结果的准确性和精确性较高。
继续参考图2,在一些实施例中,步骤110可以包括:
基于多个韵律标识符在韵律音素序列中确定第一切分位置;
从韵律音素序列中位于第一切分位置之后的韵律标识符在韵律音素序列的位置中,确定第二切分位置;
基于第一切分位置和第二切分位置对韵律音素序列进行切分,生成第一子韵律音素序列和至少两个第二子韵律音素序列,第一子韵律音素序列为韵律音素序列中位于第一切分位置之前的韵律音素序列,至少两个第二子韵律音素序列为韵律音素序列中位于第一切分位置之后的韵律音素序列,相邻的第二子韵律音素序列基于第二切分位置确定,且第一子韵律音素序列对应的语音合成时长在目标时长内。
在该实施例中,第一切分位置为用于第一次切分的切分点。
第二切分位置为除第一次切分以外的其他所有次切分所对应的切分点的位置。
基于第一切分位置,可以将该韵律音素序列切分为前后两个子序列,且将位于第一切分位置之前的子序列确定为第一子韵律音素序列。
需要说明的是,基于第一切分位置所生成的第一子韵律音素序列,其对应的语音合成时长在目标时长内。
其中,第一子韵律音素序列对应的语音合成时长为将第一子韵律音素序列合成为语音所耗费的时间。
语音合成时长与语音合成系统的算力相关。
目标时长为一个较短的时长,目标时长的数值可以基于用户自定义,或者也可以采用系统默认值,例如可以将目标时长设置为0.2s或0.3s等。
在确定第一切分位置后,从韵律音素序列中查找第一切分位置之后的至少部分韵律标识符作为用于确定第二切分位置的候选集,并将候选集中的韵律标识符的位置确定为第二切分位置。
可以理解,在其他实施例中,在没有第二切分位置的情况下,则第二子韵律音素序列即为韵律音素序列中位于第一切分位置之后的整个韵律音素序列。例如,当第二切分位置为#3对应的位置,但是在第二子韵律音素序列中查找不到#3时,此时可以理解为不存在第二切分位置。
在该实施例中,基于韵律音素序列中的韵律标识符来确定第一切分位置,使得基于第一切分位置所得到的第一子韵律音素序列,其对应的语音合成时长能够在合理的时长范围内,从而缩短合成系统的首句响应时间,缩短延迟时间;除此之外,基于该方式所确定的第一切分位置为在停顿时长较长的位置,使得切分得到的第一子韵律音素序列的停顿和韵律更加自然,从而使得后续输出的基于第一子韵律音素序列合成的语音更加自然且流畅。
继续参考图2,根据本申请的一些实施例,在步骤130之后,该方法还可以包括:合并第一语音信息和第二语音信息,生成第三语音信息。
在该实施例中,第二语音信息为对第二子韵律音素序列进行语音合成所得到的语音信息,其中,第二子韵律音素序列可以为一个或多个分句序列,且第二子韵律音素序列均位于目标文本中第一子韵律音素序列之后。
例如,对于依次合成第二语音信息的情况,在输出第一语音信息的同时,可以对位于第一子韵律音素序列之后的与第一子韵律音素序列相邻的第二分句序列进行语音合成,以生成第二分句序列对应的第二语音信息,在输出第二语音信息的同时将第一语音信息和第二语音信息进行合并,以生成第三语音信息。
又如,对于依次合成第二语音信息的情况,在输出第一语音信息的同时,可以对位于第一子韵律音素序列之后的与第一子韵律音素序列相邻的第二子韵律音素序列进行语音合成,以生成第二语音信息,在输出第二语音信息的同时,可以对位于第二分句序列之后的与第二分句序列相邻的第三分句序列进行语音合成,以生成第三分句序列对应的第二语音信息,在输出第二语音信息的同时对后续分句序列进行语音合成,直至生成全部分句对应的第二语音 信息后,对第一语音信息和全部分句对应的第二语音信息进行合成,生成第三语音信息。
对于并行合成第二语音信息的情况,在输出第一语音信息的同时,可并行合成位于第一子韵律音素序列之后的多个分句序列,并生成各分句序列对应的第二语音信息,然后将第一语音信息和得到的多个第二语音信息进行合成,生成第三语音信息。
在一些实施例中,合并第一语音信息和第二语音信息,可以包括:基于第一语音信息对应的音素时长以及第二语音信息对应的音素时长,合并第一语音信息和第二语音信息。
在该实施例中,音素时长即该音素对应的发音时长。
例如,对于分句序列1:sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3,“shang”可以拆分为“sh”和“ang”两个音素,每个音素均对应有一个发音时长。
在拼接过程中,首先需要基于每个分句序列的首部或尾部多余的音素时长对分句序列对应的语音信息进行截除,以除去语音信息的首部或尾部多余的音素时长。
以第一语音信息为例,在第一语音信息为语音的情况下,在合成语音后,截除该语音中第一子韵律音素序列的首部或尾部多余的音素所对应的时长,生成截除后的第一语音信息。
在第一语音信息为高级声学特征的情况下,在合成第一语音信息后,截除第一语音信息对应的高级声学特征中第一子韵律音素序列的首部或尾部多余的音素所对应的时长,生成截除后的高级声学特征;然后使用声码器对截除后的高级声学特征进行语音合成,以生成截除后的第一语音信息。
第二语音信息的截除方式与第一语音信息相同,在此不作赘述。
然后基于第一语音信息对应的第一子韵律音素序列在韵律音素序列中的切分顺序,和第二语音信息对应的第二子韵律音素序列在韵律音素序列中的切分顺序,从第一个分句序列开始,依次拼接相邻的分句序列对应的截除后的语音信息,直至拼接完成全部的分句序列对应的语音信息。
根据本申请实施例提供的语音合成方法,基于音素时长拼接第一语音信息和第二语音信息,能够实现在不需要预设语音拼接单元库的基础上,即可提高相邻语音信息拼接处的自然度与流畅度。
如图3所示,该语音合成装置包括:第一处理模块310、第二处理模块320、和第三处理模块330。
第一处理模块310,用于切分目标文本的韵律音素序列,生成多个分句序列,韵律音素序列包括与目标文本对应的多个音素以及位于相邻音素之间的韵律标识符,每个分句序列包括至少一个音素;第二处理模块320,用于对多个分句序列中的第一子韵律音素序列进行语音合成,得到第一语音信息;第三处理模块330,用于输出第一语音信息且对多个分句序列中的第二子韵律音素序列进行语音合成,生成第二语音信息,第二子韵律音素序列为在韵律音素序列中位于第一子韵律音素序列之后的至少一个分句序列。
根据本申请实施例提供的语音合成装置,通过将目标文本切分为多个分句序列,优先对第一个分句序列进行语音合成生成第一语音信息,在输出第一语音信息的过程中继续对后续分句序列进行语音合成,有效加快了系统在接收到网络语音合成服务请求后的反馈速度,缩短了用户的等待时间,从而有助于提高用户的使用体验。
在一些实施例中,第一处理模块310还用于:将目标文本转化为韵律音素序列,韵律音素序列包括位于相邻音素之间的韵律标识符以及与目标文本对应的多个音素;基于多个韵律标识符中的至少部分对韵律音素序列进行切分,生成多个分句序列,每个分句序列包括至少一个音素。
在一些实施例中,该装置还可以包括:第五处理模块,用于在生成第二语音信息之后, 合并第一语音信息和第二语音信息,生成第三语音信息。
在一些实施例中,该装置还可以包括:第六处理模块,用于在将目标文本转化为韵律音素序列之后,基于韵律音素序列,生成第三语音信息的目标文件大小;
第四处理模块340,还用于基于目标文件大小生成第二语音信息。
在一些实施例中,第六处理模块,还用于:基于韵律音素序列,生成第三语音信息的预测文件大小;基于目标残差值校正预测文件大小,生成目标文件大小;目标残差值基于样本文件大小和预测的样本文本对应的样本音频文件的大小确定的,样本文件大小为样本文本对应的样本音频文件的实际大小。
在一些实施例中,第五处理模块,还用于基于第一语音信息对应的音素时长,以及第二语音信息对应的音素时长,合并第一语音信息和第二语音信息。
在一些实施例中,该装置还可以包括:第七处理模块,用于在将目标文本转化为韵律音素序列之前,获取待合成文本;在待合成文本的大小超过目标阈值的情况下,切分待合成文本,生成目标文本,目标文本的大小不超过目标阈值。
在一些实施例中,第一处理模块310,还用于:基于多个韵律标识符在韵律音素序列中确定第一切分位置;从韵律音素序列中位于第一切分位置之后的韵律标识符在韵律音素序列的位置中,确定第二切分位置;基于第一切分位置和第二切分位置对韵律音素序列进行切分,生成第一子韵律音素序列和至少两个第二子韵律音素序列,第一子韵律音素序列为韵律音素序列中位于第一切分位置之前的韵律音素序列,至少两个第二子韵律音素序列为韵律音素序列中位于第一切分位置之后的韵律音素序列,相邻的第二子韵律音素序列基于第二切分位置确定,且第一子韵律音素序列对应的语音合成时长在目标时长内。
在一些实施例中,第一处理模块310,还用于:获取目标文本的韵律词、音节、韵律短语、句末信息和语调短语;基于韵律词、音节、韵律短语、句末信息和语调短语中的至少两种对目标文本进行标记,生成韵律音素序列。
在一些实施例中,第一处理模块310,还用于:将目标文本转化为音素序列;基于韵律词、音节、韵律短语、句末信息和语调短语中的至少两种,生成多个韵律标识符;基于多个韵律标识符对音素序列进行标记,生成韵律音素序列。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行语音合成方法方法,该方法包括:切分目标文本的韵律音素序列,生成多个分句序列,韵律音素序列包括与目标文本对应的多个音素以及位于相邻音素之间的韵律标识符,每个分句序列包括至少一个音素;对多个分句序列中的第一子韵律音素序列进行语音合成,得到第一语音信息;输出第一语音信息且对多个分句序列中的第二子韵律音素序列进行语音合成,生成第二语音信息,第二子韵律音素序列为在韵律音素序列中位于第一子韵律音素序列之后的至少一个分句序列。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码 的介质。
进一步地,本申请还提供一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,计算机程序被处理器执行时,计算机能够执行上述各方法实施例所提供的语音合成方法方法。
另一方面,本申请实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的语音合成方法。
下面结合图5-图6描述本申请实施例的语音拼接方法。
如图5所示,该语音拼接方法包括:步骤510、步骤520和步骤530。
步骤510、切分目标文本的韵律音素序列,生成多个分句序列,韵律音素序列包括位于相邻音素之间的韵律标识符和与目标文本对应的多个音素,每个分句序列包括至少一个音素;
在一些实施例中,步骤510可以包括:基于多个韵律标识符中的至少部分切分韵律音素序列,生成多个分句序列。
在该实施例中,对于一整段韵律音素序列,包括有多个音素和多个韵律标识符,多个韵律标识符中包括对应不同细粒度等级的韵律标识符。
在实际执行过程中,可以基于实际情况选择合适的细粒度等级作为切分标准,并将该细粒度等级对应的韵律标识符在韵律音素序列中的位置作为切分点,对韵律音素序列进行切分,以得到多个分句序列。
需要说明的是,每个分句序列包括切分点处的韵律标识符以及至少一个音素。
可以理解的是,对于每段韵律音素序列,对应至少一个切分点,则可以得到至少两个分句序列。
例如,对于韵律音素序列“sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3 dong1 #0 nan2 #0 feng1 #2 san1 #0 dao4 #1 si4 #0 ji2 #4 sil”,基于实际需求确定在#3处进行切分,则分别在韵律音素序列中含有#3的位置进行切分,并保留韵律分割符#3至前一个拼接单元,从而可以将该韵律音素序列切分为以下多个分句序列:
分句序列1:sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3;
分句序列2:dong1 #0 nan2 #0 feng1 #2 san1 #0 dao4 #1 si4 #0 ji2 #4 sil。
在其他实施例中,也可以基于多个韵律标识符在韵律音素序列中确定第一切分位置及第二切分位置;基于第一切分位置和第二切分位置对韵律音素序列进行切分,生成第一子韵律音素序列对应的分句序列和第二子韵律音素序列对应的分句序列。
其中,第一子韵律音素序列对应的语音合成时长在目标时长内。例如,目标时长可以是基于系统的算力和语音合成模型的能力上限中的至少一种确定。例如,目标时长为一个较短的时长,目标时长的数值可以基于用户自定义,或者也可以采用系统默认值,例如可以将目标时长设置为0.2s或0.3s等。
可以继续基于韵律标识符对第二子韵律音素序列进行切分得到分句序列,例如可以是在韵律分割符#3处对第二子韵律音素序列进行切分。可以理解,当第二子韵律音素序列中不存在韵律分割符#3时,不继续对第二子韵律音素序列进行切分。
上述实施例中,基于第一切分位置所得到的第一子韵律音素序列,其对应的语音合成时长能够在合理的时长范围内,从而缩短合成系统的首句响应时间,缩短延迟时间;除此之外,基于该方式所确定的第一切分位置及第二切分位置为在停顿时长较长的位置,使得切分得到的分句序列的停顿和韵律更加自然,从而使得后续输出的基于分句序列合成的语音更加自然且流畅。
步骤520、分别对各个分句序列进行语音合成,生成多个第一分句语音信息;
在该步骤中,第一分句语音信息为基于分句序列进行语音合成所生成的语音信息,每一个分句序列对应一个第一分句语音信息。
第一分句语音信息包括每一个韵律标识符和音素对应的第一时长。
需要说明的是,第一分句语音信息可以为语音,或者也可以为高级声学特征;
其中,高级声学特征为用于表征语音声学特性且可用于重构语音的物理量,包括但不限于:线性谱、梅尔谱、梅尔倒谱,以及音色的能量集中区、共振峰频率、共振峰强度和带宽、表示语音韵律特性的时长、基频、平均语声功率等。
音素为一个或多个根据语音的自然属性划分出来的语音单位的组合,语音单位可以为一个汉字对应的拼音、声母或韵母或者一个英文单词、英文音标或英文字母。
第一时长即该韵律标识符或音素对应的发音时长。
例如,对于分句序列1:sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3,“shang4”可以作为一个音素,也可以拆分为“sh”和“ang4”两个音素,每个韵律标识符或音素均对应有一个发音时长。
在实际执行过程中,可以先获取第一分句序列中全部的韵律标识符和音素,然后再基于每个韵律标识符和音素获取该韵律标识符和音素对应的第一时长。
在一些实施例中,步骤520可以包括:将分句序列输入至目标语音合成模型,获取由目标语音合成模型输出的第一分句语音信息,其中,目标语音合成模型为,以样本韵律音素序列为样本,以与样本韵律音素序列对应的样本分句语音为样本标签,训练得到。
在该实施例中,目标语音合成模型可以为端到端语音合成模型。
分句序列为一整段韵律音素序列分割成多段得到。
该目标语音合成模型的输入值为分句序列,输出值为该分句序列对应的第一分句语音,或第一分句语音对应的高级声学特征。
其中,目标语音合成模型为,以样本分句序列为样本,以与样本分句序列对应的样本分句语音为样本标签,训练得到。
目标语音合成模型的训练过程与神经网络模型的训练方式类似,在此不做赘述。
如图6所示,在实际执行过程中,可以将每个分句序列分别转化为端到端语音合成模型可接收的韵律音素序列,并基于韵律音素序列获取该韵律音素序列中每一个音素以及每一个韵律标识符对应的第一时长。
例如,将分句序列1:sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3,转化为端到端语音合成模型可以接收的韵律音素序列1:sil sh ang4 #0 h ai3 #0 sh i4 #2 j in1 #0 t ian1 #2 y in1 #0 zh uan3 #1 d uo1 #0 y vn2 #3 sil eos。
然后对韵律音素序列1中的每一个韵律和音素进行语音合成,合成每一个韵律和音素对应的语音或高级声学特征,从而生成第一分句语音或第一分句语音对应的高级声学特征;并计算每个韵律标识符和音素对应的第一时长。
根据本申请的一些实施例,在步骤520之后,且在步骤530之前,该方法还可以包括:输出第一分句语音信息。
在该实施例中,在生成分句序列对应的第一分句语音信息之后,即可输出该第一分句语音信息。
在该实施例中,通过将目标文本切分为多个分句序列,分别对每个分句序列进行语音合成,生成各分句序列对应的第一语音信息,并优先输出目标文本中的第一个分句序列对应的第一语音信息,有效加快系统在接收到网络语音合成服务请求后的反馈速度,缩短用户的等 待时间,有助于提高用户的使用体验。
步骤530、基于第一分句语音信息对应的分句序列在韵律音素序列中的切分顺序和第一时长,对多个第一分句语音信息进行拼接,生成目标语音。
在该步骤中,目标语音为将这个目标文本进行语音合成后所得到的语音。
在拼接过程中,需要先基于每个分句序列的首部或尾部多余的第一时长对分句序列对应的分句语音信息进行截除。
在第一分句语音信息为第一分句语音的情况下,在合成第一分句语音后,截除第一分句语音中分句序列的首部或尾部多余的音素所对应时长的语音,生成截除后的第一分句语音,依次对相邻的截除后的第一分句语音进行拼接,直至拼接完成全部的截除后的第一分句语音,生成目标语音。
在第一分句语音信息为第一分句语音对应的高级声学特征的情况下,在合成第一分句语音对应的高级声学特征后,截除第一分句语音对应的高级声学特征中分句序列的首部或尾部多余的音素所对应时长的高级声学特征,生成截除后的第一分句语音对应的高级声学特征;然后使用声码器对截除后的第一分句语音对应的高级声学特征进行语音合成,以生成截除后的第一分句语音。
然后基于各分句序列在目标文本中的切分顺序,依次对相邻的截除后的第一分句语音进行拼接,直至拼接完成全部的截除后的第一分句语音,生成目标语音。
在一些实施例中,步骤530可以包括:基于多个音素中的目标音素对应的第一时长,截去第一分句语音信息中与目标音素对应的语音,生成第二分句语音信息;基于第二分句语音信息对应的分句序列在韵律音素序列中的切分顺序,拼接第二分句语音信息,生成目标语音。
在该实施例中,与目标音素对应的语音为分句序列中多余的音素,包括但不限于分句序列首部或尾部所对应的不发音的音素。
第二分句语音信息为对第一分句语音信息中多余的停顿或静音时长进行截除后所生成的语音信息。
其中,第二语音信息可以表现为语音,或者也可以表现为高级声学特征。
第二语音信息的表现形式与第一语音信息的表现形式相对应。
例如,对韵律音素序列1:sil sh ang4 #0 h ai3 #0 sh i4 #2 j in1 #0 t ian1 #2 y in1 #0 zh uan3 #1 d uo1 #0 y vn2 #3 sil eos,进行语音合成所生成的第一语音信息中,包括sil以及eos等对应时长的语音信息,这些语音信息为静音或停顿等多余的语音信息,则可以基于句末目标音素“sil”和“eos”对应的第一时长,截去第一分句语音信息句末sil以及eos对应的多余的时长,生成第二分句语音信息。
然后基于第二分句语音信息对应的分句序列在韵律音素序列中的切分顺序,从第一个分句序列开始,依次拼接相邻的分句序列对应的第二分句语音信息,直至拼接完成全部的分句序列对应的第二分句语音信息。
需要说明的是,对于不同表现形式的第二语音信息,其对应的拼接过程也有所区别,将在后续实施例中进行具体说明,在此暂不作赘述。
根据本申请实施例提供的语音拼接方法,在将目标文本切分为多个分句序列后并合成各分句序列对应的第一分句语音信息后,基于各分句序列中音素对应的时长对第一分句语音信息中多余的音素对应的语音进行截除,从而实现在不需要预设语音拼接单元库且不需要对待拼接语音单元进行平滑处理的基础上,即可提高相邻第一分句语音信息拼接处的自然度与流畅度。
下面分别从两个实现角度对步骤530的实现方式进行具体说明。
一、第一分句语音信息对应的分句序列不为目标文本中的第一个分句序列。
继续参考图2,在一些实施例中,目标音素包括句首多余音素和句末多余音素中的至少一种,基于多个音素中的目标音素对应的第一时长,截去第一分句语音信息中与目标音素对应的语音,可以包括:确定第一分句语音信息对应的分句序列不为目标文本中的第一个分句序列,分别截去第一分句语音信息中与句末多余音素对应的语音和与句首多余音素对应的语音。
继续以目标文本“上海市今天阴转多云东南风三到四级”为例,对该实施例进行说明。
将目标文本“上海市今天阴转多云东南风三到四级”转化为:
端到端语音合成模型可接收的韵律音素序列1:sil sh ang4 #0 h ai3 #0 sh i4 #2 j in1 #0 t ian1 #2 y in1 #0 zh uan3 #1 d uo1 #0 y vn2 #3 sil eos;
端到端语音合成模型可接收的韵律音素序列2:sil d ong1 #0 n an2 #0 f eng1 #2 s an1 #0 d ao4 #1 s i4 #0 j i2 #4 sil eos。
其中端到端语音合成模型可接收的韵律音素序列1为该目标文本中的第一个分句序列,端到端语音合成模型可接收的韵律音素序列2不为该目标文本中的第一个分句序列。
在将端到端语音合成模型可接收的韵律音素序列2合成为第一语音信息后,根据端到端语音合成模型可接收的韵律音素序列2中句首和句末多余音素的时长,也即基于句首“sil”的第一时长,在首部截去对应时长语音或高级声学特征,基于句末“sil”和“eos”的第一时长,在尾部截去对应时长语音或高级声学特征,即可生成第二语音信息。
二、第一分句语音信息对应的分句序列为目标文本中的第一个分句序列。
继续参考图6,在另一些实施例中,目标音素包括句首多余音素和句末多余音素中的至少一种,基于多个音素中的目标音素对应的第一时长,截去第一分句语音信息中与目标音素对应的语音,还可以包括:确定第一分句语音信息对应的分句序列为目标文本中的第一个分句序列,截去第一分句语音信息中与句末多余音素对应的语音。
继续以目标文本“上海市今天阴转多云东南风三到四级”为例,对该实施例进行说明。
将目标文本“上海市今天阴转多云东南风三到四级”转化为:
端到端语音合成模型可接收的韵律音素序列1:sil sh ang4 #0 h ai3 #0 sh i4 #2 j in1 #0 t ian1 #2 y in1 #0 zh uan3 #1 d uo1 #0 y vn2 #3 sil eos;
端到端语音合成模型可接收的韵律音素序列2:sil d ong1 #0 n an2 #0 f eng1 #2 s an1 #0 d ao4 #1 s i4 #0 j i2 #4 sil eos。
其中端到端语音合成模型可接收的韵律音素序列1为该目标文本中的第一个分句序列,端到端语音合成模型可接收的韵律音素序列2不为该目标文本中的第一个分句序列。
在将端到端语音合成模型可接收的韵律音素序列1合成为第一语音信息后,根据端到端语音合成模型可接收的韵律音素序列1中句末多余音素的时长,也即基于“sil”和“eos”的第一时长,在尾部截去对应时长语音或高级声学特征,即可生成第二语音信息。
根据本申请实施例提供的语音拼接方法,在将目标文本切分为多个分句序列后并合成各分句序列对应的第一分句语音信息后,基于各分句序列中音素对应的时长对第一分句语音信息中多余的音素对应的语音进行截除,从而实现在不需要预设语音拼接单元库且不需要对待拼接语音单元进行平滑处理的基础上,即可提高相邻第一分句语音信息拼接处的自然度与流畅度。
下面结合图7-图8描述本申请实施例的音视频文件大小的获取方法。
如图7所示,该音视频文件大小的获取方法,包括:步骤710、步骤720和步骤730。
步骤710、获取目标文本;
在该步骤中,目标文本为当前用于进行语音合成的文本。
其中,目标文本可以为数十至数百级别的常规文本,也可以为数千或数万级别的超长文本。
目标文本可以为存储于数据库中的本地文件,或者也可以为从网络下载的文件,本申请不做限定。
步骤720、对目标文本进行特征提取,生成目标韵律特征和目标音素特征;
在该步骤中,目标韵律特征用于表征目标文本的韵律特征,目标音素特征用于表征目标文本的音素特征。
其中,目标韵律特征和目标音素特征包括但不限于:音素及其对应的声调、音节、韵律词、韵律短语、语调短语、静音以及停顿等特征。
在一些实施例中,步骤720可以包括:将目标文本转化为韵律音素序列,韵律音素序列包括位于相邻音素之间的韵律标识符和与目标文本对应的多个音素;提取韵律音素序列的特征,生成目标韵律特征和音素特征。
在一些实施例中,将目标文本转化为韵律音素序列,可以包括:将目标文本转化为音素序列;获取音素序列的句末信息、语调短语、韵律短语、韵律词和音节;基于句末信息、语调短语、韵律短语、韵律词和音节中的至少两种对音素序列进行标记,生成韵律音素序列。
在得到韵律音素序列后,提取韵律音素序列中的韵律特征和音素特征,即可生成目标韵律特征和目标音素特征。
在一些实施例中,目标韵律特征和目标音素特征可以包括:韵律音素序列的长度、韵律音素序列中的中文拼音的数量、韵律音素序列中的停顿符号的数量、韵律音素序列中的英文音素的数量、韵律音素序列中的中文音素的数量、韵律音素序列中的中文声母的数量、韵律音素序列中的中文韵母的数量以及韵律音素序列中的各个类别的英文音素中的至少一种。
其中,韵律音素序列的长度可以为韵律音素序列中音素的数量。
步骤730、基于目标韵律特征和目标音素特征,获取目标音频文件的目标文件大小。
在该步骤中,目标音频文件为对整个目标文本进行语音合成所生成的音频文件。
可以理解的是,对于音频文件,目标音频文件即为该音频文件;对于视频文件,目标音频文件为该视频文件中所包括的音频文件。
目标文件大小为预测得到的,目标音频文件的文件大小。
目标文件大小可以为文件体积信息,或者也可以为第三语音信息的语音长度信息,本申请不做限定。
在一些实施例中,步骤730可以包括:基于目标韵律特征和目标音素特征,获取目标音频文件的第一预测文件大小;对目标残差值和第一预测文件大小求和,生成目标文件大小。
在该实施例中,第一预测文件大小为基于目标韵律特征和目标音素特征预测得到的,未经校正的经目标文本合成的语音的初始文件大小值。
目标残差值用于对第一预测文件大小进行校正,以提高最终所生成的目标文件大小的准确性。
目标残差值基于样本文件大小和预测的样本文本对应的样本音频文件的大小确定的,样本文件大小为样本文本对应的样本音频文件的实际大小。
目标文件大小为基于目标韵律特征和目标音素特征预测,且经校正后的经目标文本合成的语音的文件大小值。可以理解的是,目标文件大小的准确性高于第一预测文件大小。
目标残差值为预先确定的数值,例如目标残差值可以为残差值的最大绝对值。
在该实施例中,通过对第一预测文件大小进行增补残差处理,以对第一预测文件大小进 行校正,从而提高最终生成的目标文件大小的准确性。
在实际执行过程中,可以采用神经网络模型来预测第一预测文件大小。
下面以神经网络模型为文件大小预测模型为例,对该实施例中第一预测文件大小的生成方式进行说明。
在一些实施例中,步骤730可以包括:将目标韵律特征和目标音素特征输入至文件大小预测模型,获取由文件大小预测模型输出的第一预测文件大小。
在该实施例中,文件大小预测模型可以为预训练的神经网络模型。
文件大小预测模型用于基于文本的韵律特征和音素特征预测该文本所合成的语音的文件大小值。
文件大小预测模型的训练过程为:以样本韵律特征和样本音素特征为样本,以与样本韵律特征和样本音素特征对应的样本文件大小为样本标签,对该文件大小预测模型进行训练。
其中,样本韵律特征和样本音素特征为对样本文本进行韵律特征和音素特征提取所生成的,样本韵律特征和样本音素特征的提取方式与上述目标韵律特征和目标音素特征的提取方式类似,在此不作赘述。
与样本韵律特征和样本音素特征对应的样本文件大小为对样本文本进行语音合成所生成的样本音频文件的实际大小值。
在实际应用过程中,将目标韵律特征和目标音素特征输入至训练好的文件大小预测模型,即可由文件大小预测模型输出该由该目标韵律特征和目标音素特征对应的目标文本进行语音合成所生成的语音所对应的初始文件大小值,也即第一预测文件大小。
在得到第一预测文件大小后,计算第一预测文件大小和目标残差值的和,即可生成目标文件大小。
在该实施例中,通过采用预训练的模型来获取第一预测文件大小,能够提高实际应用过程中的计算效率。
除此之外,对于实际应用过程中的每一个目标文本所对应的目标韵律特征和目标音素特征均可以作为后续训练该文件大小预测模型的训练样本,随着训练样本体积的增大,该文件大小预测模型的智能程度也将不断提高,所最终预测生成的结果也将更加准确。
下面通过具体实施例,对目标残差值的确定方式进行说明。
在一些实施例中,目标残差值通过如下步骤确定:
获取样本文本、样本音频文件对应的样本文件大小和样本文本对应的样本音频文件,样本音频文件为对样本文本进行语音合成所生成的;
对样本文本进行特征提取,生成样本韵律特征和样本音素特征;
基于样本韵律特征和样本音素特征,获取样本音频文件的第二预测文件大小;
将第二预测文件大小和样本文件大小的差值的最大绝对值,确定为目标残差值。
在该实施例中,样本文本可以为数十至数百级别的常规文本,也可以为数千或数万级别的超长文本。
样本音频文件为对样本文本进行语音合成,所最终生成的音频文件。
样本文件大小为样本音频文件的实际大小值或实际音频时长。
例如,可以采用语音合成系统计算样本文本对应的样本音频文件的真实wav文件大小或音频时长。
第二预测文件大小为经预测得到的,未经校正的样本音频文件的大小值或音频时长。
需要说明的是,第二预测文件大小的生成方式应与第一预测文件大小的生成方式保持一致。
在实际执行过程中,可以对样本文本进行特征提取,生成样本韵律特征和样本音素特征,并将样本韵律特征和样本音素特征输入至文件大小预测模型,获取由文件大小预测模型输出的第二预测文件大小。
然后计算第二预测文件大小减去样本文件大小的差值的最大绝对值,作为目标残差值。
可以理解的是,在执行过程中,可以对样本韵律特征和样本音素特征进行多次预测,以得到多个第二预测文件大小。则分别计算每一个第二预测文件大小与样本文件大小的差值,得到多个候选差值;然后从多个候选差值中选择最小非正值的绝对值,确定为目标残差值,以提高目标残差值的准确度。
根据本申请实施例提供的音视频文件大小的获取方法,通过对目标文本进行韵律特征以及音素特征的提取,并基于提取得到的目标韵律特征和目标音素特征预测由该目标文本所合成的目标音频文件的大小信息,能够在目标音频文件生成之前即可实现该目标文件的大小值的预测,具有一定的及时性;且预测结果的准确性和精确性较高。
如图8所示,根据本申请的一些实施例,在步骤730之后,该方法还可以包括:基于目标韵律特征和目标音素特征对目标文本进行切分,生成多个分句序列;对分句序列进行语音合成,生成分句语音;输出分句语音和目标文件大小,并对分句语音进行拼接,生成目标音频文件。
在该实施例中,每个分句序列包括至少一个音素,其中音素可以为中文音素或英文音素。
基于目标韵律特征中的音节、韵律词、韵律短语以及语调短语中的至少一个特征对目标文本进行切分,以得到至少两个分句序列。
例如,对于目标文本“上海市今天阴转多云东南风三到四级”,可以首先将其转化为韵律音素序列:sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3 dong1 #0 nan2 #0 feng1 #2 san1 #0 dao4 #1 si4 #0 ji2 #4 sil;
然后在#3处进行切分,从而可以将该韵律音素序列切分为以下多个分句序列:
分句序列1:sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3;
分句序列2:dong1 #0 nan2 #0 feng1 #2 san1 #0 dao4 #1 si4 #0 ji2 #4 sil。
对多个分句序列中切分顺序最前的分句序列进行语音合成,生成该分句序列对应的分句语音;
输出该分句序列对应的分句语音以及目标文件大小,并合成后续分句序列。
例如,对于样本文本:详细内容麻烦在APP上搜寻下,可以转化为样本韵律音素序列:sil xiang2 #0 xi4 #1 nei4 #0 rong2 #2 ma2 #0 fan5 #2 zai4 #1 AE1 P #0 shang4 #1 sou1 #0 xun2 #0 xia4 #4 sil;
然后对样本韵律音素序列进行特征提取,所提取的样本韵律特征和样本音素特征包括但不限于:样本韵律音素序列长度;样本韵律音素序列中的中文拼音出现的个数、样本韵律音素序列中的停顿符号(#0 #1 #2 #3 sil)的个数、样本韵律音素序列中的英文音素的个数、样本韵律音素序列中的中文音素的个数、样本韵律音素序列中的中文声母的个数、样本韵律音素序列中的中文韵母的个数、样本韵律音素序列中的每种类别的英文音素(Vowels,Diphthongs,R colored vowels,Stops,Affricates,Fricatives,Nasals,Liquids,Semivowels)的个数。
在准备好训练数据后,则可以训练基于ElasticNet回归模型的wav文件大小预测模型。
将上述获取的样本韵律特征和样本音素特征输入至wav文件大小预测模型,训练过程的目标输出为样本音频文件的真实wav文件字节数。
具体地,可以使用交叉验证选取表现最好的模型参数,然后用所选取的参数训练 ElasticNet回归模型。
然后计算目标残差值,如使用样本韵律特征和样本音素特征作为模型的输入,得到第二预测文件大小。
计算第二预测文件大小减去样本文件大小的最小非正值的绝对值,作为最大残差值。
在实际应用过程中,客户端发起请求。如获取目标文本:上海市今天阴转多云东南风三到四级。
系统响应于请求,从客户端请求的目标文本中提取目标韵律特征和目标音素特征。
将提取的目标韵律特征和目标音素特征输入至如上所述的模型中,得到第一预测文件大小。
然后对第一预测文件大小增补残差,所生成的目标文件大小为第一预测文件大小和目标残差值之和。
将生成的目标文件大小作为wav文件大小预测值。
将wav文件大小预测值写入wav文件头。
然后将客户端请求的目标文本进行切分,生成多个分句序列,例如分为:
第一分句序列:上海市今天阴转多云;
第二分句序列:东南风三到四级。
合成第一分句序列“上海市今天阴转多云”的音频,生成第一分句语音,写入wav文件,返回给客户端。
然后按顺序合成第一分句序列之后的音频,并写入wav文件,直至合成完所有的请求。如合成“东南风三到四级”的音频,并写入wav文件,结束。
又如,对于文件大小表现为时长的情况,对于样本文本“可以控制”,可以转化为韵律音素序列:sil k e2 #0 y i3 #1 k ong4 #0 zh i4 #3 sil eos,并预测韵律和音素的时长(梅尔谱帧数):3 1 3 1 1 6 2 2 7 2 4 5 11 4 12,并将该音素的时长总和作为样本文件大小。
在后续模型训练过程中,可以设置模型为1层256维的嵌入层,接4层通道数为256的1维卷积神经网络,接layer norm,接dropout,接一层输出维度维1的全连接层。
然后将音素时长序列d转换到log域,其中,d’=log(d+1);
其中损失函数可以包括音素时长序列的MSE损失和平均每个音素的总时长MAE损失。
然后采用Adam优化器对模型进行迭代优化。
在计算目标残差值的过程中,可以基于以上模型得到预测的梅尔谱总帧数作为第二预测文件大小,然后进行最大残差值的计算。
在实际应用过程中,客户端发起请求。如获取目标文本:上海市今天阴转多云东南风三到四级。
系统响应于请求,从客户端请求的目标文本中提取目标韵律特征和目标音素特征。
将提取的目标韵律特征和目标音素特征输入至如上所述的模型中,得到第一预测文件大小。
然后对第一预测文件大小增补残差,所生成的目标文件大小为第一预测文件大小和目标残差值之和。
需要说明的是,在该实施例中,计算的是梅尔谱帧数,则根据梅尔谱帧移和wav文件的采样频率16000、采样位数16、声道数1将音频时长(梅尔谱总帧数)转换为wav文件大小:
其中wav文件大小=((梅尔谱帧数x梅尔谱帧移/16000)*16000*16*1/8+44)字节。
根据本申请实施例提供的音视频文件大小的获取方法,通过对目标文本进行韵律及音素特征提取,并基于提取得到的目标韵律特征和目标音素特征预测由该目标文本所合成的目标 音频文件的大小信息,能够在目标音频文件生成之前即可实现该目标文件的大小值的预测,具有一定的及时性;且预测结果的准确性和精确性较高。
下面结合图9-图10描述本申请实施例的文本转写方法。
如图9所示,该文本转写方法包括:步骤910和步骤920。
步骤910、对目标文本的韵律音素序列进行切分,生成多个分句序列;
在该步骤中,目标文本为当前用于进行语音合成的文本。
在一些实施例中,韵律标识符可以包括:用于表征音节、用于表征韵律词、用于表征韵律短语、用于表征句末信息和用于表征语调短语的标识符中的至少一种。
可以理解的是,不同的韵律标识符对应有不同的细粒度等级,其中,用于表征停顿的韵律标识符的细粒度大于用于表征语调短语的韵律的标识符的细粒度,用于表征语调短语的细粒度大于用于表征韵律短语的细粒度,用于表征韵律短语的细粒度大于用于表征韵律词的细粒度,用于表征韵律词的细粒度大于用于表征音节的细粒度。
在实际执行过程中,可以用不同的符号表示不同细粒度等级的韵律特征。
例如,对于目标文本“上海市今天阴转多云东南风三到四级”,可以将其转化为韵律音素序列:sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3 dong1 #0 nan2 #0 feng1 #2 san1 #0 dao4 #1 si4 #0 ji2 #4 sil。
可以理解的是,对于该韵律音素序列,韵律标识符可以包括:各相邻的拼音之间的#和数字;音素可以包括每一个汉字对应的拼音和声调或英文音标。
其中,sil为韵律音素序列中的代表句首和句末的静音,#0代表着音节、#1代表韵律词、#2代表韵律短语、#3代表语调短语以及#4代表句末,每个音素后面的数字代表该音素的声调,如shang4中的4代表拼音“shang”的声调为第四声。且细粒度由小到大依次为:#0<#1<#2<#3<#4。
对于每段韵律音素序列,对应至少一个切分点,则可以得到至少两个分句序列。
在一些实施例中,步骤910可以包括:将目标文本转化为韵律音素序列;基于多个韵律标识符中的至少部分切分韵律音素序列,生成多个分句序列。
在该实施例中,对于一整段韵律音素序列,包括有多个音素和多个韵律标识符,多个韵律标识符中包括对应不同细粒度等级的韵律标识符。
在实际执行过程中,可以基于实际情况选择合适的细粒度等级作为切分标准,并将该细粒度等级对应的韵律标识符在韵律音素序列中的位置作为切分点,对韵律音素序列进行切分,以得到多个分句序列。
需要说明的是,每个分句序列包括切分点处的韵律标识符以及至少一个音素。
可以理解的是,对于每段韵律音素序列,对应至少一个切分点,则可以得到至少两个分句序列。
例如,对于韵律音素序列“sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3 dong1 #0 nan2 #0 feng1 #2 san1 #0 dao4 #1 si4 #0 ji2 #4 sil”,基于实际需求确定在#3处进行切分,则分别在韵律音素序列中含有#3的位置进行切分,并保留韵律分割符#3至前一个拼接单元,从而可以将该韵律音素序列切分为以下多个分句序列:
分句序列1:sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3;
分句序列2:dong1 #0 nan2 #0 feng1 #2 san1 #0 dao4 #1 si4 #0 ji2 #4 sil。
在一些实施例中,步骤910还可以包括:
基于多个韵律标识符中的目标标识符切分韵律音素序列,生成多个候选序列;
将多个候选序列中的目标候选序列与相邻候选序列进行组合,生成分句序列对应的细粒度大小以及多个分句序列;
基于分句序列对应的细粒度大小,对多个分句序列进行降序排序。
在该实施例中,基于目标标识符所对应的位置,可以将该韵律音素序列切分为多个候选序列,其中位于第一个切分点位置之前的候选序列,其对应的语音合成时长在目标时长内。
其中,语音合成时长为将该候选序列合成为语音所耗费的时间。
目标时长为一个较短的时长,目标时长可以基于用户自定义,或者也可以采用系统默认值,例如可以将目标时长设置为0.2s或0.3s等。
例如对于韵律音素序列“sil mu4 #0 qian2 #1 xiao2 #0 jia3 #3 ke2 #0 yi3 #1 kong4 #0 zhi4 #1 re4 #0 shui3 #0 qi4 #1 kai1 #0 guan1 #3 tiao2 #0 jie2 #1 wen1 #0 du4 #3 ding4 #0 shi2 #1 kai1 #0 guan1 #3 xiang2 #0 xi4 #1 nei4 #0 rong2 #2 ma2 #0 fan5 #1 zai4 #1 jia 3 #0 ju1 #1 AE1 P #0 shang4 #1 sou1 #0 xun2 #0 xia4 #4 sil”,可以分别将“yi3”对应的韵律标识符以及“yi3”之后的所有“#3”对应的韵律标识符确定为目标标识符,生成如下切分序列:
sil mu4 #0 qian2 #1 xiao2 #0 jia3 #3 ke2 #0 yi3 #1| kong4 #0 zhi4 #1 re4 #0 shui3 #0 qi4 #1 kai1 #0 guan1 #3| tiao2 #0 jie2 #1 wen1 #0 du4 #3 |ding4 #0 shi2 #1 kai1 #0 guan1 #3 |xiang2 #0 xi4 #1 nei4 #0 rong2 #2 ma2 #0 fan5 #1 zai4 #1 jia 3 #0 ju1 #1 AE1 P #0 shang4 #1 sou1 #0 xun2 #0 xia4 #4 sil
其中,“|”为目标标识符对应的切分点。
目标候选序列可以为多个候选序列中的任一候选序列,分别将该目标候选序列与相邻的其他候选序列进行组合,从而生成多个组合后的分句序列,其中,多个分句序列中包括原始的候选序列和目标文本对应的原始的韵律音素序列。
可以理解的是,分句序列的细粒度等级大于目标候选序列的细粒度等级。
例如,句子“希望这首歌|能让你喜欢|为您播放|XX”的韵律音素序列“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3| neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 | wei4 #0 nin2 #1 bo1 #0 fang4 #1 | EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”中,“xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3”、“neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1”、“wei4 #0 nin2 #1 bo1 #0 fang4 #1”以及“EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4”均为候选序列。
分别将候选序列中的任一候选序列作为目标候选序列,将其与相邻的其他候选序列进行组合,从而可以得到如下多个分句序列(两个“|”之间的为一个分句序列):
“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 | neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 | wei4 #0 nin2 #1 bo1 #0 fang4 #1 | EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”
“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 | wei4 #0 nin2 #1 bo1 #0 fang4 #1 | EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”
“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 | neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1 | EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”
“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1 | EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”
“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 | neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 | wei4 #0 nin2 #1 bo1 #0 fang4 #1 EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”
“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 | neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1 EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”
“sil xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1 EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4 sil”
可以理解的是,每个分句序列均对应有细粒度等级,分句序列中所包括的候选序列的数量越多,则其对应的细粒度越大,例如“希望这首歌能让你喜欢”所对应的细粒度大于“希望这首歌”所对应的细粒度。
基于分句序列对应的细粒度大小,对多个分句序列进行排序,细粒度越大,则其对应的分句序列排在越前面,例如将“xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1 EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4(希望这首歌能让你喜欢为您播放XX的X)”排在“xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1(希望这首歌能让你喜欢为您播放)”的前面。
在该实施例中,基于语义及人的说话习惯预测的韵律结果对韵律音素序列进行切分,以在停顿时长较长位置分割,而非简单基于标点符号切分,有助于提高后续拼接所合成的多个分句语音所生成的目标语音的自然度。
步骤920、确定多个分句序列中的任一待匹配分句序列与缓存的目标分句序列匹配,从缓存中获取与目标分句序列对应的目标分句语音,并将该待匹配分句序列对应的语音确定为目标分句语音。
在该步骤中,目标分句序列为预先生成并存储于系统中的分句序列。
目标分句序列可以为缓存于系统中的全部的预存分句序列中的任意一个。
目标分句语音为预先对目标分句序列进行语音合成所生成的语音,该目标分句语音存储于系统中,且目标分句序列与目标分句语音之间建立有对应关系。
在实际执行过程中,可以将缓存的目标分句序列分别与多个分句序列进行精确匹配,确定目标分句序列与多个分句序列中的任一待匹配分句序列匹配,则将该待匹配分句序列确定为第一分句序列,并从缓存中获取与目标分句序列对应的目标分句语音;
在将该分句序列确定为第一分句序列后,则可以直接将与该第一分句序列相匹配的目标分句对应的目标分句语音确定为该第一分句序列对应的语音。
在一些实施例中,其中,待匹配分句序列包括多个分句序列中的任一分句序列及不同分句序列之间的组合。
如图10所示,在一些实施例中,步骤920可以包括:基于步骤910中的降序排序,从前至后依次将多个分句序列与目标分句序列进行精确匹配。
具体地,基于降序排序的次序,从前至后依次将多个分句序列与缓存中的目标分句序列进行匹配,并将匹配成功的目标分句序列的语音确定为分句序列的语音。
在该实施例中,基于步骤910中所生成的降序排序的顺序,从前到后依次将分句序列与目标分句序列进行精确匹配,例如先将分句序列“xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1 EH1 K S #10 EH1 K S #0 de5 #1 EH1 K S #4(希望这首歌能让你喜欢为您播放XX的X)”与目标分句进行精确匹配,在匹配成功的情况下,则将该分句序列确定为第一分句序列,并将与该第一分句序列匹配的目标分句对应的目标分句语音确定为该第一分句序列对应的语音,结束比较。
在匹配不成功的情况下,则再将分句序列“xi1 #0 wang4 #1 zhe4 #0 shou3 #0 ge1 #3 neng2 #0 rang4 #1 ni2 #1 xi3 #0 huan1 #1 wei4 #0 nin2 #1 bo1 #0 fang4 #1(希望这首歌能让你喜欢为您播放)”与目标分句进行比较,并重复上述过程,直至确定某一分句序列与目标分句能够实现精确匹配,则结束比较。
在一些实施例中,在所有分句序列与目标分句均不能实现精确匹配的情况下,则基于该分句序列生成语音,具体实现方式将在后续实施例中进行说明,在此暂不作赘述。
在一些实施例中,在步骤920之后,该方法还可以包括:输出目标分句语音。
在该实施例中,目标分句语音为第一分句序列对应的语音,其目标分句语音为预先生成且存储与缓存中的语音。
在实际执行过程中,在确定分句序列与目标分句序列精确匹配的情况下,则直接将与该第一分句序列相似的目标分句对应的目标分句语音确定为该第一分句序列对应的语音,并输出目标分句语音。
申请人在研发过程中发现,由于语音的时间特性,合成一段文本需要很多算力,如果语音合成请求量非常大,且基本上相同的文本,服务器将浪费大量算力重复相同的工作。一种简单方法是把待合成的文本作为key,把对应的已合成音频地址作为value,将这一组key和value存放在缓存中。当有重复的文本合成需求,则直接从缓存中查找到对应的音频,而避免重复使用算力合成相同的文本。
但该方法要求整个句子完全匹配,考虑到实际使用过程中,请求的文本相互之间很少存在完全相同的情况(如仅仅是标点符号不同,或者一句话中仅仅是某部分有所变化),从而导致命中率较低,进而影响缓存效率。
而在本申请中,通过将目标文本转化为韵律音素序列,基于韵律特征确定目标文本的停顿位置和停顿时长级别,并基于韵律特征将韵律音素序列切分为多个分句序列,分别将分句序列与缓存的目标分句序列进行比较,由于作为查找关键词的序列更短,在缓存查找中更容易命中,从而可以有效提高命中效率;在分句序列与目标序列相同的情况下,则直接将目标分句序列对应的目标分句语音确定为该分句序列的语音,而无需重新进行语音合成,从而有效降低服务器的算力开支。
如图10所示,在实际执行过程中,可以分别采用韵律预测模块和切分模块来执行上述步骤。
根据本申请实施例提供的文本转写方法,基于韵律特征将韵律音素序列切分为多个分句序列,分别将分句序列与缓存的目标分句序列进行比较,可以有效提高命中效率;在分句序列与目标序列相同的情况下,则直接将目标分句序列对应的目标分句语音确定为该分句序列的语音,而无需重新进行语音合成,从而提高语音合成的效率。
继续参考图10,根据本申请的一些实施例,该方法还可以包括:确定多个分句序列中的任一待匹配分句序列与目标分句序列不匹配,对待匹配分句序列进行语音合成,生成第二分句语音。
在该实施例中,目标分句序列为预先生成并存储于系统中的分句序列。
目标分句序列可以为缓存于系统中的全部的预存分句序列中的任意一个。
确定多个分句序列中的任一待匹配分句序列与目标分句序列不匹配,则将该待匹配分句序列确定为第二分句序列。
在实际执行过程中,将目标分句序列与多个分句序列中的任意待匹配分句序列进行精确匹配,在均不匹配的情况下,则将该待匹配分句序列确定为第二分句序列,并对第二分句序列进行语音合成,生成第二分句语音。
第二分句语音为缓存中不存在的语音。
在实际执行过程中,可以基于步骤910中所生成的降序排序的顺序,从前到后依次将分句序列与目标分句序列进行精确匹配,在所有分句序列与目标分句均不匹配的情况下,则对未查找到相似序列的分句序列进行语音合成,生成第二分句语音。
在一些实施例中,对第二分句序列进行语音合成,生成第二分句语音,可以包括:将第二分句序列转换为端到端语音合成模型可接收的韵律音素序列,对该韵律音素序列进行语音合成,生成第二分句语音。
在该实施例中,韵律音素序列用于表征第二分句序列的韵律信息和音素信息。
其中,音素为根据语音的自然属性划分出来的最小语音单位,依据音节里的发音动作来分析,一个动作即构成一个音素,音素可以为汉语音素,也可以为英语音素。
例如,第二分句序列可以表现为sil shang4 #0 hai3 #0 shi4 #2 jin1 #0 tian1 #2 yin1 #0 zhuan3 #1 duo1 #0 yun2 #3,或者表现为:sil sh ang4 #0 h ai3 #0 sh i4 #2 j in1 #0 t ian1 #2 y in1 #0 zh uan3 #1 d uo1 #0 y vn2 #3 sil eos等不同格式的音素序列。
将第二分句序列输入至语音合成系统(如端到端语音合成模型),由语音合成系统合成第二分句语音。
在实际执行过程中,可以采用文字转音素模块来执行以上操作。
在该实施例中,将音素作为关键字进行缓存,克服了文本中标点的变化,或在数字写法变化而读音完全相同时被当成不同句子进行缓存的缺点,能够实现目标文本的标准化缓存,提高缓存效率。
继续参考图10根据本申请的一些实施例,在生成第二分句语音之后,该方法还可以包括:基于韵律标识符对第二分句语音进行切分,生成多个子第二分句语音;缓存子第二分句语音对应的子分句序列和多个子第二分句语音。
在该实施例中,可以基于第二分句语音所对应的第二分句序列中的韵律标识符,对第二分句语音进行切分,生成多个子第二分句语音。
其中,每个子第二分句语音对应的分句序列即为子分句序列。
在得到子第二分句语音以及其对应的子分句序列后,可以将子分句序列和子第二分句语音缓存至系统,作为后续查询过程中的目标分句序列及其对应的目标分句语音。
根据本申请的一些实施例,在生成第二分句语音之后,该方法还可以包括:拼接第二分句语音和目标分句语音,生成目标文本对应的目标语音。
在该实施例中,目标语音为将这个目标文本进行语音合成后所得到的语音。
目标分句语音为缓存中存在的语音;
第二分句语音为缓存中不存在的语音。
可以理解的是,该目标语音为基于缓存中的目标分句语音以及新生成的第二分句语音中的至少一种所生成。
在一些实施例中,拼接第二分句语音和目标分句语音,还可以包括:基于第二分句语音对应的分句序列在韵律音素序列中的切分顺序,以及目标分句语音对应的分句序列在韵律音素序列中的切分顺序,拼接第二分句语音和目标分句语音。
在该实施例中,基于第二分句语音对应的第二分句序列在韵律音素序列中的切分顺序,以及目标分句语音对应的第一分句序列在韵律音素序列中的切分顺序,从第一个分句序列开始,依次拼接相邻的分句序列对应的语音,直至拼接完成全部的分句序列对应语音,生成目标语音。
在生成目标语音后,还可以输出目标语音。
根据本申请实施例提供的文本转写方法,基于韵律特征将韵律音素序列切分为多个分句序列,分别将分句序列与缓存的目标分句序列进行比较,可以有效提高命中效率;只有在分句序列与目标序列不同的情况下,才进行语音合成,有效减轻服务器的算力压力,提高语音合成的效率。
下面结合图11-图13描述本申请实施例的文本的切分方法。
如图11所示,该文本的切分方法包括:步骤1110、步骤1120和步骤1130。
步骤1110、将目标文本转化为韵律音素序列。
在一些实施例中,该目标文本的大小超过目标阈值,对超过目标阈值的目标文本进行切分。可以理解,超过目标阈值的目标文本是语音合成时间超过预设范围的文本,故而可以通过对较长的文本进行切分,然后对切分后文本进行语音合成,可以提高语音合成的效率。
步骤1120、基于多个韵律标识符在韵律音素序列中确定第一切分位置;
在该步骤中,第一切分位置为用于第一次切分的切分点的位置。基于第一切分位置,可以将该韵律音素序列切分为前后两个子序列,且将位于第一切分位置之前的子序列确定为第一子韵律音素序列。
需要说明的是,基于第一切分位置所生成的第一子韵律音素序列,其对应的语音合成时长在目标时长内。
语音合成时长与语音合成系统的算力相关。
其中,第一子韵律音素序列对应的语音合成时长为将第一子韵律音素序列合成为语音所耗费的时间。
目标时长为一个较短的时长,目标时长的数值可以基于用户自定义,或者也可以采用系统默认值,例如可以将目标时长设置为0.2s或0.3s等。
在一些实施例中,多个韵律标识符可以包括:用于表征音节、用于表征韵律词、用于表征韵律短语、用于表征语调短语和用于表征句末信息的标识符中的至少一种;其中,用于表征句末信息的标识符的细粒度大于用于语调短语的标识符的细粒度,用于表征语调短语的标识符的细粒度大于用于表征韵律短语的标识符的细粒度,用于表征韵律短语的标识符的细粒度大于用于表征韵律词的标识符的细粒度,用于表征韵律词的标识符的细粒度大于用于表征音节的标识符的细粒度。
在该实施例中,韵律标识符为用于表征句末信息、语调短语、韵律短语、韵律词和音节中的至少一种的符号。
在实际执行过程中,可以采用特殊符号与数字组合的形式或特定字母组合来表示韵律标识符,例如分别用“#0”、“#1”、“#2”、“#3”以及“#4”来表示韵律标识符,不同的组合表征不同的细粒度级别。
如:#0代表着音节、#1代表韵律词、#2代表韵律短语、#3代表语调短语以及#4代表句末。
例如,对于目标文本“目前小甲可以控制热水器开关,调节温度,定时开关,详细内容麻烦在甲居app上搜寻下”,可以将其转化为韵律音素序列:sil mu4 #0 qian2 #1 xiao2 #0 jia3 #3 ke2 #0 yi3 #1 kong4 #0 zhi4 #1 re4 #0 shui3 #0 qi4 #1 kai1 #0 guan1 #3 tiao2 #0 jie2 #1 wen1 #0 du4 #3 ding4 #0 shi2 #1 kai1 #0 guan1 #3 xiang2 #0 xi4 #1 nei4 #0 rong2 #2 ma2 #0 fan5 #1 zai4 #1 jia 3 #0 ju1 #1 AE1 P #0 shang4 #1 sou1 #0 xun2 #0 xia4 #4 si。
该韵律音素序列中包括#0、#1、#3以及#4等多个韵律标识符;其中,韵律标识符的细粒度由小到大依次为:#0<#1<#2<#3<#4。
获取每个韵律标识符在该韵律音素序列中的位置,根据韵律音素序列中在各位置之前的子韵律音素序列所对应的语音合成时长与目标时长之间的大小关系,从这多个位置中确定第一目标标识符所在的位置作为第一切分位置,从而确保基于该第一切分位置所生成的第一子韵律音素序列对应的语音合成时长在目标时长之内。
下面结合图12-图13,对该步骤的实现方式进行具体说明。
在一些实施例中,步骤1120可以包括:基于目标阈值范围,从多个韵律标识符中确定细粒度最大的韵律标识符;将细粒度最大的韵律标识符在目标阈值范围内韵律音素序列中的位置确定为第一切分位置。
在该实施例中,目标阈值范围为元素发音长度的最大值和最小值。
其中,元素发音长度为韵律音素序列中在目标位置之前的全部音素的发音长度之和。
目标位置可以为韵律音素序列中的任一韵律标识符所在的位置。
目标阈值范围可以用(n,n+m)表示,其中,n和m的取值可以基于用户自定义或者基于算法确定;其中,n和m均为正整数,且n和m的和不超过韵律音素序列中全部音素的发音长度之和。
例如可以将n设置为5,将m设置为5,也即将目标阈值范围确定为5-10个单位发音长度。
其中,一个汉字为一个单位发音长度,一个成词的英文单词是2个单位发音长度,一串不成词的英文音素是4个单位发音长度。
需要说明的是,在一些实施例中,如果有多个细粒度最大韵律标识符,则取位置号最小的那个,也就是取第一个所在韵律音素序列中的位置确定为第一切分位置。
继续以“目前小甲可以控制热水器开关,调节温度,定时开关,详细内容麻烦在甲居app上搜寻下”这一目标文本为例,进行说明。
在将该目标文本转化为韵律音素序列“sil mu4 #0 qian2 #1 xiao2 #0 jia3 #3 ke2 #0 yi3 #1 kong4 #0 zhi4 #1 re4 #0 shui3 #0 qi4 #1 kai1 #0 guan1 #3 tiao2 #0 jie2 #1 wen1 #0 du4 #3 ding4 #0 shi2 #1 kai1 #0 guan1 #3 xiang2 #0 xi4 #1 nei4 #0 rong2 #2 ma2 #0 fan5 #1 zai4 #1 jia 3 #0 ju1 #1 AE1 P #0 shang4 #1 sou1 #0 xun2 #0 xia4 #4 sil”之后,从该韵律音素序列的首字符开始,选择第5至第10个单位发音长度之间的音节所组成的序列:“ke2 #0 yi3 #1 kong4 #0 zhi4 #1 re4 #0 shui3 #0”,将其确定为目标阈值范围内的待选韵律音素序列。
顺次比较该待选韵律音素序列“ke2 #0 yi3 #1 kong4 #0 zhi4 #1 re4 #0 shui3 #0”中各个韵律标识符所对应的细粒度的大小,选择细粒度最大的韵律标识符所在的位置,确定为第一切分位置。对于上述待选韵律音素序列,#1为细粒度最大的韵律标识符,由于有多个#1,取第一个#1所在的位置确定为第一切分位置,也即,将音节“yi”之后的位置确定为第一切分位置,如下所示:
sil mu4 #0 qian2 #1 xiao2 #0 jia3 #3 ke2 #0 yi3 #1| kong4 #0 zhi4 #1 re4 #0 shui3 #0 qi4 #1 kai1 #0 guan1 #3 tiao2 #0 jie2 #1 wen1 #0 du4 #3 ding4 #0 shi2 #1 kai1 #0 guan1 #3 xiang2 #0 xi4 #1 nei4 #0 rong2 #2 ma2 #0 fan5 #1 zai4 #1 jia 3 #0 ju1 #1 AE1 P #0 shang4 #1 sou1 #0 xun2 #0 xia4 #4 sil。
其中,“|”表征第一切分位置。
在一些实施例中,基于目标阈值范围,从多个韵律标识符中确定细粒度最大的韵律标识符,可以包括:
获取韵律音素序列中目标子韵律音素序列全部音素的第一发音长度;
在第一发音长度在目标阈值范围内的情况下,将第一发音长度对应的目标位置确定为候选切分点位置,生成多个候选切分点位置;
从多个候选切分点位置所对应的韵律标识符中确定细粒度最大的韵律标识符。
在该实施例中,目标子韵律音素序列目标子韵律音素序列为韵律音素序列中在目标位置之前的全部韵律音素序列,其中,目标位置为韵律音素序列中的任一韵律标识符所在的位置。
第一发音长度为该目标子韵律音素序列中各音素对应的发音长度之和。
如图13所示,在实际执行过程中,可以通过第一切分位置查找模块来获取第一发音长度。
例如,将韵律音素序列转换为带韵律的音素列表,并将该带韵律的音素列表输入至第一切分位置查找模块。
第一切分位置查找模块将当前发音长度的初始值和列表索引的初始值均设置为0,初始化空的韵律位置字典dict,并基于如下公式开始循环:
元素发音长度=get_voice_length(列表索引);
列表索引=列表索引+1;
第一发音长度=第一发音长度+元素发音长度;
其中,元素发音长度为当前目标位置处的音节所对应的发音长度,列表索引用于表征目标位置。
函数get_voice_length(列表索引)计算索引所指定的元素的发音长度,计算方法为:1个汉字为一个单位发音长度,1个成词的英文单词(在词典中的英文字符串)为2个单位发音长度,1个不成词(不在词典中)的英文字符串为4个单位发音长度。
通过以上方式,可以分别获取列表索引值在(1,N)范围内的N个第一发音长度,其中,N为列表中的音节的个数。
对于每一次生成的第一发音长度,均与目标阈值进行比较。
在第一发音长度大于目标阈值范围中的阈值下限且小于目标阈值范围中的阈值上限的情况下,将当前韵律标识符和位置索引记录至字典dict中。
在一些实施例中,在第一发音长度在目标阈值范围内的情况下,将第一发音长度对应的目标位置确定为候选切分点位置,包括:
在第一发音长度在目标阈值范围内的情况下,确定第一发音长度对应的目标位置处的韵律标识符为第一次出现,将第一发音长度对应的目标位置确定为候选切分点位置。
继续以上述例子进行说明,在第一发音长度大于目标阈值范围中的阈值下限且小于目标阈值范围中的阈值上限的情况下,判断当前列表索引处对应的韵律标识符是否为第一次出现的标识符,在确认当前列表索引处对应的韵律标识符为第一次出现的标识符的情况下,则将当前韵律和列表索引作为键值对,记录至字典dict中。
在另一些实施例中,在确认当前列表索引处对应的韵律标识符为之前已经出现过的标识符的情况下,则跳过当前列表索引,进入下一轮循环。
例如,对于韵律音素序列“sil mu4 #0 qian2 #1 xiao2 #0 jia3 #3 ke2 #0 yi3 #1 kong4 #0 zhi4 #1 re4 #0 shui3 #0 qi4 #1 kai1 #0 guan1 #3 tiao2 #0 jie2 #1 wen1 #0 du4 #3 ding4 #0 shi2 #1 kai1 #0 guan1 #3 xiang2 #0 xi4 #1 nei4 #0 rong2 #2 ma2 #0 fan5 #1 zai4 #1 jia 3 #0 ju1 #1 AE1 P #0 shang4 #1 sou1 #0 xun2 #0 xia4 #4 sil”,从列表索引数值为1起,依次计算每一个列表索引数值所对应的第一发音长度;
在计算到“ke2 #0”位置所对应的第一发音长度进入目标阈值范围后,记录该位置处的列表索引数值以及该位置处的韵律标识符“#0”;
然后将列表索引进行加一,计算“yi3 #1”位置所对应的第一发音长度,在确定“yi3 #1”位置所对应的第一发音长度在目标阈值范围内时,则记录该位置处的列表索引数值以及该位置处的韵律标识符“#1”;
然后将列表索引进行加一处理,计算“kong4 #0”位置所对应的第一发音长度,在确定“kong4 #0”位置所对应的第一发音长度在目标阈值范围内时,判断该位置处的韵律标识符“#1”并非为第一次出现,则跳过该列表索引,对列表索引进行加一处理,重复上述过程,直至当前列表索引所对应的第一发音长度超过目标阈值范围的阈值上限,则结束循环。
所记录的全部韵律标识符所对应的列表索引即可作为用于确定第一切分位置的候选切分点位置。
然后从记录的全部韵律标识符中筛选出细粒度最大的韵律标识符,如从以上所记录的“#0”和“#1”中确定细粒度最大的韵律标识符“#1”,并将该韵律标识符“#1”对应的目标位置(即位置索引)确定为第一切分位置。
在另一些实施例中,在第一发音长度小于目标阈值范围中的阈值下限的情况下,则对当前列表索引进行加一处理,进入下一个循环。
在又一些实施例中,在列表索引数值超过列表元素个数的情况下,则结束循环。
在确定第一切分位置后,从该第一切分位置处切分韵律音素序列,即可生成第一子韵律音素序列。
申请人在研发过程中发现,由于语音的时间特性,通常系统转化的时间和输入文本的长度成正比,越长的句子合成所需的时间就越长,尤其对于一些超长的文本输入,还可能会造成系统容量超出限制。为解决以上问题,一种简单直接的想法是利用计算机系统的能力并行合成,而在切分过程中所面临的第一个问题就是需要如何切分并行任务。相关技术中主要是基于标点符号来对文本进行切分,但该切分方法既无法解决无标点符号的文本的切分,也无法解决切分后两端不均衡的问题。
而在本申请中,通过将目标文本转化为韵律音素序列,并基于韵律音素序列中的韵律特性来确定第一切分位置,使得基于第一切分位置所得到的第一子韵律音素序列,其对应的语音合成时长能够在合理的时长范围内,从而缩短合成系统的首句响应时间,缩短延迟时间;除此之外,基于该方式所确定的第一切分位置为在停顿时长较长的位置,使得切分得到的第一子韵律音素序列的停顿和韵律更加自然,从而使得后续输出的基于第一子韵律音素序列合成的语音更加自然且流畅。
步骤1130、基于第二切分位置和第一切分位置切分韵律音素序列,生成至少第二子韵律音素序列以及第一子韵律音素序列;其中,第二子韵律音素序列为韵律音素序列中位于第一切分位置之后的韵律音素序列。
在该步骤中,第一子韵律音素序列为基于第一切分位置所切分生成的,第一子韵律音素序列为韵律音素序列中位于第一切分位置之前的韵律音素序列;
第二子韵律音素序列为位于第一切分位置之后的韵律音素序列。
在一些实施例中,在步骤1120之后,且在步骤1130之前,该方法还可以包括:从韵律音素序列中位于第一切分位置之后的韵律标识符在韵律音素序列的位置中,确定第二切分位置;
步骤1130可以包括:基于第一切分位置和第二切分位置对韵律音素序列进行切分,生成第一子韵律音素序列和至少两个第二子韵律音素序列,至少两个第二子韵律音素序列为韵律音素序列中位于第一切分位置之后的韵律音素序列,相邻的第二子韵律音素序列基于第二切分位置确定。
在该实施例中,第二切分位置为除第一次切分以外的其他所有次切分所对应的切分点的位置。
在确定第一切分位置后,从韵律音素序列中查找第一切分位置之后的至少部分韵律标识符作为用于确定第二切分位置的候选集,并将候选集中的韵律标识符的位置确定为第二切分位置。
如图12所示,在实际执行过程中,可以采用第二切分位置查找模块来查找第二切分位置。
例如,将第一切分位置和韵律音素序列输入至第二切分位置查找模块,获取由第二切分 位置查找模块输出的切分点列表,该切分点列表中包括:第一切分位置和第二切分位置。
在一些实施例中,从韵律音素序列中位于第一切分位置之后的韵律标识符在韵律音素序列的位置中,确定第二切分位置可以包括:将韵律音素序列中位于第一切分位置之后的,用于表征语调短语的标识符所对应的位置确定为第二切分位置。
在该实施例中,继续以韵律音素序列“sil mu4 #0 qian2 #1 xiao2 #0 jia3 #3 ke2 #0 yi3 #1 kong4 #0 zhi4 #1 re4 #0 shui3 #0 qi4 #1 kai1 #0 guan1 #3 tiao2 #0 jie2 #1 wen1 #0 du4 #3 ding4 #0 shi2 #1 kai1 #0 guan1 #3 xiang2 #0 xi4 #1 nei4 #0 rong2 #2 ma2 #0 fan5 #1 zai4 #1 jia 3 #0 ju1 #1 AE1 P #0 shang4 #1 sou1 #0 xun2 #0 xia4 #4 sil”为例,进行说明。
在确定第一切分位置后,从第一切分位置所在的位置开始,也即从“yi3 #1”之后开始,依次查找后续位置处,韵律标识符为“#3”的韵律标识符所在的位置,并依次将这些位置确定为第二切分位置,从而得到如下切分序列:
sil mu4 #0 qian2 #1 xiao2 #0 jia3 #3 ke2 #0 yi3 #1| kong4 #0 zhi4 #1 re4 #0 shui3 #0 qi4 #1 kai1 #0 guan1 #3| tiao2 #0 jie2 #1 wen1 #0 du4 #3 |ding4 #0 shi2 #1 kai1 #0 guan1 #3 |xiang2 #0 xi4 #1 nei4 #0 rong2 #2 ma2 #0 fan5 #1 zai4 #1 jia 3 #0 ju1 #1 AE1 P #0 shang4 #1 sou1 #0 xun2 #0 xia4 #4 sil;
其中,第一个“|”为第一切分位置,后续“|”均为第二切分位置。
当然,在其他实施例中,还可以将其他细粒度等级的标识符所在的位置确定为第二切分位置,本申请不做限定。
第二子韵律音素序列为位于第一切分位置之后的整个韵律音素序列进行切分,所生成的韵律音素序列。
在第二切分位置为至少一个的情况下,第二子韵律音素序列为至少两个。
在该实施例中,基于第一切分位置以及韵律特征确定第二切分位置,以提高后续切分生成的第二子韵律音素序列的韵律自然的程度以及切分后两端的均衡性,避免在一个整词中间切断的情况,有助于提高后续语音合成的效率及质量。
当然,在一些实施例中,在没有第二切分位置的情况下,则第二子韵律音素序列即为韵律音素序列中位于第一切分位置之后的整个韵律音素序列。例如,当第二切分位置为#3对应的位置,但是在第二子韵律音素序列中查找不到#3时,此时可以理解为不存在第二切分位置。
例如,经步骤1120确定的第一切分位置和第二切分位置如下:
sil mu4 #0 qian2 #1 xiao2 #0 jia3 #3 ke2 #0 yi3 #1| kong4 #0 zhi4 #1 re4 #0 shui3 #0 qi4 #1 kai1 #0 guan1 #3| tiao2 #0 jie2 #1 wen1 #0 du4 #3 |ding4 #0 shi2 #1 kai1 #0 guan1 #3 |xiang2 #0 xi4 #1 nei4 #0 rong2 #2 ma2 #0 fan5 #1 zai4 #1 jia 3 #0 ju1 #1 AE1 P #0 shang4 #1 sou1 #0 xun2 #0 xia4 #4 sil;
则在该步骤中,从第一个“|”所在的位置开始,依次对该韵律音素序列进行切分,从而生成第一子韵律音素序列“sil mu4 #0 qian2 #1 xiao2 #0 jia3 #3 ke2 #0 yi3 #1”,以及第二子韵律音素序列:“kong4 #0 zhi4 #1 re4 #0 shui3 #0 qi4 #1 kai1 #0 guan1 #3”、“tiao2 #0 jie2 #1 wen1 #0 du4 #3”以及“ding4 #0 shi2 #1 kai1 #0 guan1 #3”等。
其中,该第一子韵律音素序列“sil mu4 #0 qian2 #1 xiao2 #0 jia3 #3 ke2 #0 yi3 #1”的语音合成时长在0.2s左右。
根据本申请实施例提供的文本的切分方法,通过第一子韵律音素序列所对应的语音合成时长来确定用于切分得到第一子韵律音素序列的第一切分位置,以使第一子韵律音素序列对应的语音合成时长能够在合理的时长范围内,从而缩短合成系统的首句响应时间。
在一些实施例中,步骤1110可以包括:获取目标文本的句末信息、语调短语、韵律短语、 韵律词和音节;将目标文本转化为音素序列;基于句末信息、语调短语、韵律短语、韵律词和音节的至少两种,生成多个韵律标识符;基于多个韵律标识符对音素序列进行标记,生成韵律音素序列。
根据本申请的一些实施例,在步骤1130之后,该方法还可以包括:对第一子韵律音素序列进行语音合成,生成第一语音;输出第一语音,并对第二子韵律音素序列进行语音合成,生成第二语音。
在该实施例中,第一子韵律音素序列为目标文本中的第一个切分点之前的序列,也即目标文本所合成的语音中的首句话所对应的序列。
在生成第一子韵律音素序列后,即可对第一子韵律音素序列进行语音合成,生成第一语音。
然后输出该第一语音以供客户端进行播放,在客户端播放该第一语音的同时,系统可以合成后续第二子韵律音素序列,以生成第二语音。
例如,在得到第一子韵律音素序列“sil mu4 #0 qian2 #1 xiao2 #0 jia3 #3 ke2 #0 yi3 #1”后,即可基于该第一子韵律音素序列合成第一语音“目前小甲可以”,并输出该第一语音;在客户端播放该第一语音的同时,系统对第二子韵律音素序列:“kong4 #0 zhi4 #1 re4 #0 shui3 #0 qi4 #1 kai1 #0 guan1 #3”进行合成。
根据本申请实施例提供的文本的切分方法,通过优先合成第一子韵律音素序列对应的第一语音,在输出第一语音的同时对后续第二子韵律音素序列进行语音合成,可以加快系统在接收到网络语音合成服务请求后的反馈速度,缩短用户的等待时间。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
以上实施方式仅用于说明本申请,而非对本申请的限制。尽管参照实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,对本申请的技术方案进行各种组合、修改或者等同替换,都不脱离本申请技术方案的精神和范围,均应涵盖在本申请的权利要求范围中。
Claims (35)
- 一种语音合成方法,包括:对目标文本的韵律音素序列进行切分,生成多个分句序列,所述韵律音素序列包括与所述目标文本对应的多个音素以及位于相邻所述音素之间的韵律标识符,每个所述分句序列包括至少一个所述音素;对所述多个分句序列中的第一子韵律音素序列进行语音合成,得到第一语音信息;以及输出所述第一语音信息且对所述多个分句序列中的第二子韵律音素序列进行语音合成,生成第二语音信息,所述第二子韵律音素序列为在所述韵律音素序列中位于所述第一子韵律音素序列之后的至少一个分句序列。
- 根据权利要求1所述的语音合成方法,其中,在所述生成第二语音信息之后,所述方法还包括:合并所述第二语音信息和所述第一语音信息,生成第三语音信息。
- 根据权利要求2所述的语音合成方法,其中,在所述对目标文本的韵律音素序列进行切分之前,所述方法还包括:基于所述韵律音素序列,生成所述第三语音信息的目标文件大小;以及所述生成第二语音信息,包括:基于所述目标文件大小生成所述第二语音信息。
- 根据权利要求3所述的语音合成方法,其中,所述基于所述韵律音素序列,生成所述第三语音信息的目标文件大小,包括:基于所述韵律音素序列,生成所述第三语音信息的预测文件大小;以及基于目标残差值对所述预测文件大小进行校正,生成所述目标文件大小,所述目标残差值基于样本文件大小和预测的样本文本对应的样本音频文件的大小确定的,所述样本文件大小为所述样本文本对应的样本音频文件的实际大小。
- 根据权利要求4所述的语音合成方法,进一步包括获取所述样本音频文件的大小,其中,获取所述样本音频文件的大小,包括:对目标文本进行特征提取,生成目标韵律特征和目标音素特征;基于目标文本的所述目标韵律特征和所述目标音素特征,获取目标音频文件的目标文件大小,所述目标音频文件为对所述目标文本进行语音合成所生成的。
- 根据权利要求5所述的语音合成方法,其中,所述基于所述目标韵律特征和所述目标音素特征,获取目标音频文件的目标文件大小,包括:基于所述目标韵律特征和所述目标音素特征,获取所述目标音频文件的第一预测文件大小;对所述第一预测文件大小和目标残差值求和,生成所述目标文件大小,所述目标残差值基于样本文件大小和预测的样本文本对应的样本音频文件的大小确定的,所述样本文件大小为所述样本文本对应的样本音频文件的实际大小。
- 根据权利要求6所述的语音合成方法,其中,所述目标残差值通过如下步骤确定:获取样本文本、所述样本文本对应的样本音频文件和所述样本音频文件对应的样本文件大小,所述样本音频文件为对所述样本文本进行语音合成所生成的;对所述样本文本进行特征提取,生成样本韵律特征和样本音素特征;基于所述样本韵律特征和所述样本音素特征,获取所述样本音频文件的第二预测文件大小;将所述第二预测文件大小和所述样本文件大小的差值的绝对值,确定为所述目标残差值。
- 根据权利要求6所述的语音合成方法,其中,所述基于所述目标韵律特征和所述目标音素特征,获取所述目标音频文件的第一预测文件大小,包括:将所述目标韵律特征和所述目标音素特征输入至文件大小预测模型,获取由所述文件大小预测模型输出的所述第一预测文件大小;其中,所述文件大小预测模型为,以样本韵律特征和样本音素特征为样本,以与所述样本韵律特征和所述样本音素特征对应的样本文件大小为样本标签,训练得到。
- 根据权利要求5所述的语音合成方法,其中,在所述获取目标音频文件的目标文件大小之后,所述方法还包括:基于所述目标韵律特征和所述目标音素特征对所述目标文本进行切分,生成多个分句序列;对所述分句序列进行语音合成,生成分句语音;输出所述分句语音和所述目标文件大小,并对所述分句语音进行拼接,生成所述目标音频文件。
- 根据权利要求5-9任一项所述的语音合成方法,其中,所述对所述目标文本进行特征提取,生成目标韵律特征和目标音素特征,包括:将所述目标文本转化为韵律音素序列,所述韵律音素序列包括与所述目标文本对应的多个音素以及位于相邻所述音素之间的韵律标识符;对所述韵律音素序列进行特征提取,生成所述目标韵律特征和所述目标音素特征。
- 根据权利要求2所述的语音合成方法,其中,所述合并所述第二语音信息和所述第一语音信息,包括:基于所述第二语音信息对应的音素时长,以及所述第一语音信息对应的音素时长,合并所述第二语音信息和所述第一语音信息。
- 根据权利要求11所述的语音合成方法,其中,所述方法还包括:分别对所述分句序列进行语音合成,生成多个第一分句语音信息,所述第一分句语音信息包括每一个所述音素和所述韵律标识符对应的第一时长;基于所述第一时长和所述第一分句语音信息对应的分句序列在所述韵律音素序列中的切分顺序,拼接所述多个第一分句语音信息,生成目标语音。
- 根据权利要求12所述的语音合成方法,其中,所述基于所述第一时长和所述第一分句语音信息对应的分句序列在所述韵律音素序列中的切分顺序,拼接所述多个第一分句语音信息,生成目标语音,包括:基于多个音素中的目标音素对应的第一时长,截去所述第一分句语音信息中与所述目标音素对应的语音,生成第二分句语音信息;基于所述第二分句语音信息对应的分句序列在所述韵律音素序列中的切分顺序,拼接所述第二分句语音信息,生成所述目标语音。
- 根据权利要求13所述的语音合成方法,其中,所述目标音素包括句首多余音素和句末多余音素中的至少一种,所述基于多个音素中的目标音素对应的第一时长,截去所述第一分句语音信息中与所述目标音素对应的语音,包括:确定所述第一分句语音信息对应的分句序列不为所述目标文本中的第一个分句序列,分别截去所述第一分句语音信息中与所述句首多余音素对应的语音和与所述句末多余音素对应的语音;确定所述第一分句语音信息对应的分句序列为所述目标文本中的第一个分句序列,截去所述第一分句语音信息中与所述句末多余音素对应的语音。
- 根据权利要求11所述的语音合成方法,其中,在所述生成多个第一分句语音信息之后,且在所述基于所述第一时长和所述第一分句语音信息对应的分句序列在所述韵律音素序列中的切分顺序,拼接所述多个第一分句语音信息之前,所述方法还包括:输出所述第一分句语音信息。
- 根据权利要求12-15任一项所述的语音合成方法,其中,所述分别对所述分句序列进行语音合成,包括:将所述分句序列输入至目标语音合成模型,获取由所述目标语音合成模型输出的所述第一分句语音信息,其中,所述目标语音合成模型为,以样本韵律音素序列为样本,以与所述样本韵律音素序列对应的样本分句语音为样本标签,训练得到。
- 根据权利要求1-16任一项所述的语音合成方法,其中,在所述对目标文本的韵律音素序列进行切分之前,所述方法还包括:获取待合成文本;以及确定所述待合成文本的大小超过目标阈值,对所述待合成文本进行切分,生成所述目标文本,所述目标文本的大小不超过所述目标阈值。
- 根据权利要求1-16任一项所述的语音合成方法,其中,所述对目标文本的韵律音素序列进行切分,生成多个分句序列,包括:将所述目标文本转化为所述韵律音素序列,所述韵律音素序列包括与所述目标文本对应的多个音素以及位于相邻所述音素之间的韵律标识符;以及基于多个所述韵律标识符中的至少部分切分所述韵律音素序列,生成所述多个分句序列。
- 根据权利要求18所述的语音合成方法,其中,所述基于多个所述韵律标识符中的至少部分切分所述韵律音素序列,生成所述多个分句序列,包括:基于多个所述韵律标识符在所述韵律音素序列中确定第一切分位置;基于所述第一切分位置对所述韵律音素序列进行切分,生成所述多个分句序列,所述分句序列包括第一子韵律音素序列和第二子韵律音素序列,所述第一子韵律音素序列为所述韵律音素序列中位于所述第一切分位置之前的韵律音素序列,所述第二子韵律音素序列为所述韵律音素序列中位于所述第一切分位置之后的韵律音素序列,且所述第一子韵律音素序列对应的语音合成时长在目标时长内。
- 根据权利要求19所述的语音合成方法,其中,所述基于多个所述韵律标识符在所述韵律音素序列中确定第一切分位置,包括:基于目标阈值范围,从多个韵律标识符中确定细粒度最大的所述韵律标识符;将所述细粒度最大的所述韵律标识符在所述韵律音素序列中的位置确定为所述第一切分位置。
- 根据权利要求20所述的语音合成方法,其中,所述基于目标阈值范围,从所述多个韵律标识符中确定细粒度最大的所述韵律标识符,包括:获取所述韵律音素序列中目标子韵律音素序列全部音素的第一发音长度,所述目标子韵律音素序列为所述韵律音素序列中在目标位置之前的全部韵律音素序列;确定所述第一发音长度在所述目标阈值范围内,且确定所述第一发音长度对应的目标位置处的所述韵律标识符为第一次出现,将所述第一发音长度对应的目标位置确定为候选切分点位置,生成多个所述候选切分点位置;从所述多个所述候选切分点位置所对应的韵律标识符中确定细粒度最大的韵律标识符。
- 根据权利要求18所述的语音合成方法,其中,所述基于多个所述韵律标识符中的至 少部分切分所述韵律音素序列,生成所述多个分句序列,包括:基于多个所述韵律标识符在所述韵律音素序列中确定第一切分位置;从所述韵律音素序列中位于所述第一切分位置之后的所述韵律标识符在所述韵律音素序列的位置中,确定第二切分位置;以及基于所述第一切分位置和所述第二切分位置对所述韵律音素序列进行切分,生成所述第一子韵律音素序列和至少两个第二子韵律音素序列,所述第一子韵律音素序列为所述韵律音素序列中位于所述第一切分位置之前的韵律音素序列,所述至少两个第二子韵律音素序列为所述韵律音素序列中位于所述第一切分位置之后的韵律音素序列,相邻的所述第二子韵律音素序列基于所述第二切分位置确定,且所述第一子韵律音素序列对应的语音合成时长在目标时长内。
- 根据权利要求18所述的语音合成方法,其中,所述将所述目标文本转化为所述韵律音素序列,包括:获取所述目标文本的音节、韵律词、韵律短语、语调短语和句末信息;以及基于所述音节、所述韵律词、所述韵律短语、所述语调短语和所述句末信息中的至少两种对所述目标文本进行标记,生成所述韵律音素序列。
- 根据权利要求23所述的语音合成方法,其中,所述基于所述音节、所述韵律词、所述韵律短语、所述语调短语和所述句末信息中的至少两种对所述目标文本进行标记,生成所述韵律音素序列,包括:将所述目标文本转化为音素序列;基于所述音节、所述韵律词、所述韵律短语、所述语调短语和所述句末信息中的至少两种,生成所述多个韵律标识符;以及基于所述多个韵律标识符标记所述音素序列,生成所述韵律音素序列。
- 根据权利要求1-24任一项所述的语音合成方法,其中,所述方法还包括:对目标文本的韵律音素序列进行切分,生成多个分句序列,所述韵律音素序列包括与所述目标文本对应的多个音素以及位于相邻所述音素之间的韵律标识符,每个所述分句序列包括至少一个所述音素;确定所述多个分句序列中的任一待匹配分句序列与缓存的目标分句序列匹配,从缓存中获取与所述目标分句序列对应的目标分句语音,将所述待匹配分句序列对应的语音确定为所述目标分句语音。
- 根据权利要求25所述的语音合成方法,其中,所述方法还包括:确定所述多个分句序列中的任一待匹配分句序列与所述目标分句序列不匹配,对所述待匹配分句序列进行语音合成,生成第二分句语音。
- 根据权利要求26所述的语音合成方法,其中,在所述生成第二分句语音之后,所述方法还包括:基于所述韵律标识符切分所述第二分句语音,生成多个子第二分句语音;缓存所述多个子第二分句语音和所述子第二分句语音对应的子分句序列。
- 根据权利要求26所述的语音合成方法,其中,在所述生成第二分句语音之后,所述方法还包括:基于所述目标分句语音对应的分句序列在所述韵律音素序列中的切分顺序,以及所述第二分句语音对应的分句序列在所述韵律音素序列中的切分顺序,拼接所述目标分句语音和所述第二分句语音,生成所述目标文本对应的目标语音。
- 根据权利要求25所述的语音合成方法,其中,所述基于多个所述韵律标识符中的至 少部分切分所述韵律音素序列,生成所述多个分句序列,包括:基于多个韵律标识符中的目标标识符对所述韵律音素序列进行切分,生成多个候选序列,且位于第一个切分点之前的所述候选序列对应的语音合成时长在目标时长内;将所述多个候选序列中的目标候选序列与相邻候选序列进行组合,生成所述多个分句序列,并确定所述分句序列对应的细粒度大小;基于所述分句序列对应的细粒度大小,对所述多个分句序列进行降序排序。
- 根据权利要求1-29任一项所述的语音合成方法,其中,所述韵律标识符包括:用于表征音节、用于表征韵律词、用于表征韵律短语、用于表征语调短语和用于表征句末信息的标识符中的至少一种;且所述用于表征句末信息的标识符的细粒度大于所述用于所述语调短语的标识符的细粒度,所述用于表征语调短语的标识符的细粒度大于所述用于表征韵律短语的标识符的细粒度,所述用于表征韵律短语的标识符的细粒度大于所述用于表征韵律词的标识符的细粒度,所述用于表征韵律词的标识符的细粒度大于所述用于表征音节的标识符的细粒度。
- 根据权利要求1-30任一项所述的语音合成方法,其中,所述目标韵律特征和所述目标音素特征包括:所述韵律音素序列的长度、所述韵律音素序列中的中文拼音的数量、所述韵律音素序列中的停顿符号的数量、所述韵律音素序列中的英文音素的数量、所述韵律音素序列中的中文音素的数量、所述韵律音素序列中的中文声母的数量、所述韵律音素序列中的中文韵母的数量以及所述韵律音素序列中的各个类别的英文音素中的至少一种。
- 一种语音合成装置,包括:第一处理模块,被配置为对目标文本的韵律音素序列进行切分,生成多个分句序列,所述韵律音素序列包括与所述目标文本对应的多个音素以及位于相邻所述音素之间的韵律标识符,每个所述分句序列包括至少一个所述音素;第二处理模块,被配置为对所述多个分句序列中的第一子韵律音素序列进行语音合成,得到第一语音信息;以及第三处理模块,被配置为输出所述第一语音信息且对所述多个分句序列中的第二子韵律音素序列进行语音合成,生成第二语音信息,所述第二子韵律音素序列为在所述韵律音素序列中位于所述第一子韵律音素序列之后的至少一个分句序列。
- 一种电子设备,包括:处理器;以及存储器,存储了可在所述处理器上运行的计算机程序,其中,所述程序在由所述处理器执行时使得所述电子设备执行如权利要求1至31任一项所述的语音合成方法。
- 一种非暂态计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时执行如权利要求1至31任一项所述的语音合成方法。
- 一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时执行如权利要求1至31任一项所述的语音合成方法。
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210346114.6A CN114822490A (zh) | 2022-03-31 | 2022-03-31 | 语音拼接方法和语音拼接装置 |
CN202210344456.4 | 2022-03-31 | ||
CN202210346094.2A CN114822489A (zh) | 2022-03-31 | 2022-03-31 | 文本转写方法和文本转写装置 |
CN202210344456.4A CN114678002A (zh) | 2022-03-31 | 2022-03-31 | 文本的切分方法和文本的切分装置 |
CN202210346097.6 | 2022-03-31 | ||
CN202210346094.2 | 2022-03-31 | ||
CN202210344448.XA CN114678001A (zh) | 2022-03-31 | 2022-03-31 | 语音合成方法和语音合成装置 |
CN202210344448.X | 2022-03-31 | ||
CN202210346097.6A CN114708848A (zh) | 2022-03-31 | 2022-03-31 | 音视频文件大小的获取方法和装置 |
CN202210346114.6 | 2022-03-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023184874A1 true WO2023184874A1 (zh) | 2023-10-05 |
Family
ID=88198941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/118072 WO2023184874A1 (zh) | 2022-03-31 | 2022-09-09 | 语音合成方法和装置 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2023184874A1 (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002304186A (ja) * | 2001-04-05 | 2002-10-18 | Sharp Corp | 音声合成装置、音声合成方法および音声合成プログラム |
CN108073572A (zh) * | 2016-11-16 | 2018-05-25 | 北京搜狗科技发展有限公司 | 信息处理方法及其装置、同声翻译系统 |
CN110797006A (zh) * | 2020-01-06 | 2020-02-14 | 北京海天瑞声科技股份有限公司 | 端到端的语音合成方法、装置及存储介质 |
CN111226275A (zh) * | 2019-12-31 | 2020-06-02 | 深圳市优必选科技股份有限公司 | 基于韵律特征预测的语音合成方法、装置、终端及介质 |
CN111524500A (zh) * | 2020-04-17 | 2020-08-11 | 浙江同花顺智能科技有限公司 | 语音合成方法、装置、设备和存储介质 |
CN112037758A (zh) * | 2020-06-19 | 2020-12-04 | 四川长虹电器股份有限公司 | 一种语音合成方法及装置 |
CN112771607A (zh) * | 2018-11-14 | 2021-05-07 | 三星电子株式会社 | 电子设备及其控制方法 |
CN112885328A (zh) * | 2021-01-22 | 2021-06-01 | 华为技术有限公司 | 一种文本数据处理方法及装置 |
CN113053357A (zh) * | 2021-01-29 | 2021-06-29 | 网易(杭州)网络有限公司 | 语音合成方法、装置、设备和计算机可读存储介质 |
CN113516964A (zh) * | 2021-08-13 | 2021-10-19 | 北京房江湖科技有限公司 | 语音合成方法、可读存储介质及计算机程序产品 |
CN114678002A (zh) * | 2022-03-31 | 2022-06-28 | 美的集团(上海)有限公司 | 文本的切分方法和文本的切分装置 |
CN114678001A (zh) * | 2022-03-31 | 2022-06-28 | 美的集团(上海)有限公司 | 语音合成方法和语音合成装置 |
CN114708848A (zh) * | 2022-03-31 | 2022-07-05 | 美的集团(上海)有限公司 | 音视频文件大小的获取方法和装置 |
CN114822490A (zh) * | 2022-03-31 | 2022-07-29 | 美的集团(上海)有限公司 | 语音拼接方法和语音拼接装置 |
CN114822489A (zh) * | 2022-03-31 | 2022-07-29 | 美的集团(上海)有限公司 | 文本转写方法和文本转写装置 |
CN115223541A (zh) * | 2022-06-21 | 2022-10-21 | 深圳市优必选科技股份有限公司 | 文本转语音的处理方法、装置、设备及存储介质 |
-
2022
- 2022-09-09 WO PCT/CN2022/118072 patent/WO2023184874A1/zh unknown
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002304186A (ja) * | 2001-04-05 | 2002-10-18 | Sharp Corp | 音声合成装置、音声合成方法および音声合成プログラム |
CN108073572A (zh) * | 2016-11-16 | 2018-05-25 | 北京搜狗科技发展有限公司 | 信息处理方法及其装置、同声翻译系统 |
CN112771607A (zh) * | 2018-11-14 | 2021-05-07 | 三星电子株式会社 | 电子设备及其控制方法 |
CN111226275A (zh) * | 2019-12-31 | 2020-06-02 | 深圳市优必选科技股份有限公司 | 基于韵律特征预测的语音合成方法、装置、终端及介质 |
CN110797006A (zh) * | 2020-01-06 | 2020-02-14 | 北京海天瑞声科技股份有限公司 | 端到端的语音合成方法、装置及存储介质 |
CN111524500A (zh) * | 2020-04-17 | 2020-08-11 | 浙江同花顺智能科技有限公司 | 语音合成方法、装置、设备和存储介质 |
CN112037758A (zh) * | 2020-06-19 | 2020-12-04 | 四川长虹电器股份有限公司 | 一种语音合成方法及装置 |
CN112885328A (zh) * | 2021-01-22 | 2021-06-01 | 华为技术有限公司 | 一种文本数据处理方法及装置 |
CN113053357A (zh) * | 2021-01-29 | 2021-06-29 | 网易(杭州)网络有限公司 | 语音合成方法、装置、设备和计算机可读存储介质 |
CN113516964A (zh) * | 2021-08-13 | 2021-10-19 | 北京房江湖科技有限公司 | 语音合成方法、可读存储介质及计算机程序产品 |
CN114678002A (zh) * | 2022-03-31 | 2022-06-28 | 美的集团(上海)有限公司 | 文本的切分方法和文本的切分装置 |
CN114678001A (zh) * | 2022-03-31 | 2022-06-28 | 美的集团(上海)有限公司 | 语音合成方法和语音合成装置 |
CN114708848A (zh) * | 2022-03-31 | 2022-07-05 | 美的集团(上海)有限公司 | 音视频文件大小的获取方法和装置 |
CN114822490A (zh) * | 2022-03-31 | 2022-07-29 | 美的集团(上海)有限公司 | 语音拼接方法和语音拼接装置 |
CN114822489A (zh) * | 2022-03-31 | 2022-07-29 | 美的集团(上海)有限公司 | 文本转写方法和文本转写装置 |
CN115223541A (zh) * | 2022-06-21 | 2022-10-21 | 深圳市优必选科技股份有限公司 | 文本转语音的处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tan et al. | A survey on neural speech synthesis | |
CN112309366B (zh) | 语音合成方法、装置、存储介质及电子设备 | |
CN111798832A (zh) | 语音合成方法、装置和计算机可读存储介质 | |
CN112420016B (zh) | 一种合成语音与文本对齐的方法、装置及计算机储存介质 | |
US20100268539A1 (en) | System and method for distributed text-to-speech synthesis and intelligibility | |
WO2020062680A1 (zh) | 基于双音节混搭的波形拼接方法、装置、设备及存储介质 | |
JP2008134475A (ja) | 入力された音声のアクセントを認識する技術 | |
CN115485766A (zh) | 使用bert模型的语音合成韵律 | |
CN112331176B (zh) | 语音合成方法、装置、存储介质及电子设备 | |
US11322133B2 (en) | Expressive text-to-speech utilizing contextual word-level style tokens | |
Singh et al. | Improved meta learning for low resource speech recognition | |
CN112802446B (zh) | 音频合成方法及装置、电子设备和计算机可读存储介质 | |
CN114678001A (zh) | 语音合成方法和语音合成装置 | |
WO2023184874A1 (zh) | 语音合成方法和装置 | |
CN114822489A (zh) | 文本转写方法和文本转写装置 | |
CN114708848A (zh) | 音视频文件大小的获取方法和装置 | |
CN114678002A (zh) | 文本的切分方法和文本的切分装置 | |
CN114822490A (zh) | 语音拼接方法和语音拼接装置 | |
CN114155829A (zh) | 语音合成方法、装置、可读存储介质及电子设备 | |
Watts et al. | based speech synthesis | |
JP3981619B2 (ja) | 収録リスト取得装置と音声素片データベース作成装置、及びそれらの装置プログラム | |
Deng et al. | Prosodic information-assisted dnn-based mandarin spontaneous-speech recognition | |
Nair et al. | Indian text to speech systems: A short survey | |
Louw | Text-to-speech duration models for resource-scarce languages in neural architectures | |
Pangsatabam et al. | Design and Evaluation of Speech Processing Systems for Meetei/Meitei Mayek |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22933875 Country of ref document: EP Kind code of ref document: A1 |