深度学习与人类语言处理课程笔记,上节回顾深度学习与人类语言处理-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. 1)public,provite和protect不能放在函数函数头

    今天我才知道,原来这三个修饰的东西,只是用在类里面方法,怪不得一个叫方法,一个叫函数了,原来就是区分他们,哎, 今天遇到这么一个问题: <?php //header('Content-type: ...

  2. django框架进阶-cookie和session-长期维护

    ###############    python基础回顾:装饰器    ################ # 装饰器非常重要,1是写代码的时候,2是面试的时候,没有python开发不问装饰器的, # ...

  3. 利用Python进行图片发送与接收的两种方法---包含客户端和服务器端代码

    第一种方法 opencv.requests.flask 此方法比较耗费时间 600毫秒左右 客户端代码 #coding:utf-8 import cv2 import json import requ ...

  4. sqlserver多表联查分页

    select * from(select H_order.Id ,H_order.userID, ROW_NUMBER() over (order by H_order.Id Desc) as row ...

  5. git本地仓库目录问题

    git安装后修改默认的路径:每次打开git bash后都会进入这个目录 https://blog.csdn.net/weixin_39634961/article/details/79881140 在 ...

  6. JDK源码看Java域名解析

    前言 在互联网中通信需要借助 IP 地址来定位到主机,而 IP 地址由很多数字组成,对于人类来说记住某些组合数字很困难,于是,为了方便大家记住某地址而引入主机名和域名. 早期的网络中的机器数量很少,能 ...

  7. mongo的基本命令操作

    基本用法学习:https://www.runoob.com/mongodb/mongodb-create-database.html MongoDB数据库基本用法 show dbs:显示数据库列表 s ...

  8. 用数组实现栈(C++)

    #include <iostream> //栈的数组实现 using namespace std; #define MAXSIZE 10; template<class T> ...

  9. 华为VS小米 营销手段有待继续强化

    营销手段有待继续强化" title="华为VS小米 营销手段有待继续强化"> 对于大多数来说,希望看到强者愈强的戏码.比如:NBA里的N场连胜.苹果帝国千秋万载一统 ...

  10. CORS’s source, Principle and Implementation

    跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器 让运行在一个 origin (domain) 上的Web应用被准许访问来自不同源服务器上的指定的资源.当一个资源从与该资源 ...