掌桥专利:专业的专利平台
掌桥专利
首页

语音预测方法、装置、电子设备和存储介质

文献发布时间:2023-06-19 11:45:49


语音预测方法、装置、电子设备和存储介质

技术领域

本发明涉及语音交互技术领域,具体涉及一种语音预测方法、装置、电子设备和存储介质。

背景技术

目前语音处理领域主要利用卷积神经网络(Convolutional Neural Networks,CNN)、循环神经网络(Recurrent Neural Network,RNN)结构推理生成语音信息。通常是在接收完用户在当前时刻的语音信息后,对该语音信息进行分析,再得出对当前时刻语音信息的回复。例如,传统的客户服务系统通常是在客户说完话之后,再对客户输入的语音信息进行处理,做出相应的应答。可以看出,这个处理过程需要客户花费一定时间等待,如果客户一次说的话较长,就更加剧了这种不利影响,从而给客户带来较差的服务体验。基于此,传统的语音处理方法在生成语音时难以将当前时间点之前较长范围时间内的语音信息直接反应到之后时间段的语音中,而采用记忆模型又对系统算力提出更高要求。

而人类说的话在时间上一般是具有一定的逻辑的,即前后具有一定的相关性。因此,人类在日常生活的交流中,通常可以通过别人已经说过的话或做过的动作猜想他接下来会说什么,会做什么,从而可以提前为之后的交流做好准备,这是人类基本的应激反应和能力。

基于此,在语音处理时,如何针对当前时刻之前的一段时间内的对话信息,对下一时刻可能会出现的对话进行预测,是目前亟待解决的问题。

发明内容

为了解决现有技术中存在的上述问题,本申请实施方式提供了一种语音预测方法、装置、电子设备和存储介质,可以基于用户当前输入的语音信息,对用户在下一时刻可能说的话进行预测,从而提前准备好相应的答复,相对于传统语音处理方法,具有交互效率高、交互等待时间少等优点。

第一方面,本申请的实施方式提供了一种语音预测方法,包括:

对用户当前时刻的语音信息进行检测,得到当前时刻的语音信息包含的目标短语,其中,当前时刻的语音信息包括多个语音帧;

将多个语音帧中目标短语对应的语音帧作为当前帧,并提取当前帧和当前帧的前k帧语音帧,得到k+1帧语音帧,其中,k为大于或等于1的整数;

分别对k+1帧语音帧中的每个语音帧进行特征提取,得到k+1个语音特征,其中,k+1个语音特征与k+1帧语音帧一一对应;

根据k+1个语音特征建立拓扑关系图;

根据拓扑关系图预测用户下一时刻的语音信息中的关键词,并根据关键词在预设的回复语音数据库中确定与下一时刻的语音信息对应的回复语音。

第二方面,本申请的实施方式提供了一种语音预测装置,包括:

目标短语检测模块,用于对用户当前时刻的语音信息进行检测,得到当前时刻的语音信息包含的目标短语,其中,当前时刻的语音信息包括多个语音帧;

特征提取模块,用于将多个语音帧中目标短语对应的语音帧作为当前帧,并提取当前帧和当前帧的前k帧语音帧,得到k+1帧语音帧,其中,k为大于或等于1的整数;以及,分别对k+1帧语音帧中的每个语音帧进行特征提取,得到k+1个语音特征,其中,k+1个语音特征与k+1帧语音帧一一对应;

拓扑图构建模块,用于根据k+1个语音特征建立拓扑关系图;

预测模块,用于根据拓扑关系图预测用户下一时刻的语音信息中的关键词,并根据关键词在预设的回复语音数据库中确定与下一时刻的语音信息对应的回复语音。

第三方面,本申请实施方式提供一种电子设备,包括:处理器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得电子设备执行如第一方面的方法。

第四方面,本申请实施方式提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序使得计算机执行如第一方面的方法。

第五方面,本申请实施方式提供一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机可操作来使计算机执行如第一方面的方法。

实施本申请实施方式,具有如下有益效果:

在本申请实施方式中,通过确定用户当前时刻的语音信息中目标短语所在的语音帧为当前帧,并提取该当前帧和当前帧的前k帧语音帧。然后,对这k+1帧语音帧进行特征提取,并基于得到的k+1个语音特征构建拓扑关系图,继而基于该拓扑关系图预测该用户下一时刻的语音信息中的关键词。最后,通过该关键词查询回复语音数据库,确定相应的回复语音。由此,在用户输入下一段语音前就可以判断出回复内容,从而加快语音系统的答复速度,减少用户的等待时间,提高用户的体验效果。

附图说明

为了更清楚地说明本申请实施方式中的技术方案,下面将对实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施方式提供的一种语音预测方法的流程示意图;

图2为本申请实施方式提供的一种对用户当前时刻的语音信息进行检测的方法的流程示意图;

图3为本申请实施方式提供的一种将第一音素序列与预设的目标词库中的多个第二音素序列进行匹配的方法的流程示意图;

图4为本申请实施方式提供的一种表示音素序列中的一个子序列的示意图;

图5为本申请实施方式提供的一种获取最长公共子序列的长度的方法的流程示意图;

图6为本申请实施方式提供的一种根据k+1个语音特征建立拓扑关系图的方法的流程示意图;

图7为本申请实施方式提供的一种确定每个特征组中第一语音特征和第二语音特征之间的相关性系数的方法的流程示意图;

图8为本申请实施方式提供的一种语音预测装置的功能模块组成框图;

图9为本申请实施方式提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本申请保护的范围。

本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施方式”意味着,结合实施方式描述的特定特征、结果或特性可以包含在本申请的至少一个实施方式中。在说明书中的各个位置出现该短语并不一定均是指相同的实施方式,也不是与其它实施方式互斥的独立的或备选的实施方式。本领域技术人员显式地和隐式地理解的是,本文所描述的实施方式可以与其它实施方式相结合。

参阅图1,图1为本申请实施方式提供的一种语音预测方法的流程示意图。该语音预测方法包括以下步骤:

101:对用户当前时刻的语音信息进行检测,得到当前时刻的语音信息包含的目标短语。

在本实施方式中,该当前时刻的语音信息中包括多个连续的语音帧。同时,本实施方式提出了一种对用户当前时刻的语音信息进行检测的方法,具体如图2所示,该方法包括:

201:将当前时刻的语音信息转化为第一音素序列。

音素(phone),是根据语音的自然属性划分出来的最小语音单位,依据音节里的发音动作来分析,一个动作构成一个音素。音素分为元音与辅音两大类。例如:汉语音节啊(a)只有一个音素,爱(ai)有两个音素,代(dai)则有三个音素。

由此,通过音素将语音信息进行符号化,可以使该语音信息在之后的步骤中更好的进行比对,从而提升比对效果的精确性,进而提升本申请所提出的基于当前语音的下一时刻语音预测方法的预测效率。

示例性的,对于语音信息“深圳到北京能不能坐飞机”,可以转化为音素序列{s,h,e,n,z,h,e,n,d,a,o,b,e,i,j,i,n,g,n,e,n,g,b,u,n,e,n,g,z,u,o,f,e,i,j,i}。

202:将第一音素序列与预设的目标词库中的多个第二音素序列进行匹配,得到与第一音素序列匹配的至少一个第二音素序列。

在本实施方式中,多个第二音素序列中的每个第二音素序列对应一个目标短语。该目标短语可以是预先设定好的,例如,在语音信息中可能表达客户要求的语音特殊词语,比如“我想要”、“我想知道”、“如何”、“能不能”等。基于此,可以通过调整预设的目标词库中的第二音素序列,对本申请所提出的基于当前语音的下一时刻语音预测方法所识别的目标短语进行更改,继而改变在语音交互中的主要识别对象。

示例性的,本实施方式提出了一种将第一音素序列与预设的目标词库中的多个第二音素序列进行匹配的方法,具体如图3所示,该方法包括:

301:分别确定第一音素序列与多个第二音素序列中的每个第二音素序列的最长公共子序列的长度。

在本实施方式中,最长公共子序列表示两个音素序列的所有公共子序列中长度最长的一个公共子序列,其中,公共子序列表示两个音素序列中连续且相同的元素组成的音素序列。

示例性的,参阅图4,图4为本申请实施方式提供的一种表示音素序列中的一个子序列的示意图。例如,对于给定的音素序列{a,b,c,d,e,f,g,h},它的子序列示例可以为{c,d,e,f},即音素序列{a,b,c,d,e,f,g,h}中连续元素c,d,e,f组成的音素序列。再如,连续元素组成的音素序列{a,b,c,d}、{g,h}等也都是它的子序列。

基于此,若再给出一个音素序列{b,c,e,f,g,i,e,w},则这两个音素序列之间的公共子序列可以包括{b}、{c}、{b,c}、{e}、{f}、{g}、{e,f}、{f,g}和{e,f,g},且由于{e,f,g}的长度最长,则{e,f,g}就是这两个音素序列之间的最长公共子序列。

但是,对于较为复杂的两串音素序列,其公共子序列的个数可能非常多,从而导致获取最长公共子序列以及其长度变得十分困难。对于这种情况,在本实施方式中,给出了一种动态规划的算法,用于解决上述问题。

通常而言,动态规划的算法用于求解具有某种最优性质的问题。在这类问题中,可能会有许多的可行解,其中,每一个解都对应于一个值,而最终希望找到的是具有最优值的解。动态规划的算法与通常计算中的分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后根据这些子问题的解得到原问题的解。但是,与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。因此,若使用分治法来解这类问题,则会因为分解得到的子问题数目太多,从而导致有些子问题被重复计算了很多次。因此,如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。基于此,可以用一个表来记录所有已解的子问题的答案,不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。这就是动态规划的算法的基本思路。

示例性的,参阅图5,图5为本申请实施方式提供的一种获取最长公共子序列的长度的方法的流程示意图。该方法采用了上述动态规划的算法的思想,可以包括以下步骤:

501:获取第一音素序列的音素个数,获取每个第二音素序列的音素个数;

502:若第一音素序列的音素个数和/或每个第二音素序列的音素个数为0,则设置最长公共子序列的长度为0;

503:若第一音素序列的音素个数和每个第二音素序列的音素个数均大于0,则获取第一音素序列的尾音素作为第一音素,获取每个第二音素序列的尾音素作为第二音素;

504:若第一音素和第二音素相同,则设置最长公共子序列的长度为,除去第一音素的第一音素序列和除去第二音素的每个第二音素序列的最长公共子序列的长度加一;

505:若第一音素和第二音素不同,则将除去第一音素的第一音素序列与每个第二音素序列的最长公共子序列的长度作为第一长度,将第一音素序列与除去第二音素的每个第二音素序列的最长公共子序列的长度作为第二长度,设置最长公共子序列的长度为第一长度和第二长度的最大值。

由此,结合动态规划的算法可以避免大量的重复计算的优势,从而快速的获取到最长公共子序列的长度,进而提升本申请所提出的基于当前语音的下一时刻语音预测方法的预测效率。

示例性的,本申请的最长公共子序列的长度可以通过公式①表示:

其中,{x1,x2…xi}表示第一特征音素序列,i表示第一特征音素序列的长度,{y1,y2…yj}表示第二特征音素序列,j表示第二特征音素序列的长度,C[i,j]表示第一特征音素序列和第二特征音素序列的最长公共子序列的长度。

下面结合实际的例子说明获取最长公共子序列的长度:

示例性的,对于第一音素序列{a,b,c,d}和第二音素序列{b,c,d,e}。容易看出,第一音素序列的长度i=4,第二音素序列的长度j=4。

由于i,j>0,且xi=d,yj=e,两者并不相同,因此,代入公式①可以得到:

C[4,4]=max{C[4,3],C[3,4]}

=max{C[3,2]+1,max{C[3,3],C[2,4]}}

=max{C[2,1]+1+1,max{max{C[3,2],C[2,3]},max{C[2,3],C[1,4]}}

=max{C[1,0]+1+1+1,max{max{C[2,1]+1,max{C[2,2],C[1,3]}},max{max{C[2,2],C[1,3]},max{C[1,3],C[0,4]}}}

=max{3,max{max{C[1,0]+1+1,max{max{C[2,1],C[1,2]},max{C[1,2],C[0,3]}}},max{max{max{C[2,1],C[1,2]},max{C[1,2],C[0,3]}},max{C[1,2],C[0,3]}}}

=max{3,max{max{2,max{max{C[1,0]+1,max{C[1,1],C[0,2]}},max{C[1,1],C[0,2]}}},max{max{max{C[1,0]+1,max{C[1,1],C[0,2]}},max{C[1,1],C[0,2]}},max{C[1,1],C[0,2]}}}

=max{3,max{max{2,max{max{1,max{C[1,0],C[0,1]}},max{C[1,0],C[0,1]}}},max{max{max{1,max{C[1,0],C[0,1]}},max{C[1,0],C[0,1]}},max{C[1,0],C[0,1]}}}

=max{3,max{max{2,max{max{1,0},0}},max{max{max{1,0},0},0}}

=3

即第一音素序列{a,b,c,d}和第二音素序列{b,c,d,e}之间的最长公共子序列的长度为3。

302:根据每个第二音素序列的最长公共子序列的长度,确定与第一音素序列匹配的至少一个第二音素序列。

在本实施方式中,与第一音素序列匹配的至少一个第二音素序列的长度与最长公共子序列的长度相等。即,最长公共子序列即为该第二音素序列本身。

203:将与第一音素序列匹配的至少一个第二音素序列对应的目标短语作为当前时刻的语音信息包含的目标短语。

在可选的实施方式中,只有在检测到上述目标短语时,本申请所提出的基于当前语音的下一时刻语音预测方法才会启动后续的预测应答程序,进行语音预测工作。由此,可以提升对话时的智能性,从而提升用户的体验。

102:将多个语音帧中目标短语对应的语音帧作为当前帧,并提取当前帧和当前帧的前k帧语音帧,得到k+1帧语音帧。

在本实施方式中,k可以通过最大后验估计理论,对当前的语音信息进行分析后得出,通常为大于或等于1的整数。

103:分别对k+1帧语音帧中的每个语音帧进行特征提取,得到k+1个语音特征。

在本实施方式中,对于k+1帧语音帧中的每个语音帧,可以分别获取每个语音帧的梅尔倒频谱。之后,确定每个语音帧的梅尔倒频谱的倒谱系数,将倒谱系数作为每个语音帧的语音特征,得到与k+1帧语音帧一一对应的k+1个语音特征。

104:根据k+1个语音特征建立拓扑关系图。

在本实施方式中,给出了一种根据k+1个语音特征建立拓扑关系图的方法,如图6所示,具体如下:

601:将k+1个语音特征进行k!次随机选取,并将每次随机选取出的两个语音特征进行组合,得到k!个特征组。

在本实施方式中,任意两次随机选取出的语音特征不完全相同,其中,k!个特征组中的每个特征组包括第一语音特征和第二语音特征,且第一语音特征不同于第二语音特征。

示例性的,对于3个语音特征{A,B,C},需要进行2!=3次随机选取,得到特征组{A,B}、{A,C}和{B,C}。

602:分别确定每个特征组中第一语音特征和第二语音特征之间的相关性系数,得到k!个相关性系数。

在本实施方式中,提出了一种确定每个特征组中第一语音特征和第二语音特征之间的相关性系数的方法,具体如图7所示,该方法包括:

701:对第一语音特征进行取模,得到第一模。

702:对第二语音特征进行取模,得到第二模;

703:确定第一模与第二模的乘积值。

704:确定第一语音特征和第二语音特征之间的内积。

705:将内积与乘积值的商,作为第一语音特征和第二语音特征之间的相关性系数。

示例性的,通过点积计算第一语音特征和第二语音特征之间的夹角余弦值,并用该夹角余弦值作为第一语音特征和第二语音特征之间的相关性系数。

具体而言,对于第一语音特征A=[a1,a2,…,ai,…,an],和第二语音特征B=[b1,b2,…,bi,…,bn],其中,i=1,2,…,n。夹角余弦值可以通过公式②表示:

其中,A·B表示第一语音特征A与第二语音特征B的内积,丨丨为取模符号,丨A丨表示第一语音特征A的模,丨B丨表示第二语音特征B的模。

进一步的,第一语音特征A与第二语音特征B的内积可以通过公式③表示:

进一步的,第一语音特征A的模可以通过公式④表示:

最后,将该夹角余弦值作为第一语音特征A与第二语音特征B之间的相关性系数。示例性的,第一语音特征A与第二语音特征B之间的相关性系数可以通过公式⑤表示:

d=cosθ…………⑤

由于余弦值的取值范围为【-1,1】,这使得余弦值在高维的情况下依然拥有相同时为1、正交时为0、相反时为-1的性质。即,余弦值越趋近于1,代表两个特征之间的方向越接近,相关性越大;越趋近于-1,他们的方向越相反,相关性越小;接近于0,表示两个特征近乎于正交,可以体现两个特征方向上的相对差异。由此,采用余弦值作为第一语音特征与第二语音特征之间的相关性系数,可以精确的表示第一语音特征与第二语音特征之间的相关程度。

603:将k+1个语音特征作为k+1个节点。

在本实施方式中,k+1个语音特征与k+1个节点一一对应。

604:将k!个相关性系数中的每个相关性系数作为每个相关性系数对应的特征组中的两个语音特征所对应的两个节点之间的边,得到拓扑关系图。

105:根据拓扑关系图预测用户下一时刻的语音信息中的关键词,并根据关键词在预设的回复语音数据库中确定与下一时刻的语音信息对应的回复语音。

在本实施方式中,通过拓扑关系图,采用图神经网络训练基于当前帧预测下一时刻的关键词,当预测的关键词与真实语音特征均方误差小于预设阈值时,从预设的回复语音数据库中找到对应于该关键词的回复语音。否则,再提取当前帧的前第k+1帧补充到拓扑图中,其相关性系数由与步骤602相似的方法确定,在此不再赘述。通过调整后的拓扑关系图,重新预测关键词,再通过关键词索引回复语音数据库中的回复语音。

在可选的实施方式中,可以将从回复语音数据库中筛选出来的回复语音单独放在另一个数据库中,例如,新建一个新的小规模的语音库,用于专门存放筛选出的回复语音,由此,可以有效减少待搜索的语音库中的回复语音的数据量,加快系统的应答速度,进一步减少用户的等待时间。

在本实施方式中,回复语音数据库应当根据企业相关领域中顾客经常提问的信息建立相应回复语音,每一句回复语音均有对应的关键词作为语句索引,且一个关键词可以作为多个回复语音的索引。同时,还可以根据客户提问情况及时更新关键词和回复语音数据库中的回复语音,从而为客户提供更好的服务体验。

此外,在本实施方式中,图神经网络模型的训练过程需要选取回复语音数据库中具有表达各种要求和提问的语句进行训练,其中,可以以疑问句为主,并且需要行业相关领域中客户会经常提问到的一些关键词,训练过程可以通过建立当前帧与前k帧间的拓扑关系图,训练计算各帧间权重参数。同时,为进一步加快系统的应答速度,可以使用模型修剪和优化方法对图神经网络模型结构进行优化,减少对模型影响较小的节点和边,例如,可以采取神经网络的随机dropout方式,来进行模型修剪。最后,还可以采用子频带划分并行计算各频带特征。

综上所述,本发明所提供的语音预测方法,通过确定用户当前时刻的语音信息中目标短语所在的语音帧为当前帧,并提取该当前帧和当前帧的前k帧语音帧。然后,对这k+1帧语音帧进行特征提取,并基于得到的k+1个语音特征构建拓扑关系图,继而基于该拓扑关系图预测该用户下一时刻的语音信息中的关键词。最后,通过该关键词查询回复语音数据库,确定相应的回复语音。由此,根据用户当前时间点输入的语音信息和当前时间点之前一定时间段输入的语音信息预测用户接下来想提问或表达的意思,从而根据预测的关键词提前从回复语音数据库中寻找到相关的回复语音,在用户输入下一段语音前就可以判断出回复内容,从而加快语音系统的答复速度,减少用户的等待时间,提高用户体验效果。同时,适当的模型简化方法和并行运算可以进一步加快答复速度。此外,及时更新关键词可以使得系统更具实时性,能紧跟企业的服务发展,为用户提供高效便捷的语音服务。

参阅图8,图8为本申请实施方式提供的一种语音预测装置的功能模块组成框图。如图8所示,该语音预测装置800包括:

目标短语检测模块801,用于对用户当前时刻的语音信息进行检测,得到当前时刻的语音信息包含的目标短语,其中,当前时刻的语音信息包括多个语音帧;

特征提取模块802,用于将多个语音帧中目标短语对应的语音帧作为当前帧,并提取当前帧和当前帧的前k帧语音帧,得到k+1帧语音帧,其中,k为大于或等于1的整数;以及,分别对k+1帧语音帧中的每个语音帧进行特征提取,得到k+1个语音特征,其中,k+1个语音特征与k+1帧语音帧一一对应;

拓扑图构建模块803,用于根据k+1个语音特征建立拓扑关系图;

预测模块804,用于根据拓扑关系图预测用户下一时刻的语音信息中的关键词,并根据关键词在预设的回复语音数据库中确定与下一时刻的语音信息对应的回复语音。

在本发明的实施方式中,在对用户当前时刻的语音信息进行检测,得到当前时刻的语音信息包含的目标短语方面,目标短语检测模块801,具体用于:

将当前时刻的语音信息转化为第一音素序列;

将第一音素序列与预设的目标词库中的多个第二音素序列进行匹配,得到与第一音素序列匹配的至少一个第二音素序列,其中,多个第二音素序列中的每个第二音素序列对应一个目标短语;

将与第一音素序列匹配的至少一个第二音素序列对应的目标短语作为当前时刻的语音信息包含的目标短语。

在本发明的实施方式中,在将第一音素序列与预设的目标词库中的多个第二音素序列进行匹配,得到与第一音素序列匹配的至少一个第二音素序列方面,目标短语检测模块801,具体用于:

分别确定第一音素序列与多个第二音素序列中的每个第二音素序列的最长公共子序列的长度;

根据每个第二音素序列的最长公共子序列的长度,确定与第一音素序列匹配的至少一个第二音素序列,其中,与第一音素序列匹配的至少一个第二音素序列的长度与最长公共子序列的长度相等。

在本发明的实施方式中,在分别确定第一音素序列与多个第二音素序列中的每个第二音素序列的最长公共子序列的长度方面,目标短语检测模块801,具体用于:

获取第一音素序列的音素个数,获取每个第二音素序列的音素个数;

若第一音素序列的音素个数和/或每个第二音素序列的音素个数为0,则设置最长公共子序列的长度为0;

若第一音素序列的音素个数和每个第二音素序列的音素个数均大于0,则获取第一音素序列的尾音素作为第一音素,获取每个第二音素序列的尾音素作为第二音素;

若第一音素和第二音素相同,则设置最长公共子序列的长度为,除去第一音素的第一音素序列和除去第二音素的每个第二音素序列的最长公共子序列的长度加一;

若第一音素和第二音素不同,则将除去第一音素的第一音素序列与每个第二音素序列的最长公共子序列的长度作为第一长度,将第一音素序列与除去第二音素的每个第二音素序列的最长公共子序列的长度作为第二长度,设置最长公共子序列的长度为第一长度和第二长度的最大值。

在本发明的实施方式中,在分别对k+1帧语音帧中的每个语音帧进行特征提取,得到k+1个语音特征方面,特征提取模块802,具体用于:

对于k+1帧语音帧中的每个语音帧,分别获取每个语音帧的梅尔倒频谱;

确定每个语音帧的梅尔倒频谱的倒谱系数,将倒谱系数作为每个语音帧的语音特征。

在本发明的实施方式中,在根据k+1个语音特征建立拓扑关系图方面,拓扑图构建模块803,具体用于:

将k+1个语音特征进行k!次随机选取,并将每次随机选取出的两个语音特征进行组合,得到k!个特征组,且任意两次随机选取出的语音特征不完全相同,其中,k!个特征组中的每个特征组包括第一语音特征和第二语音特征,且第一语音特征不同于第二语音特征;

分别确定每个特征组中第一语音特征和第二语音特征之间的相关性系数,得到k!个相关性系数;

将k+1个语音特征作为k+1个节点,其中,k+1个语音特征与k+1个节点一一对应;

将k!个相关性系数中的每个相关性系数作为每个相关性系数对应的特征组中的两个语音特征所对应的两个节点之间的边,得到拓扑关系图。

在本发明的实施方式中,在确定每个特征组中第一语音特征和第二语音特征之间的相关性系数方面,拓扑图构建模块803,具体用于:

对第一语音特征进行取模,得到第一模;

对第二语音特征进行取模,得到第二模;

确定第一模与第二模的乘积值;

确定第一语音特征和第二语音特征之间的内积;

将内积与乘积值的商,作为第一语音特征和第二语音特征之间的相关性系数。

参阅图9,图9为本申请实施方式提供的一种电子设备的结构示意图。如图9所示,电子设备900包括收发器901、处理器902和存储器903。它们之间通过总线904连接。存储器903用于存储计算机程序和数据,并可以将存储器903存储的数据传输给处理器902。

处理器902用于读取存储器903中的计算机程序执行以下操作:

对用户当前时刻的语音信息进行检测,得到当前时刻的语音信息包含的目标短语,其中,当前时刻的语音信息包括多个语音帧;

将多个语音帧中目标短语对应的语音帧作为当前帧,并提取当前帧和当前帧的前k帧语音帧,得到k+1帧语音帧,其中,k为大于或等于1的整数;以及,分别对k+1帧语音帧中的每个语音帧进行特征提取,得到k+1个语音特征,其中,k+1个语音特征与k+1帧语音帧一一对应;

根据k+1个语音特征建立拓扑关系图;

根据拓扑关系图预测用户下一时刻的语音信息中的关键词,并根据关键词在预设的回复语音数据库中确定与下一时刻的语音信息对应的回复语音。

在本发明的实施方式中,在对用户当前时刻的语音信息进行检测,得到当前时刻的语音信息包含的目标短语方面,处理器902,具体用于执行以下操作:

将当前时刻的语音信息转化为第一音素序列;

将第一音素序列与预设的目标词库中的多个第二音素序列进行匹配,得到与第一音素序列匹配的至少一个第二音素序列,其中,多个第二音素序列中的每个第二音素序列对应一个目标短语;

将与第一音素序列匹配的至少一个第二音素序列对应的目标短语作为当前时刻的语音信息包含的目标短语。

在本发明的实施方式中,在将第一音素序列与预设的目标词库中的多个第二音素序列进行匹配,得到与第一音素序列匹配的至少一个第二音素序列方面,处理器902,具体用于执行以下操作:

分别确定第一音素序列与多个第二音素序列中的每个第二音素序列的最长公共子序列的长度;

根据每个第二音素序列的最长公共子序列的长度,确定与第一音素序列匹配的至少一个第二音素序列,其中,与第一音素序列匹配的至少一个第二音素序列的长度与最长公共子序列的长度相等。

在本发明的实施方式中,在分别确定第一音素序列与多个第二音素序列中的每个第二音素序列的最长公共子序列的长度方面,处理器902,具体用于执行以下操作:

获取第一音素序列的音素个数,获取每个第二音素序列的音素个数;

若第一音素序列的音素个数和/或每个第二音素序列的音素个数为0,则设置最长公共子序列的长度为0;

若第一音素序列的音素个数和每个第二音素序列的音素个数均大于0,则获取第一音素序列的尾音素作为第一音素,获取每个第二音素序列的尾音素作为第二音素;

若第一音素和第二音素相同,则设置最长公共子序列的长度为,除去第一音素的第一音素序列和除去第二音素的每个第二音素序列的最长公共子序列的长度加一;

若第一音素和第二音素不同,则将除去第一音素的第一音素序列与每个第二音素序列的最长公共子序列的长度作为第一长度,将第一音素序列与除去第二音素的每个第二音素序列的最长公共子序列的长度作为第二长度,设置最长公共子序列的长度为第一长度和第二长度的最大值。

在本发明的实施方式中,在分别对k+1帧语音帧中的每个语音帧进行特征提取,得到k+1个语音特征方面,处理器902,具体用于执行以下操作:

对于k+1帧语音帧中的每个语音帧,分别获取每个语音帧的梅尔倒频谱;

确定每个语音帧的梅尔倒频谱的倒谱系数,将倒谱系数作为每个语音帧的语音特征。

在本发明的实施方式中,在根据k+1个语音特征建立拓扑关系图方面,处理器902,具体用于执行以下操作:

将k+1个语音特征进行k!次随机选取,并将每次随机选取出的两个语音特征进行组合,得到k!个特征组,且任意两次随机选取出的语音特征不完全相同,其中,k!个特征组中的每个特征组包括第一语音特征和第二语音特征,且第一语音特征不同于第二语音特征;

分别确定每个特征组中第一语音特征和第二语音特征之间的相关性系数,得到k!个相关性系数;

将k+1个语音特征作为k+1个节点,其中,k+1个语音特征与k+1个节点一一对应;

将k!个相关性系数中的每个相关性系数作为每个相关性系数对应的特征组中的两个语音特征所对应的两个节点之间的边,得到拓扑关系图。

在本发明的实施方式中,在确定每个特征组中第一语音特征和第二语音特征之间的相关性系数方面,处理器902,具体用于执行以下操作:

对第一语音特征进行取模,得到第一模;

对第二语音特征进行取模,得到第二模;

确定第一模与第二模的乘积值;

确定第一语音特征和第二语音特征之间的内积;

将内积与乘积值的商,作为第一语音特征和第二语音特征之间的相关性系数。

应理解,本申请中的语音预测装置可以包括智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备MID(MobileInternet Devices,简称:MID)、机器人或穿戴式设备等。上述语音预测装置仅是举例,而非穷举,包含但不限于上述语音预测装置。在实际应用中,上述语音预测装置还可以包括:智能车载终端、计算机设备等等。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施方式或者实施方式的某些部分所述的方法。

因此,本申请实施方式还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如上述方法实施方式中记载的任何一种语音预测方法的部分或全部步骤。例如,所述存储介质可以包括硬盘、软盘、光盘、磁带、磁盘、优盘、闪存等。

本申请实施方式还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施方式中记载的任何一种语音预测方法的部分或全部步骤。

需要说明的是,对于前述的各方法实施方式,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施方式均属于可选的实施方式,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施方式中,对各个实施方式的描述都各有侧重,某个实施方式中没有详述的部分,可以参见其他实施方式的相关描述。

在本申请所提供的几个实施方式中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施方式的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。

以上对本申请实施方式进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施方式的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 语音预测方法、装置、电子设备和存储介质
  • 一种语音识别方法、语音识别装置、电子设备及存储介质
技术分类

06120113045374