输出结果如下:
  kl@kl-Latitude:~/xunfeiSDK$ ./a.out
  writing audio...
  MSP_AUDIO_SAMPLE_CONTINUE
  0
  .MSP_AUDIO_SAMPLE_CONTINUE
  1
  .MSP_AUDIO_SAMPLE_CONTINUE
  2
  .MSP_AUDIO_SAMPLE_CONTINUE
  3
  .MSP_AUDIO_SAMPLE_CONTINUE
  4
  .MSP_AUDIO_SAMPLE_CONTINUE
  5
  .MSP_AUDIO_SAMPLE_CONTINUE
  6
  .MSP_AUDIO_SAMPLE_CONTINUE
  7
  .MSP_AUDIO_SAMPLE_CONTINUE
  8
  .MSP_AUDIO_SAMPLE_CONTINUE
  9
  .MSP_AUDIO_SAMPLE_CONTINUE
  10
  .MSP_AUDIO_SAMPLE_CONTINUE
  11
  .MSP_AUDIO_SAMPLE_CONTINUE
  12
  .MSP_AUDIO_SAMPLE_CONTINUE
  13
  .MSP_AUDIO_SAMPLE_CONTINUE
  14
  .MSP_AUDIO_SAMPLE_CONTINUE
  15
  .MSP_AUDIO_SAMPLE_CONTINUE
  16
  .MSP_AUDIO_SAMPLE_CONTINUE
  17
  .MSP_AUDIO_SAMPLE_CONTINUE
  18
  .MSP_AUDIO_SAMPLE_CONTINUE
  19
  .MSP_AUDIO_SAMPLE_CONTINUE
  20
  .MSP_AUDIO_SAMPLE_CONTINUE
  21
  .MSP_AUDIO_SAMPLE_CONTINUE
  22
  .MSP_AUDIO_SAMPLE_LAST
  23
  .
  get reuslt~~~~~~~
  [0]:get result[0/2]
  ~~~123
  [1]:get result[0/5]: {"sn":1,"ls":true,"bg":0,"ed":0,"ws":[{"bg":0,"cw":[{"sc":"85","gm":"0","w":"图书馆","mn":[{"contact":"图书馆"}]}]}]}
  QISRSessionEnd.
  这个输出格式是个坑,因为官方的例子默认是直接输出识别的结果,但是结果是GB2312格式的,在linux终端下是乱码,后来才搞明白,在QISRSessionBegin()函数初始化的时候第二个参数param中的rst改成json,是按照json格式把所有结果全输出来后,是utf8格式的汉字,之后再用json模块来解妥妥的了~整体代码很清晰,简单说一下:
  1.先要调用QISRInit()函数,参数是自己的appid,每个SDK都是注册才能下载的,所以是的,用来区分用户的,不同级别的用户每天可以使用SDK的次数有限制,毕竟人用的多了语音识别的性能肯定会下降;
  2.之后是把GrammarID,输入输出的参数param和调用状态返回值ret作为参数传入QISRSessionBegin()函数中进行初始化,返回值是sessionID,这个是后面所有函数的主要参数之一;
  3.打开自己的音频文件,调用QISRAudioWrite()函数写入,可以分段也可以一次,第一个参数是sessionID,上面初始化函数返回的值,第二个参数是音频数据头指针,第三个参数是音频文件大小,第四个参数是音频发送的状态,表示发送完了没有,剩下两个是服务器端检测语音状态和识别状态的返回值;
  4.调用QISRGetResult()函数获取识别的结果,第一个参数还是sessionID,第二个参数是输出识别的状态,第三个参数是与服务器交互的间隔时间,官方建议5000,我取为0,第四个参数是调用状态返回值ret,后这个函数的返回值是上面结果的json数据了;
  5.后的收尾清理工作,毕竟是C语言,不是java~哈哈