2019-04-29 20:59:58 king_audio_video 阅读数 2567
  • ORTP库局域网图传和VLC实时预览-第3/11季视频课程-...

    本季课程通过移植ORTP库并调用ORTP库函数来实现H.264裸流数据的网络传输,并且在Windows中安装VLC播放器,并在VLC中通过配置文件的方式来解析ORTP发送的裸流实现视频实时预览。本季课程的核心是ORTP协议的讲解,ORTP库的移植、部署和调用,VLC软件的用法讲解和配置文件讲解,Wireshark网络抓包工具的用法讲解,实时视频流传输和解析的体验和编程实现。 随着通信行业发展,网速越来越快,网络也从文本时代发展越过语音时代到了现在视频时代,“优酷、爱奇艺”、“微视频”、“直播”等的出现也是视频逐步成为主流媒体的证据和表现。航拍、视频监控、刷脸过关检测、汽车ADAS系统等应用也是视频在主流行业中的应用,因此视频的采集、编解码、传输、识别等技术变得越来越有价值,涌现出了“海康威视”、“大华股份”、“深圳英飞拓”等一批明星企业,名扬海内外,动辄市值几百亿。同时在芯片级,国产华为海思HI35XX系列视频编解码方案也逐步取代进口芯片(如TI、安霸)成为主流方案。 视频行业技术含量高、难度大、学习周期长、发展变化快而资料少,因此行业比较缺人、工资较高。如海康威视,普通高校硕士研究生应届进入年薪普遍高于15-20万,在嵌入式linux领域也算高工资技术方向了。 本项目是朱老师及其团队推出的一个嵌入式linux领域重量级企业级实战项目,选用华为海思HI3518E方案,结合OV9712/AR0130 Sensor实现图像采集和H.264编码压缩,并通过ethernet和WIFI,以socket实时流和RTSP等方式,实现720P/960P高清视频传输。本项目共分11季,从海思SDK开发环境搭建,到sample程序讲解、SDK中API函数解析,到H.264编解码、RTSP流媒体传输、MP4文件打包,到图像IQ调试、图像识别等视频领域高阶内容,可以说从零基础入手,对图像采集、编解码、网络传输、图像存储和识别做了全方位的详细讲解和代码分析,是目前市面上**一套系统讲解图像和视频技术的视频课程。

    494 人正在学习 去看看 朱有鹏

                             PYTORCH-KALDI语音识别工具包

                                                         Mirco Ravanelli1,Titouan Parcollet2,Yoshua Bengio1 *

                                                                Mila, Universit´e de Montr´eal , CIFAR Fellow

                                                                                   LIA, Universit´e d’Avignon

目录

                             PYTORCH-KALDI语音识别工具包

摘要

1.引言

2. PYTORCH-KALDI项目

2.1 配置文件

2.2特征

2.3 标签

2.4 块和小批量组合

2.5 DNN声学建模

2.6 解码和评分

3.实验设置

3.1语料库和任务

3.2 DNN设置

4.基线

5结论

6.致谢


本内容部分原创,因作者才疏学浅,偶有纰漏,望不吝指出。本内容由灵声讯音频-语音算法实验室整理创作,转载和使用请与“灵声讯”联系,联系方式:音频/识别/合成算法QQ群(696554058)


 

摘要

    开源软件的实用性在主流语音识别和深度学习的普及中扮演着重要的角色。例如,Kaldi是目前用于开发最先进的语音识别器的既定框架。 PyTorch被用来采用Python语言构建神经网络,并且由于其简单性和灵活性,最近在机器学习社区中产生了巨大的兴趣。

    PyTorch-Kaldi项目旨在弥合这些流行工具包之间的差距,且试图继承Kaldi的效率和PyTorch的灵活性。 在这些软件之间它不仅接口简单,而且还嵌入了一些用于开发现代语音识别器的有用功能。例如,该代码专门设计用于自然插入用户定义的声学模型。作为替代方案,用户可以利用多个预先实现的神经网络,这些神经网络可以使用直观的配置文件进行定制。 PyTorch-Kaldi支持多种特征和标签流以及神经网络的组合,可以使用复杂的神经架构。该工具包与丰富的文档一起公开发布,旨在在本地或HPC群集上正常工作。

    在多个数据集和任务上进行的实验表明,PyTorch-Kaldi可以有效地用于开发现代最先进的语音识别器。

关键词:语音识别,深度学习,Kaldi,PyTorch。


1.引言

    在过去几年中,我们目睹了自动语音识别(ASR)技术的逐步改进和成熟[1,2],这些技术已经达到了前所未有的性能水平,现在已被全球数百万用户使用。

    深度学习正在发挥这一技术突破的关键作用[3],这有助于战胜先前基于高斯混合模型(GMM)的语音识别器。除了深度学习外,其他因素在该领域的发展中也发挥了作用。许多与语音相关的项目,如AMI [4](数据集名称)和DIRHA [5]以及CHiME [6],Babel和Aspire等语音识别挑战,都极大地促进了ASR的发展。 Librispeech [7]等大型数据集的公开发布也为建立通用的评估框架和任务发挥了重要作用。

    在其他因素中,开源软件的开发,如HTK [8],Julius [9],CMU-Sphinx,RWTH-ASR [10],LIA-ASR [11]以及最近的Kaldi工具包[12]进一步帮助推广ASR,使得新型ASR应用研究和开发变得更加容易。

     Kaldi目前是最受欢迎的ASR工具包。它依赖于有限状态转换器(FST)[13],并为有效地实施最先进的语音识别系统提供了一组C ++库。此外,该工具包包括一全套使用方法,涵盖了所有最流行的语音语料库。在开发ASR这种特定软件的同时,一些通用的深度学习框架,如Theano [14],TensorFlow [15]和CNTK [16],已经在机器学习社区中得到普及。这些工具包在神经网络设计中提供了极大的灵活性,可用于各种深度学习应用。

    PyTorch [17]是一个新型的python包,它通过适当的自动梯度计算程序实现了基于GPU的张量计算,并促进了神经架构的设计。 它的一个有趣特性在于其现代和灵活的设计,即自然就支持动态神经网络。实际上,计算图是在运行时动态构建的,而不是静态编译的。

    PyTorch-Kaldi项目的重点是在弥合Kaldi和PyTorch1之间的间隙。我们的工具包在PyTorch中实现声学模型,同时使用Kaldi执行特征提取,标签/对齐计算和解码,使其适合开发最先进的DNN-HMM语音识别器。 PyTorch-Kaldi本身支持多种DNN,CNN和RNN模型。还支持深度学习模型,声学特征和标签之间的组合,从而能够使用复杂的神经架构。例如,用户可以在CNN,LSTM和DNN之间使用级联,或者并行运行共享一些隐藏层的多个模型。用户还可以探索不同的声学特征,上下文持续时间,神经元激励(例如,ReLU,leaky ReLU),标准化(例如,batch [18]和layer normalization[19]),成本函数,正则化策略(例如,L2,丢失[20]通过简单的配置文件编辑,优化算法(例如,Adam [21],RMSPROP)和ASR系统的许多其他参数。

    该工具包旨在使用户定义的声学模型的集成尽可能简单。在实践中,用户即使不完全熟悉复杂的语音识别流程,也可以在PyTorch-Kaldi中嵌入他们的深度学习模型并进行ASR实验。该工具包可以在本地计算机或者HPC集群上执行计算,并支持多GPU训练,支持恢复策略和自动数据分块。

在几个数据集和任务上进行的实验表明,PyTorch-Kaldi可以轻松开发出具有竞争力的最先进的语音识别系统。

2. PYTORCH-KALDI项目

最近使用python语言开发了一些其他语音识别工具包。例如,PyKaldi [22]是一个易于使用的Python包,它封装了c++写的Kaldi和OpenFst库。然而,与我们的工具包不同,PyKaldi的当前版本并没有提供几个以前实现的和已经使用的神经网络模型。 另一个python项目是ESPnet [23]。 ESPnet是一个端到端的语音处理工具包,主要侧重于端到端语音识别和端到端的文本到语音转换。 与我们项目的主要区别在于当前版本的PyTorch-Kaldi实现了混合DNN-HMM语音识别器。(www.github.com/mravanelli/pytorch-kaldi/

                                                                  

                                                                                         图1:PyTorch-Kaldi架构框图

      PyTorch-Kaldi采用的架构框图如图1所示。主要脚本run_exp.py是用python编写的,用于管理ASR系统中涉及的所有阶段,包括特征和标签提取,训练,验证,解码和评分。该工具包将在以下小节中详细介绍。

2.1 配置文件

主脚本将INI格式中的配置文件作为输入,它由几部分组成。 其中,[Exp]部分指定了一些高级信息,例如用于实验的文件夹,训练时期的数量,随机种子。它还允许用户指定是否必须在CPU,GPU或多个GPU上进行实验。配置文件继续用[dataset*]部分表示,它用于指定有关要素和标签的信息,包括存储它们的路径,上下文窗口的特征[24]以及必须分割语音数据集的块数。神经网络模型在[architechure*]部分,而[model]部分定义了这些神经网络的组合方式。后一部分开发了一种由run_exp.py脚本自动解释的简单元语言。 最后,在[decoding]部分中定义了解码参数的配置文件

2.2特征

     使用Kaldi原生提供的C++库(例如,compute-mfcc-feats,compute-fbank-feats,compute-plp-feats)执行特征提取,有效地提取最流行的语音识别特征。计算出的系数存储在二进制存档(扩展名为.ark)中,然后使用从kaldi-io-for-python项目继承的kaldi-io实用程序导入到python环境中。然后,通过函数load-chunk处理这些特征,该函数执行上下文窗口组合,移动以及均值和方差归一化。如前所述,PyTorch-Kaldi可以管理多个特征流。例如,用户可以定义利用MFCC,FBANK,PLP和fMLLR [25]系数组合的模型。

2.3 标签

    用于训练声学模型的主要标签源自语音特征与音素状态序列之间的强制对齐过程,而这种序列是由Kaldi用语音决策树计算的且依赖于上下文。为了实现多任务学习,PyTorch-Kaldi支持多个标签。例如,可以联合加载上下文相关和上下文无关的任务,并使用后者执行单音素正则化[26,27]。也可以使用基于执行不同任务的神经网络生态系统的模型,如在语音增强和语音识别之间的联合训练的背景下[28,29]或在最近提出的深度神经合作网络的背景下进行的模型。

2.4 块和小批量组合

     PyTorch-Kaldi自动将整个数据集拆分为多个块,这些块由从完整语料库中随机抽样的标签和特征组成。然后将每个块存储到GPU或CPU存储器中并由神经训练算法run_nn.py运行处理。该工具包在每个时期动态地组成不同的块。然后从它们中获得一组小批量的数据集。小批量集合由少数用于梯度计算和参数优化的训练样例组成。

     小批量集的聚集方式很大程度上取决于神经网络的类型。对于前馈模型,小批量集由随机移动特征和从块中采样的标签组成。对于周期性网络,小批量集合必须由完整的句子组成。然而,不同的句子可能具有不同的持续时间,使得制作相同大小的小批量集合需要零扩充。 PyTorch-Kaldi根据它们的长度按升序对语音序列进行排序(即,首先处理短句)。这种方法最大限度地减少了零扩充的需要,并证明有助于避免批量标准化统计数据的可能偏差。此外,已经证明有效果的是能略微提高性能并改善梯度的数值稳定性。

2.5 DNN声学建模

    每个小批量集由PyTorch实现的神经网络来处理,该神经网络将特征作为输入,并将依赖于上下文的音素状态上的一组后验概率作为输出。该代码旨在轻松插入自定义模型。正如图2中公开的伪代码所写的那样,可以通过在neural_nets.py中添加新类来简单地定义新模型。该类必须由通过初始化指定参数的初始化方法,以及定义要执行的计算的正向方法组成。

 (3 www.github.com/vesis84/kaldi-io-for-python )

                                                     

    作为替代方案,在工具包中原生地实现了许多预先定义的最先进的神经模型。当前版本支持标准MLP,CNN,RNN,LSTM和GRU模型。此外,它支持一些先进的循环架构,例如最近提出的Light GRU [31]和双正则化RNN [32]。 SincNet模型[33,34]也用于直接从语音波形实现语音识别。可以用实现随机搜索算法的程序来调整模型的超参数(例如学习速率,神经元数量,层数,丢失因子等)[35]。

2.6 解码和评分

    在基于反馈HMM的Kaldi解码器之前,由神经网络产生的声学后验概率被它们的先验概率归一化了。解码器将声学分数与由n-gram语言模型导出的语言概率合并,并尝试使用波束搜索算法检索在语音信号中发出的单词序列。使用NIST SCTK评分工具包计算最终的字错误率(WER)分数。

3.实验设置

    在以下小节中,描述了实验采用的语料库和DNN模型设置。

3.1语料库和任务

    第一组实验是使用TIMIT语料库进行的,考虑到标准音素识别任务(与Kaldi s5匹配[12]一致)。

    为了在更具挑战性的情景中验证我们的模型,还在DIRHA-English数据集[36,37]的远场谈话条件下进行了实验。训练基于最初的WSJ-5k语料库(由83名说话者的7,138个句子组成),这些语句受到在家庭环境中测量的一组冲激响应的污染[37]。测试阶段使用了数据集的实际部分进行的,其中包括由上述六位美国本土人士在上述环境中发出的409个WSJ句子。

    使用CHiME 4数据集[6]进行了额外的实验,该数据集基于在四个嘈杂环境(公共汽车,咖啡馆,步行区和街道交叉点)中记录的语音数据。训练集由43个690个嘈杂的WSJ句子组成,这些句子由五个麦克风(安排在平板电脑上)录制,并由总共87个扬声器发出。在这项工作中考虑的测试集ET-real基于由四个发言者发出的1,320个真实句子,而子集DT-real已用于参数优化。 CHiME实验是基于单通道的设置[6]。

     最后,使用LibriSpeech [7]数据集进行实验。我们使用由100小时组成的训练子集和用于参数搜索的dev-clean集。使用继承自Kaldi s5方法的fglarge解码图在test-clean部分上报告测试结果。

                                               

3.2 DNN设置

    实验考虑了不同的声学特征,即39个MFCC(13个静态+Δ+ΔΔ),40个对数滤波器组特征(FBANKS),以及40个fMLLR特征[25](根据Kaldi中s5所述方法进行提取),使用25 ms的窗口(帧长)计算,重叠(帧移)为10 ms。根据Glorot的方案[38]初始化前馈模型,而使用正交矩阵初始化周期权重[39]。周期性丢失被用作正则化技术[40]。正如[41]中提出的那样,仅对前馈连接采用批量归一化。使用运行24个时期的RMSprop算法完成优化。在每个时期之后监测开发组的表现,并且当相对性能改善低于0.1%时,学习率减半。在开发数据集上调整模型的主要参数(即,学习速率,隐藏层数,每层隐藏神经元,丢失因子以及双正则化项λ)。

4.基线

    在本节中,我们将讨论使用TIMIT,DIRHA,CHiME和LibriSpeech数据集获得的基线。作为对PyTorch-Kaldi工具包主要功能的展示,我们首先报告了对TIMIT进行的实验验证。

表1显示了使用不同特征的几个前馈和重复模型获得的性能。为了确保架构之间更准确的比较,针对每个模型和特征进行了不同的初始化种子的五个实验。该表因此报告平均音素错误率(PER)5。结果表明,正如预期的那样,由于扬声器适应过程,fMLLR功能优于MFCC和FBANKs系数。循环模型显着优于标准MLP模型,特别是在使用LSTM,GRU和Li-GRU架构时,通过乘法门(multiplicative gates)有效地解决梯度消失问题。使用Li-GRU模型[31]获得最佳结果(PER = 14.2%),该模型基于单个门,因此比标准GRU节省了33%的计算。

 

                                           

    表2详细介绍了PyTorch-Kaldi中用于改善ASR性能的一些常用技术的影响。第一行(基线)报告使用基本的循环模型实现的性能,其中不采用诸如压差和批量归一化的强大技术。第二行突出显示在训练期间逐渐增加序列长度时实现的性能增益。在这种情况下,我们通过在100步(即,大约1秒的语音)截断语音句子开始训练,并且逐渐地在每个时期加倍最大序列持续时间。这种简单的策略通常可以提高系统性能,因为它鼓励模型首先关注短期依赖关系,并且只在稍后阶段学习长期关联。第三行显示了添加重复丢失时所实现的改进。与[40,41]类似,我们对所有时间步骤应用相同的压差掩模以避免梯度消失问题。相反,第四行显示了从批量标准化得到的好处[18]。最后,最后一行显示了在应用单音正则化时所达到的性能[27]。在这种情况下,我们通过两个softmax分类器采用多任务学习策略:第一个估计依赖于上下文的状态,而第二个预测单音目标。正如[27]中所观察到的,我们的结果证实该技术可以成功地用作有效的正则化器。

    到目前为止讨论的实验是基于单个神经元的模型。在表3中,我们将最好的Li-GRU系统与基于前馈和循环模型组合的更复杂的架构进行比较,这些模型由一系列特征串联。据我们所知,后一系统实现的PER = 13.8%会在TIMIT测试集上产生最佳公开的性能。

    以前的成就是基于Kaldi计算的特征。但是,在PyTorch-Kaldi中,用户可以使用自己的功能。表4显示了通过标准FBANKs系数或直接原始波形馈送的卷积模型获得的结果。基于原始样本的标准CNN与由FBANK特征馈送的CNN类似地执行。 SincNet [33]观察到性能提升,其语音识别的有效性首次突出显示。

                                                  

     我们现在将实验验证扩展到其他数据集。 在这方面,表5显示了在DIRHA,CHiME和Librispeech(100h)数据集上实现的性能。 该表始终显示了Li-GRU模型的更好性能,证实了我们之前在TIMIT上取得的成就。 DIRHA和CHiME的结果显示了所提出的工具包在噪声条件下的有效性。 为了进行比较,在egs / chime4 / s5中提出了最佳Kaldi基线1ch的WER(%)= 18.1%。使用ESPnet训练的端到端系统达到WER(%)= 44.99%,确认端到端语音识别对声学条件的挑战是多么重要。 DIRHA代表了另一项非常具有挑战性的任务,其特点是存在相当大的噪音和混响。在此数据集上获得的WER = 23.9%表示迄今为止在单麦克风任务上发布的最佳性能。最后,使用Librispeech获得的性能优于所考虑的100小时子集的相应p-norm的Kaldi基线(​​W ER = 6.5%)。

5结论

    本文描述了PyTorch-Kaldi项目,这是一项旨在弥合Kaldi和PyTorch之间间隙的新举措。该工具包核心是使ASR系统的开发更简单,更灵活,允许用户轻松插入其定制的声学模型。 PyTorch-Kaldi还支持神经网络架构,功能和标签的组合,允许用户使用复杂的ASR流水线。实验证实,PyTorch-Kaldi可以在一些流行的语音识别任务和数据集中实现最先进的结果。

目前版本的PyTorch-Kaldi已经公开发布,并附有详细的文档。该项目仍处于初始阶段,我们邀请所有潜在的贡献者参与其中。我们希望建立一个足够大的开发人员社区,以逐步维护,改进和扩展我们当前工具包的功能。未来,我们计划增加预先实施的模型数量,支持神经语言模型训练/重新训练,序列判别训练,在线语音识别以及端到端训练。

6.致谢

我们要感谢Maurizio Omologo,Enzo Telk和Antonio Mazzaldi的有益评论。这项研究部分得到了Calcul Qu'ebec和Compute Canada的支持。


本内容部分原创,因作者才疏学浅,偶有纰漏,望不吝指出。本内容由灵声讯音频-语音算法实验室整理创作,转载和使用请与“灵声讯”联系,联系方式:音频/识别/合成算法QQ群(696554058)


2019-05-17 15:34:26 muxiue 阅读数 978
  • ORTP库局域网图传和VLC实时预览-第3/11季视频课程-...

    本季课程通过移植ORTP库并调用ORTP库函数来实现H.264裸流数据的网络传输,并且在Windows中安装VLC播放器,并在VLC中通过配置文件的方式来解析ORTP发送的裸流实现视频实时预览。本季课程的核心是ORTP协议的讲解,ORTP库的移植、部署和调用,VLC软件的用法讲解和配置文件讲解,Wireshark网络抓包工具的用法讲解,实时视频流传输和解析的体验和编程实现。 随着通信行业发展,网速越来越快,网络也从文本时代发展越过语音时代到了现在视频时代,“优酷、爱奇艺”、“微视频”、“直播”等的出现也是视频逐步成为主流媒体的证据和表现。航拍、视频监控、刷脸过关检测、汽车ADAS系统等应用也是视频在主流行业中的应用,因此视频的采集、编解码、传输、识别等技术变得越来越有价值,涌现出了“海康威视”、“大华股份”、“深圳英飞拓”等一批明星企业,名扬海内外,动辄市值几百亿。同时在芯片级,国产华为海思HI35XX系列视频编解码方案也逐步取代进口芯片(如TI、安霸)成为主流方案。 视频行业技术含量高、难度大、学习周期长、发展变化快而资料少,因此行业比较缺人、工资较高。如海康威视,普通高校硕士研究生应届进入年薪普遍高于15-20万,在嵌入式linux领域也算高工资技术方向了。 本项目是朱老师及其团队推出的一个嵌入式linux领域重量级企业级实战项目,选用华为海思HI3518E方案,结合OV9712/AR0130 Sensor实现图像采集和H.264编码压缩,并通过ethernet和WIFI,以socket实时流和RTSP等方式,实现720P/960P高清视频传输。本项目共分11季,从海思SDK开发环境搭建,到sample程序讲解、SDK中API函数解析,到H.264编解码、RTSP流媒体传输、MP4文件打包,到图像IQ调试、图像识别等视频领域高阶内容,可以说从零基础入手,对图像采集、编解码、网络传输、图像存储和识别做了全方位的详细讲解和代码分析,是目前市面上**一套系统讲解图像和视频技术的视频课程。

    494 人正在学习 去看看 朱有鹏

开源语音识别工具包

目前开源世界里存在多种不同的语音识别工具包,它们为开发者构建语音识别相关的应用提供了很大的帮助。以下是目前比较流行的语音识别工具包:

  1. CMU Sphinx
  2. Kaldi
  3. HTK
  4. Julius
  5. ISIP
    作为语音识别小白,我将从CMU Sphinx入手,从简单的应用搭建到CMU Sphinx代码的阅读和理解,逐步深入了解语音识别这个深奥的世界。

语音识别简介

语音其实上是一个复杂的现象,人们很少理解语音是怎么产生和感知的,最直观的理解就是语言是由多个单词组成的,而每个单词又是由多个音素(phone)组成的,但事实却并不是这样。事实上,语言/语音是一个连续动态的过程,之间没有明显的分界,如果你用一个语音编辑器来看的话,波形就是下面的样子:
在这里插入图片描述
语音实际上是一个概率问题,从而意味着在一段连续的语音中,单词之间没有明显的分界,所以从语音到文字的转换永远不可能100% 正确,这其实颠覆了许多程序员的认知。作为程序员,大多数都在处理一就是一,二就是二的问题,而不是一有可能是一,也有可能是二的问题,而语音识别就是后者。

语音的构成

语音是一种连续的音频流,这个音频流是稳定状态与动态改变状态的叠加, 在这种状态序列中,可以定义相似类别的声音或音素。对应于每个音素的波形的声学特性受许多因素影响——环境,扬声器,语音风格等。另外,协同发音(指的是一个音受前后相邻音的影响而发生变化,从发声机理上看就是人的发声器官在一个音转向另一个音时其特性只能渐变,从而使得后一个音的频谱与其他条件下的频谱产生差异)的存在使得音素的感知与标准不一样,所以我们需要根据上下文来辨别音素。将一个音素划分为几个亚音素单元。如:数字“three”,音素的第一部分与在它之前的音素存在关联,中间部分是稳定的部分,而最后一部分则与下一个音素存在关联,这就是为什么在用HMM模型做语音识别时,选择音素的三状态HMM模型。上下文相关建模方法在建模时考虑了这一影响,从而使模型能更准确地描述语音,只考虑前一音的影响的称为双音素Bi-Phone,考虑前一音和后一音的影响的称为 3音素Tri-Phone,甚至4音素Qin-phones。
从计算角度出发,只检测3音素的一部分比把3音素作为整体考虑要有用的多,例如,现在你想创建一个3音素头部部分的检测器,那么你只需要一小部分(大约4000个)不同的短的声音检测器,我们称这些检测器为senones。一个senone的上下文依赖比单纯的左右上下文复杂得多,它是一个可以被决策树或者其他方式来定义的复杂函数。
音素phones构成亚单词单元,也就是音节syllables。音节是一个比较稳定的实体,因为当语音变得比较快的时候,音素往往会发生改变,但是音节却不变。音节与节奏语调的轮廓有关。有几种方式去产生音节:基于形态学或者基于语音学。音节经常在词汇语音识别中使用。
亚单词单元(音节)构成单词。单词在语音识别中很重要,因为单词约束了音素的组合。假如共有40个音素,然后每个单词平均有7个音素,那么就会存在40^7个单词,但幸运的是就算一个受过优等教育的人也很少使用过20k个单词,这就使识别变得可行。
单词和一些非语言学声音构成了话语(语句,utterances),我们把非语言学声音称为填充物(fillers),例如呼吸,um,uh,咳嗽等,它们在音频中是以停顿做分离的。所以它们更多只是语义上面的概念,不算是一个句子。

识别过程

语音识别一般的方法是:录制语音波形,再把波形通过静音(语句之间的间断,silences)分割为多个语句,然后去识别每个语句所表达的意思。为了达到这个目的,我们需要用单词的所有可能组合去匹配这段音频,然后选择匹配度最高的组合。
在匹配中有几个关键的概念需要了解的:

  1. 特征
    由于描述一个语音需要的参数个数非常多,这样对处理速度的要求就很高(而且也没必要处理那么多的信息,我们只需要处理对识别有帮助的就行),所以我们需要做优化,进行降维。我们用帧frames去分割语音波形,每帧大概10ms,然后每帧提取可以代表该帧语音的39个数字,这39个数字也就是该帧语音的特征,用特征向量来表示。而如何提取特征向量是当下热门的研究课题,不过简单说来,这些提取方法都是由频谱衍生出来的。
  2. 模型
    模型是用来描述一些数学对象的。这些数学对象描述了一些口语的共同属性。在实际应用中,senone的音频模型就是三态高斯混合模型。简单的说,它就是一个最有可能的特征向量。对于模型,有几个问题需要考虑:模型到底多大程度上可以描述实际情况?在模型本身的局限情况下模型能表现得更优吗?自适应模型如何改变条件?
    经典的语言模型称为隐马尔科夫模型(Hidden Markov Model, HMM),在该模型中,过程被描述为以一定概率彼此改变的状态序列。 此模型旨在描述任何顺序过程,如语音。 HMM已被证明对语音解码非常实用。
  3. 匹配算法
    语音识别需要对所有的特征向量和所有的模型做比较匹配,这是一个非常耗时的工作。而在这方面的优化往往是使用一些技巧,在每一点的匹配时,我们通过保留最好的匹配变体(variants),然后通过它在下一帧产生最好的匹配变体。

模型

根据语音结构,在语音识别中需要用到三种模型:

  1. 声学模型
    一个声学模型包含每个senone的声学属性,包括不依赖上下文的模型和依赖上下文的模型。其中不依赖上下文的模型包括不依赖于上下文的属性(每个音素最大可能的特征向量),而依赖上下文的模型包括依赖于上下文的属性(根据上下文构建的senone)。
  2. 语音学字典
    语音学字典包含了从单词到音素之间的映射,这种映射并不是十分有效,例如,在字典中只标注了两到三个发音变体,但是这种方法在大多数时候够用。字典并不是描述单词到音素之间的映射的唯一方法。可以通过运用机器学习算法去学习得到一些复杂的函数去完成映射功能。
  3. 语言模型
    语言模型是用来约束单词搜索的,它定义了哪些词能跟在上一个已经识别的词的后面(匹配是一个顺序的处理过程),这样就可以为匹配过程排除一些不可能的单词。最常用的语言模型是n-gram模型,它包含了单词序列的统计和有限状态模型,通过有限状态机来定义语音序列,有时候会加入权值。为了达到比较好的识别准确率,语言模型必须能够很好的约束空间搜索,也就是说可以更好的预测下一个词。语言模型是约束词汇包含的单词的,这就出现一个问题,就是名字识别(因为名字可以随便由几个单词组成)。为了处理这种情况,语言模型可以包含更小的块,例如亚单词,甚至音素。但是这种情况,识别准确率将会低于基于单词的语言模型。
    特征、模型和搜索算法三部分构成了一个语音识别系统。如果你需要识别不同的语言,那么就需要修改这三个部分。很多语言,都已经存在声学模型,字典,甚至大词汇量语言模型可供下载了。

其他概念

  • 网格(Lattice)是一个代表识别变体的有向图。一般来说,很难去获得一个最好的语音匹配结果,所以Lattices就是一个比较好的格式去存放语音识别的中间结果。
  • N-best lists of variants和网格(lattice)有点像,但是它没有网格那么密集(也就是保留的结果没有网格多)。N-best搜索和多遍搜索:为在搜索中利用各种知识源,通常要进行多遍搜索,第一遍使用代价低的知识源(如声学模型、语言模型和音标词典),产生一个候选列表或词候选网格,在此基础上进行使用代价高的知识源(如4阶或5阶的N-Gram、4阶或更高的上下文相关模型)的第二遍搜索得到最佳路径。
  • 单词混淆网络是从网格的边缘得到的一个严格的节点顺序序列。
  • 语音数据库是一个从任务数据库得到的典型的录音集。如果我们开发的是一个对话的系统,那么数据库就是包含了多个用户的对话录音。而对于听写系统,包含的就是朗读的录音。语音数据库是用来训练,调整和测试解码系统的(也就是语音识别系统)。
  • 文本数据库是为了训练语言模型而收集的文本,一般是以样本文本的方式来收集形成的。而收集过程存在一个问题就是误把PDFs, web pages, scans等现成文档也当成口语文本的形式放进数据库中。所以,我们就需要把这些文件里的标签和文件头去掉,还有把数字展开为它们的语音形式(例如1展开为英文的one或者汉语的yi),另外还需要把缩写给扩大还原为完整单词。

CMU Sphinx

简介

CMU Sphinx(简称Sphinx)是美国卡内基梅隆大学开发的一系列语音识别工具包以及相关工具(例如声学模型训练软件,语言模型编辑软件和语音词典CMUDICT等)的总称。在2000年,卡内基梅隆的Sphinx小组致力于开源几个语音识别器组件,包括Sphinx 2和后来的Sphinx 3(2001年)。Sphinx包括许多工具包,可以用于搭建具有不同需求的应用。

  • Pocketsphinx - 用C语言编写的轻量级的语音识别库;
  • Sphinxbase - Pocketsphinx的支撑库;
  • Sphinx4 - 用Java编写的自适应的,可修改的语音识别库;
  • Sphinxtrain - 声学模型训练软件;
    现在最新的发布版本是:
  • sphinxbase-5prealpha
  • pocketsphinx - 5prealpha
  • sphinx4 - 5prealpha
  • sphinxtrain - 5prealpha
    Sphinx除了是开源之外,还具有很多优势,可以自己定制声音模型,语言模型,语音学字典,用于多个不同的场景,例如语音搜索,语义分析,翻译,智能助手等。
    如何选择你需要的工具包呢?
  • 由于Sphinx有用不同的编程语言开发的工具包,所以开发者可以根据自己的习惯选择相应的语言识别包。
  • 如果你想要快速和可携带性,那么选择pocketsphinx,如果你想要灵活和可管理,那么可以选择sphinx4.

Sphinx初体验

让我们先来用Sphinx自带的Pocketsphinx来体验一下Sphinx语音识别的效果吧。由于Pocketsphinx依赖于SphinxBase库(提供了公共的函数功能),所以需要同时安装SphinxBase和Pocketsphinx,Pocketsphinx才能正常工作。Pocketsphinx可以安装在Linux,windows,MacOS,iPhone和Android上,本文中我们将在windows上进行安装。

下载

sphinxbase下载页
pocketsphinx下载页

下载"sphinxbase-5prealpha-win32.zip"和“pocketsphinx-5prealpha-win32.zip”,并解压缩。
在这里插入图片描述

编译

  • 编译Sphinxbase
    用visual studio打开sphinxbase\sphinxbase.sln,编译所有项目,其中visual studio版本需要是MS Visual Studio 2012及以上,我使用的是visual studio 2017。由于编译版本不一样,在打开solution时,会弹出如下窗口,选择OK。
    在这里插入图片描述
    在这里插入图片描述
    编译后的结果:
    在这里插入图片描述
  • 编译Pocketsphinx
    用visual studio打开pocketsphinx\pocketsphinx.sln,编译所有项目。其他步骤与编译sphinxbase相同。编译结果如下:
    在这里插入图片描述
  • 拷贝sphinxbase.dll到上图中的文件夹中
    在这个地方有个小trick,理论上应该是我们自己编译出spinxbase.dll之后进行拷贝,但是我们从网站上下载的pocketsphinx中,bin\Debug\Win32下自带拷贝好的sphinxbase.dll,当然你也可以把你编译好的dll重新拷贝覆盖掉之前的dll。提示:如果你编译了pocketsphinx,最好是把你编译的sphinxbase结果也复制过去,否则可能出现不匹配,造成程序如法运行。

运行

运行命令:
bin\Release\Win32\pocketsphinx_continuous.exe -inmic yes -hmm model\en-us\en-us -lm model\en-us\en-us.lm.bin -dict model\en-us\cmudict-en-us.dict

参数说明:

  • inmic:使用麦克风,如果使用file,修改为-infile
  • hmm:指定声学模型
  • lm:指定语言模型
  • dict:指定语言学字典

运行结果:你可以开始说话了,不过识别结果感人,暂时原因未知,还需要继续学习。
在这里插入图片描述

如果在命令行运行时,遇到如下错误:
在这里插入图片描述
其中MSVCR110D.dll是MSVCR110.dll的debug版本。如果遇到这个问题,说明你的phocketsphinx与sphinxbase不匹配,需要将编译好的sphinxbase结果复制过去。

下一篇 PocketSphinx在windows上的应用示例,开发工具Visual Studio

2014-01-23 22:18:55 u013538664 阅读数 6117
  • ORTP库局域网图传和VLC实时预览-第3/11季视频课程-...

    本季课程通过移植ORTP库并调用ORTP库函数来实现H.264裸流数据的网络传输,并且在Windows中安装VLC播放器,并在VLC中通过配置文件的方式来解析ORTP发送的裸流实现视频实时预览。本季课程的核心是ORTP协议的讲解,ORTP库的移植、部署和调用,VLC软件的用法讲解和配置文件讲解,Wireshark网络抓包工具的用法讲解,实时视频流传输和解析的体验和编程实现。 随着通信行业发展,网速越来越快,网络也从文本时代发展越过语音时代到了现在视频时代,“优酷、爱奇艺”、“微视频”、“直播”等的出现也是视频逐步成为主流媒体的证据和表现。航拍、视频监控、刷脸过关检测、汽车ADAS系统等应用也是视频在主流行业中的应用,因此视频的采集、编解码、传输、识别等技术变得越来越有价值,涌现出了“海康威视”、“大华股份”、“深圳英飞拓”等一批明星企业,名扬海内外,动辄市值几百亿。同时在芯片级,国产华为海思HI35XX系列视频编解码方案也逐步取代进口芯片(如TI、安霸)成为主流方案。 视频行业技术含量高、难度大、学习周期长、发展变化快而资料少,因此行业比较缺人、工资较高。如海康威视,普通高校硕士研究生应届进入年薪普遍高于15-20万,在嵌入式linux领域也算高工资技术方向了。 本项目是朱老师及其团队推出的一个嵌入式linux领域重量级企业级实战项目,选用华为海思HI3518E方案,结合OV9712/AR0130 Sensor实现图像采集和H.264编码压缩,并通过ethernet和WIFI,以socket实时流和RTSP等方式,实现720P/960P高清视频传输。本项目共分11季,从海思SDK开发环境搭建,到sample程序讲解、SDK中API函数解析,到H.264编解码、RTSP流媒体传输、MP4文件打包,到图像IQ调试、图像识别等视频领域高阶内容,可以说从零基础入手,对图像采集、编解码、网络传输、图像存储和识别做了全方位的详细讲解和代码分析,是目前市面上**一套系统讲解图像和视频技术的视频课程。

    494 人正在学习 去看看 朱有鹏

今天介绍一下HTK语音识别工具包的安装和编译,希望能够帮助到更多做语音相关工作的同仁们。

介绍:

HTK是用来进行自动语音识别研究的工具包,它由剑桥大学工程系的机器智能实验室开发的开源软件,全称叫做HiddenMarkov Toolkit。

官方网站:http://htk.eng.cam.ac.uk 

Section 1 

WINDOWS下HTK的安装和编译:

第一步:下载官方源代码,访问:http://htk.eng.cam.ac.uk/download.shtml

进入官网之后,会提示注册才能进行相关的下载。注册之后,密码回发到自己的邮箱,登陆后找到windows版的下载,有两个包:HTKSource code以及HTK samples。

第二步:解压文件

我在D盘中创建了一个名为HTK的文件夹。将这两个包解压到里面,打开htk包里面的README,里面有在windows下安装的前提要求:

1.HTK has been verified tocompile using Microsoft Visual Studio.

2.For testing, you willrequire a Perl interpreter such as ActivePerl.

3.You will need a tool suchas 7-zip or winzip (commercial) for unpacking the HTK source code archive.

4.It is helpful if you havesome familiarity with using the DOS command line interface, as you will need tointeract with it in order to compile, install and run HTK.

5.Ensure that your PATHcontains C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin or if youare using older versions: C:\Program Files\Microsoft Visual Studio\VC98\bin 

第三步:开始编译

1.打开cmd

2.进入到htk文件夹

3.创建一个文件夹bin.win32,这个文件夹用来存放各种.exe文件。


4.运行VCVARS32

4.1首先设置环境变量:

4.2输入VCVARS32

5.编译HTKLib

nmake /f htk_htklib_nt.mkfall

成功后会看到上面的显示。

6.编译HTKTools

nmake /f htk_htktools_nt.mkfall

7.编译HLMLib

nmake /f htk_hlmlib_nt.mkfall

8.编译HLMTools

nmake /f htk_hlmtools_nt.mkfall

编译之后我们打开bin.win32之后,如果看到:

说明我们的编译已经成功了。

第四步:测试生成的可执行文件是否可用

设置环境变量:

输入命令HInit测试一下,出现:

测试DEMO:

cd HTKDemo

mkdir hmms

cd hmms

mkdir tmp

mkdir hmm.0

mkdir hmm.1

mkdir hmm.2

mkdir hmm.3

cd ..

mkdir proto

mkdir acc

mkdir test

perl runDemo.plconfigs\monPlainM1S1.dcf

 出现以上显示,代表HTK库安装编译成功并测试成功。

Section 2 

LINUX下HTK的安装和编译:

第一步:下载官方源代码,访问:http://htk.eng.cam.ac.uk/download.shtml

这一步同WINDOWS下的编译只不过下载的是linux版的HTK包。

第二步:进行相关准备:

首先确保安装了g++和libx11

$ sudo apt-get install libx11-dev:i386(libX11.so) 

第三步:解压并编译:

解压HTK-3.4.1.tar.gz

sudo tar xzf HTK-3.4.1.tar.gz
sudo ./configure --prefix=/usr/local/
sudo make all
sudo make install
sudo install-hdecode

会出现如下显示:


之后出现:

第四步:测试命令:

如果出现以上显示表示安装已经成功。

第五步:测试DEMO

如果出现以下显示:

表示HTK工具包安装并测试通过。

以上就是在windows和linux下的HTK语音识别工具包的安装和编译方法。
2018-01-02 00:00:00 dzJx2EOtaA24Adr 阅读数 1059
  • ORTP库局域网图传和VLC实时预览-第3/11季视频课程-...

    本季课程通过移植ORTP库并调用ORTP库函数来实现H.264裸流数据的网络传输,并且在Windows中安装VLC播放器,并在VLC中通过配置文件的方式来解析ORTP发送的裸流实现视频实时预览。本季课程的核心是ORTP协议的讲解,ORTP库的移植、部署和调用,VLC软件的用法讲解和配置文件讲解,Wireshark网络抓包工具的用法讲解,实时视频流传输和解析的体验和编程实现。 随着通信行业发展,网速越来越快,网络也从文本时代发展越过语音时代到了现在视频时代,“优酷、爱奇艺”、“微视频”、“直播”等的出现也是视频逐步成为主流媒体的证据和表现。航拍、视频监控、刷脸过关检测、汽车ADAS系统等应用也是视频在主流行业中的应用,因此视频的采集、编解码、传输、识别等技术变得越来越有价值,涌现出了“海康威视”、“大华股份”、“深圳英飞拓”等一批明星企业,名扬海内外,动辄市值几百亿。同时在芯片级,国产华为海思HI35XX系列视频编解码方案也逐步取代进口芯片(如TI、安霸)成为主流方案。 视频行业技术含量高、难度大、学习周期长、发展变化快而资料少,因此行业比较缺人、工资较高。如海康威视,普通高校硕士研究生应届进入年薪普遍高于15-20万,在嵌入式linux领域也算高工资技术方向了。 本项目是朱老师及其团队推出的一个嵌入式linux领域重量级企业级实战项目,选用华为海思HI3518E方案,结合OV9712/AR0130 Sensor实现图像采集和H.264编码压缩,并通过ethernet和WIFI,以socket实时流和RTSP等方式,实现720P/960P高清视频传输。本项目共分11季,从海思SDK开发环境搭建,到sample程序讲解、SDK中API函数解析,到H.264编解码、RTSP流媒体传输、MP4文件打包,到图像IQ调试、图像识别等视频领域高阶内容,可以说从零基础入手,对图像采集、编解码、网络传输、图像存储和识别做了全方位的详细讲解和代码分析,是目前市面上**一套系统讲解图像和视频技术的视频课程。

    494 人正在学习 去看看 朱有鹏


今日凌晨,Facebook AI研究中心宣布开源语音识别工具包wav2letter!这是一款简单高效的端到端自动语音识别(ASR)系统,wav2letter 实现的是论文 Wav2Letter: an End-to-End ConvNet-based Speech Recognition System 和 Letter-Based Speech Recognition with Gated ConvNets 中提出的架构。


16年11月,Facebook的三位研究者Ronan Collobert, Christian Puhrsch, Gabriel Synnaeve在arXiv.org上发布文章,正式提出了wav2letter。


文章中研究者介绍,这是一个简单的端到端语音识别模型,结合了基于卷积网络的声学模型和图解码。其被训练输出文字,转录语音,而无需强制对齐音素。wav2letter还引入了一个自动的序列标注训练分割准则,而不需要与CTC一致的对齐方式,这种方式更简单。


项目代码已经发布至GitHub,如果你想直接开始进行语音转录,你可以使用同时被开源的预训练好的一些模型,前提是完成必要的安装。当然,目前能识别的只有英文语音哦!


开源代码GitHub链接:

https://github.com/facebookresearch/wav2letter


论文arXiv链接:

https://arxiv.org/abs/1609.03193


Facebook也发布了公开信介绍这一开源项目,包括该项目主要负责人Ronan Collobert、Facebook AI研究中心负责人Yann Lecan等在内的研究者都在推特上介绍了这一发布。



文摘菌摘录了部分公开信内容如下:


我们刚刚开源我们的语音识别工具:wav2letter


代码地址:

https://github.com/facebookresearch/wav2letter


我们将其与在LibriSpeech语料库中预先训练的一些模型一起发布,支持我们的最新论文Letter-Based Speech Recognition with Gated ConvNets。


wav2letter是在Torch上编写的一个简单的工具包,简化了对端到端语音识别系统的训练,并提供了一个允许快速解码的独立解码器。


它使我们能够复现我们最近的3篇论文(详见参考资料)。


敬请期待我们的更多研究。


Gabriel Synnaeve,Vitaliy Liptchinsky,Neil Zeghidour和Christian Puhrsch。


更多参考资料:


语料库 LibriSpeech。

http://www.openslr.org/12


论文 Letter-Based Speech Recognition with Gated ConvNets。

https://arxiv.org/abs/1712.09444


论文 Wav2Letter: an End-to-End ConvNet-based Speech Recognition System。

https://arxiv.org/abs/1609.03193


论文 Learning Filterbanks from Raw Speech for Phone Recognition。

https://arxiv.org/abs/1711.01161


往期精彩文章

点击图片阅读

GPS脚环计步、AI“鸡”脸识别,如何确保自己吃到了一只幸福健康的鸡

2016-11-06 16:41:36 x_r_su 阅读数 760
  • ORTP库局域网图传和VLC实时预览-第3/11季视频课程-...

    本季课程通过移植ORTP库并调用ORTP库函数来实现H.264裸流数据的网络传输,并且在Windows中安装VLC播放器,并在VLC中通过配置文件的方式来解析ORTP发送的裸流实现视频实时预览。本季课程的核心是ORTP协议的讲解,ORTP库的移植、部署和调用,VLC软件的用法讲解和配置文件讲解,Wireshark网络抓包工具的用法讲解,实时视频流传输和解析的体验和编程实现。 随着通信行业发展,网速越来越快,网络也从文本时代发展越过语音时代到了现在视频时代,“优酷、爱奇艺”、“微视频”、“直播”等的出现也是视频逐步成为主流媒体的证据和表现。航拍、视频监控、刷脸过关检测、汽车ADAS系统等应用也是视频在主流行业中的应用,因此视频的采集、编解码、传输、识别等技术变得越来越有价值,涌现出了“海康威视”、“大华股份”、“深圳英飞拓”等一批明星企业,名扬海内外,动辄市值几百亿。同时在芯片级,国产华为海思HI35XX系列视频编解码方案也逐步取代进口芯片(如TI、安霸)成为主流方案。 视频行业技术含量高、难度大、学习周期长、发展变化快而资料少,因此行业比较缺人、工资较高。如海康威视,普通高校硕士研究生应届进入年薪普遍高于15-20万,在嵌入式linux领域也算高工资技术方向了。 本项目是朱老师及其团队推出的一个嵌入式linux领域重量级企业级实战项目,选用华为海思HI3518E方案,结合OV9712/AR0130 Sensor实现图像采集和H.264编码压缩,并通过ethernet和WIFI,以socket实时流和RTSP等方式,实现720P/960P高清视频传输。本项目共分11季,从海思SDK开发环境搭建,到sample程序讲解、SDK中API函数解析,到H.264编解码、RTSP流媒体传输、MP4文件打包,到图像IQ调试、图像识别等视频领域高阶内容,可以说从零基础入手,对图像采集、编解码、网络传输、图像存储和识别做了全方位的详细讲解和代码分析,是目前市面上**一套系统讲解图像和视频技术的视频课程。

    494 人正在学习 去看看 朱有鹏

今天介绍一下HTK语音识别工具包的安装和编译,希望能够帮助到更多做语音相关工作的同仁们。

介绍:

HTK是用来进行自动语音识别研究的工具包,它由剑桥大学工程系的机器智能实验室开发的开源软件,全称叫做HiddenMarkov Toolkit。

官方网站:http://htk.eng.cam.ac.uk 

Section 1 

WINDOWS下HTK的安装和编译:

第一步:下载官方源代码,访问:http://htk.eng.cam.ac.uk/download.shtml

进入官网之后,会提示注册才能进行相关的下载。注册之后,密码回发到自己的邮箱,登陆后找到windows版的下载,有两个包:HTKSource code以及HTK samples。

第二步:解压文件

我在D盘中创建了一个名为HTK的文件夹。将这两个包解压到里面,打开htk包里面的README,里面有在windows下安装的前提要求:

1.HTK has been verified tocompile using Microsoft Visual Studio.

2.For testing, you willrequire a Perl interpreter such as ActivePerl.

3.You will need a tool suchas 7-zip or winzip (commercial) for unpacking the HTK source code archive.

4.It is helpful if you havesome familiarity with using the DOS command line interface, as you will need tointeract with it in order to compile, install and run HTK.

5.Ensure that your PATHcontains C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin or if youare using older versions: C:\Program Files\Microsoft Visual Studio\VC98\bin 

第三步:开始编译

1.打开cmd

2.进入到htk文件夹

3.创建一个文件夹bin.win32,这个文件夹用来存放各种.exe文件。


4.运行VCVARS32

4.1首先设置环境变量:

4.2输入VCVARS32

5.编译HTKLib

nmake /f htk_htklib_nt.mkfall

成功后会看到上面的显示。

6.编译HTKTools

nmake /f htk_htktools_nt.mkfall

7.编译HLMLib

nmake /f htk_hlmlib_nt.mkfall

8.编译HLMTools

nmake /f htk_hlmtools_nt.mkfall

编译之后我们打开bin.win32之后,如果看到:

说明我们的编译已经成功了。

第四步:测试生成的可执行文件是否可用

设置环境变量:

输入命令HInit测试一下,出现:

测试DEMO:

cd HTKDemo

mkdir hmms

cd hmms

mkdir tmp

mkdir hmm.0

mkdir hmm.1

mkdir hmm.2

mkdir hmm.3

cd ..

mkdir proto

mkdir acc

mkdir test

perl runDemo.plconfigs\monPlainM1S1.dcf

 出现以上显示,代表HTK库安装编译成功并测试成功。

Section 2 

Linux下HTK的安装和编译:

第一步:下载官方源代码,访问:http://htk.eng.cam.ac.uk/download.shtml

这一步同WINDOWS下的编译只不过下载的是linux版的HTK包。

第二步:进行相关准备:

首先确保安装了g++和libx11

  1. $ sudo apt-get install libx11-dev:i386(libX11.so)   

第三步:解压并编译:

解压HTK-3.4.1.tar.gz

  1. sudo tar xzf HTK-3.4.1.tar.gz  
  2. sudo ./configure --prefix=/usr/local/  
  3. sudo make all  
  4. sudo make install  
  5. sudo install-hdecode  

会出现如下显示:


之后出现:

第四步:测试命令:

如果出现以上显示表示安装已经成功。

第五步:测试DEMO

如果出现以下显示:

表示HTK工具包安装并测试通过。

以上就是在windows和linux下的HTK语音识别工具包的安装和编译方法。

原文链接:http://blog.csdn.net/jojozhangju/article/details/18714961
没有更多推荐了,返回首页