一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

语音合成编码方法及装置与流程

2021-09-10 20:37:00 来源:中国专利 TAG:方法 语音合成 装置 编码 特别


1.本发明涉及语音合成方法技术领域,特别是指一种语音合成编码方法及装置。


背景技术:

2.当前语音合成(文本转语音)的编码播放方案有:
3.1、一次性合成:将文本输入到语音合成引擎,一次性获得编码后的pcm数据,将pcm数据一次性传递给播放器播放;该方式需要占用大量的内存存储pcm,并且合成等待时长较长,需要等数据全部合成后才开始播放。
4.2、流式合成中睡眠:一边合成pcm数据,一边塞给播放器处理,在合成过程中睡眠一定时间,继续合成并播放;该方式单次合成的数据块大小固定,存在cpu波动,sleep时间过短可能占用cpu过高,sleep时间过长可能造成播放器断播或出现杂音。


技术实现要素:

5.有鉴于此,本说明书一个或多个实施例的目的在于提出一种语音合成编码方法及装置,能够有效的解决现有技术技术中的技术问题。
6.基于上述目的,本说明书一个或多个实施例提供了一种语音合成编码方法,包括:
7.开始将文本数据合成为pcm流数据,并将所述pcm流数据存储于缓冲区;
8.根据当前系统负载情况动态计算开始播放需要的起始缓冲阈值tstart;
9.若缓冲区缓冲时长大于所述起始缓冲阈值tstart时,读取缓冲区的所述pcm流数据进行播放;
10.根据当前系统负载情况动态计算持续播放需要的持续缓冲阈值tblock;
11.若缓冲区缓冲时长大于所述持续缓冲阈值tblock,则暂停将文本数据合成为pcm流数据,并等待预设时间后返回计算持续缓冲阈值tblock的步骤;否则,持续将文本数据合成为pcm流数据,并等待预设时间后返回计算持续缓冲阈值tblock的步骤,直至将全部的文本数据合成为pcm流数据。
12.作为一种可选的实施方式,所述根据当前系统负载情况动态计算开始播放需要的起始缓冲阈值tstart,包括:
13.若t2

t1<tmin,则tstart=tmin,否则tstart=t2

t1;
14.其中,t1为合成时长预估;
15.t2为播放时长;
16.tmin为最小缓冲时长。
17.作为一种可选的实施方式,t1=l*u/c,t2=l*t;
18.其中,c为单核cpu最大空闲算力;u为单字合成算力消耗;t为单字时长预估;l为整句字长。
19.作为一种可选的实施方式,所述根据当前系统负载情况动态计算持续播放需要的持续缓冲阈值tblock,包括:
20.若t4≤t3,tblock=t3,否则tblock=x*(t2

t1) tbuf;
21.若tblock<tmin,则tblock=tmin;
22.其中,t4为剩余播放时长预估,t3为剩余合成时长预估,tbuf为当前缓冲区剩余播放时长,x为缓冲单位。
23.作为一种可选的实施方式,t3=r*u/c,t4=r*t tbuf,tmin=f*tplayer;
24.其中,c为单核cpu最大空闲算力;u为单字合成算力消耗;r为剩余字长,f为最小播放缓冲系数,tplayer为播放器最小缓冲区缓冲时长,t为单字时长预估。
25.作为一种可选的实施方式,所述缓冲单位x=1%,所述最小播放缓冲系数f=2。
26.作为一种可选的实施方式,还包括暂停播放所述pcm流数据的步骤。
27.与所述语音合成编码方法相对应的,本发明实施例还提供了一种语音合成编码装置,包括:
28.缓冲模块,用于开始将文本数据合成为pcm流数据,并将所述pcm流数据存储于缓冲区;
29.第一计算模块,用于根据当前系统负载情况动态计算开始播放需要的起始缓冲阈值tstart;
30.播放模块,当缓冲区缓冲时长大于所述起始缓冲阈值tstart时,用于读取缓冲区的所述pcm流数据进行播放;
31.第二计算模块,用于根据当前系统负载情况动态计算持续播放需要的持续缓冲阈值tblock;
32.判断模块,用于若缓冲区缓冲时长大于所述持续缓冲阈值tblock,则暂停将文本数据合成为pcm流数据,并等待预设时间后返回计算持续缓冲阈值tblock的步骤;否则,持续将文本数据合成为pcm流数据,并等待预设时间后返回计算持续缓冲阈值tblock的步骤,直至将全部的文本数据合成为pcm流数据。
33.作为一种可选的实施方式,所述第一计算模块用于
34.若t2

t1<tmin,则tstart=tmin,否则tstart=t2

t1;
35.其中,t1为合成时长预估;
36.t2为播放时长;
37.tmin为最小缓冲时长。
38.作为一种可选的实施方式,所述第二计算模块用于
39.若t4≤t3,tblock=t3,否则tblock=x*(t2

t1) tbuf;
40.若tblock<tmin,则tblock=tmin;
41.其中,t4为剩余播放时长预估,t3为剩余合成时长预估,tbuf为当前缓冲区剩余播放时长,x为缓冲单位。
42.从上面所述可以看出,本说明书一个或多个实施例提供的一种语音合成编码方法及装置,在开始将文本数据合成为pcm流数据后,根据当前系统负载情况动态计算开始播放需要的起始缓冲阈值tstart,若缓冲区缓冲时长大于所述起始缓冲阈值tstart时,读取缓冲区的所述pcm流数据进行播放;并根据当前系统负载情况动态计算持续播放需要的持续缓冲阈值tblock;播放过程中,根据缓冲区缓冲时长与持续缓冲阈值tblock的关系,判断是继续将文本数据合成为pcm流数据还是暂停合成,既保证了播放的稳定性流畅度,也实现了
cpu和内存的平滑占用。
附图说明
43.为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为本发明实施例的语音合成编码方法的逻辑示意图;
45.图2为本发明实施例的语音合成编码装置的示意图。
具体实施方式
46.为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
47.为达到上述目的,本发明实施例提供了一种语音合成编码方法,包括:
48.开始将文本数据合成为pcm流数据,并将所述pcm流数据存储于缓冲区;
49.根据当前系统负载情况动态计算开始播放需要的起始缓冲阈值tstart;
50.若缓冲区缓冲时长大于所述起始缓冲阈值tstart时,读取缓冲区的所述pcm流数据进行播放;
51.根据当前系统负载情况动态计算持续播放需要的持续缓冲阈值tblock;
52.若缓冲区缓冲时长大于所述持续缓冲阈值tblock,则暂停将文本数据合成为pcm流数据,并等待预设时间后返回计算持续缓冲阈值tblock的步骤;否则,持续将文本数据合成为pcm流数据,并等待预设时间后返回计算持续缓冲阈值tblock的步骤,直至将全部的文本数据合成为pcm流数据。
53.本发明实施例中,在开始将文本数据合成为pcm流数据后,根据当前系统负载情况动态计算开始播放需要的起始缓冲阈值tstart,若缓冲区缓冲时长大于所述起始缓冲阈值tstart时,读取缓冲区的所述pcm流数据进行播放;并根据当前系统负载情况动态计算持续播放需要的持续缓冲阈值tblock;播放过程中,根据缓冲区缓冲时长与持续缓冲阈值tblock的关系,判断是继续将文本数据合成为pcm流数据还是暂停合成,既保证了播放的稳定性流畅度,也实现了cpu和内存的平滑占用。
54.如图1所示,本发明实施例提供了一种语音合成编码方法,包括:
55.s100、开始将文本数据合成为pcm流数据,并将所述pcm流数据存储于缓冲区。
56.s200、根据当前系统负载情况动态计算开始播放需要的起始缓冲阈值tstart。
57.可选的,所述根据当前系统负载情况动态计算开始播放需要的起始缓冲阈值tstart,包括:
58.若t2

t1<tmin,则tstart=tmin,否则tstart=t2

t1;
59.其中,t1为合成时长预估,t1=l*u/c;t2为播放时长,t2=l*t;tmin为最小缓冲时长;c为单核cpu最大空闲算力;u为单字合成算力消耗;t为单字时长预估;l为整句字长。
60.s300、若缓冲区缓冲时长大于所述起始缓冲阈值tstart时,读取缓冲区的所述pcm流数据进行播放。
61.s400、根据当前系统负载情况动态计算持续播放需要的持续缓冲阈值tblock。
62.可选的,所述根据当前系统负载情况动态计算持续播放需要的持续缓冲阈值tblock,包括:
63.若t4≤t3,tblock=t3,否则tblock=x*(t2

t1) tbuf;
64.若tblock<tmin,则tblock=tmin;
65.其中,t4为剩余播放时长预估,t4=r*t tbuf,t3为剩余合成时长预估,t3=r*u/c,tbuf为当前缓冲区剩余播放时长,x为缓冲单位,通常取值为1%,最小合成缓冲时长tmin,tmin=f*tplayer;c为单核cpu最大空闲算力;u为单字合成算力消耗;r为剩余字长,f为最小播放缓冲系数,通常取值f=2,tplayer为播放器最小缓冲区缓冲时长,t为单字时长预估。
66.s500、若缓冲区缓冲时长大于所述持续缓冲阈值tblock,则暂停将文本数据合成为pcm流数据,并等待预设时间后返回计算持续缓冲阈值tblock的步骤;否则,持续将文本数据合成为pcm流数据,并等待预设时间后返回计算持续缓冲阈值tblock的步骤,直至将全部的文本数据合成为pcm流数据。
67.作为一种可选的实施方式,还包括暂停播放所述pcm流数据的步骤。
68.与所述语音合成编码方法相对应的,如图2所示,本发明实施例还提供了一种语音合成编码装置,包括:
69.缓冲模块10,用于开始将文本数据合成为pcm流数据,并将所述pcm流数据存储于缓冲区;
70.第一计算模块20,用于根据当前系统负载情况动态计算开始播放需要的起始缓冲阈值tstart;
71.播放模块30,当缓冲区缓冲时长大于所述起始缓冲阈值tstart时,用于读取缓冲区的所述pcm流数据进行播放;
72.第二计算模块40,用于根据当前系统负载情况动态计算持续播放需要的持续缓冲阈值tblock;
73.判断模块50,用于若缓冲区缓冲时长大于所述持续缓冲阈值tblock,则暂停将文本数据合成为pcm流数据,并等待预设时间后返回计算持续缓冲阈值tblock的步骤;否则,持续将文本数据合成为pcm流数据,并等待预设时间后返回计算持续缓冲阈值tblock的步骤,直至将全部的文本数据合成为pcm流数据。
74.可选的,所述第一计算模块20用于
75.若t2

t1<tmin,则tstart=tmin,否则tstart=t2

t1;
76.其中,t1为合成时长预估;
77.t2为播放时长;
78.tmin为最小缓冲时长。
79.可选的,所述第二计算模块40用于
80.若t4≤t3,tblock=t3,否则tblock=x*(t2

t1) tbuf;
81.若tblock<tmin,则tblock=tmin;
82.其中,t4为剩余播放时长预估,t3为剩余合成时长预估,tbuf为当前缓冲区剩余播放时长,x为缓冲单位。
83.本发明实施例中,在开始将文本数据合成为pcm流数据后,根据当前系统负载情况动态计算开始播放需要的起始缓冲阈值tstart,若缓冲区缓冲时长大于所述起始缓冲阈值tstart时,读取缓冲区的所述pcm流数据进行播放;并根据当前系统负载情况动态计算持续播放需要的持续缓冲阈值tblock;播放过程中,根据缓冲区缓冲时长与持续缓冲阈值tblock的关系,判断是继续将文本数据合成为pcm流数据还是暂停合成,既保证了播放的稳定性流畅度,也实现了cpu和内存的平滑占用。
84.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
85.本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜