LM在speech recognition中的应用

今天我们来看看language model(简称LM)在speech recognition中的应用。
在这里插入图片描述首先来看上图,LM主要可以预测token sequence 的几率,虽然我们的LAS中其实只需要P(Y|X)的数值即可,但在实际操作中我们还是会加上P(Y)的数值,我们知道P(Y|X)需要的都是成对的数据,但是P(Y)非常容易去收集。
在这里插入图片描述我们可以看看,Google的语音训练模型一共使用了12500个小时的声音讯号,而这些基本就有一亿个词汇,相当于100套哈利波特的字数!这也说明数据量会非常的大。而如果知道BERT的话,我们可以知道BERT就可以看作一个非常大的LM,它里面会有30亿个词的样子。
在这里插入图片描述在接下来我们介绍一种N-gram的方法,比如我们收集到了一句话“wreck a nice beach”,要计算它的P(y1,y2,……,yn),如果我们选择用N-gram的方法,那么我们可以选择2-gram,就可以把P(“wreck a nice beach”)拆成P(wreck|START)P(a|wreck)P(nice|a)P(beach|nice),就比较便于我们的计算了,但是N-gram也有它的问题。
在这里插入图片描述如果我们的文本数据库中没有出现一些用法的话我们的模型就会将这些搭配产生的几率设置为0,但这很明显是不对的,因此我们使用一种叫做language model smoothing的东西,来给没有出现过的词汇设置一个很小很小的几率即可。
在这里插入图片描述我们再来介绍Continuous LM,这就是预测模型了,比如我们通过收集数据发现,A,C喜欢第一部凉宫春日的忧郁的同时也很喜欢第二部电磁炮,那么我们看到B很喜欢凉宫春日的忧郁,那么我们就可以给他推荐电磁炮,很有可能这也是他很喜欢的番。
在这里插入图片描述我们由上图可以看出我们设置h1,h2……和v1,v2……然后可以将每一种搭配用n以及下边I,j来表示,比如n12=v1∙h2,然后呢,我们只需要分析loss函数,就是上图中L的那个式子。
在这里插入图片描述如果我们发现两列的h向量非常的相似,那么我们就可以使用上文提到的language model smoothing来根据一列的来预测另一列的。
在这里插入图片描述上图就是具体的模式的。
在这里插入图片描述下面我们再来介绍NN -based LM,它就可以来预测下一个词汇是什么通过自己的数据库。
在这里插入图片描述上图也说明了该过程,每一个单词都有一个1-of-N encoding,然后通过Neural Network,就可以得到P(next word is “****”)的几率了。
在这里插入图片描述其实上述操作在03年就有科学家已经尝试过了,但是一直没有被很重视。
在这里插入图片描述在这里插入图片描述上面都是一些科学家的研究成果,人们最后发现其实LM并不一定需要极其复杂的模型也可以有很好的效果,所以现在的研究方向基本都不会设置一个非常复杂的模型。
在这里插入图片描述下面是最后一个问题,怎样使用LM来改善LAS呢?我们有3中方法,根据什么时候来整合数据,以及如何整合数据可以分成3类。下面我们看图来分析这三类。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: speechrecognition是一个用于语音识别的Python库。它提供了一个简单而强大的接口,可以将人类语言转换为文本形式。 speechrecognition库支持多种语音识别API,包括百度语音识别、离线语音识别以及Google语音识别等。这使得我们可以选择适合自己需求的API进行语音识别。 使用speechrecognition库进行文语音识别非常简单。首先,我们需要安装speechrecognition库及其相关依赖。然后,我们可以使用recognize_google函数来进行语音识别: import speech_recognition as sr # 创建一个语音识别的实例 r = sr.Recognizer() # 读取音频文件 with sr.AudioFile('audio.wav') as source: audio = r.record(source) # 将音频文件转换为音频对象 # 使用Google语音识别API进行语音识别 text = r.recognize_google(audio, language='zh-CN') print(text) 在上面的代码,我们将音频文件读取为一个音频对象,并使用Google语音识别API进行语音识别。最后,我们将识别结果打印出来。 除了从音频文件进行语音识别,speechrecognition库还支持从麦克风输入进行实时语音识别。我们只需要调用recognize_microphone函数即可实现。例如: import speech_recognition as sr # 创建一个语音识别的实例 r = sr.Recognizer() # 使用麦克风进行实时语音识别 with sr.Microphone() as source: audio = r.listen(source) # 使用Google语音识别API进行语音识别 text = r.recognize_google(audio, language='zh-CN') print(text) 使用speechrecognition库进行文语音识别非常便捷,无论是从音频文件进行识别还是实时录音进行识别,都可以通过简单的几行代码实现。 ### 回答2: speechrecognition库是一个用于语音识别的Python库。它提供了多种语音识别引擎的支持,包括Google Speech Recognition、CMU Sphinx、Wit.ai等。虽然speechrecognition库最初是为英语语音识别而设计的,但它也可以用于文语音识别。 在使用speechrecognition库进行文语音识别时,我们首先需要导入库并创建一个Recognizer对象。我们可以通过Recognizer对象来调用不同的语音识别引擎。例如,使用Google Speech Recognition引擎进行文语音识别,我们可以使用以下代码: ``` import speech_recognition as sr r = sr.Recognizer() with sr.Microphone() as source: print("请开始说话...") audio = r.listen(source) try: print("Google Speech Recognition识别结果: " + r.recognize_google(audio, language="zh-CN")) except sr.UnknownValueError: print("Google Speech Recognition无法识别音频") except sr.RequestError as e: print("无法从Google Speech Recognition服务获取结果:" + str(e)) ``` 在上述代码,我们使用了`recognize_google()`方法来调用Google Speech Recognition引擎进行文语音识别。`.listen(source)`方法用于从输入设备(麦克风)获取音频输入。接着,我们使用`try except`结构来处理识别结果和异常情况。 除了Google Speech Recognition引擎,speechrecognition库还支持其他引擎。例如,我们可以使用Wit.ai引擎进行文语音识别,只需将上述代码的`recognize_google()`改为`recognize_wit()`。 总之,speechrecognition库提供了文语音识别的功能,我们可以通过简单的代码来实现文语音识别应用。 ### 回答3: speechrecognition库是一个用于语音识别的Python库。它提供了一种简单的方式来将语音转换为文本数据。该库支持多种语音识别服务,包括Google Speech Recognition、Wit.ai、Bing Speech Recognition等。 使用speechrecognition库非常简单。首先,需要安装该库,可以使用pip命令进行安装。接下来,可以使用代码对语音进行识别。首先,需要创建一个Recognizer对象,然后使用该对象进行语音录制。录制完成后,调用Recognizer对象的recognize方法将语音转换为文本。 使用speechrecognition库进行文语音识别也非常方便。可以通过设置recognize_google或recognize_bing等方法的参数lang为"zh-CN"来指定使用文识别。除了指定语言外,还可以设置一些参数,如调整语音识别的准确度、音量阈值等。 speechrecognition库还支持实时语音识别,它可以从麦克风或音频流实时识别语音。使用实时语音识别时,可以通过设置partial_results参数来获取部分结果,这对于处理长时间语音非常有用。 总而言之,speechrecognition是一个功能强大且易于使用的语音识别库,可以帮助我们将语音转换为文本数据,并支持多种语音识别服务。无论是进行文语音识别还是实时语音识别,speechrecognition库都是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值