会议:ICACSIS 2017(高级计算机科学与信息系统国际会议)
论文:Contextual keyword spotting in lecture video with deep convolutional neural network
加入IEEE Xplore的日期: 2018年5月7日
Abstract
介绍了使用深度卷积神经网络(CNN)架构的演讲视频关键字发现(KWS)系统。CNN体系结构使我们能够将在各种条件下获取的演讲视频语音数据用作训练数据集而没有任何特殊功能。我们还将语言模型和词干应用于生成的成绩单,以自动纠正拼写错误和错误。我们的模型产生的平均准确度为69.01%,比基准模型提高了34.53%。我们还表明,训练数据集的扩充可提高针对测试数据集的模型鲁棒性。
Introduction
过去,对关键词发现技术已经进行了广泛的研究,但是仍然存在一些问题。使用传统的隐马尔可夫模型(HMM)和高斯混合模型(GMM)的KWS系统需要专门的参数和功能来适应这种情况。另一方面,深度神经网络(DNN)提供了很大的灵活性,但数据集的错误选择可能会导致在嘈杂的声学条件下过度拟合和性能下降[3]。
在本文中,我们提出了使用深度卷积神经网络(CNN)的关键字发现(KWS)模型。该模型使我们能够调整训练数据,以便KWS模型可以获取更多的上下文知识。使用CNN还可以使模型了解语音部分之间的空间相关性,这有助于模型抵御嘈杂的语音,因为视频讲座并非总是在理想条件下录制的。另外,为了提高关键字检测的准确性,我们还采用了基于KenLM语言模型估计的语言模型[4]。
通过在训练模型中引入上下文指定的数据,可以改善对特定关键字的检测。我们还显示了使用多个数据集的模型性能的比较,以及与先前研究相比的模型性能。
Related Works
已经完成了一些从演讲视频中检索信息的工作。Zhang和Nunamaker [5]提出了“ 按需学习”系统,该系统可以索引视频的内容,但是该系统更着重于在系统上处理学生问题,而不是查找感兴趣的关键字。Kanadje等。[6]提出了一种辅助工具,用于基于隐马尔可夫模型(HMM)为演讲视频建立索引,并使用动态时间规整(DTW)在音频序列中找到最佳对齐方式。
在更一般的演讲内容中。恢复。Lee等。[7]详细描述了基于语音识别的内容检索框架。结合声学模型,语言模型和HMM语音识别,该系统能够根据用户给出的查询检索语音信号中的内容。已经提出的另一种方法是使用Patel等人的模板匹配技术。[8]在从语音信号中提取特征之后。序列长度之间的距离是使用DTW计算的,以确定它是否是相似序列。
近年来,将深度神经网络用于语音识别本身已变得很流行。随着计算能力的提高,可以使用具有大量隐藏层和神经元的模型,从而可以优化预测模型并产生最新的性能。基于这一事实,Hannun等人[9]提出了“深度演讲”。基于递归神经网络(RNN)架构的端到端语音识别模型,即使在嘈杂的环境中也显示出很高的准确性。后来,Amodei等。[10]改进了深度语音架构,以建模普通话中的语音识别。Zhang等人提出了另一种端到端语音识别架构。[11],而不是使用RNN。它使用CNN减少了RNN中向前和向后传播引起的计算时间。Tyagi [12]使用结合DNN和HMM的体系结构,探索了DNN做KWS的更具体的用法。Chen等。[13]能够在他提出的KWS系统中实现非凡的准确性,并且使用DNN仅能留下少量数据。
Keyword Spotting System
在我们提出的模型中,我们使用CNN架构,该架构采用扩张的卷积层作为隐藏层。与模型使用RNN的[10]相比。CNN架构需要较少的计算时间,因为没有反向传递。CNN体系结构也曾在[11]和[13 ]中使用,但该体系结构仅限于单个关键字检测,而我们的模型则旨在检测感兴趣的关键字列表。此外,由于CNN体系结构的灵活性,可以调整训练数据集和语言模型,以使该模型可以用另一种语言使用,从而为系统提供了良好的可伸缩性。
提出的模型可以分为三个过程。首先是从讲座中生成成绩单。第二是使用语言模型给出分数并更正成绩单。第三步是搜索成绩单中感兴趣的关键字。图2展示了该模型的整体图。
A.输入功能
梅尔频率倒谱系数(MFCC)用于输入功能。MFCC被描述为声音的短期功率谱,已被广泛用于语音识别系统中,并被证明有效地表达了人类听觉如何感知声音的频率[14]。第一。从视频文件中提取语音信号。然后针对整个信号计算MFCC,然后将其用作CNN中的输入功能。
B.深度卷积神经网络架构
我们的CNN架构主要基于Dieleman等人提出的WaveNet架构(?)。[15],输入层由256个神经元组成。然后将其放入因果卷积层的堆栈中。选择因果卷积层是因为它可以表示语音各部分的空间相关性,这就是某个特定时间范围内由语音信号表示的单词与另一个时间范围内的另一语音之间的空间关联。输入要素(MFCC)以二维矩阵表示。矩阵中的每一列代表在指定时间的语音的MFCCXñ。扩张确保了语音信号的因果性质。维持当前时间范围内预测单词的概率ñ 不能取决于未来的时间范围,例如 P(xñ| X1… xñ) 独立于 Xn + 1。这有助于模型捕获语音中单词的过渡并做出更好的预测。具体细节略~
C.语言模型整合
由于CNN的转录过程是在句子级别完成的,并且没有任何语言指导,因此通常会有一些拼写错误的单词,其他情况是该单词被认为是与其发音相似的单词。当说出的单词之间只有短暂的中断,以便将两个分开的单词检测为正弦单词时,也可能会引起另一种混乱。
为了最大程度地减少这种错误,我们可以使用语言模型为转录的句子评分,并找到得分最高的替代句子。我们使用KenLM [4]来估计英语语言模型,因为本研究中使用的数据集全部为英语。KenLM使用当代美国英语语料库(COCA)和美国历史英语语料库(COHA)样本数据进行了训练,样本数据总共包含530万个单词。
D.抄写单词
成绩单由语言模型处理后。Boyer-Moore-Horspool字符串搜索算法用于在笔录中查找关键字。该算法的工作原理是将模式与最右边的字母与目标字符串进行匹配,并进行相应的移动,直到在目标中找到匹配的字符串。
Evaluation and Results
对于测试,我们基于Kim和Park [17]的实现,使用python中的tensorflow库实现了该模型,并进行了一些修改以适合诸如第二个均值池层的实现,卷积层的附加堆栈以及输入语音。我们还将KenLM python库用于语言模型估计。所有培训和测试都是在我们的计算机上按照以下规格进行的:Intel Core i7-6850K CPU,2个Nvidia GTX1070和32GB RAM。
A.数据集
为了训练模型,我们使用了四个数据集,包括VCTK语料库[18],Librispeech语料库[19],TED-LIUM语料库[20]。VCTK语料库由400个句子组成,这些句子是从109位以英语为母语并具有不同口音的报纸中选出的。尽管该语料库的例子有限,但其中包含大量讲英语的口音样本,可以帮助模型更好地理解语音变异。Librispeech包含从有声读物获得的英语语音。它包含所有语料库中最多的句子,这些句子有助于模型的词汇量。TED-LIUM语料库由TED语音集合构成,总共包含92,793个句子。演讲主要由不同的发言者在一个大厅中进行。所有语料库都在相对干净的情况下记录。
此外,我们还添加了从10个演讲视频中提取的原始语音数据集。其中5个来自MIT公开课,题为“计算机科学和编程入门” [21],其余的摘录自哈佛在线学习丛书,题为“ 计算机科学和编程入门” [22]。这些讲座视频的添加是为了向模型介绍上下文情况。但是,此附加数据集不受控制,并且每个数据集都记录在易于产生噪声和其他干扰的不同环境中。
训练数据集中的每个句子已被标记,并用作训练中的基础事实。对于演讲,我们使用提供的转录或字幕并将其拆分以用作每个语音段的标签。我们将这些标签用作培训过程的基础。
B、训练过程
我们每次使用不同的数据集训练模型四次,训练完成后,将模型保存以进行比较。通过这样做,我们可以分析每个数据集对模型性能的影响。表I显示了使用的数据集。数据集中句子的总数和训练所花费的时间。
C.评估
对于建议的模型,我们进行了两个测试以评估模型的性能。第一个测试是使用经过不同数据集训练的模型,使用随机生成的关键字进行关键字查找。然后,我们比较每个模型的结果。在第二个测试中,我们通过使用预定的关键字评估在训练过程中使用所有组合数据集的模型,并将性能与以前的模型进行比较。
对于测试数据集,我们使用语音信号,该信号是从哈佛在线学习系列题为“计算机科学入门”的两个讲座视频中提取的,该视频未在训练集中使用。与另一个讲座视频类似,测试数据集并不是在噪声很大的理想环境中拍摄的。
1)测试数据集影响
在此第一个测试中,我们通过为测试数据集中的所有句子计算其单词错误率(WER)来评估模型的总体性能。WER通过将预测单词与实际事实中的实际单词的比较距离进行比较,表明模型可以很好地预测成绩单中的整个单词。编辑距离是通过使两个单词相同的最小替换,插入或删除次数来描述的。WER越小,表明模型在预测单词时的性能越好。
接下来,我们通过生成100个随机关键字来评估模型在关键字发现上的性能,并使用经过训练的模型在测试数据集中搜索关键字。
然后,计算所有100个单词的准确度平均值。
从上表中,我们可以看到,使用VCTK数据集训练的模型在WER为86.7%的lecture1测试数据集上表现最差。KWS准确度平均值低(12.61%)也反映了这一点。这是因为VCTK语料库不包含广泛的词汇,而用于测试的讲座1的持续时间很长,并且包含各种单词。另一方面,仅使用TED-LIUM数据集训练的模型在第2课数据集上表现最差。这是因为TED-LIUM语料库记录在大厅环境中,该环境与第2课中在小型教室中交付的情况相比具有不同的声学特性。但是,TED-LIUM语料库在第一堂课中表现良好,因为其传递环境和演讲风格相似。
与前两个数据集相比,使用LibriSpeech数据集训练的模型在两个测试数据集上均显示出更稳定的性能。这主要是因为librispeech语料库由最多的句子和大量的词汇组成。通过组合数据集,我们得到了一个更健壮的模型,该模型在两个测试数据集上均表现稳定。由于附加讲义数据集的嘈杂条件,因此在准确性平均值中观察到一些降级。但是,通过从讲座视频中引入数据集,我们可以将上下文信息引入模型,因此与LibriSpeech模型相比,我们发现关键字发现性能提高了约11%。
该结果表明,模型的性能取决于训练数据集和测试数据集的上下文。当训练数据和测试数据的上下文之间几乎没有相似性时,该模型的性能会更差。
2)通过预定关键字进行测试
对于下一个测试,我们使用预定的关键字来测试模型的性能。然后,我们将所提出的模型与[13]中提出的先前模型的准确性进行比较。选择的关键字是代表演讲中的上下文信息的关键字,例如“编程”和“二进制”,这些关键字出现在每个用于测试的视频中。还选择了其他一些通用关键字,例如“ that”,“ number”和“ idea”,以表明该模型在训练中不会失去通用性,仍然可以检测具有通用上下文的单词。选择的关键字显示在表III中。
选定的关键字由一些通用词和一些特定词组成,这些词通常仅在计算机科学领域中使用。选择这些关键字是为了使我们能够看到模型如何响应通用关键字和特定于上下文的关键字以及它如何影响模型的性能。IV中显示了在建议的模型和以前的模型上关键词发现的结果。
先前的模型使用VCTK + LibriSpeech + TED-LIUM数据集进行了训练,而提出的模型使用了VCTK + LibriSpeech + TED-LIUM +演讲语音数据集。在先前的模型中也没有使用语言模型估计和单词词干。表IV的结果表明,对于以前的模型,可以很好地识别诸如“ That”和“ Number”之类的通用关键字。与所提出的方法相比,诸如“二进制”和“编程”之类的更具体的关键字并没有得到很好的识别。
最大的区别可以在“Iteration”一词中看到,其中以前的方法无法完全识别世界,而建议的方法却可以识别所有事件。其他特定关键字(例如“ programming”和“ binary”)的改进也可以看到,其中检测精度分别提高了50%和66.6%。在“science”一词的情况下,两个模型的表现相同。
总体结果显示,与以前的模型相比,平均精度提高了34.48%。从与讲课内容密切相关的上下文关键字可以清楚地看到个人的进步。这是因为这些关键字可以在附加的演讲视频数据集中更好地捕获。语言模型估计和单词词干的使用也有助于整体检测关键字。
Conclusion
在本文中,我们提出了一个KNN模型,该模型使用CNN作为其架构来在演讲视频上执行关键字搜索。通过在模型中使用上下文数据集并集成语言模型,我们可以提高KWS模型的性能。我们还表明,用于训练的数据集正在影响模型识别关键字的能力。
该研究的局限性在于缺乏可用于训练模型的公共语音数据集。尽管模型本身的整体性能不是最新水平,但我们的结果显示了一个有希望的前提,即通过使用更定义和特定的上下文信息,我们可以提高特定用途中模型的准确性案件。另一个主要问题是,与在受控环境中记录的语料库中的数据集相比,演讲视频中的语音数据不一致,具有很多噪音和干扰。此数据集之间的较大差距可能会影响神经网络的权重,从而导致语音信号分类错误。
未来改进这项工作的计划是增加更多的演讲视频作为训练数据集,并规范演讲视频语音的条件,以便为模型学习提供更好的基础。我们还计划改进单词预测的算法,以解决语音记录中出现的错误和拼写错误。