[DeeplearningAI笔记]序列模型3.9-3.10语音辨识/CTC损失函数/触发字检测
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
- 随着语音识别的发展,越来越多的设备可以被你的声音 唤醒 ,这被称为 触发字检测系统

- 有关于 触发字检测 的文献还处于发展阶段,对于 触发字检测 的最好算法目前还没有一个广泛的定论。
- 首先将音频文件输入到RNN中,然后定义目标标签y

- 假如音频片段的一点处刚说完一个触发字,那么你就可以在训练集中把目标标签都设为0,然后此点目标签设为1.然后此点之后恢复成0,持续这个过程,只要触发了关键词,就将目标标签设置为1.
- 缺点 该算法构建了一个很不平衡的训练集,即0的出现次数比1的出现次数多出了很多。 为了解决这个问题可以在 关键词被触发 后输出多个1,以消除这种不平衡性。

[DeeplearningAI笔记]序列模型3.9-3.10语音辨识/CTC损失函数/触发字检测的更多相关文章
- [DeeplearningAI笔记]序列模型3.3集束搜索
5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.3 集束搜索Beam Search 对于机器翻译来说,给定输入的句子,会返回一个随机的英语翻译结果,但是你想要一 ...
- [DeeplearningAI笔记]序列模型1.10-1.12LSTM/BRNN/DeepRNN
5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.10长短期记忆网络(Long short term memory)LSTM Hochreiter S, Schmidhu ...
- [DeeplearningAI笔记]序列模型3.7-3.8注意力模型
5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.7注意力模型直观理解Attention model intuition 长序列问题 The problem of ...
- [DeeplearningAI笔记]序列模型3.6Bleu得分/机器翻译得分指标
5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.6Bleu得分 在机器翻译中往往对应有多种翻译,而且同样好,此时怎样评估一个机器翻译系统是一个难题. 常见的解决 ...
- [DeeplearningAI笔记]序列模型3.2有条件的语言模型与贪心搜索的不可行性
5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.2选择最可能的句子 Picking the most likely sentence condition lan ...
- [DeeplearningAI笔记]序列模型3.1基本的 Seq2Seq /image to Seq
5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.1基础模型 [1] Sutskever I, Vinyals O, Le Q V. Sequence to Se ...
- [DeeplearningAI笔记]序列模型1.7-1.9RNN对新序列采样/GRU门控循环神经网络
5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.7对新序列采样 基于词汇进行采样模型 在训练完一个模型之后你想要知道模型学到了什么,一种非正式的方法就是进行一次新序列采 ...
- [DeeplearningAI笔记]序列模型1.5-1.6不同类型的循环神经网络/语言模型与序列生成
5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.5不同类型的循环神经网络 上节中介绍的是 具有相同长度输入序列和输出序列的循环神经网络,但是对于很多应用\(T_{x}和 ...
- [DeeplearningAI笔记]序列模型1.3-1.4循环神经网络原理与反向传播公式
5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.3循环神经网络模型 为什么不使用标准的神经网络 假如将九个单词组成的序列作为输入,通过普通的神经网网络输出输出序列, 在 ...
随机推荐
- HDU 5206 Four Inages Strategy 水题
题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5206 bc(中文):http://bestcoder.hdu.edu.cn/contests ...
- 0511团队项目2.0--产品product backlog
介绍Scrum之product backlog Scrum的基本概念其实并不复杂,但是想做好并不容易,大家都知道product backlog的重要性,但是我们如何制定和展现它,如何评定优先级,如何进 ...
- WCF RestFull提交数据超出限额解决方法
最近在使用wcf restfull时出现了超大数据提交出错的问题. 服务端会返回错误:服务器处理请求时遇到错误.有关构造有效服务请求的内容,请参阅服务帮助页.异常消息为“反序列化对象 属于类型 Yes ...
- 利用Docker安装Web前端性能测试工具Sitespeed.io
目录结构 一.Sitespeed.io概述 1.Sitespeed.io简介 2.Sitespeed.io使用场景 二.Sitespeed.io的安装和使用 1.安装Sitespeed.io 2.连接 ...
- Windows下多线程编程(一)
前言 熟练掌握Windows下的多线程编程,能够让我们编写出更规范多线程代码,避免不要的异常.Windows下的多线程编程非常复杂,但是了解一些常用的特性,已经能够满足我们普通多线程对性能及其他要求. ...
- WordPress使用淘宝IP地址库的API显示评论者的位置信息(二)
1 淘宝IP地址库的接口说明 在上一篇文章<WordPress使用淘宝IP地址库的API显示评论者的位置信息(一)>中,vfhky使用了新浪工具提供的这个IP接口显示博客评论者的位置信息. ...
- redis 同步化操作
异步化操作是很麻烦的的.不好控.下面介绍个同步化的库bluebird.用法很简单.看下你还子就知道了 const redis = require('redis'); const bluebird = ...
- PHP面向对象之接口
接口(interface)技术 什么是接口? 先看抽象类: abstract class 类名 { 属性1: 属性2: ..... 非抽象方法1: 非抽象方法2: ...... 抽象方法1: 抽 ...
- 第193天:js---Math+Error+Number+Object总结
一.Math 随机选取 //随机选取 function getRandom (begin,end){ return Math.floor(Math.random()*(end-begin))+begi ...
- 第184天:js创建对象的几种方式总结
面向对象编程(OOP)的特点: 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有的对象下继承出新的对象 多态:多对象的不同形态 一.创建对象的几种方式 javascript 创建对象简单 ...