本文主要实现PocketSphinx语音识别系统的编程使用,主要分两个方面,一个是编程解码语音文件(主要参考CMU sphinx的wiki:http://cmusphinx.sourceforge.net/wiki/),二是编程识别麦克风的语音(主要参考PocketSphinx源码包里的pocketsphinx.c文件)。对于后面加入我的人机交互系统的话,采用的是识别麦克风的语音的编程,具体使用时还需要对其进行精简。
一、编程解码语音文件
1、编程:
2、编译:
编译方法:
gcc -o test_ps test_ps.c \
-DMODELDIR=\"`pkg-config --variable=modeldir pocketsphinx`\" \
`pkg-config --cflags --libs pocketsphinx sphinxbase`
//gcc的-D选项,指定宏定义,如-Dmacro=defn 相当于C语言中的#define macro=defn那么上面就表示在test_ps.c文件中,新加入一个宏定义:
#define MODELDIR=\"`pkg-config --variable=modeldir pocketsphinx`\"
\表示转义符,把“号转义。
这么做是为什么呢?因为程序中需要指定MODELDIR这个变量,但是因为不同的使用者,这个变量不一样,没办法指定死一个路径,所以只能放在编译时,让用户去根据自己的情况来指定。
pkg-config工具可以获得一个库的编译和连接等信息;
#pkg-config --cflags --libs pocketsphinx sphinxbase
显示:
-I/usr/local/include/sphinxbase -I/usr/local/include/pocketsphinx
-L/usr/local/lib -lpocketsphinx -lsphinxbase –lsphinxad
#pkg-config --variable=modeldir pocketsphinx
显示结果输出:/usr/local/share/pocketsphinx/model
二、编程解码麦克风的录音
1、编程
麦克风录音数据的获得主要是用sphinxbase封装了alsa的接口来实现。
2、编译
和1.2一样。
文章转自http://blog.csdn.net/zouxy09
扫描微信二维码