未来智讯 > 人脸语音识别论文 > Linux平台下Sphinx语音识别
    Linux平台下Sphinx语音识别作者:未知   摘要:本文对Linux平台下的语音识别的编程进行阐述,详细介绍了运用PocketSphinx来构建语音识别系统的方法。   关键词:Linux;语音识别;pocketsphinx编程
  中图分类号:TP311文献标识码:A文章编号:1007-9599 (2011) 06-0000-01
  Sphinx Speech Recognition Under the Linux Platform
  Yu Jiang,Liu Shi,Li Huaizhou
  (School of Optoelectronic Information,University of Electronic Science&Technology,Chengdu610054,China)
  Abstract:The programming of speech recognition under the Linux platform is expounded in this paper,and introduces the way to build a speech recognition system using PocketSphinx in detail.
  Keywords:Linux;ASR;Pocketsphinx programing
  随着科技的发展,语音识别在生活中扮演着越来越重要的角色,语音识别是机器通过录音设备将语音转化成程序能“理解”的下令的过程pocketsphinx是由卡耐基梅隆大学研发的一个轻量级,多平台,非特定人,大词汇库,可连续识别语音的引擎。
  一、语音设别过程
  语音识别的一般过程是:获得声音波形,划分为“字”单位,然后识别。我们可能要尝试所有的词组合来进行和音频的匹配。但这样会给计算机造成很大的负担,我们找到了一个折中的方法:构建模型来进行语音识别这样速度和精确性都得到了很好的照顾。
  二、模型
  语音识别系统主要由以下几个基本模块所构成:
  1.统计声学模型:典型系统多选取基于一阶隐马尔科夫模型进行建模。
  2.发音词典:发音词典包含系统所能处理的词汇集及其发音。
  3.语言模型:语言模型对系统所针对的语言进行建模。
  三、sphinx系统的构建
  从sphinx项目主页上下载源码包,编译安装我们这里要安装的工具有两个即pocketsphinx和sphinxbase。编辑/etc/ld.so.conf文件向其中添加以下两行:
  Include /usr/local/lib
  include /usr/local/lib/pkgconfig
  然后执行下令ldconfig来重构库配置文件,这样pocketsphinx和sphinxbase所需要的库文件就被投入到了环境变量中了。这时候环境就搭建完毕了。打开麦克风,在终端中运行下令./pocketsphinx_continuous并进行语音输入,这时能够发现已能识别语音信号,但精确度很差。在最新的Linux发行版中,已经默认的选取ALSA来驱动音频,如果Linux内核的版本为2.6,则要安装libasound2-dev库。如果以上测试不成功,则需要在终端下输入以下下令来进行测试环境变量。
  pkg-config--cflags--libs pocketsphinx sphinxbase
  此时输出结果如下所示,环境变量设置成功,否则检查安装的步骤是否准确。
  -I/usr/local/include-I/usr/local/include/sphinxbase -I/usr/local/include/pocketsphinx
  -L/usr/local/lib-lpocketsphinx-lsphinxbase-lsphinxad
  四、程序编写
  在筹备好开发环境后能够编写程序了。创建一个文本文件test.txt并往文件中输入以下下令:open browser;new e-mail;next window;last window;open music player。最大略的方法是创建一个语言模型,运用在线工具来产生需要的文件,网址为http://www.speech.cs.cmu.edu/tools/lmtool.html。提交文件后,会产生由4个数字和后缀名组成的文件,假如其中包括的两个文件为8521.dic字典文件和8521.lm语言模型文件即我们所需要的文件。能够用两个线程处理这一过程,从而提高程序的本能:一个线程用来监听和处理语音下令,一个线程用来执行下令对应的应用程序,如图1所示。
  假如C语言源程序名为hello_ps.c则能够编写如下的Makefile文件:
  #Makefile for hello_ps.c
  obj=hello_ps
  modeldir=$(shell pkg-config--variable=modeldir pocketsphinx)
  flags=$(shell pkg-config--cflags--libs pocketsphinx sphinxbase)
  $(obj):$(obj).c
  gcc $(obj).c-o $(obj)-DMODELDIR=\"$(modeldir)\"$(flags)
  运行make下令编译即可产生hello_ps文件。然后运行./hello_ps-lm 8521.lm -dict 8521.dic就能够测试了。
  五、结束语
  本文介绍了语音识别引擎pocketsphinx在Linux环境下的应用程序编程,语音识别有着广泛的应用。如我们常见的声控拨号电话,语音识别锁等等。语音识别技能是相当重要的人机交互技能,有着相当广泛的应用领域和市场前景色。
  参考文献:
  [1]Carnegie Mellon University.http://cmusphinx.sourceforge.net/wiki/
  [2]http://zh.wikipedia.org/wiki/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB
  [作者简介]余江(1985-),重庆垫江人,在读硕士研讨生,专业:电路与系统,研讨方向:复杂电路系统;刘士(1986-),安徽亳州人,在读硕士研讨生,专业:电路与系统,研讨方向:Linux嵌入式系统;李怀周(1986-),河南新乡人,在读硕士研讨生,专业:电路与系统,研讨方向:Linux嵌入式系统。
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

转载请注明来源。原文地址:https://www.7428.cn/page/2018/1129/48672/
 与本篇相关的热门内容: