本博客主要是摘写洪青阳教授的《语言识别-原理与应用》的笔记,不足之处还请谅解。

语音识别为:根据输入的观察值序列O,找到最可能的词序列W^\hat{W}W^。按照贝叶斯准则,识别任务可做如下转化:
W^=argmax⁡WP(W∣O)=arg⁡max⁡P(W)P(O∣W)P(O)\hat{W}= {\underset {W}{\operatorname {arg max} }}\,P(W|O)=\arg\,\max\frac{P(W)P(O|W)}{P(O)} W^=Wargmax​P(W∣O)=argmaxP(O)P(W)P(O∣W)​
其中,P(O)P(O)P(O)和识别结果WWW无关,可忽略不急,因此W^\hat{W}W^的求解可进一步简化为:
W^=arg max⁡WP(W)P(O∣W)\hat{W}={\underset {W}{\operatorname{arg\,max}}}\,P(W)P(O|W) W^=Wargmax​P(W)P(O∣W)
要找到最可能的词序列,必须使上式右侧两项的乘积最大。其中,P(O∣W)P(O|W)P(O∣W)由声学模型决定,P(W)P(W)P(W)由语言模型决定。

声学模型就是前面学过的,通过声音进行分析的模型。

语言模型用来表示词序列出现的可能性,用文本数据训练而成,是语音识别系统重要的组成部分,如下图所示。

上图即为我们熟知的语音识别框架。

语言模型用来表示词语序列出现的可能性,可以基于语法规则,也可 以基于统计方法

基于规则的语言模型:来源于语言学家掌握的语言学知识和领域知识,或者根据特定应用设定语法规则,一般仅能约束受限领域内的句子。

统计语言模型:通过对大量文本语料进行处理,获取给定词序列的概率分布,从而能够客观描述隐含的规律,适合于处理大规模真实文本。统计语言模型已被广泛应用于语音识别、机器翻译、文本校对等多个领域。

而要训练一个适用性强的统计语言模型,就需要大量的、不同的、能覆盖用户各种表达方式的文本语料。

所有的句子都有开始位置和结束位置,分别用<s>和</s>表示,可认为这两个特殊标记是两个词。语言模型刻画词与词之间的组合可能性,通过分词,将句子进一步转换为词与词之间的组合概率关系。

即统计语言模型的目标是计算出给定词序列w1,⋯,wt−1,wtw_1,\cdots,w_{t-1},w_tw1​,⋯,wt−1​,wt​的组合概率:
P(W)=P(w1w2⋯wt−1wt)=P(w1)P(w2∣w1)P(w3∣w1w2)⋯P(wt∣w1w2⋯wt−1)P(W)=P(w_1w_2\cdots w_{t-1}w_t)\\ =P(w_1)P(w_2|w_1)P(w_3|w_1w_2)\cdots P(w_t|w_1w_2\cdots w_{t-1}) P(W)=P(w1​w2​⋯wt−1​wt​)=P(w1​)P(w2​∣w1​)P(w3​∣w1​w2​)⋯P(wt​∣w1​w2​⋯wt−1​)
其中,条件概率P(w1),P(w2∣w1),P(w3∣w1w2),⋯,P(wt∣w1w2⋯wt−1)P(w_1),P(w_2|w_1),P(w_3|w_1w_2),\cdots,P(w_t|w_1w_2\cdots w_{t-1})P(w1​),P(w2​∣w1​),P(w3​∣w1​w2​),⋯,P(wt​∣w1​w2​⋯wt−1​)就是语言模型。

计算所有这些概率值的复杂度较高,特别是长句子的计算量很大,因此需做简化,一般采用最多n个词组合的n-gram模型。

n-gram模型

所谓n-gram模型,表示n个词之间的组合概率模型。在n-gram模型中,每个预测变量wtw_twt​之与长度为n-1的上下文:
P(wt∣w1⋯wt−1)=P(wt∣wt−n+1wt−n+2⋯wt−1)P(w_t|w_1\cdots w_{t-1})=P(w_t|w_{t-n+1}w_{t-n+2}\cdots w_{t-1}) P(wt​∣w1​⋯wt−1​)=P(wt​∣wt−n+1​wt−n+2​⋯wt−1​)
即n-gram预测的词概率值依赖于前n-1个词,更长距离的上下文依赖被忽略。考虑到计算代价,在实际应用中一般取1≤n≤51\leq n \leq 51≤n≤5。

当n=1,2和3时,相应的模型分别成为一元模型、二元模型和三元模型。

一元模型和多元模型有明显的区别,一元模型没有引入“语境”,对句子的约束最小,其中的竞争最多。而多元模型对句子有更好的约束能力,解码效果更好。

但相应地,n越大,语言模型就越大,解码速度也越慢。

而语言模型的概率均从大量文本语料估计得到。针对一元模型,可简单地计算词的出现次数。

假设有1000个句子,其中:

  • “我们”出现100次,“明年”出现30次,“日子”出现10次,······
  • 总共有21000个词标签,其中包括1000个结束符</s>

一元模型的计算如下:

  • P(“我们”) = 100/21000
  • P(“明年”) = 30/21000
  • P(“日子”) = 10/21000
  • P(</s>) = 1000/21000

一元模型的示意图如下:

而二元模型的计算如下。假设这1000句语料中出现下面两个词的组合情况如下:

  • 10句以“我们”开头,5句以“明天”开头,……
  • 2句以“日子”结尾,……
  • 1次出现“我们明年”,3次出现“我们彼此”,……

则二元模型计算如下:

  • P(“我们”|) = 10/1000
  • P(“明天”|) = 5/1000
  • P(</s>| “日子”) = 2/10 ,“日子”出现10次
  • P(“明年”|“我们”) = 1/100 ,“我们”出现100次
  • P(“彼此”|“我们”) = 3/100

得到下表:

所以,二元模型的组合图如下:

三元模型用来表示前后三个词之间的组合可能性,其概率计算公式为
P(w3∣w1w2)=count(w1w2w3)/count(w1w2)P(w_3|w_1w_2)=count(w_1w_2w_3)/count(w_1w_2) P(w3​∣w1​w2​)=count(w1​w2​w3​)/count(w1​w2​)
假设“我们明天”出现2次,“我们 明天 开始”出现1次,则
P(开始∣我们明天)=1/2P(开始|我们明天)=1/2 P(开始∣我们明天)=1/2
当句子只有一个词,例如”是“,其实也表示三个词,即”<s>是</s>“,因此要单独识别"是",也得有这样一个词的句子。

三元模型的概率关系图如下:

评价指标——困惑度

给定句子S,其包含词序列w1,w2,⋯,wTw_1,w_2,\cdots,w_Tw1​,w2​,⋯,wT​,T是句子长度,则困惑度(Perplexity)表示为:
PPL(W)=P(w1w2⋯wT)−1T=1P(w1w2⋯wT)TPPL(W)=P(w_1w_2\cdots w_T)^{-\frac{1}{T}}=\sqrt[T]{\frac{1}{P(w_1w_2\cdots w_T)}} PPL(W)=P(w1​w2​⋯wT​)−T1​=TP(w1​w2​⋯wT​)1​​
Perplexity又称困惑度(PPL), PPL越小,

语音识别——语言模型相关推荐

  1. 语音增强 理论与实践 pdf_语音识别工具ESPnet代码结构

    ESPnet: end-to-end speech processing toolkit 文档网站: https://espnet.github.io/espnet/installation.html ...

  2. 北京/上海内推 | 小红书智能算法组招聘NLP/音乐/语音识别算法实习生

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 小红书 小红书社区技术部智能算法组是小红书从事智能创作研发的团队,我们的技 ...

  3. 出门问问工程副总裁黄美玉入选IEEE Fellow,曾担任微软Cortana首席NLP科学家

    虽然 IEEE(国际电子电气工程协会)2019 年的 Fellow 评选结果还未正式出炉,但记者刚刚获悉,IEEE Fellow 又新增一名华人科学家入选--出门问问工程副总裁.Mobvoi AI L ...

  4. Recurrent Neural Networks

    传统的神经网络不能进行连续的思考.想象一下你想对电影里每一个点发生的不同的事件进行分类.对于传统的神经网络来说是不能从过去的事情推断未来的事情. RNN(Recurrent neural networ ...

  5. 关于语音会议自动转文字系统的想法

    我要考虑的问题是做的是什么?用什么做?如何做?我觉得首先思考一下这三个问题,对我后面的工作有很大的帮助,而不是无脑的去查资料,我要通过回答这三个问题,明确语音会议自动转文字系统这个毕业设计的工作方向, ...

  6. 10分钟内打字数据结构

    What are data structures? They're a variety of ways to structure objects to allow for a variety of t ...

  7. 机器学习对数学的要求_是对您的机器学习模因进行数学调查

    机器学习对数学的要求 I have taken severe umbrage at a particular machine learning meme that keeps popping up i ...

  8. 使用Windows Defender Atp进行威胁狩猎

    What Is It? The very thought of "threat hunting" often suggests the dramatized scenes from ...

  9. qrect在图片上显示矩形框_2019年6月百度大脑产品上新技术升级盘点内容

    一年一度的百度 AI 开发者大会刚刚在北京落下帷幕,百度大脑发布了5.0,并宣布进入人工智能大生产时代. 而一系列黑科技的部分之外,百度 AI 开放平台本月还有一系列为开发者贴身打造的新产品和细致的服 ...

  10. 见证产品成长,共享AI力量!

    百度大脑产品月报已送达!全新的跨越,全新的开始,朝着梦想全力地奔跑,站在新的起点,迎接新的挑战,犇向2021年! 11-12月40余项重要产品能力上新及升级,服务企业和开发者,助力实现商业价值.加速产 ...

最新文章

  1. Java数据结构与算法——树(基本概念,很重要)
  2. linux关于防火墙的一些知识
  3. mysql数据库约束无符号,MySQL所支持的数据类型与表字段约束类型的学习教程
  4. c++ 使用nacos_《Nacos系列》之注册中心
  5. python刷题用leet_GitHub - Yolymaker/leetcode-python: 利用python分类刷leetcode题目
  6. EasyUI_datagrid
  7. 类与对象初识 类是模具 对象是产品 0314 2101
  8. python-类的装饰器-主要给类添加属性用途
  9. 联想用u盘重装系统步骤_保姆级重装系统教程在此
  10. win10软件拒绝访问删不掉_谷歌工程师正在解决Windows 10防病毒软件导致谷歌浏览器不稳定问题...
  11. 转换优化 onnx模型
  12. 【华为社招OD笔试题】输入一串数字,给出他们的最小的和的绝对值,输出a,b和a+b的绝对值 其中数字范围为[-63500,63500]
  13. routing-controllers工作原理解析
  14. 这些年我要读的书【不断更新中】
  15. 7-2 列出连通集 (25 分)
  16. 唐桥医学云会议助力第二届世界中医药互联网产业大会
  17. 《零基础数学建模》——最大最小化模型
  18. 每日一题——LeetCode977(有序数组的平方)二种方法
  19. 【经验分享】打通“任督”二脉——企业数字化转型中如何构建DevOps能力体系?
  20. Mbus从站使用TSS721芯片通讯问题

热门文章

  1. 阿里70后程序员的 26 个职场感悟
  2. 学习笔记|复杂嵌套的三目表达式如何分割?
  3. Excel小技巧总结,工作中超实用
  4. 免费好用的判定节假日API来了
  5. sad代价计算_基于改进代价计算和自适应引导滤波的立体匹配
  6. flutter中状态栏高度等信息
  7. 神经网络机器翻译的实现
  8. 利用httpclient和多线程刷访问量代码
  9. Android判断是否可以使用外网
  10. php 图片抠图,php imagick api蒙板抠图