命令词论文笔记(九)Spoken Term Detection

Spoken Term Detection

Keyword Search in Kaldi

语音检索.md

基于大词汇量连续语音识别系统的关键词检测主要是用于音频文档检索任务。首先使用语音识别系统将语音转化为某种形式的文本,然后建立索引,供用户索引。

与一般文本索引不同的是,语音关键词检索中的索引需要包含每一个词的时间位置信息(词的开始时间和结束时间),方便用户定位检索到词的位置。另外一点就是,语音识别结果可能包含一些错误,导致关键词不能找到,所以希望索引将语音识别出的次优候选结果也包含进来,提高检索的召回率。针对这两点的主要方法是,将语音识别出的词格(Lattice)建立为索引。词格是一种保存语音识别候选结果的紧凑形式,还可以包含时间位置信息。

FT

==Dogan Can and Murat Saraclar. “Lattice Indexing for Spoken Term Detection” IEEE Transactions on Audio, Speech, and Language Processing 19 (2011): 2338-2347.==

jarvan wang 博客园 Kaldi的关键词搜索(Keyword Search,KWS)

思想

  • 提出改进的因子转换器factor transducer,
  • 这个因子转换器实际上是lattice中看到的所有单词序列的倒排索引
  • 索引的对象分别有句子ID,开始时间,结束时间,分数
  • 把时间信息放在output labels上

本文为spoken term detection技术构建反向索引,具体的,在确定的WFST中存储软命中(soft-hit)信息(utterance-id, start time, end time, posterior score四元组,用于与目标词匹配)。展示了如何在多个Lattice中(多个语句中)生成所有子字符串的索引。 ASR候选解码结果通常储存在带权有向无环图——即lattices中。由于有限状态转换器框架提供了通用的搜索、优化、合并算法,通常使用有限状态转换器来表示ASR Lattice。对以WFST形式的lattice进行索引和搜索的问题,可以被看作是在文本文档中对模式进行搜索的扩展。搜索问题的有限解决办法使用了一种称为因子转换器的结构[12]。一个因子转换器是一个组成一篇文档的字符串集合中子字符串集合的倒排索引。因子转换器是一个非常有效的顺序索引,并且十分适用于需要确切序列匹配的话语检出应用。话语段和口语词检测是两种话语应用,分别用于找到语句以及包含查询词确切序列的语句中的时间间隔。

[TODO]:一些凸优化里面半群的相关公式,看不懂

OOV

代理关键字是模糊搜索方法之一,用来处理OOV。

由于语音识别的结果都是在词表内的词,这样如果待查的关键词是集外词,就不可能被查找到了。然而,用户喜欢查找的,往往是人名、地名、组织机构名这样的命名实体,这些词往往都是集外词。解决这一问题的一个方法是代理词:即用一个发音相近的集内词作为待查集外词的“代理”,检索的时候查找“代理”,如果找到了代理,就认为待查的集外词找到了。

==Chen G, Yilmaz O, Trmal J, et al. Using proxies for OOV keywords in the keyword search task[C]. ieee automatic speechrecognition and understanding workshop, 2013: 416-421.==

思想

  • 之前处理oov的方法使用的是sub-word units的方法,找比如解码phone/syllable序列,根据phone序列从而找到oov;
  • 提出代理词proxy keywords,代理词是包含oov的集内词串,把oov事先标出其lexicon,然后根据其与其他已知lexicon的phone组成的编辑距离(作为边的cost?),构建WFST网路,然后在WFST里进行解码;比如,oov是balloon,集内词有samba、loon,当发音some balloon时,代理词是samba loon或者loon。
  • 构建代理词WFST方法:$K’ = Project(ShortestPath(K\circ{L_{2}}\circ{E}\circ({L^{*}_1})^{-1}))$
    • K是oov keyword的FSA(G)
    • L2是oov keyword 的lexicon的FSA(L)
    • E是phone序列之间的编辑距离(wieght/cost)
    • L1是LVCSR的lexicon(L)
    • K’是代理词的FSA
  • oov 发音lexicon用G2P得到
  • 边上权重来源:ASR解码序列与参考对齐序列比较,记下替换错误的后验概率,统计,得到每个音素与其他混淆音素的相似度,得到混淆矩阵E的FSA:
image-20211224105441016
  • 优点:多OOV词下,可以并行查找这些OOV?

==Guoguo Chen et al. “Quantifying the value of pronunciation lexicons for keyword search in lowresource languages” International Conference on Acoustics, Speech, and Signal Processing (2013).==

jarvan wang 博客园 Kaldi的关键词搜索(Keyword Search,KWS)

  • KWS系统:根据[2],为Lattice进行索引分为以下几步:
  1. 为测试集(eval, evalution,评估)中每一语句的有限状态转换器(FST)转换为(如何转换?)泛化因子转换器结构。该结构中,每个词的实例都拥有一个三元组(词的开始时间,词的结束时间,后验概率)。因子转换器,隐含了测试集中所有词序列的逆序(以后验概率排序)列表。可以使用Google OpenFST对其进行进一步的处理。
  2. 要在上述因子转换器中对某个词或短语进行检索,首先构建该词的有限状态机,然后与因子转换器进行组合(如何组合?),即得到了上述词的逆序列表。
  3. 使用[20]提出的方法,通过最大化所有关键词的期望词权重值(expected term weighted value,ETWV)(是啥?),估计一个决策阈值(如何估计),用于对各个结果作出Yes/No的决策。
  4. 最后,所有关键词命中集合将通过NIST 2006 Spoken Term Detection评估协议计算实际词权重值(actual term weighted value)(如何计算)。

某个关键词在测试集中的出现次数=所有预测命中的后验概率。

  • 词典扩充对LVCSR和KWS的影响:提高发音词典词汇量,能提升1-4%的识别率,能提升KWS中实际的词加权值约60%的效果。在LVCSR阶段的词典扩充大大优于KWS阶段。

    词典扩充只能适度降低WER,但是能很大程度地提高随后的ATWV。

[TODO]

这篇看得不是很明白


==语音关键词检测中的置信度研究_王朋.caj 解放军信息工程大学 2015 硕士论文==

模糊匹配(早期处理OOV方法)

模糊匹配是一种常见的解决集外词问题方法,其主要应用声学信息,通过在连续语音识别结果中进行动态匹配,检测可能的集外词候选结果,并在匹配期间允许存在一定程度的音素替换、插入和删除错误。虽然该方法能够有效解决集外词召回率低的问题,但由于模糊匹配计算中的不精准性,也易导致部分集内词被误匹配为集外词,并产生集外词虚警 。

理解为:在允许的插入删除错误程度内,看匹配了吗