本文提出了一个基于神经网络的语音识别系统List, Attend and Spell(LAS),能够将语音直接转录为文字。

进步性:LAS将声学、发音和语言模型融合为一个神经模型,因此可以实现端到端。LAS只包含两部分:收听器(listener)和拼写器(speller)。收听器是一个金字塔循环网络编码器,拼写器是一个基于注意力机制的循环网络解码器。

1. 相关工作

当前最先进的语音识别器包含多个组分:声学模型、语言模型、发音模型和文本规范化模型。每个模型都有各自的假设和概率模型。也有工作尝试让这些组分联合训练,但一般是前端的声学模型会被迭代,后端的语言、发音和文本模型基本不变。

2. 方法细节

LAS的输入是一系列被过滤出来的bank spectra特征,输出是一系列字母、数字、标点符号、语气或未知符号。

LAS的基本方法是:在收听器,声音信号被编码为特征;拼写器根据 特征 以及 过去所有时刻的输出,依照条件概率的链式法则,来推断输入和输出符号之间的条件概率,然后选择条件概率最大者作为输出。

核心公式就是两个:
\[
\mathbf{h} = \text{Listen} (\mathbf{x})
\]
\[
P(y_i | \mathbf{x}, y_{<i}) = \text{AttendAndSpell} (y_{<i}, \mathbf{h})
\]

从图上就能观察出这两个公式。

2.1 收听器

整体框架如图,是一个金字塔形的多层双向LSTM结构。为什么不直接用LSTM呢?作者发现BiLSTM收敛巨慢无比,而且效果还不好。【看来应该是因为时间步太多导致收敛慢,因为每个时间步的输入差异大。因为有些句子单词很多】

在这个金字塔形BiLSTM中,每层的时间步数目会依次减半。实验中设了3层BiLSTM。

2.2 注意力和拼写

这里采用的是结合了注意力机制的单向LSTM。如图:

  1. 每一时刻的上下文向量由 特征向量 和 该时刻的状态向量 共同决定的:
    \[
    c_i = \text{AttentionContext} (s_i, \mathbf{h})
    \]

  2. 每一时刻的状态向量由 上一时刻的状态向量、上一时刻的输出 和 上一时刻的环境向量 共同决定:
    \[
    s_i = \text{RNN} (s_{i-1}, y_{i-1}, c_{i-1})
    \]

那么具体这个上下文是怎么算的呢?其实是简单的加权组合:
\[
c_i = \sum_u \alpha_{i,u} h_u
\]

\(h_u\)就是第\(u\)个特征。而权重\(\alpha_{i,u}\)是将\(s_i\)和\(h_u\)分别输入MLP后,算内积得到的。注意最后所有的\(\alpha_{i,u}\)要输入softmax归一化。

在训练后,\(\alpha_{i,u}\)通常会收敛到某些\(u\)附近,即只与少数的\(h_u\)有关。

其他细节就不管了,因为我们也不做这个。

Paper | LISTEN, ATTEND AND SPELL: A NEURAL NETWORK FOR LARGE VOCABULARY CONVERSATIONAL SPEECH RECOGNITION的更多相关文章

  1. 语音识别2 -- Listen,Attend,and Spell (LAS)

    LAS是Listen(Encoder),Attend,和Spell(Decoder)的简称 第一个步骤Listen(Encoder) listen的作用是输入一段语音信号,输出一段向量,去掉语音中的杂 ...

  2. Paper: ImageNet Classification with Deep Convolutional Neural Network

    本文介绍了Alex net 在imageNet Classification 中的惊人表现,获得了ImagaNet LSVRC2012第一的好成绩,开启了卷积神经网络在cv领域的广泛应用. 1.数据集 ...

  3. 读paper:Deep Convolutional Neural Network using Triplets of Faces, Deep Ensemble, andScore-level Fusion for Face Recognition

    今天给大家带来一篇来自CVPR 2017关于人脸识别的文章. 文章题目:Deep Convolutional Neural Network using Triplets of Faces, Deep ...

  4. (转)How Transformers Work --- The Neural Network used by Open AI and DeepMind

    How Transformers Work --- The Neural Network used by Open AI and DeepMind Original English Version l ...

  5. (zhuan) Recurrent Neural Network

    Recurrent Neural Network 2016年07月01日  Deep learning  Deep learning 字数:24235   this blog from: http:/ ...

  6. (转)The Neural Network Zoo

    转自:http://www.asimovinstitute.org/neural-network-zoo/ THE NEURAL NETWORK ZOO POSTED ON SEPTEMBER 14, ...

  7. Recurrent Neural Network(循环神经网络)

    Reference:   Alex Graves的[Supervised Sequence Labelling with RecurrentNeural Networks] Alex是RNN最著名变种 ...

  8. 论文笔记之:Progressive Neural Network Google DeepMind

    Progressive Neural Network  Google DeepMind 摘要:学习去解决任务的复杂序列 --- 结合 transfer (迁移),并且避免 catastrophic f ...

  9. 深度神经网络如何看待你,论自拍What a Deep Neural Network thinks about your #selfie

    Convolutional Neural Networks are great: they recognize things, places and people in your personal p ...

随机推荐

  1. 初始 Tronado

    安装 pip 安装 pip install tronado 手动安装 下载tronado安装包(https://pypi.python.org/packages/source/t/tornado/to ...

  2. Oracle DB Time

    Oracle DB Time是Oracle数据库在时间维度上剖析性能的一个重要指标,通过逐级分解该指标,定位到浪费资源或者资源争用的首要事件上,从而通过减少等待以及最小化每个请求的使用资源来达到优化的 ...

  3. 服务治理-Resilience4j(限流)

    Bulkhead Bulkhead一般用于服务调用客户端,用于限定对特定的服务的并发请求数量,起到一下作用:1.防⽌下游依赖被并发请求冲击2.防⽌发⽣连环故障 1.配置规则“order” //允许最大 ...

  4. 一步一步创建聊天程序2-利用epoll来创建简单的聊天室

    如图,这个是看视频时,最后的作业,除了客户端未使用select实现外,其它的要求都有简单实现. 服务端代码如下: #include <stdio.h> #include <strin ...

  5. 九、ITK-VTK混合编程--将序列dcm图像通过ITK读去并通过VTK显示出来

    一.初步介绍 上一个博客里面我记录了VTK的安装,以及相关的工程代码的构建,但是实际上上一个博客测试的代码的例子仅仅只是VTK程序的例子.而我实际上希望能够实现的是VTK和ITK混合编程. 在这里还是 ...

  6. 你真的理解Java 注解吗?

    你真的理解Java 注解吗? 1.什么是注解? 官方解释: Java 注解用于为 Java 代码提供元数据.作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的.Java ...

  7. [译]Vulkan教程(32)生成mipmap

    [译]Vulkan教程(32)生成mipmap Generating Mipmaps 生成mipmap Introduction 入门 Our program can now load and ren ...

  8. ASP.NET 页面控制

    一.HTTPRequest对象封装客户端请求页面或提交表单时提供的信息 请求方法:get/post 参数名/值 Cookie 使用的语言二.Rquest对象常用方法与属性 属性: QueryStrin ...

  9. 痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU特性那些事(2)- RT1052DVL6性能实测(CoreMark)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RTyyyy系列MCU的性能. 在前面的文章 i.MXRTyyyy微控制器概览 里,痞子衡给大家简介过恩智浦半导体在2 ...

  10. (五十一)c#Winform自定义控件-文字提示-HZHControls

    官网 http://www.hzhcontrols.com 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kww ...