精华内容
下载资源
问答
  • 语音识别语言模型介绍

    千次阅读 2020-06-07 01:09:23
    语言模型技术广泛应用于语音识别、OCR、机器翻译、输入法等产品上。语言模型建模过程中,包括词典、语料、模型选择,对产品的性能有至关重要的影响。语言模型的建模需要利用复杂的模型公式进行模拟计算,是人工智能...

    语言模型技术广泛应用于语音识别、OCR、机器翻译、输入法等产品上。语言模型建模过程中,包括词典、语料、模型选择,对产品的性能有至关重要的影响。语言模型的建模需要利用复杂的模型公式进行模拟计算,是人工智能领域的关键技术之一。

    1. 语言模型的背景

    语言模型是针对某种语言建立的概率模型,目的是建立一个能够描述给定词序列在语言中的出现的概率的分布。给定下边两句话:

    定义机器人时代的大脑引擎,让生活更便捷、更有趣、更安全。

    代时人机器定义引擎的大脑,生活让更便捷,有趣更,安更全。

    语言模型会告诉你,第一句话的概率更高,更像一句”人话”。

    语言模型技术广泛应用于语音识别、OCR、机器翻译、输入法等产品上。语言模型建模过程中,包括词典、语料、模型选择,对产品的性能有至关重要的影响。Ngram模型是最常用的建模技术,采用了马尔科夫假设,目前广泛地应用于工业界。

    2. 语言模型的技术难点

    语言模型的性能,很大程度上取决于语料的质量和体量。和特定任务匹配的大语料,永远是最重要的。但是实际应用中,这样的语料往往可遇不可求。

    传统的ngram建模技术,对长距离的依赖处理的欠佳。如工业界常用的四元模型,即当前词的概率,只依赖三个历史词。因此,更远距离的历史词在建模中,没有对当前词概率产生影响。

    此外,ngram模型建模的参数空间过于庞大。同样以四元模型为例,词典大小为V,参数空间就是[公式]。实际应用中V大小为几万到几百万,可想而知,参数空间有多大。在这样的参数规模下,多大的数据显得都有些稀疏。

    近年来提出的神经网络语言模型技术,一定程度上解决了参数空间大,长距离依赖的问题。而且对于相似的词,概率估计上自带一定程度的平滑,从另一个角度解决了数据稀疏的问题。但是神经网络语言模型的缺点是训练时间长,实际应用中查询速度较慢,需要结合硬件做加速。

    3. Ngram语言模型

    如上所说,ngram语言模型是应用最常见的语言模型。它采用了n元依赖假设,即当前词的概率,只依赖于前n-1个词。即

    不考虑平滑,模型概率估计使用最大似然概率:

    这种估计理解起来比较简单,即当前历史词下出现当前词,占当前历史词下出现所有可能词的比重。然而这种估计方法,会遇到我们上述提到的参数空间过大的问题。语料中不可能覆盖[公式]个估计场景,肯定会有很多零点,如果使用最大似然,最后很多句子的概率都会是0,这会导致ngram基本不可用。

     

    4. 平滑技术

    平滑技术,可以说是ngram得以应用的重要原因,它很好地解决了参数空间大,数据稀疏的问题。工业应用中,最常用的是Katz平滑和KN平滑技术。

    平滑理解起来很简单,就是把概率高的文法进行折扣,折扣出来的概率分给低概率的文法,即“劫富济贫”。以下图为例,即将w1到w4的概率,分给w5到w10。

    加一平滑是最简单的平滑算法,可以帮助我们理解平滑的本质。所有的文法的频次都加1,这样就不存在概率为0的文法了。反之,高频词文法的概率得到了一定程度的降低。

    5. 语言模型的评价指标

    交叉熵和困惑度是用来评估语言模型最重要的两个指标。

    交叉熵(cross entropy)的定义来自预测概率与压缩算法的关系,给定语言模型下可以得到一个压缩算法,对一个概率为p(s)的句子,用-[公式]p(s)bits保存该句子。交叉熵可以理解为,在给定语言模型下的压缩算法,对句子中每个词需要的平均bits数。

    交叉熵一般用下面的公式计算,m为概率p的模型:

    [公式]这个值即为困惑度(ppl)。从直觉上,我们可以把困惑度理解为在随机实验中选择随机变量的加权平均数。越小的困惑度对应一个越好的语言模型,语言模型的预测能力越强。

    此外,实际产品中的性能,如语音识别中的字错误率,输入法中的句准确率等,也是衡量模型好坏的标准。

    6. 语言模型技术的最新进展

    语言模型的最新进展,主要集中在神经网络的应用上。Bengio最早提出nnlm,将几个历史词拼在一起作为输入,将当前词放在输出层作为目标。为了解决词典的高维数问题,nnlm利用了映射层,对输入进行降维。Nnlm属于连续型模型,自带平滑,对相同的词历史有一定的聚类功能,一定程度上增加了模型的鲁棒性。如果和ngram模型进行融合,实验中会获得进一步的提升。

    因Rnn在序列建模上有很大的优势,Mikolov在nnlm上的基础上,提出了rnnlm。Rnnlm将词历史抽象成一个state,降低了输入维数。此外,为了解决输出维数,将输出层的词进行聚类,通过因式分解,降低了计算复杂度。

    Mikolov的rnnlm之后,lstm、cnn在语言模型上也有研究陆续在跟进。此外,在输入层,引入语义特征,也会带来性能的提升。语言模型作为语音识别、OCR、输入法等产品中的重要模型,未来如何融合语义和产品、提升用户体验,我们充满期待。

    原文连接

    展开全文
  • 接我前面的文章,下载 pocketsphinx 和 中文模型文件。 由于模型文件格式有一些要求,所以建议对模型文件的...生成语音模型文件和字典文件 访问 http://www.speech.cs.cmu.edu/tools/lmtool-new.html 页面,上传 m...

    接我前面的文章,下载 pocketsphinx 和 中文模型文件。

    由于模型文件格式有一些要求,所以建议对模型文件的编辑都在Linux上完成。

    准备中文语言文件

    创建一个文本文件 my.txt,内容如下:

    测试
    直走
    左转
    右转
    后退
    开火
    靠喽
    

    生成语音模型文件和字典文件

    访问 http://www.speech.cs.cmu.edu/tools/lmtool-new.html 页面,上传 my.txt 文件,然后使用“COMPILE KNOWLEDGE BASE”来生成模型文件。
    在生成的列表页面,下载最下面的那个 TAR<???>.tgz,文件名是动态产生的,这里我生成的文件名为:TAR2007.tgz。

    下载之。

    解压之。

    编辑其下的 2007.dic 文件,参考 zh_broadcastnews_utf8.dic 文件加入拼音,比如:

    右转 y ou zh uan
    后退 h ou t ui
    左转 z uo zh uan
    开火 k ai h uo
    测试 c e sh ib
    前进 q ian j in
    靠喽 k ao l ou
    

    测试

    使用 pocketsphinx_continuous 工具测试,这里使用了一个我提前录制好的音频文件来做测试,其中参数路径根据自己具体文件位置修改。

    pocketsphinx_continuous -hmm test/zh_broadcastnews_ptm256_8000 -lm test/TAR2007/2007.lm -dict test/TAR2007/2007.dic -infile test/small.wav
    
    展开全文
  • 语音识别-语言模型

    万次阅读 2018-05-04 15:05:30
    1. 语言模型的目的提到语言模型,给一个大家最熟悉的使用场景就是输入法,智能拼音输入法,打出一...~~~~一句话,语音识别语言模型的目的就是根据声学模型输出的结果,给出概率最大的文字序列!~~~2. n-gram语言模...

    1. 语言模型的目的

    提到语言模型,给一个大家最熟悉的使用场景就是输入法,智能拼音输入法,打出一串拼音,直接给出了合适的句子,即使不是你想要的,但确实是符合语法习惯的,例如,你的名字叫“福贵”你输入了“fugui”,出来的可能是“富贵”,但不会出来“抚跪”,这就是语言模型的功劳!~~~~

    一句话,语音识别中语言模型的目的就是根据声学模型输出的结果,给出概率最大的文字序列!~~~

    2. n-gram语言模型

    1)n-gram概念

                p(S)=p(w1,w2,w3,w4,w5,…,wn)

           =p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)//链规则

    p(S)被称为语言模型,即用来计算一个句子概率的模型。

    那么,如何计算p(wi|w1,w2,...,wi-1)呢?最简单、直接的方法是直接计数做除法,如下:

    p(wi|w1,w2,...,wi-1) = p(w1,w2,...,wi-1,wi) / p(w1,w2,...,wi-1)

    但是,这里面临两个重要的问题:数据稀疏严重;参数空间过大,无法实用。

    基于马尔科夫假设(Markov Assumption):下一个词的出现仅依赖于它前面的一个或几个词。

    • 假设下一个词的出现依赖它前面的一个词,则有:

    p(S)=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)

          =p(w1)p(w2|w1)p(w3|w2)...p(wn|wn-1)   // bigram

    • 假设下一个词的出现依赖它前面的两个词,则有:

    p(S)=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)

          =p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|wn-1,wn-2)  // trigram 

    那么,我们在面临实际问题时,如何选择依赖词的个数,即n。当n取1、2、3时,n-gram模型分别称为unigram、bigram和trigram语言模型。

    • 更大的n:对下一个词出现的约束信息更多,具有更大的辨别力
    • 更小的n:在训练语料库中出现的次数更多,具有更可靠的统计信息,具有更高的可靠性。

    理论上,n越大越好,经验上,trigram用的最多,尽管如此,原则上,能用bigram解决,绝不使用trigram。

    2)构造语言模型

    通常,通过计算最大似然估计(Maximum Likelihood Estimate)构造语言模型,这是对训练数据的最佳估计,公式如下:

    p(w1|wi-1) = count(wi-1, wi) / count(wi-1)

    如给定句子集“<s> I am Sam </s>

             <s> Sam I am </s>

             <s> I do not like green eggs and ham </s>”

    部分bigram语言模型如下所示:

    c(wi)如下:

    c(wi-1,wi)如下:

    则bigram为:

    那么,句子“<s> I want english food </s>”的概率为:

        p(<s> I want english food </s>)=p(I|<s>)

                          ×  P(want|I) 

                          ×  P(english|want)  

                          ×  P(food|english)  

                          ×  P(</s>|food)

                          =  0.000031

    为了避免数据溢出、提高性能,通常会使用取log后使用加法运算替代乘法运算。

    log(p1*p2*p3*p4) = log(p1) + log(p2) + log(p3) + log(p4)

    count(X表示在训练语料中出现的次数,训练语料的规模越大,参数估计的结果越可靠。但即使训练数据的规模很大,如若干GB,还是会有很多语言现象在训练语料中没有出现过,这就会导致很多参数(某n元对的概率)为0。举个例子来说明一下,IBM Brown利用366M英语语料训练trigram,结果在测试语料中,有14.7%的trigram和2.2%的bigram在训练中没有出现;根据博士期间所在的实验室统计结果,利用500万字人民日报训练bigram模型,用150万字人民日报作为测试语料,结果有23.12%的bigram没有出现。

    这种问题也被称为数据稀疏(Data Sparseness),解决数据稀疏问题可以通过数据平滑(Data Smoothing)技术来解决。 

    3. 数据平滑

    1)加法平滑

    基本思想是为避免零概率问题,将每个n元对得出现次数加上一个常数δ(0<δ≤1):

    clip_image016

    承接上一节给的例子,经Add-one Smoothing后,c(wi-1, wi)如下所示:

    则bigram为

    在V >> c(wi-1)时,即训练语料库中绝大部分n-gram未出现的情况(一般都是如此),Add-one Smoothing后有些“喧宾夺主”的现象,效果不佳。

    2)Good-Turing Smoothing

    利用频率的类别信息来对频率进行平滑:

    clip_image018 (5)

    clip_image020

    其中,N(c)表示频率为c的n-gram的数量。

    3)线性插值平滑

    该数据平滑技术主要利用低元n-gram模型对高元n-gram模型进行线性插值。因为在没有足够的数据对高元n-gram模型进行概率估计时,低元n-gram模型通常可以提供有用的信息。

    clip_image022

    clip_image024 (6)

    clip_image026可以通过EM算法来估计。

    4)Katz平滑

    也称为回退(back-off)平滑,其基本思想是当一个n元对的出现次数足够大时,用最大似然估计方法估计其概率;当n元对的出现次数不够大时,采用Good-Turing估计对其平滑,将其部分概率折扣给未出现的n元对;当n元对的出现次数为0时,模型回退到低元模型。

    clip_image028

    clip_image030 (6)

    参数clip_image032clip_image034保证模型参数概率的归一化约束条件,即clip_image036

    4. n-gram解码算法

    对于音字转换问题,输入拼音nixianzaiganshenme,可能对应着很多转换结果,对于这个例子,可能的转换结果如下图所示(只画出部分的词语节点),各节点之间构成了复杂的网络结构,从开始到结束的任意一条路径都是可能的转换结果,从诸多转换结果中选择最合适的结果的过程就需要解码算法。

    clip_image037

    常用的解码算法是viterbi算法,它采用动态规划的原理能够很快地确定最合适的路径。这里就不详细介绍该算法了。 

    5. 语言模型工具

    推荐开源语言模型工具:

    6. 训练数据集的获取

    推荐开源n-gram数据集:

    当然,数据集的选取很大程度上影响着模型的好坏,获取适合自己工程的数据集才是好的数据集,在实际项目中,经常使用诸如爬虫算法在网络上获取适合自己的数据集,例如,你在开发一个与金融有关的语音识别项目,你就可以通过爬虫算法在网络上搜索所有与金融有关的网页,文章等资源,来建立自己的语料库(数据集)。

    7. 语言模型文件格式ARPA




    以上介绍的是n-gram语言模型,现在也有使用RNN(循环神经网络)进行语言模型进行建模!~~~~


    展开全文
  • 文章目录前言隐马尔可夫(HMM)马尔可夫链隐马尔可夫HMM中的语音识别(孤立词)HMM 语音识别过程GMM总结参考文献 前言 隐马尔科夫链结合语言识别,在细节上,涉及到的知识挺多,没有一定的时间投入难以很好的去把握。...
  • 该系统实现了基于深度框架的语音识别中的声学模型和语言模型建模,其中声学模型包括CNN-CTC、GRU-CTC、CNN-RNN-CTC,语言模型包含transformer、CBHG,数据集包含stc、primewords、Aishell、thchs30四个数据集。
  • 本人整理了NN语言模型语音识别领域的应用论文。全部为2015年-2018年的会议论文。相关的期刊论文特别少,而且创新性没有会议高。论文几乎全部是语音类的最高级别会议ICASSP(B类)和Interspeech. 如果懒得自己下的...

            本人整理了NN语言模型在语音识别领域的应用论文。全部为2015年-2018年的会议论文。相关的期刊论文特别少,而且创新性没有会议高。论文几乎全部是语音类的最高级别会议ICASSP(B类)和Interspeech. 如果懒得自己下的话,可以留下邮箱,我会发给你。

     

    2015_ICASSP_Long short-term memory language models with additive morphological features for automatic speech recognition.3259.pdf
    2015_ICASSP_Recurrent neural network language model adaptation for multi-genre broadcast speech recognition..pdf
    2015_ICASSP_RECURRENT NEURAL NETWORK LANGUAGE MODEL TRAINING.pdf
    2015_ICASSP_Recurrent neural network language model with structured word embeddings for speech recognition.pdf
    2016_ICASSP_Minimum word error training of long short-term memory recurrent neural network language models for speech recognition.pdf
    2016_ICASSP_Semantic word embedding neural network language models for automatic speech recognition..pdf
    2016_Interspeech_LSTM, GRU, Highway and a Bit of Attention- An Empirical Overview for Language Modeling in Speech Recognition.pdf
    2016_Interspeech_NN-Grams- Unifying Neural Network and n-Gram Language Models for Speech Recognition.pdf
    2016_ISCSLP_Improving accented Mandarin speech recognition by using recurrent neural network based language model adaptation.pdf
    2017_ICASSP_ACTIVE LEARNING FOR LOW-RESOURCE SPEECH RECOGNITION- IMPACT OF SELECTION SIZE AND LANGUAGE MODELING DATA .pdf
    2017_ICASSP_EXPLOITING DIFFERENT WORD CLUSTERINGS FOR CLASS-BASED RNN LANGUAGE MODELING IN SPEECH RECOGNITION.pdf
    2017_ICASSP_Investigationsonbyte-levelconvolutionalneuralnetworksforlanguagemodelinginlowresourcespeechrecognition--2017.pdf
    2017_Interspeech_Approximated and Domain-Adapted LSTM Language Models for First-Pass Decoding in Speech Recognition.pdf
    2017_Interspeech_Investigating Bidirectional Recurrent Neural Network Language Models for Speech Recognition.pdf
    2017_Interspeech_nvestigation on LSTM Recurrent N-gram Language Models for Speech Recognition.pdf
    2017_Interspeech_Use of Global and Acoustic Features Associated with Contextual Factors to Adapt Language Models for Spontaneous Speech Recognition.pdf
    2018_ICASSP-Limited-Memory BFGS Optimization of Recurrent Neural Network Language Models for Speech Recognition.pdf
    2018_ICASSP_A CONVERSATIONAL NEURAL LANGUAGE MODEL FOR SPEECH RECOGNITION IN DIGITAL ASSISTANTS.pdf
    2018_ICASSP_ACCELERATING RECURRENT NEURAL NETWORK LANGUAGE MODEL BASED ONLINE SPEECH RECOGNITION SYSTEM.pdf
    2018_Interspeech_Dual Language Models for Code Switched Speech Recognition..pdf
    2018_Interspeech_mproving Language Modeling with an Adversarial Critic for Automatic Speech Recognition.pdf
    2018_Interspeech_Neural Error Corrective Language Models for Automatic Speech Recognition.pdf
    2018_Interspeech_Recurrent Neural Network Language Model Adaptation for Conversational Speech Recognition.pdf
    展开全文
  • 语音识别框架即声学模型加语言模型。   2018-icassp-ACCELERATING RECURRENT NEURAL NETWORK LANGUAGE MODEL BASED ONLINE SPEECH RECOGNITION SYSTEM 提出一个用于在线语音识别的加速神经网络语言模型。首先...
  • PaddlePaddle-DeepSpeech中文语音识别模型(AISHELL数据集训练的) 项目地址:https://github.com/yeyupiaoling/PaddlePaddle-DeepSpeech/tree/release/1.0
  • 在终端设备上实现语音识别的TensorFlow预训练模型
  • 摘要: 目前深度学习在图像和语音识别等领域应用越来越广泛,比如图像处理类应用、视频归纳、智能客服,以及延伸的服务机器人领域、车载助手等,本文着重介绍深度学习在语音识别中声学模型与语言模型中的应用,如...
  • 语音识别语言模型,声学模型

    千次阅读 2020-09-05 13:33:56
    语言模型是对一组字序列构成的知识表示。 语言模型表示某一字序列发生的概率,一般采用链式法则,把一个句子的概率拆解成器中的每个词的概率之积。设W是由w1, w2,...,wn组成的,则P(W)可以拆成(由条件概率公式和...
  • 端到端语音识别模型

    千次阅读 2020-12-10 09:58:57
    不同于传统方法将语音识别任务分解为多个子任务(词汇模型,声学模型和语言模型),端到端的语音识别模型基于梅尔语谱作为输入,能够直接产生对应的自然语言文本,大大简化了模型的训练过程,从而越来越受到学术界和...
  • PaddlePaddle-DeepSpeech中文语音识别模型(thchs_30数据集训练的) 项目地址:https://github.com/yeyupiaoling/PaddlePaddle-DeepSpeech/tree/release/1.0
  • 智能客服和领域非常相关,不同领域的话题各不相同,还有大量的领域词汇,所以需要根据不同领域来训练相应的语音识别模型。 客服语音识别的技术挑战: 1、有些客户普通话口音重:不同地域有不同的口音特点 2、自然...
  • 语音识别数据集合,详细介绍了搭建网络的一步步的操作。 LanguageModel2.py为基于统计的语言模型,dic
  • 语音识别技术之声学模型

    万次阅读 2017-12-04 00:00:00
    本公众号已经改版,推出了线上线下课程,并且推出免费2个月广告服务业界优质产品。 ...编者:今年的INTERSPEECH于8月20日至24日在...从10月25日开始,阿里iDST语音团队和云栖社区将共同打造一系列语音技术分享会
  • MATLAB语音识别

    千次阅读 2020-10-27 18:39:31
    广告关闭腾讯云双11爆品提前享,精选热门产品助力上云,云... 并且,语音识别系统也不只仅仅用于之前提到的手机交互、智能音箱命令,在玩具、家具家居、汽车、司法、医疗、教育、工业等诸多领域,语音识别系统将发...
  • 语音识别声学模型介绍

    千次阅读 2020-06-07 01:00:13
    关于声学模型,主要有两个问题,分别是特征向量序列的可变长和音频信号的丰富变化性。可变长特征向量序列问题在学术上通常有动态时间规划...在过去,主流的语音识别系统通常使用梅尔倒谱系数(Mel-Frequency Cepstral C
  • 语音识别研究现状

    千次阅读 2018-05-09 09:53:58
    前言总结目前语音识别的发展现状,dnn、rnn/lstm和cnn算是语音识别中几个比较主流的方向。2012年,微软邓力和俞栋老师将前馈神经网络FFDNN(Feed Forward Deep Neural Network)引入到声学模型建模中,将FFDNN的输出...
  • 一些开源的已经训练好的语音识别模型 最近导师给安排了一个临时的任务,所以在做中文语音识别。一开始想自己先查文献找文章构建网络,后来觉得任务量有点大,遂决定找现成网络再找开源数据集自己训练,然后搞着搞着...
  • 语言声学模型在维吾尔语语音识别中的应用
  • 语音识别入门 --各个模型的整理

    千次阅读 2020-11-09 14:17:54
    语音识别入门前期知识储备结构图语音特征提取各个模型的尝试ASRTDeepSpeechRecognitionend2end_chinese_speech_recognition语音纠错TTS 文本转语音 前期知识储备 对语音识别是零基础,所以第一步语音特征提取也需要...
  • 详细描述了基于隐马尔可夫模型语音识别算法,具有较高的识别率
  • PocketSphinx语音识别系统语言模型的训练和声学模型的改进 zouxy09@qq.com  关于语音识别的基础知识和sphinx的知识,具体可以参考我的另外两篇博文: 语音识别的基础知识与CMUsphinx介绍: ...PocketSphinx语音识别...
  • 我们在语音识别声学建模以及语言模型建模任务上验证了所提出的FSMN模型。实验结果表明,FSMN不仅可以取得相比于当前最流行的循环神经网络更好的性能,而且训练更加高效。在此基础上,我们探索了 FSMN模型的改进,通过...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,907
精华内容 19,162
关键字:

语音识别语言模型