语音数据检索装置、语音数据检索方法、语音数据检索程序和包含有语音数据检索程序的计算机可用介质 【技术领域】
本发明涉及一种语音数据检索装置、语音数据检索方法和用于从存储在语音数据库中的多条语音数据检索与用户的查询输入相对应的语音数据的语音数据检索程序,并且涉及包含有计算机可读语音数据检索程序的计算机可用介质。
背景技术
作为检索文本的方法之一,创建反转索引表的方法是已知的。在我们假设单单词作为检索单位的单词的情况下,按照如下步骤创建反转索引表:(1)指派给每个都包括目标单词的一个或多个文档的一个或多个文档ID号与目标单词相关联;和(2)目标单词与一个或多个文档ID号列表的对存储在数据库中。在反转索引表预先存储在语音数据检索装置的情况下,当用户将目标单词输入到语音数据检索装置作为查询时,语音数据检索装置能够通过参考反转索引表立即获取指派给每个都包括输入目标单词的一个或多个文档的一个或多个文档ID号,并将一个或多个文档ID号提供给用户。
如图1所示,反转索引表包括多个数据集。每个数据集包括单词和文档ID号列表。例如,单词“Osaka”包括在两个文档“2”和“8”中。
当用户将单词串输入到语音数据检索装置作为查询时,语音数据检索装置将输入单词串划分为单词并且检索指派给每个都包括该单词的一个或多个文档的一个或多个文档ID号。然后,为了检查单词间的相邻性,语音数据检索装置通过参考反转索引表获取每个都包括以在输入单词串中出现的顺序布置的单词的一个或多个文档的一个或多个文档ID号,并将一个或多个文档ID号提供给用户。需要注意具有文档ID号的目标单词串中每个单词的出现位置可以存储在反转索引表中,从而语音数据检索装置容易地检查单词间的相邻性。
如图2所示,反转索引表包括多个数据集。每个数据集包括单词、以及文档ID号和单词的出现位置的对。例如,单词“Osaka”出现在文档“2”的第十一个位置以及文档“8”的第十四个位置。在检索每个都包括单词串“TokyoOsaka”的一个或多个文档的情况下,语音数据检索装置通过参考反转索引表检索每个都包括单词“Tokyo”以及单词“Osaka”的一个或多个文档,并且对于每个检索的文档检查单词“Tokyo”的出现位置是否和单词“Osaka”相邻。更详细地,语音数据检索装置通过参考反转索引表检索到每个都包括单词“Tokyo”以及单词“Osaka”的文档“2”和“8”。然后,语音数据检索装置确定包括单词串“Tokyo Osaka”的文档是文档“2”,因为单词“Tokyo”以及单词“Osaka”出现在文档“2”的第十个和第十一个位置,而单词“Tokyo”以及单词“Osaka”出现在文档“8”的第十六个和第十四个位置。
非专利文献1(M.Saraclar和R.Sproat的“Lattice‑Based Search for SpokenUtterance Retrieval”Proc.HLT‑NAACL,2004)揭示了一种用于通过使用反转索引表检索语音数据的方法。更详细地,非专利文献1揭示了一种通过使用创建作为语音识别结果的说话发声(spoken utterance)点阵(lattice)来创建反转索引表从而快速检索语音数据的方法。在该方法中,假设说话发声作为包括目标单词的文档。当然,在该方法中,可以将音素或音节设置作为检索单位而不是将单词设置作为检索单位。
点阵是表示一个或多个单词、音素或音节的图表(见图3),该一个或多个单词、音素或音节是将说话发声的句子形成作为有向图(digraph)的一个或多个备选。需要注意图3中示出的数字“0”到“11”和符号“A”到“J”分别代表例如单词、音素或音节的节点号和弧标签。分别指派给从最左边的开始节点到最右边的结束节点的一个路径上的弧的标签的顺序指示对于创建作为语音识别结果的说话发声的句子的一个假设。除了标签之外,表示标签的可能性的权重、和标签对应的语音条中的开始时间和结束时间被指派给每个弧。图3所示的点阵作为图4所示的表格数据存储在语音数据检索装置中。图4所示的表表示图3所示的点阵中的节点和弧之间的连接关系。
在非专利文献1的方法中,语音数据检索装置创建反转索引表,其中包括标签和对应于标签的所有弧的列表的对(见图5)。例如,如果点阵中有弧e,语音数据检索装置在与反转索引表中的标签l[e]对应的弧的列表中注册数据集(id[e],k[e],n[e],p(e|k[e]),f(k[e])),其中变量id[e]表示指派给包括弧e的点阵的发声ID号,变量k[e]表示弧e的源中的源节点的号码,变量n[e]表示弧e的目的地中的目的节点的号码,变量p(e|k[e])表示从源于节点k[e]的弧中选择出弧e的概率,变量f(k[e])表示节点k[e]在点阵的所有路径上出现的概率。
基于点阵中弧的权重计算概率p(e|k[e])和f(k[e])的值。在点阵中从一个节点至另一个节点的路径的权重由路径上的弧的权重的乘积给出的情况下,通过用点阵中从开始节点至结束节点中通过节点k[e]的路径的权重之和除以从开始节点至结束节点的所有路径的权重之和来给出概率f(k[e])的值。通过用点阵中从节点k[e]至结束节点中通过弧e的路径的权重之和除以从节点[e]至结束节点的所有路径的权重之和来给出概率p(e|k[e])的值。
在加权有向非循环图(weighted directed acyclic graph)中,根据前向算法(Forward algorithm)有效地计算图中从开始节点至给定节点v的所有路径的权重的和α(v)。根据后向算法有效地计算途中从给定节点v至结束节点的所有路径的权重和β(v)。
下面首先描述前向算法。语音数据检索装置根据前向算法计算图G中从开始节点至给定节点v的所有路径的权重的和α(v)并同时计算图G中从开始节点至结束节点的所有路径的权重的和α。前向算法如下所示:
前向(G)
1 S←I
2 Q←I
3 for each q∈I do
4 α(q)=1
5 while S≠Φdo
6 q←HEAD(S)
7 DEQUEUE(S)
8 for each e∈E[q]do
9 α(n[e])←α(n[e])+f(q)*w(e)
10 If not n[e]∈Q then
11 Q←QU{n[e]}
12 ENQUEUE(S,n[e])
13 α←0
14 for each q∈F do
15 α←α+α(q)
其中图G具有节点集V,弧集E,开始节点集I以及结束节点集F,弧集E(v)是源于节点v的弧集,k[e]是弧e的源节点,n[e]是弧e的目的节点,l[e]是弧e的标签,w[e]是弧e的权重,HEAD(S)是用于将队列S的头元素返回的函数,DEQUEUE(S)是用于删除队列S的头元素的函数,ENQUEUE(S,x)是用于将元素x插入到队列S的结束位置的函数。
下面将描述后向算法。语音数据检索装置根据后续算法计算图G中从给定节点v至目的节点的所有路径的权重的和β(v)并同时计算图G中从开始节点至结束节点的所有路径的权重的和β。后向算法如下所示:
后向(G)
1 S←F
2 Q←F
3 for each q∈F do
4 β(q)=1
5 while S≠Φdo
6 q←HEAD(S)
7 DEQUEUE(S)
8 for each e∈H[q]do
9 β(n[e])←β(n[e])+w(e)*β(q)
10 If not k[e]∈Q then
11 Q←QU{k[e]}
12 ENQUEUE(S,k[e])
13 β←0
14 for each q∈I do
15 β←β+β(q)
其中图G具有节点集V,弧集H,开始节点集I以及结束节点集F,弧集H(v)是来自节点v的弧集,k[e]是弧e的源节点,n[e]是弧e的目的节点,l[e]是弧e的标签,w[e]是弧e的权重,HEAD(S)是用于将队列S的头元素返回的函数,DEQUEUE(S)是用于删除队列S的头元素的函数,ENQUEUE(S,x)是用于将元素x插入到队列S的结束位置的函数。
因此,α(k[e])*β(k[e])给出从开始节点至结束节点中经过节点k[e]的路径的权重的和。β(开始节点)给出从开始节点至结束节点的所有路径的权重的和。w[e]*β(n[e])给出从节点k[e]至结束节点中通过弧e的路径的权重的和。β(k[e])给出从节点k[e]至结束节点的所有路径的权重的和。因此,根据下述公式通过使用上述值计算概率p(e|k[e])和f(k[e])的值:
f(k[e])=α(k[e])*β(k[e])/β (开始节点)
p(e|k[e])=w[e]*β(n[e])/β(k[e])
如果在说话发声的点阵中发现和标签串L1,L2,...,LM对应的弧串e1,e2,...,em,根据下述公式计算出现概率:
P(e1,e2,...,em)=f(k[e1]*p(e1|k[e1])*p(e2|k[e2])*...*p(em|k[em]))
其中出现概率P(e1,e2,...,em)是节点k[e1]出现并且代表弧串e1,e2,...,em的路径经过从节点k[e1]的弧e1,从节点k[e2]的弧e2,...,以及从节点k[em]的弧em的概率。需要注意在弧串e1,e2,...,em中n[em‑1]是k[em]并且l[em]是Lm(1≤m≤M)。和说话发声点阵上查询的标签串相对应的所有弧串的出现概率之和成为说话发声中查询的标签串的出现概率。
在检索和查询的标签串相对应的弧串的处理中,语音数据检索装置可以将发声ID号列表中的每个发声ID号指派给与每个发声ID号相关联的说话发声中的查询的标签串相对应的弧串的出现概率,然后参考指派的出现概率分类发声ID号列表。进一步地,语音数据检索装置可以从发声ID号列表中删除指派了相对低的出现概率的发声ID号。
接下来将参考图6描述对于所有要检索的说话发声基于N点阵G1,...,GN来创建反转索引表的方法。
在步骤S1,语音数据检索装置将“1”指派给自变数(argument)i和j。在步骤S2,语音数据检索装置根据前向算法对于点阵Gi中的弧ej计算从开始节点至源节点k[ej]的所有路径的权重的和α(k[ej]),并且根据后向算法对于的弧ej计算点阵Gi中从源节点k[ej]至目的节点的所有路径的权重的和β(k[ej])。在步骤S3,语音数据检索装置对于点阵Gi中的弧ej计算数据集(id[ej],k[ej],n[ej],p(ej|k[ej]),f(k[ej]))。在步骤S4,语音数据检索装置在点阵Gi的反转索引表中和标签l[ej]相关联的弧列表E(l[ej])中注册数据集(id[ej],k[ej],n[ej],p(ej|k[ej]),f(k[ej]))。在步骤S5,语音数据检索装置确定自变数j的值是否等于点阵Gi中弧的总数M。如果自变数j的值不等于弧的总数M,语音数据检索装置执行步骤S6的处理。如果自变数j的值等于弧的总数M,语音数据检索装置执行步骤S7的处理。在步骤S6,语音数据检索装置将自变数j的值加1,然后返回到步骤S2的处理。在步骤S7,语音数据检索装置确定自变数i的值是否等于点阵的总数N。如果自变数i的值不等于点阵的总数N,语音数据检索装置执行步骤S8的处理。如果自变数i的值等于点阵的总数N,语音数据检索装置完成处理系列。在步骤S8,语音数据检索装置将自变数i的值增加1并将“1”指派给自变数j,然后返回步骤S2的处理。
根据上述方法,例如,语音数据检索装置从图3所示的点阵创建图5所示的反转索引表。
接下来,将参考图7和8描述用于关于点阵G1,...,GN从反转索引表有效地检索向包括了和查询的标签串L1,...,LM匹配的弧串的一个或多个点阵指派的一个或多个发声ID号列表的方法。首先,将参考图7描述用于检索包括了形成查询的标签串L1,...,LM的所有标签的一个或多个点阵以及检索指派给检索的一个或多个点阵的一个或多个发声ID号列表的方法。需要注意在该方法中不考虑标签的出现顺序。
在步骤S11,语音数据检索装置将“1”、“1”和“2”指派给自变数i、j和k。在步骤S12,语音数据检索装置从反转索引表中获取关于标签Li的弧列表E(Li)。在步骤S13,语音数据检索装置从弧列表E(Li)中读取和第j个数据集中包括的弧ej相对应的发声ID号id[ej],并将读取的发声ID号id[ej]注册在列表Rij中(1≤j≤S:S是弧列表E(Li)中包括的数据集的总数)。需要注意语音数据检索装置删除列表Rij中重复的发声ID号。在步骤S14,语音数据检索装置确定自变数j的值是否等于弧列表E(Li)中包括的数据集的总数S。如果自变数j的值不等于数据集的总数S,语音数据检索装置执行步骤S15的处理。如果自变数j的值等于数据集的总数S,语音数据检索装置执行步骤S16的处理。在步骤S15,语音数据检索装置将自变数j的值增加1,然后返回步骤S13的处理。在步骤S16,语音数据检索装置确定自变数i的值是否等于标签的总数M。如果自变数i的值不等于标签的总数M,语音数据检索装置执行步骤S17的处理。如果自变数i的值等于标签的总数M,语音数据检索装置执行步骤S18的处理。在步骤S17,语音数据检索装置将自变数i的值增加1并且将“1”指派给自变数j,然后返回步骤S12的处理。
在步骤S18,语音数据检索装置在输出列表C中注册在列表Rij(1≤j≤S)中注册的一个或多个发声ID号。在步骤S19,语音数据检索装置确定自变数i的值是否是“1”。如果自变数i的值是“1”,语音数据检索装置完成处理系列。如果自变数i的值不是“1”,语音数据检索装置执行步骤S20的处理。在步骤S20中,语音数据检索装置确定在列表Rkj(1≤j≤S)中是否有和输出列表C中包括的一个或多个发声ID号相同的一个或多个发声ID号。如果没有和列表C中包括的一个或多个发声ID号相同的一个或多个发声ID号,语音数据检索装置执行步骤S21的处理。如果有和列表C中包括的一个或多个发声ID号相同的一个或多个发声ID号,语音数据检索装置执行步骤S22的处理。在步骤S21,语音数据检索装置清空输出列表C并完成处理系列。在步骤S22,语音数据检索装置从输出列表C中删除和列表Rkj中包括的任何发声ID号都不相同的发声ID号。在步骤S23,语音数据检索装置确定自变数k的值是否等于标签的总数M。如果自变数k的值不等于标签的总数M,则语音数据检索装置执行步骤S24的处理。如果自变数k的值等于标签的总数M,语音数据检索装置完成处理系列。在步骤S24中,语音数据检索装置将自变数k的值增加1,然后返回步骤S20的处理。
接下来将参考图8描述对于包括了形成查询的标签串L1,...,LM的所有标签的每个点阵,确定根据图7的过程检索的标签的出现顺序是否匹配查询的标签的出现顺序。需要注意在该方法中并行计算弧串的出现概率的和,其中每个弧串都是作为标签的出现顺序匹配查询的标签出现顺序的结果而获取的。更详细地,该方法使用的事实是当没有弧串时出现概率的和变为“0”。
在步骤S31,语音数据检索装置将“1”、“1”和“1”指派给自变数i、j和m。在步骤S32,语音数据检索装置按照从整数“1”增加的顺序从输出列表C中读取和指派给包括在输出列表C中的发声ID号的注册号j相对应的弧列表Ej(Li)。在步骤S33,语音数据检索装置确定自变数1的值是否等于标签的总数M。如果自变数i的值不等于标签的总数M,语音数据检索装置执行步骤S34的处理。如果自变数i的值等于标签的总数M,语音数据检索装置执行步骤S35的处理。在步骤S34,语音数据检索装置将自变数i的值增加1然后返回步骤S32的处理。在步骤S35,语音数据检索装置关于弧列表Ej(Lm)中的每个数据集中包括的弧ejm计算下述等式Fm(ejm)=f(k[ejm])*p(ejm|k[ejm])。在步骤S36,语音数据检索装置确定自变数m的值是否等于标签的总数M。如果自变数m的值等于标签的总数M,语音数据检索装置执行步骤S37的处理。如果自变数m的值不等于标签的总数M,语音数据检索装置执行步骤S39的处理。在步骤S37,语音数据检索装置确定自变数j的值是否等于注册号的最大值T。如果自变数j的值不等于注册号的最大值T,语音数据检索装置执行步骤S38的处理。如果自变数j的值等于注册号的最大值T,语音数据检索装置执行步骤S42的处理。在步骤S38,语音数据检索装置将自变数j的值增加1然后返回步骤S32的处理。在步骤S39,语音数据检索装置将自变数m的值增加1。在步骤S40,语音数据检索装置关于弧列表Ej(Lm)中每个数据集中包括的弧ejm计算下述等式
当不计算Fm‑1时,语音数据检索装置计算上述等式为Fm‑1(e)=0。在步骤S41,语音数据检索装置确定自变数m的值是否等于标签的总数M。如果自变数m的值不等于标签的总数M,语音数据检索装置执行步骤S39的处理。如果自变数m的值等于标签的总数M,语音数据检索装置执行步骤S42的处理。在步骤S42,语音数据检索装置计算发声j中包括标签串L1,...,LM的概率
在步骤S43,语音数据检索装置确定概率P(L1,...,Lm)是否大于“0”。如果概率P(L1,...,Lm)大于“0”,语音数据检索装置执行步骤S44的处理。如果概率P(L1,...,Lm)不大于“0”,语音数据检索装置执行步骤S45的处理。在步骤S44,语音数据检索装置在列表S中注册发声ID号和概率P(L1,...,Lm)的对。在步骤S45,语音数据检索装置确定自变数j的值是否等于注册号的最大值T。如果自变数j的值不等于注册号的最大值T,语音数据检索装置执行步骤S38的处理。如果自变数j的值等于注册号的最大值T,语音数据检索装置完成处理系列。
在检索语音数据的传统方法中,语音数据检索装置通过基于在语音数据库中注册作为语音识别的结果的多条语音数据而获取的点阵来创建反转索引表。然而,在该传统方法中,存在问题:由于点阵包括冗余弧,反转索引表的文件大小增加。进一步地,相对于备选单词,语音数据检索装置不能检索包括语音识别中使用的语言模型不允许的单词间相邻性的单词串,因为点阵仅包括语言模型中允许的单词间相邻。因此,存在传统方法中检索性能下降的问题。
【发明内容】
本发明的第一目的是提供一种能够减小反转索引表的文件大小的语音数据检索装置、语音数据检索方法和语音数据检索程序,以及提供具有计算机可读语音数据检索程序的计算机可用介质。
本发明的第二目的是提供一种能够不受语音识别中使用的语言模型的限制而高度准确地检索语音数据的语音数据检索装置、语音数据检索方法和语音数据检索程序,以及提供具有计算机可读语音数据检索程序的计算机可用介质。
本发明的第三方面是提供一种当使用创建用于减小反转索引表的文件大小的混淆网络(confusion network)时能够有效地检索反转索引表的语音数据检索装置、语音数据检索方法和语音数据检索程序,以及提供具有计算机可读语音数据检索程序的计算机可用介质。
为了实现上述目的,提供了一种语音数据检索装置,包括:语音数据库,包括多条语音数据;语音识别单元,用于从语音数据库读取语音数据,执行关于所读取的语音数据的语音识别处理,并将语音识别处理的结果作为点阵输出,在所述点阵中音素、音节或单词是基本单位;混淆网络创建单元,用于基于来自语音识别单元的点阵来创建混淆网络并将语音识别处理的结果作为混淆网络输出;反转索引表创建单元,用于基于来自混淆网络创建单元的混淆网络来创建反转索引表;查询输入单元,用于接收来自用户的查询输入,执行关于所接收的查询的语音识别处理,并将该语音识别处理的结果作为字符串输出;查询转换单元,用于将来自查询输入单元的字符串转换为标签串,在所述标签串中音素、音节或单词是基本单位;以及标签串对照单元,用于对照来自所述反转索引表创建单元的反转索引表和来自查询转换单元的标签串,检索标签串和语音数据库中都包括的语音数据,和输出指针列表,所述指针列表指示所检索的语音数据在语音数据库中存储的地址。
根据本发明,和现有的语音数据检索装置相比,语音数据检索装置能够减小反转索引表的文件大小。进一步地,和现有的语音数据检索装置相比,语音数据检索装置能够不受语音识别中使用的语言模式的限制而高度准确地检索语音数据。
在本发明的优选实施例中,标签串对照单元参考反转索引表来创建由指派给标签串中包括的一个或多个标签的一个或多个弧形成的部分混淆网络,用一维阵列图表示标签串并且然后向一维阵列图中的每个节点指派返回到每个节点的弧以创建查询的图,以及计算部分混淆网络和查询的图之间的交叉。
根据实施例,当使用创建的混淆网络来减小反转索引表的文件大小时语音数据检索装置能够有效地检索反转索引表。
为了实现上述目的,提供了一种语音数据检索装置,包括:语音数据库,包括多条语音数据;两个或更多的语音识别单元,每个都用于从语音数据库读取语音数据,执行关于所读取的语音数据的语音识别处理,并将语音识别处理的结果作为点阵输出,在所述点阵中音素、音节或单词是基本单位,其中从一个语音识别单元输出的点阵的基本单位和从另一个语音识别单元输出的点阵的基本单位不同;两个或更多的混淆网络创建单元,分别连接到两个或更多的语音识别单元,其中每个混淆网络创建单元用于基于来自对应的语音识别单元的点阵来创建混淆网络并将语音识别处理的结果作为混淆网络输出;两个或更多的反转索引表创建单元,分别连接到两个或更多的混淆网络创建单元,其中每个反转索引表创建单元用于基于来自对应的混淆网络创建单元的混淆网络来创建反转索引表;查询输入单元,用于接收来自用户的查询输入,执行关于所接收的查询的语音识别处理,并将该语音识别处理的结果作为字符串输出;两个或更多的查询转换单元,每个查询转换单元用于将来自查询输入单元的字符串转换为标签串,在所述标签串中音素、音节或单词是基本单位,其中在一个查询转换单元中转换的标签串的基本单位和在另一个查询转换单元中转换的标签串的基本单位不同;两个或更多的标签串对照单元,分别连接到两个或更多的反转索引表创建单元和两个或更多的查询转换单元,其中每个标签串对照单元用于对照来自对应的反转索引表创建单元的反转索引表和来自对应的查询转换单元的标签串,检索标签串和语音数据库中都包括的语音数据;以及检索结果整合单元,用于从两个或更多的标签串对照单元读取检索结果,整合所读取的检索结果来创建检索结果列表,和输出指针列表,所述指针列表指示检索结果列表中包括的语音数据在语音数据库中存储的地址。
根据本发明,和现有的语音数据检索装置相比,语音数据检索装置能够使用多个标签系统并行执行语音数据检索处理。
为了实现上述目的,提供了一种语音数据检索装置,包括:语音数据库,包括多条语音数据;两个或更多的语音识别单元,每个都用于从语音数据库读取语音数据,执行关于所读取的语音数据的语音识别处理,并将语音识别处理的结果作为点阵输出,在所述点阵中音素、音节或单词是基本单位,其中从一个语音识别单元输出的点阵的基本单位和从另一个语音识别单元输出的点阵的基本单位不同;两个或更多的混淆网络创建单元,分别连接到两个或更多的语音识别单元,其中每个混淆网络创建单元用于基于来自对应的语音识别单元的点阵来创建混淆网络并将语音识别处理的结果作为混淆网络输出;混淆网络组合单元,用于组合来自两个或更多的混淆网络创建单元的混淆网络来创建组合网络,和输出组合网络;反转索引表创建单元,用于基于来自混淆网络组合单元的组合网络来创建反转索引表;查询输入单元,用于接收来自用户的查询输入,执行关于所接收的查询的语音识别处理,并将该语音识别处理的结果作为字符串输出;查询转换单元,用于将来自查询输入单元的字符串转换为标签串,在所述标签串中音素、音节和单词中的两个或更多是基本单位;标签串对照单元,用于对照来自反转索引表创建单元的反转索引表和来自查询转换单元的标签串,检索标签串和语音数据库中都包括的语音数据,和输出指针列表,所述指针列表指示所检索的语音数据在语音数据库中存储的地址。
根据本发明,和现有的语音数据检索装置相比,即使查询中包括注册单词和非注册单词,语音数据检索装置也能够检索语音数据。
为了实现上述目的,提供了一种语音数据检索方法,包括:从包括了多条语音数据的语音数据库读取语音数据;对于所读取的语音数据执行语音识别处理;将语音识别处理的结果作为点阵输出,在所述点阵中音素、音节或单词是基本单位;基于输出的点阵来创建混淆网络;将语音识别处理的结果作为混淆网络输出;基于输出的混淆网络来创建反转索引表;接收用户的查询输入;对于所接收的查询执行语音识别处理;将语音识别处理的结果作为字符串输出;将输出的字符串转换为标签串,在所述标签串中音素、音节或单词是基本单位;对照反转索引表检查标签串;检索标签串和语音数据库中都包括的语音数据;和输出指针列表,所述指针列表指示所检索的语音数据在语音数据库中存储的地址。
根据本发明,和现有的语音数据检索方法相比,语音数据检索方法能够减小反转索引表的文件大小。进一步地,和现有的语音数据检索方法相比,语音数据检索方法能够不受语音识别中使用的语言模式的限制而高度准确地检索语音数据。
为了实现上述目的,提供了一种语音数据检索程序,包括:第一语音数据检索程序代码,用于使得计算机从包括了多条语音数据的语音数据库读取语音数据;第二语音数据检索程序代码,用于使得计算机执行关于所读取的语音数据的语音识别处理;第三语音数据检索程序代码,用于使得计算机将语音识别处理的结果作为点阵输出,在所述点阵中音素、音节或单词是基本单位;第四语音数据检索程序代码,用于使得计算机基于输出的点阵来创建混淆网络;第五语音数据检索程序代码,用于使得计算机将所述语音识别处理的结果作为所述混淆网络输出;第六语音数据检索程序代码,用于使得计算机基于输出的混淆网络来创建反转索引表;第七语音数据检索程序代码,用于使得计算机接收用户的查询输入;第八语音数据检索程序代码,用于使得计算机执行关于所接收的查询的语音识别处理;第九语音数据检索程序代码,用于使得计算机将语音识别处理的结果作为字符串输出;第十语音数据检索程序代码,用于使得计算机将输出的字符串转换为标签串,在所述标签串中音素、音节或单词是基本单位;第十一语音数据检索程序代码,用于使得计算机对照反转索引表检查标签串;第十二语音数据检索程序代码,用于使得计算机检索标签串和语音数据库中都包括的语音数据;和第十三语音数据检索程序代码,用于使得计算机输出指针列表,所述指针列表指示所检索的语音数据在语音数据库中存储的地址。
根据本发明,和现有的语音数据检索程序相比,语音数据检索程序能够使得计算机减小反转索引表的文件大小。进一步地,和现有的语音数据检索程序相比,语音数据检索程序能够使得计算机不受语音识别中使用的语言模式的限制而高度准确地检索语音数据。
为了实现上述目的,提供了一种具有计算机可读语音数据检索程序的计算机可用介质,所述计算机可读语音数据检索程序包括:第一语音数据检索程序代码,用于使得计算机从包括了多条语音数据的语音数据库读取语音数据;第二语音数据检索程序代码,用于使得计算机执行关于所读取的语音数据的语音识别处理;第三语音数据检索程序代码,用于使得计算机将语音识别处理的结果作为点阵输出,在所述点阵中音素、音节或单词是基本单位;第四语音数据检索程序代码,用于使得计算机基于输出的点阵来创建混淆网络;第五语音数据检索程序代码,用于使得计算机将语音识别处理的结果作为所述混淆网络输出;第六语音数据检索程序代码,用于使得计算机基于输出的混淆网络来创建反转索引表;第七语音数据检索程序代码,用于使得计算机接收用户的查询输入;第八语音数据检索程序代码,用于使得计算机执行关于所接收的查询的语音识别处理;第九语音数据检索程序代码,用于使得计算机将语音识别处理的结果作为字符串输出;第十语音数据检索程序代码,用于使得计算机将输出的字符串转换为标签串,在所述标签串中音素、音节或单词是基本单位;第十一语音数据检索程序代码,用于使得计算机对照反转索引表检查标签串;第十二语音数据检索程序代码,用于使得计算机检索标签串和语音数据库中都包括的语音数据;和第十三语音数据检索程序代码,用于使得计算机输出指针列表,所述指针列表指示所检索的语音数据在语音数据库中存储的地址。
根据本发明,和现有的语音数据检索程序相比,语音数据检索程序能够使得计算机减小反转索引表的文件大小。进一步地,和现有的语音数据检索程序相比,语音数据检索程序能够使得计算机不受语音识别中使用的语言模式的限制而高度准确地检索语音数据。
【附图说明】
图1是现有反转索引表,包括每个都包括单词和文档ID号列表的多个数据集;
图2是现有反转索引表,包括每个都包括单词以及文档ID号和单词的出现位置对的多个数据集;
图3是现有点阵,以有向图示出了将成为形成说话发声的句子的一个或多个备选的一个或多个单词、音素或音节;
图4是表示图3所示的点阵中节点和弧之间的连接关系的表数据;
图5是根据非专利文档1的方法基于图3所示的点阵创建的反转索引表;
图6是描述用于基于N点阵创建反转索引表的现有方法的流程图;
图7是用于检索一个或多个点阵以及用于检索指派给所检索的一个或多个点阵的一个或多个发声ID号的列表的现有方法的流程图,其中在该一个或多个点阵中所有的标签形成查询的标签串;
图8是表示对于其中包括形成查询的标签串的所有标签的每个点阵,用于确定根据图7所检索的标签的出现顺序是否匹配查询的标签出现顺序的现有方法的流程图;
图9是根据本发明第一实施例的语音数据检索装置的框图;
图10是根据本发明第一实施例的基于图3所示的点阵而创建的混淆网络;
图11是表示图10所示的混淆网络中节点和弧的连接关系的表数据;
图12是基于图10所示的混淆网络而创建的反转索引表;
图13A是部分混淆网络,该部分混淆网络由从图10所示的混淆网络中提取,由形成查询的标签串的标签和特别符号形成;
图13B是查询图;
图13C是创建作为图13A所示的部分混淆网络和图13B所示的查询图之间的交叉结果的图;
图14是根据本发明第一实施例的用于基于查询的标签串而获取对于标签串的发声ID号和出现概率的对的流程图;
图15是描述根据本发明第一实施例的语音数据检索方法的流程图;
图16是根据本发明第一实施例的表示反转索引表的减小效果和语音数据的检索性能的表数据;
图17是根据本发明第二实施例的语音数据检索装置的框图;
图18是表示根据本发明第二实施例的语音数据检索方法的流程图;
图19是根据本发明第三实施例的语音数据检索装置的框图;
图20是表示根据本发明第三实施例的用于创建组合网络的方法的流程图;
图21A是根据本发明第三实施例的音素混淆网络;
图21B是根据本发明第三实施例的单词混淆网络;
图21C是根据本发明第三实施例的单词‑音素组合网络;
图22A是根据本发明第三实施例的第一有限状态置换器;
图22B是根据本发明第三实施例的第二有限状态置换器;
图22C是根据本发明第三实施例的第三有限状态置换器;和
图23是表示根据本发明第三实施例的语音数据检索方法的流程图。
【具体实施方式】
下面将参考图9至23描述本发明的第一至第三实施例。现有语音数据检索装置已经基于从语音识别单元输出的点阵创建了反转索引表。相反,本发明的语音数据检索装置将从语音识别单元输出的点阵转换为混淆网络,然后基于混淆网络创建反转索引表。从而,因为本发明的语音数据检索装置不是基于点阵而是基于混淆网络来创建反转索引表的,将在标签串对照单元中执行的标签检查方法和传统的标签检查方法不同。
(第一实施例)
将参考图9至16描述本发明的第一实施例。
如图9所示,语音数据检索装置10包括语音数据库1、语音识别单元2、混淆网络创建单元3、反转索引表创建单元4、反转索引表存储单元5、查询输入单元6、查询转换单元7、标签串对照单元8和检索结果输出单元9。
语音数据库1包括将被检索的多条语音数据。从各种文件获取每条语音数据。例如,从电视节目、电影等中的语音跟踪文件,因特网上的语音文件或因特网上的带有声音的视频文件获取每条语音数据。需要注意每条语音数据可以由更精确的发声单元使用用于自动地检索语音信号中的无声区间的手段来划分。
语音识别单元2从语音数据库1读取多条语音数据并执行语音识别处理。然后,语音识别单元2向混淆网络创建单元3以例如音素(phoneme)点阵、音节点阵或单词点阵的有向图类型数据结构输出对于语音识别的结果的一个备选或对于多个语音识别结果的多个备选。在当前实施例中,语音识别单元2以有向图类型数据结构向混淆网络创建单元3输出对于多个语音识别结果的多个备选。
在语音识别处理中,通常使用声学模型、发音字典和语言模型。声学模型包括以语音识别为基本单位(例如音素)的声学图案字符。在语音识别的基本单位是音素的情况下,声学模型包括时间段(例如三个时间段:第一半段、中间段和第二半段)识别的平均声学图案,时间段是划分基本单位得到的子单位之一。发音字典包括表示单词和与单词相对应的音素串之间的关系的表。通常,发音字典仅包括几万个单词以减少处理步骤的数目和在语音识别处理中要使用的存储器量。语言模型被表示为包括用于连接两个或更多的单词的规则以及表示单词间连接可能性的权重的有向图。
接下来将描述用于生成对于语音识别的结果的一个备选并然后将该一个备选输出到混淆网络创建单元3的处理。
语音识别单元2比较说话发声的声学图案序列和与语音模型中允许的每个单词串相对应的音素串的声学图案序列,并计算两个声学图案序列的声学相似度。然后,语音识别单元2通过向计算的声学相似度增加代表语言模型中允许的单词之间的连接可能性的权重,来计算分数。在重复上述处理之后,语音识别单元2从多个计算的值中选择具有最高值的一个分数。
更详细地,语音识别处理具有下述处理。语音识别单元2在从说话发声的开始点的时间段(例如10毫秒)计算声学图案(例如梅尔频标倒谱系数MFCC),并生成声学图案序列。然后,语音识别单元2从声学图案序列中读取第一声学图案,并计算该第一声学图案和允许位于语言模型(例如N‑gram模型)中的句子的第一位置处的每个单词的第一音素的第一声学图案之间的声学相似度。语音识别单元2将计算的声学相似度注册为时间“1”的假设。
接下来,语音识别单元2从声学图案序列中读取第二声学图案,并基于时间“1”的声学图案继续和时间“1”的声学图案根据每个单词的音素串而改变的两个可能性生成两个假设,作为时间“1”的假设之后的时间“2”的假设。更详细地,语音识别单元2计算(1)第二声学图案和与时间“1”的声学图案一致的每个单词的第一音素的第二声学图案的声学相似度;和(2)第二声学图案和与时间“1”的声学图案不同的每个单词的第一音素的第二声学图案的声学相似度。然后,语音识别单元2将每个计算出的声学相似度加到注册作为时间“1”的假设的声学相似度并生成两个新的声学相似度。语音识别单元2将两个新的声学相似度注册作为时间“2”的假设。
因而,语音识别单元2将时间的值增加1,顺序从声学图案序列读出声学图案,将当前时间中计算的每个声学相似度加到注册作为前一时间的假设的每个声学相似度,并将计算的声学相似度注册作为在前一时间的假设之后的当前时间的假设。需要注意在前一时间的声学图案是单词的最后声学图案的情况下,考虑前一时间的声学图案继续、以及前一时间的声学图案将改变为允许位于单词后的位置的下一个单词的第一音素的第一声学图案的两种可能,语音识别单元2生成作为当前时间的假设的M+1(M:语言模型中允许位于单词后的位置的下一个单词的数目)假设。如果单词改变,语音识别单元2通过向注册作为前一时间的假设的声学相似度加上表示语言模型中允许的单词间的连接可能性的权重来计算分数。
在从声学图案序列读取最后声学图案并生成当前时间的多个假设之后,语音识别单元2从多个假设中选择具有与语言模型中允许位于句子的最后位置的单词的最后音素的最后声学图案相对应的最高分数的假设。然后,语音识别单元2将和所选的假设相对应的单词串(或音素串)作为对于语音识别结果的一个备选输出到混淆网络创建单元3。
在语音识别处理中,如果每个时间的两个或更多的声学图案出现在从相同单词串(或相同音素串)的声学图案序列的开始点之后的相同位置,语音识别单元2可以保持每个时间的两个或更多的假设中具有最高分数的假设,并删除其它假设。在这种情况下,语音识别单元2可以删除每个时间的两个或更多的假设中每个都具有低于特定阈值的分数的一个或多个假设。
接下来将描述用于生成对于语音识别的结果的多个备选并且然后将多个备选输出到混淆网络创建单元3。
如上所述的,在从声学图案序列读取最后声学图案并生成当前时间的多个假设之后,语音识别单元2将和生成的多个假设相对应的单词串(或音素串)以有向图类型数据结构作为对于多个语音识别结果的多个备选输出到混淆网络创建单元3。该数据结构具有作为图的弧的单词名称(或音素名称)、开始时间、结束时间和分数信息。关于从位于相关联的单词(或音素)之后的一个或多个单词(或音素)中选择的单词(或音素),每个弧具有单词名称(或音素名称)、开始时间、结束时间和分数信息,并将源节点和目的节点连接起来。该操作创建表示对于多个语音识别结果的多个备选的有向图。该有向图被称为点阵。如果每个弧表示一个单词,该有向图被称为单词点阵。如果每个弧表示一个音素,该有向图被称为音素点阵。
点阵仅包括具有单词间的连接是语音识别处理中采用的语言模型中所允许的单词的单词串。进一步地,如果多个单词的开始时间或结束时间彼此不同而多个单词是相同的单词,点阵包括冗余弧,因为多个单词被注册作为彼此不同的弧。
混淆网络创建单元3将例如从语音识别单元2输出的音素点阵、音节点阵或单词点阵的图类型数据结构转换为混淆网络。图10描述了从图3所示的点阵获取的混淆网络。图10所示的弧“A”、“B”、“C”、“D”、“E”、“F”、“G”、“H”、“I”和“J”表示例如音素、音节或单词的标签。符号“@”代表指示不存在任何对应的标签并且跳过源节点和目的节点的特别标签。图11描述了图10所示的混淆网络的表数据。
混淆网络表示有向图类型数据结构的多个假设以及点阵。从混淆网络的最左边开始节点到最右边结束节点的一个标签串表示对于语音识别结果的一个备选。混淆网络创建单元3通过压缩点阵中属于相邻时间区域的相同标签以创建一个标签并且然后将点阵中属于相邻时间区域的不同标签集中起来以创建一个对立的备选组来将图3所示的点阵转换为图10所示的混淆网络。标签对{@,B,C}、{A,D}、{@,E,F}、{I,J}指示对立的备选组。这些对立的备选组以此顺序相连以形成混淆网络。符号“@”代表指示不存在任何对应的标签的特别标签。例如,尽管在图3所示的点阵中存在从节点“0”通过标签“A”的路径,在图10所示的混淆网络中存在通过使用特别标签“@”从节点“0”通过标签“A”而跳过标签“B”和“C”的路径。因而,混淆网络能够包括对于多个语音识别结果的多个备选,因为混淆网络具有紧凑的数据结构和多条路径(例如和图3所示的点阵相比,加入了从节点“0”通过标签“D”的路径)。
在非专利文档2(L.Mangu,E.Brill和A.Stolcke,“Finding consensus inspeech recognition:word error minimization and other applications of confusionnetworks”,Computer Speech and Language,14,pp.373‑400,2000)中清楚地描述了用于将点阵转换为混淆网络的算法。关于点阵中的每个弧,混淆网络创建单元3首先将弧的权重转换为弧的后验概率,从而将点阵转换为混淆网络。例如,通过将点阵G中从开始节点到结束节点中通过弧e的路径的权重和除以从开始节点到结束节点的所有路径的权重和给出点阵G中的弧e的后验概率P(e|G)的值。即,根据下式计算后验概率P(e|G)的值:
P(e|G)=α(k[e])*w[e]*β(n[e])/β(开始节点)
混淆网络创建单元3然后压缩其中每个的弧间的相似度都具有特定值或更高值的两个或更多的弧,或者其中每个的弧间的相似度都具有最高值的两个弧,以创建一个弧。需要注意弧间的相似度是基于时间段间的重叠程度、发音间的相似度等的度量。当压缩两个或更多的弧(或两个弧)时,混淆网络创建单元3假设通过将两个或更多的弧(或两个弧)的后验概率相加而给出的值作为创建的一个弧的后验概率。
混淆网络创建单元3接下来创建分别包括剩余的弧的多个对立的备选组,并压缩其中每个的对立的备选组间的相似度都具有特定值或更高值的两个或更多的对立的备选组,或者其中每个的对立的备选组间的相似度都具有最高值的两个对立的备选组,以创建一个对立的备选组(标签类)。需要注意对立的备选组间的相似度是基于一个组中包括的弧的时间段和另一个组中包括的弧的时间段间的重叠程度、一个组中包括的弧的发音和另一个组中包括的弧的发音间的相似度等的度量。当混淆网络创建单元3压缩两个或更多的相对的备选组(或两个相对的备选组)以创建一个对立的备选组时,如果存在每个都通过点阵中从开始节点至结束节点的所有路径中的剩余弧的一个或多个路径,混淆网络创建单元3不压缩其中包括剩余弧的两个或更多的对立的备选组(或两个相对的备选组),从而不破坏点阵上的弧的顺序关系。
混淆网络创建单元3根据原始点阵上的弧的临时顺序将剩余的对立的备选组布置成一行,将一个节点放在每两个相邻的对立的备选组之间,并将每个对立的备选组中的每个弧连接到相邻的两个节点。该处理创建了图10所示的混淆网络。在对立的备选组中包括的弧的后验概率和小于“1”的情况下,这意味着在原始点阵中从开始节点到结束节点的所有路径中存在不经过对立的备选组中包括的任何弧的路径。为了表示和该路径相对应的标签串,混淆网络创建单元3向对立的备选组加入具有指示路径可以跳过对立的备选组的特别标签“@”的弧(见图11)。根据下式计算增加的弧的后验概率值:
1‑(对立的备选组中包括的弧的后验概率和)
反转索引表创建单元4用指派给每个弧的标签将来自混淆网络创建单元3的每个混淆网络的每条弧信息进行分类以创建反转索引表。基于混淆网络创建反转索引表的过程和基于点阵创建反转索引表的过程相同。
在混淆网络中,节点的出现概率f(k[e])总是“1”,因为从开始节点到结束节点的任何路径经过所有的节点。因此,不必在反转索引表中注册节点的出现概率f(k[e])的值。进一步地,通过从开始节点起顺序地将节点号指派给节点,建立源节点号和目的节点号之间的下述关系:
k[e](源节点号)=n[e](目的节点号)‑1
相对于该关系,反转索引表创建单元4在反转索引表中并不是既注册源节点号k[e]又注册目的节点号n[e],而是仅注册源节点号k[e]。因此,将点阵转换为混淆网络能够减少要在反转索引表中注册的弧的数目以及弧信息的大小。
图12描述了基于图10所述的混淆网络而创建的反转索引表。在反转索引表中创建的每个弧具有数据集(发声ID号id[e])、目的结点数目k[e]、后验概率P(e|G)。反转索引表创建单元4将创建的反转索引表写入文件,然后将文件输出到反转索引表存储单元5。反转索引表创建单元4可以直接地将创建的反转索引表输出到标签串对照单元8。
查询输入单元6接收来自用户的查询输入。查询输入是用户通过键盘的字符串的输入或声音输入。在声音输入的情况下,查询输入单元6执行语音识别处理以将声音输入转换为字符串。
查询转换单元7基于音素单位、音节单位或单词单位将作为查询的字符串输入转换为标签串。在基于单词单位将字符串转换为标签串的情况下,查询转换单元7通过关于单词名称和单词间相邻性(连接可能性)来选择在用单词单元划分字符串时具有相邻单词间的最大连接可能性之和的单词串,然后将所选的单词串作为标签串。在基于音素单位或音节单位将字符串转换为标签串的情况下,查询转换单元7通过存储关于单词和对于单词的语音表示(音素串或音节串)的信息的字典来用语音表示代替字符串中包括的单词以创建音素串或音节串,并将创建的音素串或音节串作为标签串。该字典和语音识别单元2中采用的发音字典不同,并且是例如通常包括几十万单词的英语语言字典的详尽字典。
标签串对照单元8对照检查从查询转换单元7读取的标签串和从反转索引表创建单元4输出的或者从存储在反转索引表存储单元5中的文件读取的反转索引表,以获取标签串中包括的语音数据集(说话发声)。
在混淆网络中,与传统方法相比,两个标签间的相邻检查较复杂。在点阵的情况下,对于具有一个标签的一个弧“e”和具有另一个标签的另一个弧“r”,标签串对照单元仅检查等式“n[e]=k[r]”是否成立,从而检查两个标签间的相邻。另一方面,在混淆网络的情况下,由于混淆网络包括特别标签“@”,标签串对照单元8需要检查等式“n[e]=k[r]”是否成立,弧“e”和“r”间是否存在具有特别标签“@”的弧,并且是否存在经过弧e”和“r”间的仅具有特别标签“@”的弧的路径,从而检查两个标签间的相邻。
在该实施例中,标签串对照单元8用一维阵列图表示查询的标签串,并向查询的图中的每个节点指派具有指示弧返回到源节点的特别标签“@”的弧。然后,标签串对照单元8计算查询的图和混淆网络间的交叉。如果作为交叉的结果创建的图是空图或其中不存在从开始节点到结束节点的路径的图,则混淆网络中不包括查询的标签串。这里,当计算交叉时,标签串对照单元8通过仅使用在查询的标签串中出现的弧来创建部分混淆网络并计算查询的图和部分混淆网络之间的交叉。由于部分混淆网络的大小小于混淆网络的大小,计算量减少。
例如,假设标签串对照单元8检查查询的标签串“AH”是否出现在图10所示的混淆网络中并计算标签串“AH”的出现概率。首先,标签串对照单元8基于图10所示的混淆网络创建仅由和标签“A”和“H”以及特别标签“@”相对应的弧形成的部分混淆网络(见图13A)。其次,关于查询的标签串“AH”,标签串对照单元8将具有标签“A”的弧和具有标签“H”的弧通过节点“1”连接起来并将开始节点“0”和结束节点“2”分别指派给标签“A”的源节点和标签“H”的目的节点。然后,标签串对照单元8向每个节点指派具有特别标签“@”的弧以创建查询图(见图13B)。最后,标签串对照单元8计算查询的图和部分混淆网络之间的交叉并获取创建作为交叉结果的图(见图13C)。在创建作为交叉结果的图中,指派给每个节点的两个数(i,j)分别对应于部分混淆网络中的节点号和查询的图中的节点号。如果创建作为交叉结果的图不是空图并且存在从开始节点到结束节点的至少一条路径,则混淆网络中包括查询的标签串。
这里将描述用于计算两个图G1和G2之间的交叉并将计算结果返回一个图G的算法。算法如下:
交叉(G1,G2)
1 V←I1*I2
2 S←I1*I2
3 while S≠Φdo
4 (v1,v2)←HEAD(S)
5 DEQUEUE(S)
6 if(v1,v2)∈I1*I2 then
7 I←I∪{(v1,v2)}
8 if(v1,v2)∈F1*F2 then
9 F←F∪{(v1,v2)}
10 for each(e1,e2)∈E[v1]*E[v2]such that l[e1]=l[e2]do
11 ifnot(n[e1],n[e2])∈V then
12 V←V∪{(n[e1],n[e2])}
13 ENQUEUE(S,(n[e1],n[e2]))
14 E←E∪{((v1,v2),(n[e1],n[e2]),l[e1],w[e1]*w[e2])}
15 return G
其中图G具有节点集V,弧集H,开始节点集I以及结束节点集F,弧集H(v)是来自节点v的弧集,k[e]是弧e的源节点,n[e]是弧e的目的节点,l[e]是弧e的标签,w[e]是弧e的权重,HEAD(S)是用于将队列S的头元素返回的函数,DEQUEUE(S)是用于删除队列S的头元素的函数,ENQUEUE(S,x)是用于将元素x插入到队列S的结束位置的函数。为了区分和两个图G1和G2相对应的节点和弧,对每个字母指派了后缀“1”和“2”。
在创建作为交叉结果的图中,标签串对照单元8根据前向算法计算从开始节点到结束节点的所有路径的出现概率的和,并将计算的值作为查询的标签串的出现概率。如果查询的标签串的出现概率大于0,标签串对照单元8从包括该标签串的混淆网络的反转索引表中读取发声ID号,然后将该标签串的发声ID号和出现概率的对注册到检索结果列表中。
接下来,将参考图14描述基于查询的标签串获取标签串的发声ID号和出现概率的对。
在根据图7所示的流程图生成输出列表C的状态中,在步骤S51,标签串对照单元8将“1”和“1”指派给自变数i和j。在步骤S52,标签串对照单元8从输出列表C中提取和查询的标签串L1,...,LM相对应的弧的列表E(L1),...,E(LM)中共有包括的一个或多个发声ID号,并对该一个或多个发声ID号编号(即将注册号顺序指派给该一个或多个发声ID号)。在步骤S53,标签串对照单元8从反转索引表中读取和注册号j相对应的弧列表Ej(Li)。在步骤S54,标签串对照单元8确定自变数i的值是否等于查询的标签的总数M。如果自变数i的值不等于总数M,标签串对照单元8执行步骤S55的处理。如果自变数i的值等于总数M,标签串对照单元8执行步骤S56的处理。在步骤S55,标签串对照单元8将自变数j的值增加1并且返回步骤S53的处理。在步骤S56,标签串对照单元8从反转索引表中读取和注册号j相对应的弧列表Ej(@)。在步骤S57,标签串对照单元8通过使用读取的弧列表的集{Ej(L1),...,Ej(LM),Ej(@)}中包括的所有弧来创建部分混淆网络D。在交叉计算中,标签串对照单元8将部分混淆网络D中包括的每个节点作为开始节点和结束节点。可选地,标签串对照单元8可以仅将具有和查询的第一标签L1相同的标签的弧的源节点作为开始节点,仅将具有和查询的最后标签LM相同的标签的弧的目的节点作为结束节点。
在步骤S58,标签串对照单元8基于查询的标签串L1,...,LM创建查询的图Q。更特别地,标签串对照单元8准备每个都具有查询的标签串L1,...,LM中的标签Li(1≤i≤M)的弧,并将弧布置为使得具有和查询的标签串L1,...,LM相同的顺序。然后,标签串对照单元8通过节点连接相邻弧以创建查询的图Q。如果弧的列表Ej(@)不为空,标签串对照单元8准备每个都相对于查询的图Q的节点返回源节点的弧,并将标签“@”指派给弧。在查询的图Q中,具有查询的第一标签L1的弧的源节点成为开始节点,并且具有查询的最后标签LM的弧的目的节点成为结束节点。
在步骤S59,标签串对照单元8计算部分混淆网络D和查询的图Q间的交叉并将计算结果返回图X,计算部分混淆网络D和查询的图Q的组成并将计算结果返回图X。更详细地,在交叉中,标签串对照单元8从部分混淆网络D中的开始节点和查询的图Q中的开始节点顺序地比较部分混淆网络D中的标签和查询的图Q中的标签以检索其中部分混淆网络D中的标签和查询的图Q中的标签相同的弧。当检索弧时,标签串对照单元8进行到部分混淆网络D(或查询图Q)中的弧的目的节点,然后关于从目的节点出发的每个弧比较部分混淆网络D中的标签和查询的图Q中的标签,以检索其中部分混淆网络D中的标签和查询的图Q中的标签相同的下一个弧。标签串对照单元8重复上述处理以获取一或多对所检索的弧以及所检索的弧的源和目的节点。然后标签串对照单元8连接该一或多对以创建新图X。在新图X中,如果存在通过所检索的弧从源节点到目的节点的路径以及所检索的弧的源和目的节点,标签串对照单元8决定查询的图Q中包括的查询的标签串包括在部分混淆网络D中。
在步骤S60,标签串对照单元8检查图X中是否存在结束节点。如果图X中不存在结束节点,标签串对照单元8执行步骤S64的处理。如果图X中存在结束节点,标签串对照单元8执行步骤S61的处理。在步骤S61中,标签串对照单元8根据前向算法计算图X中包括的路径的权重和P(L1,...,LM)的值。在步骤S62,标签串对照单元8确定权重和P(L1,...,LM)的值是否大于“0”。如果权重和P(L1,...,LM)的值不大于“0”,标签串对照单元8执行步骤S64的处理。如果权重和P(L1,...,LM)的值大于“0”,标签串对照单元8执行步骤S63的处理。在步骤S63,标签串对照单元8在检索结果列表S中注册发声ID号和对于发声ID号的权重和P(L1,...,LM)值的对。在步骤S64,标签串对照单元8确定自变数j的值是否等于注册号的最大值T。如果自变数j的值不等于注册号的最大值T,标签串对照单元8执行步骤S65的处理。如果自变数j的值等于注册号的最大值T,标签串对照单元8执行步骤S66的处理。在步骤S65,标签串对照单元8将自变数j的值增加1并将“1”指派给自变数I,然后返回步骤S53的处理。在步骤S66,标签串对照单元8基于检索结果列表S获取指示语音数据库1中一个或多个地址的一个或多个指针并将获取的指针列表输出到检索结果输出单元9并完成系列处理,其中在语音数据库1中存储了和查询的标签串相对应的一或多条语音数据。
检索结果输出单元9读取标签串对照单元8中获取的指针列表。然后,检索结果输出单元9基于读取的指针列表从语音数据库1提取和查询的标签串相对应的语音数据信息,并将提取的语音数据信息输出到显示器。检索结果输出单元9可以在显示器上显示每个都包括语音数据的文件名称和语音数据的时间段信息组成的对的列表。当用户使用鼠标点击显示器上显示的列表项时,检索结果输出单元9也可以再生和查询的标签串相对应的语音数据。
接下来参考图15并通过给出语音数据的一个例子来描述该实施例的语音数据检索方法。在该描述中,假设图3至5和10至13C中所示的弧(标签)“A”、“B”、“C”、“D”、“E”、“F”、“G”、“H”、“I”和“J”分别表示单词“Kyoto”、“to”、“at”、“Tokyo”、“the”、“this”、“Asian”、“ancient”、“capital”和“capacity”。
在步骤S71,语音识别单元2从语音数据库1读取语音数据,然后以图3所示的有向图类型数据结构(单词点阵)向混淆网络创建单元3输出对于多个语音识别结果的多个备选。在步骤S72,混淆网络创建单元3将单词点阵转换为图10所示的混淆网络,然后将混淆网络输出至反转索引表创建单元4。在步骤S73,反转索引表创建单元4基于混淆网络创建图12所示的反转索引表,然后将反转索引表输出至反转索引表存储单元5。在步骤S74,查询输入单元6接收来自用户的查询输入(Kyoto ancient)。在步骤S75,查询转换单元7基于单词单元将作为查询的字符串输入“Kyoto ancient”转换为标签串“Kyoto”和“ancient”。需要注意步骤S74和S75的处理可以在步骤S71的处理之前执行或者可以和步骤S71至S73的处理同时进行。
在步骤S76,标签串对照单元8从查询转换单元7读取查询的标签串“Kyoto”和“ancient”以及存储在反转索引表存储单元5中的反转索引表。在步骤S77,标签串对照单元8参考查询的标签串“Kyoto”和“ancient”以及反转索引表创建仅由和标签“Kyoto”和“ancient”以及特别标签“@”相对应的弧形成的如13A所示的部分混淆网络。在步骤S78,标签串对照单元8从查询的标签串“Kyoto”和“ancient”创建图13B所示的查询的图。在步骤S79,标签串对照单元8计算查询的图和部分混淆网络之间的交叉以创建图13C所示的图。在步骤S80,标签串对照单元8计算关于图13C所示的图中从开始节点到结束节点的所有路径的出现概率的和的值,并将计算的值作为查询的标签串的出现概率。在步骤S81,标签串对照单元8从包括标签串“Kyoto”和“ancient”的混淆网络的反转索引表中读取发声ID号,并将标签串的发声ID号和出现概率的对注册到检索结果列表。在步骤S82,标签串对照单元8基于检索结果列表获取指示语音数据库1中一个或多个地址的一个或多个指针并将获取的指针列表输出到检索结果输出单元9,其中在语音数据库1中存储了和查询的标签串相对应的一或多条语音数据。在步骤S83,检索结果输出单元9读取标签串对照单元8中获取的指针列表并从语音数据库1提取和查询的标签串相对应的语音数据信息。在步骤S84,检索结果输出单元9向显示器输出提取的语音数据信息。
接下来将描述该实施例中反转索引列表的减小效果及语音数据的检索性能。
语音数据库1包括麻省理工学院计算机科学课的大约6个小时的课程语音数据。语音识别处理使用连续单词识别系统用于输出将单词作为标签的单词点阵以及使用连续音素识别系统用于输出将音素作为标签的音素点阵。语音识别单元2能够在任意时间在连续单词识别系统和连续音素识别系统之间切换。语音识别单元2还通过使用信号功率信息等将课程语音数据划分为发声并通过发声创建点阵,其中每个发声已经在大约三到四秒内被说出。混淆网络创建单元3将创建的点阵转换为混淆网络,然后将混淆网络输出至反转索引表创建单元4。反转索引表创建单元4基于混淆网络创建反转索引表并然后将反转索引表输出到反转索引表存储单元5。然后,语音数据检索装置10等待查询的输入。
查询输入单元6从键盘或注册了关键字的数据文件接收查询。在将音素作为标签的情况下,查询转换单元7通过使用预先准备的字典将查询的每个单词转换为音素串。标签串对照单元8检查查询的标签串和反转索引表,然后在显示器上输出包括查询的标签串的发声ID号的列表。
图16描述了该实施例中反转索引表的减小效果和语音数据的检索性能。在该文本中使用了随机设置的115个查询。115个查询包括作为没有注册到语音识别单元2中使用的发音字典和语言模型的非注册单词的15个查询。查询的长度平均是2.3个单词。为了比较本发明的语音数据检索方法和现有的语音数据检索方法,构造用于基于单词点阵分析查询的标签串的一个系统和用于基于音素点阵分析查询的标签串的另一个系统。
使用度量“F分数”来评价语音数据的检索性能。F分数是正确的语音数据与检索的语音数据之比(相关比)和发现的语音数据与现有语音数据之比(调用比)的调和平均值。F分数具有从0%到100%范围内的值。当F值增加时,检索性能提高。
如图16所示,与使用对于多个语音识别结果的多个备选(单词串或音素串)的其它语音数据检索方法相比,使用对于语音识别结果的一个备选(单词串)的语音数据检索方法在减小反转索引表的文件大小的同时具有最低的F分数。与使用单词点阵的现有语音数据检索方法相比,使用单词混淆网络的语音数据检索方法在减小反转索引表的文件大小的同时具有相对高的F分数。与使用音素点阵的现有语音数据检索方法相比,使用音素混淆网络的语音数据检索方法在减小反转索引表的文件大小的同时具有相对高的F分数。特别地,与其它语音数据检索方法相比,使用音素混淆网络的语音数据检索方法具有最高的F分数,并且与使用音素点阵的现有语音数据检索方法相比,使用音素混淆网络的语音数据检索方法对于包括没有在语音识别单元2中的发音字典和语言模型中注册的非注册单词的非注册单词查询(单词汇表外的单词(OOV)查询)具有相对高的F分数。
下面将描述语音数据检索装置10的有利特征。
和现有的使用点阵的语音数据检索方法相比,语音数据检索装置10执行的语音数据检索方法能够减小反转索引表的文件大小。
和现有的使用音素点阵的语音数据检索方法相比,语音数据检索装置10执行的语音数据检索方法能够高度准确地检索语音数据而不受到语音识别中使用的语言模型的限制。
当使用混淆网络时,语音数据检索装置10执行的语音数据检索方法能够有效地检索反转索引表,因为语音数据检索装置10基于混淆网络创建仅由具有在查询的标签串中出现的标签的弧形成的部分混淆网络。
(第二实施例)
下面参考图17和18描述本发明的第二实施例。第一实施例的语音数据检索装置10通过使用一种有向图(音素点阵、音节点阵或单词点阵)来检索语音数据。相反,第二实施例的语音数据检索装置30通过使用N(N≥2)种有向图来检索语音数据。
如图17所示,语音数据检索装置30包括语音数据库1、语音识别单元21...2N,混淆网络创建单元31...3N,反转索引表创建单元41...4N,反转索引表存储单元51...5N,查询输入单元6,查询转换单元71...7N,标签串对照单元81...8N,检索结果输出单元9以及检索结果整合单元20。
语音识别单元2i(1≤i≤N)连接到语音数据库1。混淆网络创建单元3j(1≤i≤N)连接到语音识别单元2i和反转索引表创建单元4i(1≤i≤N)。反转索引表存储单元5i(1≤i≤N)连接到反转索引表创建单元4i和标签串对照单元8i(1≤i≤N)。标签串对照单元8i连接到查询转换单元7i(1≤i≤N)和检索结果整合单元20。
语音识别单元21...2N中的每个都具有和第一实施例的语音识别单元2相同的配置。语音识别单元21...2N中使用的N个有向图彼此不同。语音识别单元21...2N从语音数据库1读取语音数据并执行语音识别处理。混淆网络创建单元31...3N中的每个都具有和第一实施例中的混淆网络单元3相同的配置。混淆网络创建单元31...3N将例如来自语音识别单元21...2N的音素点阵、音节点阵和单词点阵的N个有向图转换为N个混淆网络数据结构。反转索引表创建单元41...4N中的每个都具有和第一实施例的反转索引表创建单元4相同的配置。反转索引表创建单元41...4N中的每个都通过指派给每个弧的标签来将来自混淆网络创建单元31...3N中的每个混淆网络的每条弧信息分类以创建N个反转索引表中的每个。反转索引表存储单元51...5N中的每个都具有和第一实施例的反转索引表存储单元5相同的配置。反转索引表存储单元51...5N存储来自反转索引表创建单元41...4N的N个反转索引表。
查询转换单元71...7N中的每个都具有和第一实施例中的查询转换单元7相同的配置。查询转换单元71...7N将作为查询的字符串输入转换为N个标签串。标签串对照单元81...8N中的每个都具有和第一实施例中的标签串对照单元8相同的配置。标签串对照单元81...8N计算查询转换单元71...7N中创建的标签串的N个有向图以及基于混淆网络创建单元31...3N中创建的N个混淆网络而创建的N个部分混淆网络之间的N个交叉。
检索结果整合单元20读取标签串对照单元81...8N中获取的一个或多个检索结果列表并将它们整合以创建一个检索结果列表。在检索结果整合单元20读取两个或更多的检索结果列表时,检索结果整合单元20在整合这些检索结果列表的处理中检查是否存在其中包括相同标签串的发声ID号的两个或更多对。如果存在其中包括相同标签串的发声ID号的两个或更多对,检索结果整合单元20保留其中标签串的出现概率具有最高值的一个对并删除其它的一个或多个对。然后,检索结果整合单元20基于该一个检索结果列表获取指示语音数据库1中一个或多个地址的一个或多个指针并将获取的指针列表输出到检索结果输出单元9,其中在语音数据库1中存储了和查询的标签串相对应的一或多条语音数据。检索结果输出单元9读取检索结果整合单元20中获取的指针列表。然后,检索结果输出单元9基于读取的指针列表从语音数据库1提取和查询的标签串相对应的语音数据信息,并将提取的语音数据信息输出到显示器。
下面参考图18描述该实施例的语音数据检索方法的一个例子。
在步骤S91,语音识别单元2i(1≤i≤N)从语音数据库1读取语音数据,并参考声学模型、发音字典和语言模型以对应的有向图类型数据结构向混淆网络创建单元3i(1≤i≤N)输出对于多个语音识别结果的多个备选。在步骤S92,混淆网络创建单元3i将和语音识别单元2i相对应的有向图转换为混淆网络,然后将混淆网络输出至反转索引表创建单元4i(1≤i≤N)。在步骤S93,反转索引表创建单元4i基于混淆网络创建反转索引表,然后将反转索引表输出至反转索引表存储单元5i(1≤i≤N)。在步骤S94,查询输入单元6接收来自用户的查询输入。在步骤S95,查询转换单元7i(1≤i≤N)参考自己的字典将作为查询的字符串输入转换为对应的标签串。需要注意步骤S94和S95的处理可以在步骤S91的处理之前执行或者可以和步骤S91至S93的处理同时进行。
在步骤S96,标签串对照单元8i(1≤i≤N)从查询转换单元7i读取查询的标签串以及存储在反转索引表存储单元5i中的反转索引表。在步骤S97,标签串对照单元8i参考查询的标签串以及反转索引表创建仅由和形成查询的标签串的一个或多个标签以及特别标签“@”相对应的弧形成的部分混淆网络。在步骤S98,标签串对照单元8i基于查询的标签串创建查询的图。在步骤S99,标签串对照单元8i计算查询的图和部分混淆网络之间的交叉以创建图。在步骤S100,标签串对照单元8i计算关于步骤S99中创建的图中从开始节点到结束节点的所有路径的出现概率的和的值,并将计算的值作为查询的标签串的出现概率。在步骤S101,标签串对照单元8i从包括查询的标签串的混淆网络的反转索引表中读取发声ID号,并将标签串的发声ID号和出现概率的对注册到检索结果列表。在步骤S102,检索结果整合单元20读取标签串对照单元81...8N中获取的一个或多个检索结果列表,将它们整合以创建一个检索结果列表,基于该一个检索结果列表获取指示语音数据库1中一个或多个地址的一个或多个指针并将获取的指针列表输出到检索结果输出单元9,其中在语音数据库1中存储了和查询的标签串相对应的一或多条语音数据。在步骤S103,检索结果输出单元9读取检索结果整合单元20中获取的指针列表并基于读取的指针列表从语音数据库1提取和查询的标签串相对应的语音数据信息。在步骤S104,检索结果输出单元9向显示器输出提取的语音数据信息。
下面将描述语音数据检索装置30的有利特征。
除了语音数据检索装置10执行的语音数据检索方法的有利特征之外,语音数据检索装置30执行的语音数据检索方法能够使用多个标签系统并行地执行语音数据检索处理。
(第三实施例)
下面参考图19至23描述本发明的第三实施例。第二实施例的语音数据检索装置30通过标签系统独立地检索语音数据。相反,第三实施例的语音数据检索装置50使用其中组合了所有标签系统的组合网络来检索语音数据。第三实施例的语音数据检索方法对于下述情况是有利的:作为查询的字符串输入包括没有在语音识别单元2的发音字典和语言模型中注册的非注册单词。
如图19所示,语音数据检索装置50包括语音数据库1、语音识别单元21...2N,混淆网络创建单元31...3N,反转索引表创建单元4,反转索引表存储单元5,查询输入单元6,查询转换单元7,标签串对照单元8,检索结果输出单元9以及混淆网络组合单元40。例如,如果语音数据检索装置50通过使用两种有向图(音素点阵和单词点阵)来检索语音数据,语音数据检索装置50具有语音识别单元21,22以及混淆网络创建单元31,32。
语音识别单元2i(1≤i≤N)连接到语音数据库1。混淆网络创建单元3i(1≤i≤N)连接到语音识别单元2i和混淆网络组合单元40。反转索引表创建单元4连接到混淆网络组合单元40和反转索引表存储单元5。
语音识别单元21...2N中的每个都具有和第一实施例的语音识别单元2相同的配置。语音识别单元21...2N中使用的N个有向图彼此不同。语音识别单元21...2N从语音数据库1读取语音数据并执行语音识别处理。混淆网络创建单元31...3N中的每个都具有和第一实施例中的混淆网络单元3相同的配置。混淆网络创建单元31...3N将例如来自语音识别单元21...2N的音素点阵、音节点阵和单词点阵的N个有向图转换为N个混淆网络数据结构。
混淆网络组合单元40组合来自混淆网络创建单元31...3N的N个混淆网络以创建组合网络。例如,如果语音数据检索装置50通过使用两种有向图(音素点阵和单词点阵)来检索语音数据,语音数据检索装置50将来自混淆网络创建单元31的音素混淆网络(或单词混淆网络)和来自混淆网络创建单元32的单词混淆网络(或音素混淆网络)组合起来以创建单词‑音素组合网络。反转索引表创建单元4通过指派给每个弧的标签来将来自混淆网络组合单元40的组合网络的每条弧信息分类以创建反转索引表。
查询转换单元7将作为查询的字符串输入转换为标签串。例如,如果语音数据检索装置50通过使用两种有向图(音素点阵和单词点阵)来检索语音数据,查询转换单元7首先通过使用字典将作为查询的字符串转换为单词串。然后,查询转换单元7通过将在语音识别单元2中使用的发音字典和语言模型中注册的单词作为单词并将没有在语音识别单元2中使用的发音字典和语言模型中注册的单词作为音素串来将单词串转换为音素和单词混合的标签串。
标签串对照单元8计算查询转换单元7中创建的标签串的图和基于混淆网络组合单元40中创建的组合网络而创建的部分混淆网络之间的交叉。然后,标签串对照单元8基于检索结果列表S获取指示语音数据库1中一个或多个地址的一个或多个指针并将获取的指针列表输出到检索结果输出单元9,其中在语音数据库1中存储了和查询的标签串相对应的一或多条语音数据。例如,如果语音数据检索装置50通过使用两种有向图(音素点阵和单词点阵)来检索语音数据,标签串对照单元8计算查询转换单元7中创建的标签串的图和基于混淆网络组合单元40中创建的单词‑音素组合网络而创建的部分混淆网络之间的交叉。
下面参考图20到22C描述用于在混淆网络组合单元40中创建组合网络的方法的一个例子。假设混淆网络组合单元40从混淆网络创建单元31接收到图21A所示的音素混淆网络并从混淆网络创建单元32接收到图21B所示的单词混淆网络,其中单词A的语音代表是符号“a1”、“a2”和“a3”,单词B的语音代表是符号“b1”和“b2”,单词C的语音代表是符号“c1”。
在步骤S111,混淆网络组合单元40将音素混淆网络的每个音素标签转换为输入标签和输出标签的对,然后基于音素混淆网络创建第一有限状态置换器(见图22A)。输入标签由音素标签和该音素标签被指派的弧的源和目的节点号组成。输出标签由音素标签组成。第一有限状态置换器是具有作为每个弧的标签的输入标签和输出标签的对的有向图。第一有限状态置换器表示作为用于将表示从开始节点到结束节点的可行路径的输入标签串转换为和输入标签串相对应的输出标签串的模型标签串转换规则。例如,在图21A所示的音素混淆网络中,音素标签“a3”被转换为输入标签和输出标签对“a3(2‑3):a3”,因为音素标签“a3”被指派的弧的源节点和目的节点号是“2”和“3”。需要注意在输入和输出标签中插入了标记“;”来分开。
在步骤S112,混淆网络组合单元40将单词混淆网络的单词标签和单词标签的弧分别转换为表示如何发音单词的音素串标签以及指派给形成音素串标签的一个或多个音素标签的一个或多个弧。在指派了音素标签的两个相邻弧之间替换节点。混淆网络组合单元40进一步将每个音素标签转换为输入和输出标签对,然后基于单词混淆网络创建第二有限状态置换器(见图22B)。输入标签由音素标签组成。输出标签由单词标签和此标签的位置信息(单词的第一音素、单词的最后音素、或在单词的第一和最后位置之外的位置出现的音素)组成。例如,如果单词“A”的第一音素是音素“a1”,第二有限状态置换器的弧由指派了音素“a1”的输入标签和指派了表示单词“A”和指示单词“A”的第一位置的符号“_s”的组合的符号“A_s”的输出标签组成的对“a1:A_s”表示。如果单词“A”的最后音素是“a3”,第二有限状态置换器的弧由指派了音素“a3”的输入标签和指派了表示单词“A”和指示单词“A”的最后位置的符号“_e”的组合的符号“A_e”的输出标签组成的对“a3:A_e”表示。如果出现在单词“A”的第一和最后位置之外的位置的音素是音素“a2”,第二有限状态置换器的弧由指派了音素“a2”的输入标签和指派了符号“@”的输出标签组成的对“a2:@”表示。如果单词“C”的第一和最后音素是音素“c1”(即发音是一个音素),第二有限状态置换器的弧由指派了音素“c1”的输入标签和指派了单词“C”的输出标签组成的对“c1:C”表示。混淆网络组合单元40也向第二有限状态置换器的每个节点增加来自源节点的弧并向增加的弧指派标签“@:@”。
在步骤S113,混淆网络组合单元40根据用于计算两个图的组合的算法将第一有限状态置换器和第二有限状态置换器组合起来,以创建第三有限状态置换器(见图22C)。更详细地,混淆网络组合单元40将第一有限状态置换器的每条路径和第二有限状态置换器的每条路径相关联,从而第一有限状态置换器的输出标签串和第二有限状态置换器的输入标签串相一致,以组合第一有限状态置换器和第二有限状态置换器。第三有限状态置换器的每个节点具有和第一有限状态置换器相对应的节点号以及和第二有限状态置换器相对应的节点号组成的对。第三有限状态置换器的每个弧具有包括音素的位置信息和单词的位置信息组成的对的标签。
这里将描述用于组合两个图G1和G2的算法。算法如下:
Composition(G1,G2)
1 V←I1*I2
2 S←I1*I2
3 while S≠Φdo
4 (v1,v2)←HEAD(S)
5 DEQUEUE(S)
6 if(v1,v2)∈I1*I2 then
7 I←I∪{(v1,v2)}
8 if(v1,v2)∈F1*F2 then
9 F←F∪{(v1,v2)}
10 for each(e1,e2)∈E[v1]*E[v2]such that o[e1]=i[e2]do
11 if not(n[e1],n[e2])∈V then
12 V←V∪{(n[e1],n[e2])}
13 ENQUEUE(S,(n[e1],n[e2]))
14 E←E∪{((v1,v2),(n[e1],n[e2]),i[e1],o[e2])}
15 return G
其中图G具有节点集V,弧集H,开始节点集I以及结束节点集F,弧集H(v)是来自节点v的弧集,k[e]是弧e的源节点,n[e]是弧e的目的节点,i[e]是弧e的输入标签,o[e]是弧e的输出标签,HEAD(S)是用于将队列S的头元素返回的函数,DEQUEUE(S)是用于删除队列S的头元素的函数,ENQUEUE(S,x)是用于将元素x插入到队列S的结束位置的函数。两个图G1和G2表示有限状态置换器。为了区分和两个图G1和G2相对应的节点和弧,对每个字母指派了后缀“1”和“2”。
在步骤S114,混淆网络组合单元40基于第三有限状态置换器创建了单词‑音素组合网络。例如,第三有限状态置换器的标签“a1(0‑1):A_s”指示音素“a1”是音素混淆网络中节点“0”和节点“1”之间的弧的标签并且是单词“A”的第一音素。第三有限状态置换器的标签“a3(2‑3):A_e”指示音素“a3”是音素混淆网络中节点“2”和节点“3”之间的弧的标签并且是单词“A”的最后音素。因此,混淆网络组合单元40能够在音素混淆网络中的节点“0”和节点“3”之间布置在单词混淆网络中指派了单词“A”的标签的弧。进一步地,第三有限状态置换器的标签“c1(3‑4):C”指示音素“c1”是音素混淆网络中节点“3”和节点“4”之间的弧的标签并且是单词“C”的第一和最后音素。因此,混淆网络组合单元40能够在音素混淆网络中的节点“3”和节点“4”之间布置在单词混淆网络中指派了单词“C”的标签的弧。因而,在单词‑音素组合网络中,不需改变单词的顺序关系就能将单词混淆网络中的弧增加到音素混淆网络中,并在单词的弧的源节点和目的节点之间包括表示如何发音单词(音素串)的路径。
在语音数据检索装置50检索作为查询的单词串“BD”的情况下,其中单词“D”是非注册单词并且发音为“a3,c1”,标签串对照单元8处理将注册单词“B”作为单词以及将非注册单词“D”作为音素串“a3”和“c1”。标签串对照单元8能够检索作为查询的单词串“BD”,因为音素标签串“B”、“a3”和“c1”包括在图21C所示的单词‑音素组合网络的路径之一。
下面参考图23描述该实施例的语音数据检索方法的一个例子。
在步骤S121,语音识别单元2i(1≤i≤N)从语音数据库1读取语音数据,并参考声学模型、发音字典和语言模型以对应的有向图类型数据结构向混淆网络创建单元3i(1≤i≤N)输出用作多个语音识别结果的多个备选。在步骤S122,混淆网络创建单元3i将和语音识别单元2i相对应的有向图转换为混淆网络,然后将混淆网络输出至混淆网络组合单元40。在步骤S123,混淆网络组合单元40将来自混淆网络创建单元31...3N的N个混淆网络组合起来以创建组合网络,然后将组合网络输出到反转索引表创建单元4。在步骤S124,反转索引表创建单元4基于组合网络创建反转索引表,然后将反转索引表输出至反转索引表存储单元5。在步骤S125,查询输入单元6接收来自用户的查询输入。在步骤S126,查询转换单元7参考自己的字典将作为查询的字符串输入转换为对应的标签串。需要注意步骤S125和S126的处理可以在步骤S121的处理之前执行或者可以和步骤S121至S124的处理同时进行。
在步骤S127,标签串对照单元8从查询转换单元7读取查询的标签串以及存储在反转索引表存储单元5中存储的反转索引表。在步骤S128,标签串对照单元8参考查询的标签串以及反转索引表并同时将注册单词作为单词、将非注册单词作为音素串来创建仅由和形成查询的标签串的一个或多个标签以及特别标签“@”相对应的弧形成的部分混淆网络。在步骤S129,在将注册单词作为单词、将非注册单词作为音素串时,标签串对照单元8基于查询的标签串创建查询的图。在步骤S130,标签串对照单元8计算查询的图和部分混淆网络之间的交叉以创建图。在步骤S131,标签串对照单元8计算关于步骤S130中创建的图中从开始节点到结束节点的所有路径的出现概率的和的值,并将计算的值作为查询的标签串的出现概率。在步骤S132,标签串对照单元8从包括查询的标签串的混淆网络的反转索引表中读取发声ID号,并将标签串的发声ID号和出现概率的对注册到检索结果列表。在步骤S133,标签串对照单元8基于检索结果列表获取指示语音数据库1中一个或多个地址的一个或多个指针并将获取的指针列表输出到检索结果输出单元9,其中在语音数据库1中存储了和查询的标签串相对应的一或多条语音数据。在步骤S134,检索结果输出单元9读取标签串对照单元8中获取的指针列表并基于读取的指针列表从语音数据库1提取和查询的标签串相对应的语音数据信息。在步骤S135,检索结果输出单元9向显示器输出提取的语音数据信息。
下面将描述语音数据检索装置50的有利特征。
除了语音数据检索装置10执行的语音数据检索方法的有利特征之外,语音数据检索装置50执行的语音数据检索方法能够在即使查询中包括注册单词和非注册单词的情况下检索语音数据。
在基于作为标签的单词执行语音识别的情况下,如果查询中包括非注册单词,现有的语音数据检索装置不能正确地识别非注册单词并且非注册单词也不出现在混淆网络中。因此,如果查询中包括非注册单词,非注册单词阻止了现有语音数据检索装置检索语音数据。另一方面,在基于作为标签的音素执行语音识别的情况下,现有的语音数据检索装置在将查询中包括的所有单词转换为音素串之后检查标签串。因此,即使查询中包括非注册单词,现有的语音数据检索装置也可能检索语音数据。但是,如果将单词转换为例如音素串的语音表示,现有的语音数据检索装置可能缺乏准确性地检索语音数据,因为现有的语音数据检索装置不能区分同音异义单词(发音和另一个单词相似但是具有不同拼写或意义的单词)。
根据本实施例,通过将查询中包括的注册单词作为单词并将查询中包括的非注册单词作为音素串解决了上述问题。
工业应用性
语音数据检索装置、语音数据检索方法和语音数据检索程序具有下述有利特征:(1)能够减小反转索引表的文件大小;(2)能够不受语音识别中使用的语言模型的限制而高度准确地检索语音数据;和(3)当使用用于减小反转索引表的文件大小而创建的混淆网络时能够有效地检索反转索引表。