5.3序列模型与注意力机制

觉得有用的话,欢迎一起讨论相互学习~Follow Me

3.9语音辨识 Speech recognition

  • 问题描述 对于音频片段(audio clip)x ,y生成文本(transcript),人听见的或者麦克风捕捉的都是空气中细微的气压变化,语音识别系统能够根据这种微弱的气压变化将音频转化为文本字符。

    • 将空气中微弱的气压变化显示成频率图的形式,并输出音频的文本内容如下图所示:
  • 考虑到人的耳朵并不会处理声音的原始波形,而是通过一种特殊的物理结构来测量不同的频率和强度的声波,音频的常见预处理方式就是生成这样的 声谱图 ,同样的 横轴是时间,纵轴是声音的频率,而图中不同的颜色显示了声波的能量,也就是在不同的时间和频率上这些声音有多大
  • 音位 过去的语音识别系统是依据 音位 来进行分辨的,即通过人为制定的音位符号来表示一个特定的语言,使用音位的符号标记就能使用机器合成出指定的语言。
  • 进展 但是在 深度学习 这种端到端的学习系统中使用 音位 来表示声音符号已经不再有必要,而是可以构建一个系统,通过向系统中输入音频,然后直接输出音频的文本。而不需要用这种人工设计的表示方法。所以语音识别使用的数据集特别巨大,往往可以长达300多个小时甚至3000个小时的文本音频数据集。大型的商业系统中也训练了1W或者10W个小时。

注意力模型在语音识别中的应用

  • 输入语音文本数据集的不同时间帧上的数据,并使用一个注意力模型输出文本描述。

    CTC损失函数语音识别(Connectionist temporal classification)

Graves A, Gomez F. Connectionist temporal classification:labelling unsegmented sequence data with recurrent neural networks[C]// International Conference on Machine Learning. ACM, 2006:369-376.

  • 示例 假设输入音频为 the quick brown fox ,这时使用一个新的网络,在这个例子中 输入输出 的数量相等,在这里使用一个简单的 单向循环神经网络 作为例子,而 实际应用使用的往往是一个很大很深的双向LSTM或GIU结构的循环神经网络 通常输入的数量往往比输出的数量要多很多 比如你有一段10秒的音频,并且特征是100HZ的,即每秒有100个样本,于是这段10s的音频片段,就会有1000个输入。

  • 但是音频文本识别的输出肯定没有1W个,所以可以用 空白字符重复字符 来对其进行填充,其中 重复字符 可以用来重叠,而 空白字符 可以用来占位。
  • 例如 **ttt_h_eee_\space__qqq__** \space 表示空格符,表示此处为单词的结尾,用来分割单词,而 “_ ” 表示用于占位的占位符,其中占位符中间的 重复字符 可以折叠。 **ttt_h_eee_\space__qqq__** 可以被处理为 the q 三个t,e,q都可以被折叠为一个字母,而占位符可以被忽略。


3.10触发字检测 Trigger word detection

  • 随着语音识别的发展,越来越多的设备可以被你的声音 唤醒 ,这被称为 触发字检测系统
  • 有关于 触发字检测 的文献还处于发展阶段,对于 触发字检测 的最好算法目前还没有一个广泛的定论。
  1. 首先将音频文件输入到RNN中,然后定义目标标签y
  2. 假如音频片段的一点处刚说完一个触发字,那么你就可以在训练集中把目标标签都设为0,然后此点目标签设为1.然后此点之后恢复成0,持续这个过程,只要触发了关键词,就将目标标签设置为1.
  3. 缺点 该算法构建了一个很不平衡的训练集,即0的出现次数比1的出现次数多出了很多。 为了解决这个问题可以在 关键词被触发 后输出多个1,以消除这种不平衡性。

[DeeplearningAI笔记]序列模型3.9-3.10语音辨识/CTC损失函数/触发字检测的更多相关文章

  1. [DeeplearningAI笔记]序列模型3.3集束搜索

    5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.3 集束搜索Beam Search 对于机器翻译来说,给定输入的句子,会返回一个随机的英语翻译结果,但是你想要一 ...

  2. [DeeplearningAI笔记]序列模型1.10-1.12LSTM/BRNN/DeepRNN

    5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.10长短期记忆网络(Long short term memory)LSTM Hochreiter S, Schmidhu ...

  3. [DeeplearningAI笔记]序列模型3.7-3.8注意力模型

    5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.7注意力模型直观理解Attention model intuition 长序列问题 The problem of ...

  4. [DeeplearningAI笔记]序列模型3.6Bleu得分/机器翻译得分指标

    5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.6Bleu得分 在机器翻译中往往对应有多种翻译,而且同样好,此时怎样评估一个机器翻译系统是一个难题. 常见的解决 ...

  5. [DeeplearningAI笔记]序列模型3.2有条件的语言模型与贪心搜索的不可行性

    5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.2选择最可能的句子 Picking the most likely sentence condition lan ...

  6. [DeeplearningAI笔记]序列模型3.1基本的 Seq2Seq /image to Seq

    5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.1基础模型 [1] Sutskever I, Vinyals O, Le Q V. Sequence to Se ...

  7. [DeeplearningAI笔记]序列模型1.7-1.9RNN对新序列采样/GRU门控循环神经网络

    5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.7对新序列采样 基于词汇进行采样模型 在训练完一个模型之后你想要知道模型学到了什么,一种非正式的方法就是进行一次新序列采 ...

  8. [DeeplearningAI笔记]序列模型1.5-1.6不同类型的循环神经网络/语言模型与序列生成

    5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.5不同类型的循环神经网络 上节中介绍的是 具有相同长度输入序列和输出序列的循环神经网络,但是对于很多应用\(T_{x}和 ...

  9. [DeeplearningAI笔记]序列模型1.3-1.4循环神经网络原理与反向传播公式

    5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.3循环神经网络模型 为什么不使用标准的神经网络 假如将九个单词组成的序列作为输入,通过普通的神经网网络输出输出序列, 在 ...

随机推荐

  1. ssd a

    Alpha版本测试报告 (1)测试计划 测试人员 工作安排 瞿煌人 制定测试计划,撰写测试报告 周建峰 执行测试,撰写测试报告 注:测试结果Y表示通过测试,N表示未通过测试. 功能 描述 效果 测试结 ...

  2. Android:有关菜单的学习(供自己参考)

    Android:有关==菜单==的学习 上下文菜单 上下文菜单就是手机中对某一项进行==点击一定时间==后弹出的针对该项处理的菜单. context_menu.xml: <?xml versio ...

  3. CS小分队第二阶段冲刺站立会议(5月27日)

    昨天成果:昨日有些小意外,导致没有按照原定计划工作.昨天为扫雷游戏增加了新的失败特效,只要玩家点到地雷,所有的地雷都会依次出现两帧的爆炸效果,并伴随声音. 今日计划:排除一些现有程序的bug.. 遇到 ...

  4. [转]Android试验:如果View的ID相同会出现什么效果?

    1.实验:通过布局编辑器强行指定两个button id相同,然后在代码中通过findViewById()获得句柄后修改其文本.  实验结果:只有一个button的文本变化了,另一个不受影响.  2.实 ...

  5. HDU 5666 Segment 数论+大数

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5666 bc(中文):http://bestcoder.hdu.edu.cn/contests ...

  6. lintcode-424-逆波兰表达式求值

    424-逆波兰表达式求值 求逆波兰表达式的值. 在逆波兰表达法中,其有效的运算符号包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰计数表达. 样例 ["2" ...

  7. Sql server 中关闭ID自增字段(SQL取消ID自动增长)

    sql server在导入数据的时候,有时候要考虑id不变,就要先取消自动增长再导入数据,导完后恢复自增. 比如网站改版从旧数据库导入新数据库,数据库结构不相同,可能会使用insert into xx ...

  8. WPF浏览器应用程序与JS的互调用(不用WebBrowser)

    首先说些题外话,很久没有写博客了,空间里面的大部分文章还是11年写的.那时候刚毕业就来到这家公司,参与到一个Asp.net MVC的项目开发中,这个项目是一个全新的项目,连项目开发框架都没有,亏得领导 ...

  9. oracle 行转列和列转行

    WITH L AS ( ), m AS ( SELECT A.LV AS LV_A, B.LV AS LV_B, TO_CHAR(B.LV) || 'x' || TO_CHAR(A.LV) || '= ...

  10. 判断一个变量是不是json,以及如何将变量转换成json

    https://blog.csdn.net/A123638/article/details/52486975这里看到一个很好的方法 // 判断变量是不是jsonisJson(variable: any ...