首页 > 乐器声学 专利正文
一种语音驱动虚拟人的口令理解方法与流程

时间:2022-02-24 阅读: 作者:专利查询

一种语音驱动虚拟人的口令理解方法与流程

1.本发明属于虚拟现实技术领域,具体涉及一种虚拟人的口令理解方法。


背景技术:

2.随着虚拟现实技术的发展,人们希望参与到观看到的vr场景中,目前较为普遍的vr场景交互方式为用户通过佩戴头盔以第一视角沉浸在vr场景中,然后利用操作手柄进行姿态变换、物体抓取等动作实现交互。但现有的这种交互方式建立在肢体动作或手动操作基础上,对于虚拟人的操作还不够简单,而通过语音控制方式直接驱动虚拟人动作,能简化虚拟人的操作过程,减少现实中的肢体交互动作,使得虚拟人物的控制方式更加自然、方便、灵活,也有益于用户接受。
3.实现语音驱动虚拟人,需将用户口令进行语音识别,并根据语音识别得到的文本理解出用户的意图,以便进一步的控制虚拟人做出相应的动作。由于人类语言具有多样性和复杂性,针对于一种意图的语言表达可能有多种形式,因此经过语音识别得到的文本表达也具有多样性,具体来讲,存在多种不同的语言表达最后是控制虚拟人执行同一个动作。而目前针对语音驱动虚拟人运动的研究中,大多是通过对固定口令进行语音识别,然后根据语音识别出的文本直接匹配虚拟人动作变量,从而实现虚拟人运动控制的,当用户想要虚拟人执行“抬头”动作,就必须要发出“抬头”的规定口令,当发出“抬起头”、“仰头”、“仰望”、“抬头看”、“看上面”、“往上看”等这些与“抬头”同一动作不同语言表达的口令时,虚拟人不能顺利执行“抬头”动作。虚拟现实强调沉浸感,若用户仅能以规定口令来控制虚拟人运动的话,将影响用户体验感和在vr场景的沉浸感。


技术实现要素:

4.为了克服现有技术的不足,本发明提供了一种语音驱动虚拟人的口令理解方法,包括:确定待理解口令文本;将待理解口令文本输入至口令理解模型中,得到口令理解模型输出的口令理解结果;口令理解模型包含词向量训练模块、词向量修正模块、余弦相似度计算模块三部分;词向量训练模块基于训练集采用d

skip

gram算法进行词向量学习,得到词向量空间;词向量修正模块基于虚拟人动作指令库建立语义约束条件,得到修正后的词向量空间;余弦相似度计算模块在修正后的词向量空间中计算余弦相似度,实现对口令文本的理解。本发明方法能将同一涵义不同语言表达的口令理解为同一个动作指令,使用户以自己的口语表达习惯来表示意图,有益于提升语音驱动虚拟人的用户体验感。
5.本发明解决其技术问题所采用的技术方案包括如下步骤:
6.步骤1:确定待理解口令文本;待理解口令文本即需要进行意图理解的文本,是对用户输入的口令进行语音识别得到的;
7.步骤2:将所述待理解口令文本输入至口令理解模型中,得到口令理解结果;其中,所述口令理解模型包括词向量训练模块、词向量修正模块和余弦相似度计算模块三部分;
8.步骤2

1:所述词向量训练模块对训练集采用d

skip

gram算法进行词向量学习,
得到词向量空间;
9.步骤2

2:所述词向量修正模块基于虚拟人动作指令库建立语义约束条件,进而构造出词向量修正函数,对词向量进行修正,得到修正后的词向量空间;
10.步骤2

3:所述余弦相似度计算模块在修正后的词向量空间中,计算出与待理解口令文本词向量的余弦距离最近的词向量所对应的虚拟人动作指令,进而输出这一虚拟人动作指令,得到口令理解结果。
11.进一步地,所述步骤2

1中的训练集获取方法如下:
12.使用结巴分词器读取开源语料库文本,先采用精确模式进行分词,得到分词后的文本集,判断文本集中的词是否与停用词表匹配,若匹配则删除该词,若不匹配,则保留该词,直到将分词后的文本集中的每个词都遍历完,完成文本预处理操作,得到训练集v={w1,w2,w3,

,w
t


w
|v|
},w
t
表示训练集的第t个词。
13.进一步地,所述d

skip

gram算法是在skip

gram算法的模型基础上为每个词引入一个方向标签,结合词在上下文中的共现信息和方向信息共同学习词的向量表示,具体步骤为:
14.步骤2
‑1‑
1:计算给定词w
t
时的上下文词w
t+i
的出现概率p(w
t+i
|w
t
):
[0015][0016]
式中,exp表示以e为底的指数函数;v表示训练集;是词w
t
的词向量表示;当i<0时,w
t+i
表示词w
t
的上文第i个词,当i>0时,w
t+i
表示词w
t
的下文第i个词;是词w
t+i
的词向量表示,是的转置矩阵;
[0017]
步骤2
‑1‑
2:定义方向函数g(w
t+i
,w
t
),用来度量上下文词与给定词之间的方向信息,计算公式为:
[0018][0019]
式中,表示上下文词w
t+i
相对于给定词w
t
的方向向量,是的转置矩阵;
[0020]
步骤2
‑1‑
3:构造d

skip

gram算法的目标函数l
d

sg
,计算公式为:
[0021][0022]
式中,l
d

sg
表示d

skip

gram算法的目标函数,|v|表示训练集的词汇数;c是上下文词的窗口的大小;
[0023]
步骤2
‑1‑
4:采用反向传播算法和随机梯度下降法更新d

skip

gram算法的目标函数l
d

sg
的参数,使函数值l
d

sg
最大化,更新范式为:
[0024][0025]
[0026]
其中,分别是词w
t
更新后和更新前的词向量;分别是w
t+i
相对于w
t
更新后和更新前的方向向量;η是学习率;d是w
t+i
相对于w
t
的方向标签,定义为:
[0027][0028]
当w
t+i
位于w
i
左侧时,d=1,当w
t+i
位于w
t
右侧时,d=0;
[0029]
经过迭代后,得到词向量空间其中,下标n是词向量的个数,且n=|v|,即与训练集的词数相等。
[0030]
进一步地,所述基于虚拟人动作指令库建立语义约束条件,约束条件包括同义词约束集s和异义词约束集a,具体如下:
[0031]
根据虚拟人动作指令库,从《同义词词林》和csc中文语义词库中找出虚拟人动作指令的同义及近义表达,将虚拟人动作指令及其同义和近义表达两两搭配组成同义词约束集s,不同指令的各种表达方式两两搭配组成异义词约束集a;两个约束集中均以词对(w
p
,w
q
)的形式保存具有同义关系或异义关系的词。
[0032]
进一步地,所述构造出词向量修正函数,对词向量进行修正,得到修正后的词向量空间的方法为:所述词向量修正函数包括同义词吸引子函数、异义词排斥子函数、词向量保持子函数,将步骤2

1训练出的词向量输入到词向量修正函数中,并采用随机梯度下降法最小化损失,得到修正后的词向量空间,具体步骤如下:
[0033]
步骤2
‑2‑
1:基于同义词约束集s和余弦距离构造同义词吸引子函数计算公式为:
[0034][0035]
式中,是损失函数;(w
p
,w
q
)是同义词约束集s中的同义词词对;分别是词w
p
,w
q
修正后的词向量表示;表示的余弦距离;α表示同义词词向量间的理想最大距离;
[0036]
步骤2
‑2‑
2:基于异义词约束集a和余弦距离构造异义词排斥子函数计一算公式为:
[0037][0038]
式中,(w
p
,w
q
)是异义词约束集a中的异义词词对;β表示异义词词向量间的理想最小距离;
[0039]
步骤2
‑2‑
3:基于余弦距离构造词向量保持子函数计算公式为:
[0040][0041]
其中,是词w
t
修正后的词向量表示;
[0042]
步骤2
‑2‑
4:分配权值,结合同义词吸引子函数、异义词排斥子函数和词向量保持
子函数构造出词向量修正函数,对词向量进行修正,计算公式为:
[0043][0044]
γ1+γ2+γ3=1
ꢀꢀꢀꢀ
(11)
[0045]
式中,表示词向量修正方法的目标函数,由三部分函数损失加权确定,γ1、γ2、γ3是控制三部分子函数权重的参数;
[0046]
采用随机梯度下降法对目标函数的最小值进行求解,迭代得到修正后的词向量空间
[0047]
进一步地,所述步骤2

3具体包括:
[0048]
获取输入的待理解口令文本在修正后的词向量空间中对应的词向量;计算待理解口令文本词向量与虚拟人动作指令库中的所有动作指令的词向量的余弦距离,选取余弦距离最接近1的词向量所对应的动作指令,并输出这一动作指令作为口令文本的理解结果。
[0049]
进一步地,所述余弦距离定义为:
[0050][0051]
式中,n是词向量的维数;分别表示词向量的在第i个维度上的向量分量。
[0052]
进一步地,所述c=5,η=0.025,α=0,β=1,γ1=0.33,γ2=0.33,γ3=0.34。
[0053]
本发明的有益效果如下:
[0054]
1、本发明基于skip

gram算法提出了一种带方向标签的d

skip

gram算法,能根据上下文信息和方向信息训练词向量,得到词向量空间;以虚拟人动作指令库为基础建立语义约束条件,构造词向量修正函数对词向量进行轻量级修正,进而得到修正后的词向量空间,解决了因同义词和反义词拥有相似的上下文信息而存在的词向量空间中反义词词向量比近义词词向量更接近的问题,使在修正后的词向量空间中,同义词的词向量互相靠近,异义词的词向量互相远离,进而有利于在修正后的词向量空间,通过计算余弦相似度实现对口令文本的理解。
[0055]
2、本发明所提供的一种语音驱动虚拟人的口令理解方法,在修正后的词向量空间,通过词向量的相似度计算,得到口令文本的理解结果,能将具有同一涵义、不同语言表达的口令理解为同一个动作指令,使不同用户以自己的口语表达习惯来表示意图,进而语音控制虚拟人执行相关动作,这一方法克服规定口令控制规定动作的局限性,能进一步增强用户语音驱动虚拟人的体验感和在虚拟现实环境中的沉浸感。
附图说明
[0056]
图1是本发明一种语音驱动虚拟人的口令理解方法的流程示意图。
[0057]
图2是本发明口令理解模型的模块示意图。
[0058]
图3是本发明中文本预处理的流程示意图。
[0059]
图4是本发明中skip

gram算法的模型示意图。
[0060]
图5是本发明中d

skip

gram算法的模型示意图。
[0061]
图6是本发明中词向量修正的流程示意图。
具体实施方式
[0062]
下面结合附图和实施例对本发明进一步说明。
[0063]
本发明目的在于提供一种语音驱动虚拟人的口令理解方法,将具有同一涵义、不同语言表达的口令理解为同一个动作指令,使单一用户可以使用表示同一意图的多种口令来语音控制虚拟人执行同一个动作,或者使多个用户能以自己的口语表达习惯来表示意图,进而语音控制虚拟人执行相关动作,这一方法的应用将进一步增强用户的体验感和在虚拟现实环境中的沉浸感。
[0064]
如图1所示,一种语音驱动虚拟人的口令理解方法,包括如下步骤:
[0065]
步骤1:确定待理解口令文本;待理解口令文本即需要进行意图理解的文本,是对用户输入的口令进行语音识别得到的;例如用户发出口令“把门打开”,此处“把门打开”即为待理解口令文本;
[0066]
步骤2:将所述待理解口令文本输入至口令理解模型中,得到口令理解结果;如图2所示,其中,所述口令理解模型包括词向量训练模块、词向量修正模块和余弦相似度计算模块三部分;
[0067]
步骤2

1:所述词向量训练模块对训练集采用d

skip

gram算法进行词向量学习,得到词向量空间;其中,所述训练集是对中文语料库进行分词、去除停用词的文本预处理操作后生成的;所述d

skip

gram算法是在skip

gram算法基础上添加方向标签构造得到的,能通过学习上下文信息来用词向量的方式表征词的语义信息,进而使得语义上相似的词在词向量空间内距离接近;
[0068]
步骤2

2:所述词向量修正模块基于虚拟人动作指令库建立语义约束条件,进而构造出词向量修正函数,对词向量进行轻量级修正,得到修正后的词向量空间;其中,所述虚拟人动作指令库是虚拟人可执行的交互动作的集合;所述语义约束条件包含虚拟人动作指令的同义词约束集和异义词约束集;所述词向量修正函数由同义词吸引子函数、异义词排斥子函数、词向量保持子函数三个子函数构成;所述词向量轻量级修正是通过所述词向量修正函数,对词向量进行修正,得到修正后的词向量空间;
[0069]
步骤2

3:所述余弦相似度计算模块在修正后的词向量空间中,计算出与待理解口令文本词向量的余弦距离最近的词向量所对应的虚拟人动作指令,进而输出这一虚拟人动作指令,得到口令理解结果。
[0070]
进一步地,所述步骤2

1中的训练集获取方法如下:
[0071]
如图3所示,对文本预处理,使用结巴分词器读取开源语料库文本,先采用精确模式进行分词,得到分词后的文本集,判断文本集中的词是否与停用词表匹配,若匹配则删除该词,若不匹配,则保留该词,直到将分词后的文本集中的每个词都遍历完,完成文本预处理操作,得到训练集v={w1,w2,w3,

,w
t


w
|v|
},w
t
表示训练集的第t个词。
[0072]
进一步地,所述d

skip

gram算法是在skip

gram算法的模型基础上为每个词引入一个方向标签,结合词在上下文中的共现信息和方向信息共同学习词的向量表示;
[0073]
图4是skip

gram算法的模型示意图,skip

gram算法是一个包括输入层、隐藏层和
输出层的三层神经网络模型,其中,模型输入为词w
i
,输出是w
i
的上下文相邻词

,w
oi
‑2,w
oi
‑1,w
oi+1
,w
oi+2


,输出词个数由模型上下文词窗口大小决定;隐藏层的权重矩阵包含了训练集所有词汇的输出词向量,模型通过反向传播算法和随机梯度下降法来更新权重矩阵,训练词向量。
[0074]
如图5所示,是本发明中d

skip

gram算法的模型示意图,d

skip

gram算法是在skip

gram算法的模型基础上为每个词引入一个方向标签,结合词在上下文中的共现信息和方向信息共同学习词的向量表示,即d

skip

gram算法训练出的词向量将多一个维度来表示方向信息,这使词向量信息更丰富。
[0075]
d

skip

gram算法的具体步骤为:
[0076]
步骤2
‑1‑
1:计算给定词w
t
时的上下文词w
t+i
的出现概率p(w
t+i
|w
t
):
[0077][0078]
式中,exp表示以e为底的指数函数;v表示训练集;是词w
t
的词向量表示;当i<0时,w
t+i
表示词w
t
的上文第i个词,当i>0时,w
t+i
表示词w
t
的下文第i个词;是词w
t+i
的词向量表示,是的转置矩阵;
[0079]
步骤2
‑1‑
2:定义方向函数g(w
t+i
,w
t
),用来度量上下文词与给定词之间的方向信息,计算公式为:
[0080][0081]
式中,表示上下文词w
t+i
相对于给定词w
t
的方向向量,是的转置矩阵;
[0082]
步骤2
‑1‑
3:构造d

skip

gram算法的目标函数l
d

sg
,计算公式为:
[0083][0084]
式中,l
d

sg
表示d

skip

gram算法的目标函数,|v|表示训练集的词汇数;c是上下文词的窗口的大小,本发明实施例设c=5;
[0085]
步骤2
‑1‑
4:采用反向传播算法和随机梯度下降法更新d

skip

gram算法的目标函数l
d

sg
的参数,使函数值l
d

sg
最大化,更新范式为:
[0086][0087][0088]
其中,分别是词w
t
更新后和更新前的词向量;分别是w
t+i
相对于w
t
更新后和更新前的方向向量;η是学习率,本实施例初始学习率设为0.025;d是w
t+i
相对于w
t
的方向标签,定义为:
[0089][0090]
当w
t+i
位于w
t
左侧时,d=1,当w
t+i
位于w
t
右侧时,d=0;
[0091]
本实施例经过5次迭代后,得到词向量空间其中,下标n是词向量的个数,且n=|v|,即与训练集的词数相等。
[0092]
进一步地,所述基于虚拟人动作指令库建立语义约束条件,约束条件包括同义词约束集s和异义词约束集a,具体如下:
[0093]
所述虚拟人动作指令库是虚拟人可执行的交互动作的集合,根据虚拟人动作指令库,结合人们日常表达习惯从《同义词词林》和csc中文语义词库中找出虚拟人动作指令的同义及近义表达,将虚拟人动作指令及其同义和近义表达两两搭配组成同义词约束集s,不同指令的各种表达方式两两搭配组成异义词约束集a;两个约束集中均以词对(w
p
,w
q
)的形式保存具有同义关系或异义关系的词。
[0094]
进一步地,所述构造出词向量修正函数,对词向量进行修正,得到修正后的词向量空间的方法为:如图6所示,所述词向量修正函数包括同义词吸引子函数、异义词排斥子函数、词向量保持子函数,将步骤2

1训练出的词向量输入到词向量修正函数中,并采用随机梯度下降法最小化损失,得到修正后的词向量空间,具体步骤如下:
[0095]
步骤2
‑2‑
1:基于同义词约束集s和余弦距离构造同义词吸引子函数计算公式为:
[0096][0097]
式中,是损失函数;(w
p
,w
q
)是同义词约束集s中的同义词词对;分别是词w
p
,w
q
修正后的词向量表示;表示的余弦距离;α表示同义词词向量间的理想最大距离,本实施例设为0,即同义约束的优化目标是同义词对的词向量相同。
[0098]
步骤2
‑2‑
2:基于异义词约束集a和余弦距离构造异义词排斥子函数计算公式为:
[0099][0100]
式中,(w
p
,w
q
)是异义词约束集a中的异义词词对;β表示异义词词向量间的理想最小距离,本实施例设为1,即异义约束的优化目标是异义词对的词向量正交。
[0101]
步骤2
‑2‑
3:基于余弦距离构造词向量保持子函数计算公式为:
[0102][0103]
其中,是词w
t
修正后的词向量表示;
[0104]
步骤2
‑2‑
4:分配权值,结合同义词吸引子函数、异义词排斥子函数和词向量保持子函数构造出词向量修正函数,对词向量进行修正,计算公式为:
[0105]
[0106]
γ1+γ2+γ3=1
ꢀꢀꢀꢀ
(11)
[0107]
式中,表示词向量修正方法的目标函数,由三部分函数损失加权确定,γ1、γ2、γ3是控制三部分子函数权重的参数,本实施例设为γ1=0.33,γ2=0.33,γ3=0.34;
[0108]
采用随机梯度下降法对目标函数的最小值进行求解,迭代得到修正后的词向量空间
[0109]
进一步地,所述步骤2

3具体包括:
[0110]
获取输入的待理解口令文本在修正后的词向量空间中对应的词向量;计算待理解口令文本词向量与虚拟人动作指令库中的所有动作指令的词向量的余弦距离,选取余弦距离最接近1的词向量所对应的动作指令,并输出这一动作指令作为口令文本的理解结果。
[0111]
进一步地,所述余弦距离定义为:
[0112][0113]
式中,n是词向量的维数;分别表示词向量的在第i个维度上的向量分量。
[0114]
本发明实施例建立的虚拟人动作指令库包含42个虚拟人可执行的交互动作,如“打招呼”、“拥抱”、“跑步”、“抬头”、“低头”等。为突出本发明的优点,以42个动作指令为口令基础,补充虚拟人可执行动作的多种近义口语表达,如“打招呼”的近义表达“打招呼、打声招呼、打个招呼、问好”,“低头”的近义表达“俯首、垂头、看下面、看下边、往下看”等,最后组成了一个包含了256个虚拟人驱动口令的口令测试集,经过语音测试,采用本发明所提出的口令理解方法对于256个虚拟人驱动口令可以正确理解其中249个口令的意图信息,口令理解正确率可达到97.266%。这一方法的应用有益于用户使用多样化的口令来语音驱动虚拟人执行同一动作,更有益于不同用户以自己的口语表达习惯来表示意图,进而语音驱动虚拟人执行相关动作。