yunZhiShengSpeech


集成了云知声语音识别和语音合成功能,这里需要使用到的各种key值需要用户到云知声开放平台(http://dev.hivoice.cn)注册。

如何创建应用

一、在浏览器中打开云知声开放平台,如下图:
image

二、登录云知声官网.点击登录按钮
image

三、点击创建新应用按钮
image

四、按照图示创建你的应用
image

五、创建完成后点击应用图标,就可以查看详情.箭头指向的就是你所需要的key值
image

语音识别状态码(Number):

  • YZS_UND_SpeechStart: 检测到用户说话,值为101

  • YZS_UND_RecordingStart: 开始录音,值为102

  • YZS_UND_RecordingStop: 停止录音,值为103

  • YZS_UND_RecognizerStart: 开始语音识别,值为104,Android暂时不支持此状态

  • YZS_UND_VADTimeout: 语音识别超时,值为105

  • YZS_UND_RecognizerResult: 语音识别结果,值为106

  • YZS_UND_UnderstanderResult: 语音理解结果,值为107

  • YZS_UND_UnderstanderEnd: 语音理解完成,值为108,Android暂时不支持此状态

状态码都是通过rd.yunZhiShengSpeech对象调用,使用说明如下:

var state = rd.yunZhiShengSpeech.YZS_UND_SpeechStart;
var state = rd.yunZhiShengSpeech.YZS_UND_RecordingStart;

语音合成状态码(Number):

  • YZS_SYN_SpeechStart: 合成器启动,值为201

  • YZS_SYN_StartSpeaking: 开始朗读,值为202

  • YZS_SYN_Canceled: 合成取消,值为203

  • YZS_SYN_Paused: 朗读暂停,值为204,Android暂时不支持此状态

  • YZS_SYN_Resumed: 朗读恢复,值为205,Android暂时不支持此状态

  • YZS_SYN_Finished: 朗读结束,值为206

  • YZS_SYN_ErrorOccurred: 语音合成出错,值为207

状态码都是通过rd.yunZhiShengSpeech对象调用,使用说明如下:

var state = rd.yunZhiShengSpeech.YZS_SYN_SpeechStart;
var state = rd.yunZhiShengSpeech.YZS_SYN_StartSpeaking;

方法:

回调方法:

关于Android支持:

  • 因为开发平台的关系,暂时不支持64位的系统.

关于iOS9支持:

createSpeechUnderstander


初始化语音识别

rd.yunZhiShengSpeech.createSpeechUnderstander(appKey, secret, func);
说明:

初始化语音识别功能

参数:
  • appKey: ( String ) 必选 用于初始化的appKey,注册应用时会得到
  • secret: ( String ) 必选 用于初始化的secret,注册应用时会得到
  • func: ( speechUndCallBack ) 必选 获得语音识别状态的回调方法
返回值:

无返回值

示例:
function stateCallBack(state,info){
    var stateStr = "";
    if(rd.yunZhiShengSpeech.YZS_UND_SpeechStart == state){
        stateStr = "检测到说话";
    }else if(rd.yunZhiShengSpeech.YZS_UND_RecordingStart == state){
        stateStr = "录音开始";
    }else if(rd.yunZhiShengSpeech.YZS_UND_RecordingStop == state){
        stateStr = "录音停止";
    }else if(rd.yunZhiShengSpeech.YZS_UND_RecognizerStart == state){
        stateStr = "开始语音识别";
    }else if(rd.yunZhiShengSpeech.YZS_UND_VADTimeout == state){
        stateStr = "语音识别超时";
    }else if(rd.yunZhiShengSpeech.YZS_UND_RecognizerResult == state){
        stateStr = "语音识别结果";
    }else if(rd.yunZhiShengSpeech.YZS_UND_UnderstanderResult == state){
        stateStr = "语音理解结果";
    }else if(rd.yunZhiShengSpeech.YZS_UND_UnderstanderEnd == state){
        stateStr = "语音识别结束";
    }
    rd.log.i('state = '+ stateStr + 'info: '+info);
}

    rd.yunZhiShengSpeech.createSpeechUnderstander('otpyqjaggeegrz76ujjgi6lxwme5ufj5e2j2p7qe', '3b11130edefab63b6db0135bebc8bbeb', stateCallBack);

setVadFrontTimeout


超时时间

rd.yunZhiShengSpeech.setVadFrontTimeout(frontTime, backTime);
说明:

设置vad超时时间,单位ms

参数:
  • frontTime: ( Number ) 必选 开始说话之前的停顿超时时间
  • backTime: ( Number ) 必选 开始说话之后的停顿超时时间
返回值:

无返回值

示例:
rd.yunZhiShengSpeech.setVadFrontTimeout(3000, 1000);

setEngine


设置识别领域

rd.yunZhiShengSpeech.setEngine(engine);
说明:

设置识别领域

参数:
  • engine: 必选 ( String ) 可设置的领域包括:
    1. "general":通用识别
    2. "poi": 地名识别
    3. "song": 歌名识别
    4. "movietv":影视名识别
    5. "medical": 医药领域识别
返回值:

无返回值

示例:
rd.yunZhiShengSpeech.setEngine(‘general’);

setRecognizeLanguage


设置识别语言

rd.yunZhiShengSpeech.setRecognizeLanguage(recognizeLanguage);
说明:

设置识别语言

参数:
  • recognizeLanguage: ( Number ) 必选 可设置的语言包括:
    1. 0: 中文
    2. 1: 英文
    3. 2: 粤语
返回值:

无返回值

示例:
rd.yunZhiShengSpeech.recognizeLanguage(0);

setVoiceField


设置远近讲

rd.yunZhiShengSpeech.setVoiceField(voiceField);
说明:

设置远近讲,Android暂时不支持

参数:
  • voiceField: ( String ) 可设置的值为:
    1. "far": 远讲模型适合室内,低噪音环境下使用
    2. "near": 近讲录音距离支持约2-5米,具体是硬件规格
返回值:

无返回值

示例:
rd.yunZhiShengSpeech.setVoiceField(‘far’);

setRecognizationTimeout


设置识别超时时间

rd.yunZhiShengSpeech.setRecognizationTimeout(recognizationTime);
说明:

设置识别超时时间

参数:
  • recognizationTime: ( Number ) 必选 超时时间,单位为秒
返回值:

无返回值

示例:
rd.yunZhiShengSpeech.setRecognizationTimeout(30);

setBandwidth


设置在线识别带宽(采样率)

rd.yunZhiShengSpeech.setBandwidth(rate);
说明:

设置在线识别带宽(采样率)

参数:
  • rate: ( Number ) 必选 录音采样率,支持参数8000、16000
返回值:

无返回值

示例:
rd.yunZhiShengSpeech.setBandwidth(8000);

setPunctuation


设置标点符号

rd.yunZhiShengSpeech.setPunctuation(isEnable);
说明:

设置标点符号,Android暂时不支持

参数:
  • isEnable: ( Boolean ) 必选 是否开启标点符号
返回值:

无返回值

示例:
rd.yunZhiShengSpeech.setPunctuation(true);

start


开始识别

rd.yunZhiShengSpeech.start();
说明:

开始识别(需要应用具有录音权限,才可以进行录音)

参数:

返回值:

无返回值

示例:
rd.yunZhiShengSpeech.start();

stop


停止识别

rd.yunZhiShengSpeech.stop();
说明:

停止识别

参数:

返回值:

无返回值

示例:
rd.yunZhiShengSpeech.stop();

cancel


取消识别

rd.yunZhiShengSpeech.cancel();
说明:

取消识别

参数:

返回值:

无返回值

示例:
rd.yunZhiShengSpeech.cancel();

createSpeechSynthesizer


创建语音合成

rd.yunZhiShengSpeech.createSpeechSynthesizer(appKey, func);
说明:

创建语音合成

参数:
  • appKey: ( String ) 必选 用于初始化的appKey,注册应用时会得到
  • func: ( speechRecCallBack ) 必选 获得语音合成状态的回调方法
返回值:

无返回值

示例:
rd.yunZhiShengSpeech.createSpeechSynthesizer('ljs4yg4ge4654hgexvan7cxcfy4l47smvjccysyj',function(state, info){
        var stateStr = "";
        if(rd.yunZhiShengSpeech.YZS_SYN_SpeechStart == state){
            stateStr = "开始语音合成";
        }else if(rd.yunZhiShengSpeech.YZS_SYN_StartSpeaking == state){
            stateStr = "开始朗读";
        }else if(rd.yunZhiShengSpeech.YZS_SYN_Canceled == state){
            stateStr = "取消语音合成";
        }else if(rd.yunZhiShengSpeech.YZS_SYN_Paused == state){
            stateStr = "暂停语音合成";
        }else if(rd.yunZhiShengSpeech.YZS_SYN_Resumed == state){
            stateStr = "恢复语音合成";
        }else if(rd.yunZhiShengSpeech.YZS_SYN_Finished == state){
            stateStr = "语音合成完成";
        }else if(rd.yunZhiShengSpeech.YZS_SYN_ErrorOccurred == state){
            stateStr = "语音合成错误 ";
        }
        rd.log.i('state: '+stateStr+'data: '+info);
});

speaking


开始合成

rd.yunZhiShengSpeech.speaking(text);
说明:

开始合成

参数:
  • text: (String) 必选 要合成的文字
返回值:

无返回值

示例:
rd.yunZhiShengSpeech.speaking(‘你好’);

cancelSpeaking


取消朗读

rd.yunZhiShengSpeech.cancelSpeaking();
说明:

取消朗读

参数:

返回值:

无返回值

示例:
rd.yunZhiShengSpeech.cancelSpeaking();

pauseSpeaking


暂停朗读

rd.yunZhiShengSpeech.pauseSpeaking();
说明:

暂停朗读,Android暂时不支持

参数:

返回值:

无返回值

示例:
rd.yunZhiShengSpeech.pauseSpeaking();

resumeSpeaking


恢复朗读

rd.yunZhiShengSpeech.resumeSpeaking();
说明:

恢复朗读,Android暂时不支持

参数:

返回值:

无返回值

示例:
rd.yunZhiShengSpeech.resumeSpeaking();

speechRecCallBack


获得语音合成状态的回调方法

function speechRecCallBack (state, info) {

}
说明:

获得语音合成状态的回调方法

参数:
  • state : ( Number ) 必选 语音合成状态码
  • info : ( String ) 必选 根据状态码返回相应的成功或失败信息

speechUndCallBack


语音识别状态码

function speechUndCallBack (state, info) {

}
说明:

语音识别状态码

参数:
  • state : ( Number ) 必选 语音识别状态码
  • info : ( String ) 必选 根据状态码返回相应的成功或失败信息

关闭HTTPS请求协议


为了强制增强数据访问安全,iOS9默认会把大部分的HTTP请求都改为HTTPS请求。本插件基于云知声集成.目前官网没有针对iOS9的HTTPS协议做出更新操作. 所以,如果想在iOS9环境下使用本插件.则需要在pluginConfig.xml中进行配置。配置方式如下:

<!--找到InfoPlistEdit节点 在这里设置HTTPS相关参数.-->
<config pluginName="InfoPlistEdit">
    <ios>
        <!--true:表示开启http协议模式;false:表示关闭http协议模式,采用https请求协议.-->
         <param key="AllowAllHttpConnection" value="true"></param>
    </ios>
</config>
说明:

将以上配置参数拷贝至项目中的pluginConfig.xml文件中即可.若已有相同的配置项.则不需要再次拷贝.在原基础上添加即可.