本文简单地介绍了KWS的原理——为Lattice中每个词生成索引并进行搜索;介绍了如何处理OOV——替补(Proxy,词典内对OOV的替补)关键词技术;介绍了KWS的语料库格式;介绍了KWS在Kaldi中的示例训练脚本和搜索脚本。

 
 

  1. KWS系统示例:

    论文下载:

    http://www.clsp.jhu.edu/~guoguo/papers/icassp2013_lexicon_value.pdf

    论文标题:QUANTIFYING THE VALUE OF PRONUNCIATION LEXICONS FOR KEYWORD SEARCH IN LOW RESOURCE LANGUAGES

     
     

    该文介绍了LVCSR和KWS系统、词典扩充方法、词典扩充对LVSCR和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。

 
 

 
 

 
 

 
 

  1. Lattice索引生成技术:

    论文下载:

    https://wiki.inf.ed.ac.uk/twiki/pub/CSTR/ListenSemester2201314/taslp_2011.pdf

    论文标题:Lattice indexing for spoken term detection

    本文为话语检测技术构建反向索引,具体的,在确定的WFST中存储软命中(soft-hit)信息(utterance-id, start time, end time, posterior score四元组,用于与目标词匹配)。展示了如何在多个Lattice中(多个语句中)生成所有子字符串的索引。

     
     

    ASR候选解码结果通常储存在带权有向无环图——即lattices中。由于有限状态转换器框架提供了通用的搜索、优化、合并算法,通常使用有限状态转换器来表示ASR Lattice。对以WFST形式的lattice进行索引和搜索的问题,可以被看作是在文本文档中对模式进行搜索的扩展。搜索问题的有限解决办法使用了一种称为因子转换器的结构[12]。一个因子转换器是一个组成一篇文档的字符串集合中子字符串集合的倒排索引。因子转换器是一个非常有效的顺序索引,并且十分适用于需要确切序列匹配的话语检出应用。话语段和口语词检测是两种话语应用,分别用于找到语句以及包含查询词确切序列的语句中的时间间隔。

     
     

     
     

     
     

  2. Proxy关键词技术:

    http://www.clsp.jhu.edu/~guoguo/papers/asru2013_proxy_keyword.pdf

    基于WFST的框架用于处理OOV,单词级的

     
     

     
     

什么是segment?

猜测是关键词。为了进行训练,要为训练数据的语句进行切分,切分为关键词的序列。切分后的关键词序列可能会有字重叠。

什么是F4DE,KWS哪里用到了?

猜测在关键词搜索脚本local/kws_search.sh中使用。

Kaldi中关于KWS的示例:

babel/s5b

 
 

KWS的5个阶段:

  1. 使用训练数据集(train)训练一个LVCSR;
  2. 对测试集进行分段处理;
  3. 使用LVCSR生成测试集的解码结果(Lattice);
  4. 生成Latiice的倒排索引;
  5. 进行关键词的搜索。

KWS的数据准备

需要在KWS数据目录中手工准备以下三个文件:

ecf,检索集相关信息

kwlist,关键词列表

rttm,用于KWS打分

 
 

 
 

 
 

Kaldi的关键词搜索(Keyword Search,KWS)的更多相关文章

  1. Elasticsearch 全文搜索和keyword search字段的mapping定义

    在ES5.0之前我们对于需要keyword search的字段都是这样定义的: { "field name":{ "type": "string&qu ...

  2. 搜索框中“请输入搜索keyword”

    $(function(){    $("#ctl00_txtKey").val("请输入搜索keyword").addClass("search&qu ...

  3. 读论文系列:Nearest Keyword Search in XML Documents中使用的数据结构(CT、ECT)

    Reference: [1]Y. Tao, S. Papadopoulos, C. Sheng, K. Stefanidis. Nearest Keyword Search in XML Docume ...

  4. Thinkphp+Ajax带关键词搜索列表无刷新分页实例

    Thinkphp+Ajax带关键词搜索列表无刷新分页实例,两个查询条件,分页和搜索关键字,懂的朋友还可以添加其他分页参数. 搜索#keyword和加载内容区域#ajax_lists <input ...

  5. 集束搜索beam search和贪心搜索greedy search

    贪心搜索(greedy search) 贪心搜索最为简单,直接选择每个输出的最大概率,直到出现终结符或最大句子长度. 集束搜索(beam search) 集束搜索可以认为是维特比算法的贪心形式,在维特 ...

  6. 对《禁忌搜索(Tabu Search)算法及python实现》的修改

    这个算法是在听北大人工智能mooc的时候,老师讲的一种局部搜索算法,可是举得例子不太明白.搜索网页后,发现<禁忌搜索(Tabu Search)算法及python实现>(https://bl ...

  7. 线搜索(line search)方法

    在机器学习中, 通常需要求某个函数的最值(比如最大似然中需要求的似然的最大值). 线搜索(line search)是求得一个函数\(f(x)\)的最值的两种常用迭代方法之一(另外一个是trust re ...

  8. 选择性搜索(Selective Search)

    1 概述 本文牵涉的概念是候选区域(Region Proposal ),用于物体检测算法的输入.无论是机器学习算法还是深度学习算法,候选区域都有用武之地. 2 物体检测和物体识别 物体识别是要分辨出图 ...

  9. MIP启发式求解:局部搜索 (local search)

    *本文主要记录和分享学习到的知识,算不上原创. *参考文献见链接. 本文讲述的是求解MIP问题的启发式算法. 启发式算法的目的在于短时间内获得较优解. 个人认为局部搜索(local search)几乎 ...

随机推荐

  1. HEOI2019退役总结

    真的很快,一切就都已经尘埃落定了. 其实经历不是很圆满的时候,是不想写这一类游记总结的,但这次其实不太一样,总要让这段经历有始有终. 可能会很啰嗦…… 赛前 收到了若干鼓励,包括老师的手写祝福和学长学 ...

  2. socketv 验证客户端链接的合法性,socketserver

    补充: send()与sendall() 在python socket编程中,有两个发送TCP的函数,send()与sendall(),区别如下: socket.send(string[, flags ...

  3. c++ sort

    老是搞混 return bool eg. bool cmp(node a,node b) { if (a.score==b.score) ; else return a.score>b.scor ...

  4. php解析文本文件呈现在表格上

    name.txt如下 1 | 朱芳 | 18 | b.unyrl@tpwpqt.st | http://XEP.VC 2 | 康丽 | 22 | e.ifmc@fyvutpzio.pro | http ...

  5. python: 反射机制;

    import comma def run(): inp = input('请输入要调用的函数').strip(); if hasattr(comma,inp): fun = getattr(comma ...

  6. 【优秀的艺术文字和图标设计软件】Art Text 3.2.3 for Mac

      [简介] Art Text 3.2.3 版本,这是一款Mac上简单易用的艺术文字和图标设计软件,今这款软件内置了大量的背景纹理和特效,能够让我们非常快速的制作出漂亮的图标,相比专业的PS,Art ...

  7. maven-compiler-plugin报错

    [INFO] Scanning for projects... [INFO] [INFO] --------------------------< cn.x:credittest >--- ...

  8. Feature Selection

    两方面(发散,相关)~三方法(FWE) F:方皮卡互 W:RFE E:惩罚树 一.简介 我们的数据处理后,喂给算法之前,考虑到特征的实际情况,通常会从两个方面考虑来选择特征: 1)特征是否发散:如果一 ...

  9. python 发送邮件模板

    ##发送普通txt文件(与发送html邮件不同的是邮件内容设置里的type设置为text,下面代码为发送普通邮件的另一种方法) import smtplibimport stringfrom emai ...

  10. Centos7使用kubeadm 安装多主高可用kubernets:v.1.11集群

    实验环境介绍: 本次实验环境是5个节点 3台master 2台node节点: k8smaster01 192.168.111.128 软件:etcd k8smaster haproxy keepali ...