深度学习与人类语言处理课程笔记,上节回顾深度学习与人类语言处理-introduction。这节课将会简单介绍语音识别的最新研究方法,请看正文


语音识别该何去何从?

1969年,J.R. PIERCE:“语音识别就像把水变成汽油、从大海中淘金、治疗癌症、人类登陆月球”

当然,这是50年前的想法,那么语音识别该如何做呢?

一个典型的语音识别系统如下,输入一段语音到模型,模型输出一段文本

Speech:表示一个长度为T,维度为d的向量序列
Text:一个token序列,长度为N,V个不同的token,通常T>N

接下来看看输入可以有哪些可能,输出有哪些可能,首先看下输出部分

输出Token

  • 音位(phoneme,发音的基本单位)

在深度学习没有流行之前,以音位为输出是很常见的,因为音位和声音的对应关系比较强,那输出是一系列音位,怎么变成我们能看懂的文字呢?需要一个词典,需要语言学家标出来,音位同样也需要语言学家帮忙

  • 字母(Grapheme,书写的基本单位)
  1. 英文(基本书写单位:字母)

总的token:26个英文字母+一个空格+标点符号

one_punch_man;N=13,V=26+?
  1. 中文(基本书写单位:单个汉字)

总的token:常用的汉字(和英文区别在于没有空格)

"一",“拳”,“超人”,“人”;N=4,V=4000+
  • 词(word)

英文:one punch man;N=3,通常V>100K

中文:“一拳 ”超人“;N=2,V=?

使用词做为输出单位很难,因为中文没有空格,没有词的明确分界,对于一些语言,V可能超大,无法穷举

  • 语素(Morpheme,可以传达意思的最小单位,小于词,大于字母)

例如英文中:unbreakable可以拆成 “un“ ”break“ ”able”

那语素如何获取呢?

请语言学家告诉我们;使用统计学方法

  • 字节(bytes)

使用字节作为输出系统是language independent,不受语言限制

所有的语言都用UTF-8编码表示:

那么哪个Token最受欢迎呢,统计了19年语音三大顶会paper ( INTERSPEECH’19, ICASSP’19, ASRU’19 )。发现最多人使用的是grapheme

除了上述形式,还有哪些输出呢?

  1. 输入语音,输出word embedding
  2. 和翻译系统结合,直接输出另一种语言文本
  3. 加入意图识别,输出对应的意图
  4. 输出输入中所包含的关键词

输入部分(声学特征,acoustic feature)

对输入的声音信号,使用25ms的时间窗取出一个frame,对应就有400个采样点(16KHz)(使用MFCC会得到39维向量、filter bank输出是80维),通常的每个时间窗的间隔为10ms,那么1s内就有100个frame,如何处理每个frame呢,请看下图

输入声音信号 经过 离散傅里叶变换 变成 频谱图,经过多个不同的 filter bank (古圣先贤们设计出来的) 处理后, 得到向量 使用对数变换,经过 离散余弦变换,使用MFCC方法得到向量

同样我们看下哪种输入信号最受欢迎,19年filter bank成为主流

  • 训练一个语音识别系统需要多少数据?

很多很多,google语音识别系统用了上十万的语音数据。。。

语音识别模型的两个不同的角度

seq-to-seq将要被介绍的模型

  • Listen, Attend, and Spell (LAS)
  • Connectionist Temporal Classification (CTC)
  • RNN Transducer (RNN-T)
  • Neural Transducer
  • Monotonic Chunkwise Attention (MoChA)

同样我们看下,19年的趋势

下节课。我们将会依次介绍上述提到的模型

接下来深度学习与人类语言处理-语音识别(part2)

references:

http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP20.html

深度学习与人类语言处理-语音识别(part1)的更多相关文章

  1. 深度学习与人类语言处理-语音识别(part2)

    上节回顾深度学习与人类语言处理-语音识别(part1),这节课我们将学习如何将seq2seq模型用在语音识别 LAS 那我们来看看LAS的Encoder,Attend,Decoder分别是什么 Lis ...

  2. 深度学习与人类语言处理-语音识别(part3)

    上节回顾深度学习与人类语言处理-语音识别(part2),这节课我们接着看seq2seq模型怎么做语音识别 上节课我们知道LAS做语音识别需要看完一个完整的序列才能输出,把我们希望语音识别模型可以在听到 ...

  3. 李宏毅深度学习与人类语言处理-introduction

    深度学习与人类语言处理(Deep learning for Human Language Processing) 李宏毅老师深度学习与人类语言处理课程笔记,请看正文 这门课会学到什么? 为什么叫人类语 ...

  4. 【PyTorch深度学习60分钟快速入门 】Part1:PyTorch是什么?

      0x00 PyTorch是什么? PyTorch是一个基于Python的科学计算工具包,它主要面向两种场景: 用于替代NumPy,可以使用GPU的计算力 一种深度学习研究平台,可以提供最大的灵活性 ...

  5. R语言︱H2o深度学习的一些R语言实践——H2o包

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言H2o包的几个应用案例 笔者寄语:受启发 ...

  6. 碎片︱R语言与深度学习

    笔者:受alphago影响,想看看深度学习,但是其在R语言中的应用包可谓少之又少,更多的是在matlab和python中或者是调用.整理一下目前我看到的R语言的材料: ---------------- ...

  7. [翻译]深度学习的机器(The learning machines)

    学习的机器 用大量的数据识别图像和语音,深度学习的计算机(deep-learning computers) 向真正意义上的人工智能迈出了一大步. Nicola Jones Computer Scien ...

  8. Bengio最新博文:深度学习展望

    Bengio最新博文:深度学习展望 人类一直梦想着创造有智能的机器.早在第一台可编程计算机问世前100多年,发明家就对如何能让由连杆和齿轮组成的设备也变得更加智能这一命题充满好奇.后来,20世纪40年 ...

  9. TensorFlow系列专题(三):深度学习简介

    一.深度学习的发展历程 深度学习的起源阶段 深度学习的发展阶段 深度学习的爆发阶段 二.深度学习的应用 自然语言处理 语音识别与合成 图像领域 三.参考文献   一.深度学习的发展历程 作为机器学习最 ...

随机推荐

  1. MOOC(14)- 从数据库中获取预期结果

    数据库中的预期结果写的是SQL语句 从表格中读取到SQL语句,再去数据库获取真正的预期结果 # -*- coding: utf-8 -*- # @Time : 2020/2/18 9:50 # @Fi ...

  2. cs231n spring 2017 lecture14 Reinforcement Learning

    (没太听明白,下次重新听) 1. 增强学习 有一个 Agent 和 Environment 交互.在 t 时刻,Agent 获知状态是 st,做出动作是 at:Environment 一方面给出 Re ...

  3. C++中stoi函数

    作用: 将 n 进制的字符串转化为十进制 头文件: #include <string> 用法: stoi(字符串,起始位置,n进制),将 n 进制的字符串转化为十进制 示例: stoi(s ...

  4. CF-1066B-Heaters

    这题就是从1到n点进行遍历,对未加热的点找到最远的能加热到这个点的点,还是看代码讲吧 #include"bits/stdc++.h" using namespace std; co ...

  5. WordPress快速打造个人博客

    前些天用wordpress搭建了现在这个博客,所以总结了一篇文章,讲讲怎么样简单的创建一个博客.开始前这里有篇我搭建时所遇到的问题可以作为参考<WordPress建站注意事项>,首先我们要 ...

  6. 2015-09-14-初级vector

    标准库vector类型 #include<vector> using std::vector; vector为一个类模板. vector的初始化 vector<T> v1; v ...

  7. flutter实践 - plsy

    项目背景 项目需要从钉钉微应用跳转 WPS 打开 word 文档,但是 WPS 只提供了 StartActivity 方式携带参数跳转应用,deeplink 只能打开应用,而钉钉微应用只支持 deep ...

  8. iOS 编程:NSURLSession

    定义:描述 Foundation 框架类在标准的网络传输协议下,用 URLs 连接因特网并与服务器交互的一整套体系. 支持的传输协议: File Transfer Protocol (ftp://) ...

  9. Seata-一站式分布式事务解决方案

    Fescar 2019 年 1 月,阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback),和社区一起共建开源分布式事务解决方案. F ...

  10. android编译架构之添加C项目

    1.  增加一个项目与android编译中枢息息相关.特别需要告诉编译中枢的一些特别信息. 例如: A 这个项目target名字是什么 B 这个项目编译类型是什么,bin?c?lib?or jar? ...