本来是想在树莓派3上做开发的,可是没有树莓派3的SDK,在这里先在Linux上熟悉下讯飞语音。
Linux系统:Ubuntu16 64位。
一、注册获取SDK
在讯飞开发者平台进行注册,注册分个人用户和企业用户,个人用户注册提供用户名和姓名,需要绑定手机号,企业用户除了需要以上信息外还需要纳税登记号和营业执照等资质信息。
注册好后在开发者平台首页下,按照新手接入流程进行操作就好了。
获取SDK是一个压缩包,解压后里面有测试文件,说明文档,头文件,库文件和例程等信息。
二、配置
将libs/x64/libmsc.so(64位系统)复制到/usr/local/lib/下,方便编译的可执行文件运行时寻找;复制完后要执行ldconfig使链接库生效;
$ sudo cp libs/x64/libmsc.so /usr/local/lib/
$ sudo ldconfig
三、编译
如果想快速的看演示效果,可以直接进入例程目录,执行:
$ source 64bit_make.sh
可以在bin文件内生成对应的可执行文件。
三、例程介绍
进入samples例程目录,可以看到有7个例程,下面对这7个例程做一个简单介绍
1.asr_sample 语音识别示例
语音识别(Automatic Speech Recognition)技术能够从语音中识别出特定的命令词或语句模式;这里是将bin/wav/iflytek01.wav语音文件进行解析,解析结果如下:
解析出三条记录,用confidence来区分准确度,confidence值越大是越准确的,一般也是我们要使用的。
2.iat_sample 语音听写示例
语音听写(iFly Auto Transform)技术能够实时地将语音转换成对应的文字。模拟人说话的场景进行语音解析。这里是解析一个bin/wav/iflytek02.wav音频文件,执行过程中会让用户选择是否上传用户词表,如果选择上传,后续解析到相关关键词时会提高解析准确率。
在这里我选择上传用户词列表时会出现10110的错误,没有授权许可,查询后说是没有效授权上传联系人10110的话是一般是uid没有,看下是否正确的进行了msplogin,如果没有获取到设备号,只是临时用户,生成不了唯一标识uid,是无效用户。解决此类情况,可以在参数中指定mac地址进行上传。这个怎么指定MAC地址还没找到方法,等后面更新。
3.ise_sample 语音评测示例
语音评测是拿解析一个音频文件的内容和一个文本文件进行对比,音频文件的内容和文本文件是一样的 ,对比结果有一个评分,分值越高表示结果越好,至于具体分值代表的意思还没有在文档上看到。
4.tts_sample 语音合成示例
语音合成(Text To Speech,TTS)技术能够自动将任意文字实时转换为连续的自然语音,是一种能够在任何时间、任何地点,向任何人提供语音信息服务的高效便捷手段,非常符合信息时代海量数据、动态更新和个性化查询的需求。
5.sch_speak_sample 语音语义示例
语音语义技术能够将语音听写业务中的内容进行语义解析。本例中运行解析bin/wav/weather.pcm音频文件语义,
在进行语音语义测试时要确保开通了语音语义服务,如果没开通语音语义服务会提示14002错误;
语音语义服务可在开发者平台->控制台->开放语义里进行配置,可以进行语义抽取和智能问答的配置。
6.sch_text_sample 文本语义示例
和语音语义功能类似,文本语义技术能将文本内容进行语义解析。
7.iat_record_sample 录音听写示例
语音听写(iFly Auto Transform)技术能够实时地将语音转换成对应的文字。
这里会让用户选择是使用麦克风还是使用已录制好的音频文件。如果选择麦克风,程序会将用户对着麦克风说的语音解析成文字。这里可以使用tts_sample例程中的语音合成技术将结果合成音频文件进行播放,达到语音互动的效果。
这里编译时遇到一个错误:alsa/asoundlib.h: 没有那个文件或目录,安装libasound2-dev库文件可解决。
sudo apt-get install libasound2-dev