aliYunVoice

来自于:AC模块工作室立即使用

概述

aliYunVoice模块封装了阿里云提供的语音识别的一句话识别服务和语音合成的功能。

使用本模块之前需要先去阿里云控制台申请appid和appsecret

语音识别服务提供将实时短语音转成文字的功能,可直接用于语音搜索类应用。

语音合成提供将文本转为普通话语音的语音合成功能。

模块接口

addEventListener

添加监听

addEventListener({params},callback(ret))

params

name:

  • 类型:字符串
  • 描述:监听的事件的名字
  • 取值范围:
    • startRecognizing:识别开始 (语音识别)
    • stopRecognizing:识别结束 (语音识别)
    • startRecording:录音开始 (语音识别)(仅支持安卓)
    • stopRecording:录音结束 (语音识别)(仅支持安卓)
    • volume:录音音量,范围0-100 (语音识别)
    • recognizeResult:语音识别结果 (语音识别)
    • onError:语音识别错误 (语音识别、语音合成)
    • readStart:语音合成开始 (语音合成)
    • readTransferring:语音合成正在翻译 (语音合成)
    • readOver:语音合成完毕 (语音合成)

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:所监听事件的回调,当name为startRecognizing,stopRecording,startRecording, readStart, readTransferring, readOver时,只有触发事件,没有回调参数
  • 内部字段
recognizeResult:{//JOSN对象;语音识别后的结果,当 name 为 recognizeResult 时返回的值
    result:'',//字符串类型;识别结果
    finish: 1,//数字类型;0为未结束,非零为结束,识别是否已经结束
}
error:{
    errMsg:''  //字符串类型;错误信息
}
volume: 30     //数字类型;录音音量大小(实时回调),当 name 为volume
recognizeFile:{ //JSON对象,语音识别的文件保存路径,当name为stopRecognizing时的返回值
    status:true, //布尔类型;保存的状态
    file:''      //字符串类型;文件保存的路径
}

示例代码

var aliYunVoice = api.require('aliYunVoice');
aliYunVoice.addEventListener({
    name: 'recognizeResult'
},function(ret){
    api.alert({ msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

removeEventListener

移除已添加的监听

removeEventListener({params})

params

name:

  • 类型:字符串
  • 描述:监听的事件的名字
  • 取值范围:
    • startRecognizing:识别开始 (语音识别)
    • stopRecognizing:识别结束 (语音识别)
    • startRecording:录音开始 (语音识别)(仅支持安卓)
    • stopRecording:录音结束 (语音识别)(仅支持安卓)
    • volume:录音音量,范围0-100 (语音识别)
    • recognizeResult:语音识别结果 (语音识别)
    • onError:语音识别错误 (语音识别、语音合成)
    • readStart:语音合成开始 (语音合成)
    • readTransferring:语音合成正在翻译 (语音合成)
    • readOver:语音合成完毕 (语音合成)

示例代码

var aliYunVoice = api.require('aliYunVoice');
aliYunVoice.removeEventListener({
    name: 'recognizeResult'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

recognizeConfig

配置语音识别的参数

recognizeConfig({params,callback(ret)})

params

keyId:

  • 类型:字符串
  • 描述:(必选项) Access Key ID

keySecret

  • 类型:字符串
  • 描述:(必选项) Access Key Secret

appKey:

  • 类型:字符串
  • 描述:(可选项)应用的appkey
  • 默认值:nls-service

asrSc:

  • 类型:字符串
  • 描述:(可选项) 语音识别的语音格式(仅支持安卓)
  • 默认值:opu
  • 取值范围:
    • opu
    • pcm
    • wav
    • speex

userId:

  • 类型:字符串
  • 描述:(可选项) 用户自定义热词接口,设置用户id,使用词表时必选(仅支持iOS)
  • 默认值:无

vocabularyId:

  • 类型:字符串
  • 描述:(可选项) 用户自定义热词接口,设置词表id,使用词表时必选
  • 默认值:无

mode:

  • 类型:字符串
  • 描述:(可选项) 语音识别的结果返回模式
  • 默认值: normal
  • 取值范围:
    • streaming:结果为增量返回,即识别中间结果每次返回增加1-2个字
    • normal:识别只返回最终结果

recognizeAttr

  • 类型:JSON对象
  • 描述:(可选项)语音识别引擎的属性
  • 内部字段
isAutoStop:true     //(可选项)布尔类型;设置VAD 是端点检测功能,打开VAD可以自动检测语音结束,并结束语音;默认值:true
interval:2000      // (可选项) 数字类型;设置获取录音音量的最短时间间隔,防止录音音量回调过于频繁影响客户端对音量的展示逻辑;单位:ms;默认值:2000(仅支持安卓)
minRecordTime:5000 // (可选项) 数字类型;用于设置最短录音时间,引擎开始时,用户在该时间内不说话,则会自动关闭引擎;单位:ms; 默认值:5000
maxRecordTime:5000 //(可选项) 数字类型;用于设置最大录音时间;单位:ms;默认值:5000
milliSeconds:5000 // (可选项) 数字类型;打开VAD时, 设置录音中句子之间的最长停顿时间 ,录音过程中,如果用户停顿超过该时间则认为用户已经停止说话,停止录音;单位:ms; 默认值;5000

示例代码:

var aliYunVoice = api.require('aliYunVoice');
var params = {
            keyId:'*******',
            keySecret:'******',
            asrSc:'opu'
            };
aliYunVoice.recognizeConfig(params);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

recognizeStart

打开语音识别引擎

recognizeStart();

示例代码

var aliYunVoice = api.require('aliYunVoice');
aliYunVoice.recognizeStart();

可用性

iOS系统,Android系统 可提供的1.0.0及更高版本

recognizeStop

关闭语音识别引擎

recognizeStop();

示例代码

var aliYunVoice = api.require('aliYunVoice');
aliYunVoice.recognizeStop();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

recognizeIsStarted

返回当前引擎是否已启动

recognizeIsStarted(callback(ret));

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    isStarted:true  //布尔类型;是否启动
}

示例代码

var aliYunVoice = api.require('aliYunVoice');
aliYunVoice.recognizeIsStarted(function(ret){
    if (ret.isStarted){
       api.alert("引擎已打开");
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

recognizeCancel

取消此次语音识别

recognizeCancel();

示例代码

var aliYunVoice = api.require('aliYunVoice');
aliYunVoice.recognizeCancel();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

clearCache

清除录音文件缓存

clearCache();

示例代码

var aliYunVoice = api.require('aliYunVoice');
aliYunVoice.clearCache();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

readConfig

配置语音合成参数

readConfig(params)

params

appKey:

  • 类型:字符串
  • 描述:(可选项)应用的appkey
  • 默认值:nls-service

示例代码:

var aliYunVoice = api.require('aliYunVoice');
var params = {
            appKey : 'nls-service'
            };
aliYunVoice. readConfig(params);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

readStart

开始语音合成

readStart(params)

params

keyId:

  • 类型:字符串
  • 描述:(必选项) Access Key ID

keySecret

  • 类型:字符串
  • 描述:(必选项) Access Key Secret

encodeType

  • 类型:字符串
  • 描述:(可选项) 设置tts返回语音的格式类型,目前支持pcm、wav、alaw
  • 默认值:pcm
  • 取值范围:
    • pcm
    • wav
    • alaw

speechRate

  • 类型:数字类型
  • 描述:(可选项)语速,阈值-500~500
  • 默认值:0

volume

  • 类型:数字类型
  • 描述:(可选项) 音量大小,阈值0-100。
  • 默认值:50

text

  • 类型:字符串
  • 描述:(必选项) 要语音合成的文本

sampleRate

  • 类型:数字
  • 描述:(可选项) 码率
  • 默认值:16000

示例代码

var aliYunVoice = api.require('aliYunVoice');
aliYunVoice.readStart({
            keyId:'*******',
            keySecret:'******',
            text:'今天好热啊'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

readPause

暂停语音合成,仅支持安卓系统

readPause()

示例代码

var aliYunVoice = api.require('aliYunVoice');
aliYunVoice.readPause();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

readStop

停止语音合成,仅支持安卓系统

readStop()

示例代码

var aliYunVoice = api.require('aliYunVoice');
aliYunVoice.readStop();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本