1“讯飞语音+”功能介绍
“讯飞语音+”主要提供的语音服务包括语音合成、语音识别、语义理解和语音搜索。
语音合成
讯飞语音+提供的语音合成服务包括在线语音合成与离线语音合成。
具有多语种服务:支持中文、中英文混度、纯正英文、粤语、粤语英文混度的语音合成。
多音色服务:可以设定不同音色,包括普通话女童、男、女发声,粤语、东北话、河南话、湖南话、四川话等。
多字符集支持:支持输入GB2312、GBK、Big5、Unicode和UTF-8等多种字符集,
语音识别:
“讯飞语音+ ”语音识别同样提供在线与离线两种方式,具有一下几种功能。
前端语音处理:端点检测、噪音消除、智能打断;
后端识别处理:连续语音识别、个性化语音识别、置信度输出、多识别结果、多槽识别等。
语义理解:
语义理解支持的特性包括:
能够处理基于文法规则的实际业务需求,为支持用户通过自然语言向机器发出某种业务需求,如打电话、发短信、查天气、查股票、查航班、订酒店等;
具备基于相似问句语义距离度量的智能知识问答 ;
具备基于本体库自动构建及推理的智能问答。
语音搜索
支持超大规模的语言模型;
支持语言模型的动态更新;
支持针对不同用户给出最匹配的搜索结果列表;
2“讯飞语音+”语音识别功能接口使用方法
第三方软件使用讯飞语音+提供的语音服务需要提前安装讯飞语音+原件。在开发过程中首先将SpeechApi.jar添加进工程,该程序包作为开发者与讯飞语音+的接口,开发者调用统一接口介入其语音识别服务。
在实现语音识别功能中,首先实例化SpeechRecognizer对象,然后通过setParameter(key,value)方法设置识别引擎的参数。
设置引擎类别
离线引擎mRecognizer.setParameter(SpeechConstant.ENGINE_TYPE,“local”);
在线引擎mRecognizer.setParameter(SpeechConstant.ENGINE_TYPE,“cloud”);
此外,还有语法编码格式、语言类型、扩展参数、采样率、VAD前端超时或者后端超时等参数的设定,详见开发文档。
讯飞语音+引擎支持用户设置语法文件,在线识别使用.abnf语法,离线使用.bnf语法,通过buildGrammar方法进行创建。
以下代码为识别过程中的示例代码。
// 创建SpeechRecognizer对象
SpeechRecognizer recognizer = new SpeechRecognizer(this, initListener);
// 转写示例
recognizer.setParam( ENGINE_TYPE, "clound");
recognizer.setParam( VAD_BOS, "4000");
recognizer.setParam( PARAMS, "asr_ptt=0");
recognizer.setParam( LANGUAGE, "zh_cn");
recognizer.setParam( LANG_LOCAL, "cantonese");
recognizer.setParam( DOMAIN, "sms");
recognizer.startListening( recognizerListener);
// 构建ABNF语法文件示例
recognizer.buildGrammar( "abnf", "#abnf....", grammarListener);
// 构建词典示例
recognizer.setParam( ENGINE_TYPE, "local");
recognizer.updateLexicon( "contact", "张三,李四.........", lexiconListener);
// 识别示例
recognizer.setParam( ENGINE_TYPE, "local");
recognizer.setParam( VAD_BOS, "4000");
recognizer.setParam( GRAMMAR_ID, "abnfid");
recognizer.startListening( recognizerListener);
3“讯飞语音+”语义识别功能接口使用方法
与语音识别功能相似,第三方程序在使用讯飞语音服务前要在开发程序中检测是否已经安装了讯飞语音服务,并且选择讯飞语音服务为默认语音服务,然后就可以调用相应的语言服务。
实现过程也是实例化语义识别对象,设置参数,启动识别功能,以下为示例代码。
// 创建语音到语义对象
SpeechUnderstander understander = new SpeechUnderstander(context,initListener);
understander.setparam( ENGINE_TYPE, "cloud");
understander.setparam( VAD_BOS, "4000");
understander.setparam( SCENE, "telephone|message|music");
understander.startUnderstanding(understanderListener);
// 创建文本到语义对象
TextUnderstander understander = new TextUnderstander(context,initListener);
understander.setparam( ENGINE_TYPE, "cloud");
understander.setparam( VAD_BOS, "4000");
understander.setparam( SCENE, "telephone|message|music|dialog");
understander.understandText( "你叫什么名字", understanderListener);
4“讯飞语音+”语音合成功能接口使用方法
讯飞语音+的语音合成功能提供多种声色的选择,所以在使用前需要根据选择设置相关参数,以下为实例代码。
// 创建SpeechSynthesizer对象
SpeechSynthesizer synthesizer = SpeechSynthesizer(this, initListener);
synthesizer.setParam( ENGINE_TYPE, "cloud");
synthesizer.setParam( SPEED, "50");
synthesizer.setParam( DOMAIN, "book");
synthesizer.setParam( VOICE_NAME, "xiaoyan");
synthesizer.startSpeaking( "科大讯飞语音合成", synthesizerListener);
synthesizer.stopSpeaking( synthesizerListener);