aliyunNls

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

一句话识别

实时语音识别

语音合成

概述

aliyunNls 模块是 aliYunRtVoice 和 aliYunVoice 的聚合升级优化版。封装了阿里云提供的语音识别的一句话识别服务、实时语音识别服务和语音合成的功能。

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

一句话识别:对一分钟内的短语音进行识别,适用于对话聊天,控制口令等较短的语音识别场景。 实时语音识别:对长时间的语音数据流进行识别,适用于会议演讲、视频直播等长时间不间断识别的场景。

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

注意:本模块会创建一个单例对象,可在多个页面共用。

模块接口

setLog

设置log级别 (android不支持该方法)

setLog({params},callback(ret))

params

path:

  • 类型:字符串
  • 描述:日志输出路径,要求本地路径(fs://)

level:

  • 类型:字符串
  • 描述:设置 log 级别
  • 取值范围:
    • error:错误信息输出
    • warnning:警告信息输出
    • debug:调试模式

示例代码

var aliyunNls = api.require('aliyunNls');
aliyunNls.setLog({
    path: 'fs://aliyunNlsLog',
    level: 'debug'
});

可用性

iOS 系统

可提供的 1.0.0 及更高版本

startSentenceRecognize

开始一句话识别

startSentenceRecognize({params})

params

token:

appkey:

  • 类型:字符串
  • 描述:请使用阿里云语音服务管控台 生成您的appkey

serviceUrl:

  • 类型:字符串
  • 描述:(可选项)服务器地址

intermediate:

  • 类型:布尔
  • 描述:(可选项)是否在中间识别结果的输出
  • 默认:false

punctuation:

  • 类型:布尔
  • 描述:(可选项)是否在后处理中添加标点
  • 默认:false

ITN:

  • 类型:布尔
  • 描述:(可选项)是否在后处理中执行ITN(InverseTextNormalization)
  • 默认:false

voiceDetection:

  • 类型:布尔
  • 描述:(可选项)是否启动云端静音检测(vad)
  • 默认:false

maxStartSilence:

  • 类型:数字
  • 描述:(可选项)前置静音检测时间,单位毫秒
  • 默认:3000

maxEndSilence:

  • 类型:数字
  • 描述:(可选项)后置静音检测时间,单位毫秒
  • 默认:3000

customizationId:

  • 类型:字符串
  • 描述:(可选项)定制模型id

vocabularyId:

  • 类型:字符串
  • 描述:(可选项)定制泛热词id

params:

  • 类型:JSON 对象
  • 描述:(可选项)用户自定义字段值

示例代码

var aliyunNls = api.require('aliyunNls');
aliyunNls.startSentenceRecognize({
    token: '*****',
    appkey:''
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

stopSentenceRecognize

停止一句话识别

stopSentenceRecognize( )

示例代码:

var aliyunNls = api.require('aliyunNls'); 
aliyunNls.stopSentenceRecognize();

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

sentenceRecorderIsStarted

判断一句话识别的录音是否开始

sentenceRecorderIsStarted(callback(ret));

callback(ret)

ret:

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

示例代码

var aliyunNls = api.require('aliyunNls');
aliyunNls.sentenceRecorderIsStarted(function(ret){
   if (ret.isStarted) {
      api.alert({msg:'正在一句话识别的录音...'});
   }
});

可用性

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

sentenceRecorderVoiceVolume

获取一句话识别时录音的音量大小 (暂仅支持ios)

sentenceRecorderVoiceVolume(callback(ret));

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    volume:   //数字类型;音量大小
}

示例代码

var aliyunNls = api.require('aliyunNls');
aliyunNls.sentenceRecorderVoiceVolume(function(ret){
   if (ret) {
      api.alert({msg:JSON.stringify(ret)});
   }
});

可用性

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

addSentenceEventListener

一句话识别的相关事件监听

addSentenceEventListener(callback(ret,err));

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    eventType:   //字符串类型;交互事件类型;取值范围:
                 //recordStart:录音开始事件
                 //recordStop:录音停止事件 (仅支持ios)
                 //recordVolume:录音音量大小实时返回事件 (仅支持ios)
                 //recordFail:录音错误事件
                 //taskFail:识别发生错误事件
                 //channelClosed:与服务端连接关闭的事件
                 //recognizedCompleted:语音识别结束事件
                 //recognizedResultChanged:语音识别中间结果回调事件
     volume:     //数字类型;录音音量大小,仅当 eventType 为 recordVolume 时有值 (该参数仅支持ios)
     request: {      //JSON对象;语音识别的返回信息,仅当 eventType 为后四种时有值 (该参数仅支持ios)
        statusCode:, //字符串类型;状态码
        msg:'',      //字符串类型;结果信息
        event:       //数字类型;回调方法
     },
     result:''       //字符串类型;识别结果,仅当 eventType 为 recognizedCompleted、recognizedResultChanged 时有值 
}

err:

  • 类型:JSON对象
  • 描述:错误信息,仅当 eventType 为 recordVolume 时有值
  • 内部字段:
{
     msg:,     //字符串类型;错误信息
     code:     //数字类型;错误码
}

示例代码

var aliyunNls = api.require('aliyunNls');
aliyunNls.addSentenceEventListener(function(ret,err){
    if (ret.eventType == 'recordVolume') {
       console.log(JSON.stringify(ret));
    } else if (ret.eventType == 'recordStart') {
       console.log('录音开始');
    } else if (ret.eventType == 'recordStop') {
       console.log('录音停止');
    } else if (ret.eventType == 'recordFail') {
       api.alert({msg:'录音错误'});
    } else if (ret.eventType == 'taskFail') {
       console.log('语音识别发生错误');
    } else if (ret.eventType == 'channelClosed') {
       console.log('与服务端连接关闭');
    } else if (ret.eventType == 'recognizedCompleted') {
       api.alert({msg:'语音识别结束'});
    } else {
       console.log(JSON.stringify(ret));
    }
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

removeSentenceEventListener

移除一句话识别的相关事件的监听

removeSentenceEventListener();

示例代码

var aliyunNls = api.require('aliyunNls');
aliyunNls.removeSentenceEventListener();

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

startTranscriberRecognize

开始实时语音识别

startTranscriberRecognize({params})

params

token:

appkey:

  • 类型:字符串
  • 描述:请使用阿里云语音服务管控台 生成您的appkey

serviceUrl:

  • 类型:字符串
  • 描述:(可选项)设置语音识别的服务地址,请使用默认配置,可忽略

intermediate:

  • 类型:布尔
  • 描述:(可选项)是否在中间识别结果的输出
  • 默认:false

punctuation:

  • 类型:布尔
  • 描述:(可选项)是否在后处理中添加标点
  • 默认:false

ITN:

  • 类型:布尔
  • 描述:(可选项)是否在后处理中执行ITN(InverseTextNormalization)
  • 默认:false

maxSentenceSilence:

  • 类型:数字
  • 描述:(可选项)设置一句话的最大结束时间。也可以认为是即两句话之间的时间间隔。
  • 默认:0

customizationId:

  • 类型:字符串
  • 描述:(可选项)定制模型id

vocabularyId:

  • 类型:字符串
  • 描述:(可选项)定制泛热词id

params:

  • 类型:JSON 对象
  • 描述:(可选项)用户自定义字段值

示例代码

var aliyunNls = api.require('aliyunNls');
aliyunNls.startTranscriberRecognize({
    token: '*****',
    appkey:''
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

stopTranscriberRecognize

停止实时语音识别

stopTranscriberRecognize()

示例代码:

var aliyunNls = api.require('aliyunNls'); 
aliyunNls.stopTranscriberRecognize();

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

transcriberRecorderIsStarted

判断实时语音识别的录音是否开始

transcriberRecorderIsStarted(callback(ret));

callback(ret)

ret:

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

示例代码

var aliyunNls = api.require('aliyunNls');
aliyunNls.transcriberRecorderIsStarted(function(ret){
   if (ret.isStarted) {
      api.alert({msg:'正在实时语音识别的录音...'});
   }
});

可用性

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

transcriberRecorderVoiceVolume

获取实时语音识别时录音的音量大小 (暂仅支持ios)

transcriberRecorderVoiceVolume(callback(ret));

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    volume:   //数字类型;音量大小
}

示例代码

var aliyunNls = api.require('aliyunNls');
aliyunNls.transcriberRecorderVoiceVolume(function(ret){
   if (ret) {
      api.alert({msg:JSON.stringify(ret)});
   }
});

可用性

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

addTranscriberEventListener

实时语音识别的相关事件监听

addTranscriberEventListener(callback(ret,err));

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    eventType:   //字符串类型;交互事件类型;取值范围:
                 //recordStart:录音开始事件
                 //recordStop:录音停止事件
                 //recordVolume:录音音量大小实时返回事件
                 //recordFail:录音错误事件
                 //taskFail:识别发生错误事件
                 //channelClosed:与服务端连接关闭的事件
                 //transcriptionStarted:语音识别开始事件
                 //sentenceBegin:语音识别中一句话的开始事件
                 //sentenceEnd:语音识别中一句话的结束事件
                 //transcriptionCompleted:语音识别结束事件
                 //transcriptionResultChanged:语音识别中间结果回调事件
     volume:     //数字类型;录音音量大小,仅当 eventType 为 recordVolume 时有值
     request: {      //JSON对象;语音识别的返回信息,仅当 eventType 为后四种时有值(该参数仅支持ios)
        statusCode:, //字符串类型;状态码
        msg:'',      //字符串类型;结果信息
        event:       //数字类型;回调方法
     },
     result:''       //字符串类型;识别结果,仅当 eventType 为 sentenceBegin、sentenceEnd、transcriptionResultChanged 时有值 
}

err:

  • 类型:JSON对象
  • 描述:错误信息,仅当 eventType 为 recordVolume 时有值
  • 内部字段:
{
     msg:,     //字符串类型;错误信息
     code:     //数字类型;错误码
}

示例代码

var aliyunNls = api.require('aliyunNls');
aliyunNls.addTranscriberEventListener(function(ret,err){
     if (ret.eventType == 'recordVolume') {
       console.log(JSON.stringify(ret));
    } else if (ret.eventType == 'recordStart') {
       console.log('录音开始');
    } else if (ret.eventType == 'recordStop') {
       console.log('录音停止');
    } else if (ret.eventType == 'recordFail') {
       api.alert({msg:'录音错误'});
    } else if (ret.eventType == 'taskFail') {
       console.log('语音识别发生错误');
    } else if (ret.eventType == 'channelClosed') {
       console.log('与服务端连接关闭');
    } else if (ret.eventType == 'transcriptionCompleted') {
       api.alert({msg:'语音识别结束'});
    } else {
       console.log(JSON.stringify(ret));
    }
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

removeTranscriberEventListener

移除实时语音识别的相关事件的监听

removeTranscriberEventListener();

示例代码

var aliyunNls = api.require('aliyunNls');
aliyunNls.removeTranscriberEventListener();

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

startRead

开始语音朗读

startRead({params})

params

token:

appkey:

  • 类型:字符串
  • 描述:请使用阿里云语音服务管控台 生成您的appkey

text:

  • 类型:字符串
  • 描述:朗读的文本

format:

  • 类型:字符串
  • 描述:(可选项)设置语音格式
  • 默认:pcm
  • 取值范围:
    • pcm
    • wav
    • mp3

serviceUrl:

  • 类型:字符串
  • 描述:(可选项)设置语音识别的服务地址,请使用默认配置,可忽略

voice:

  • 类型:字符串
  • 描述:(可选项)选择合成语音发音人
  • 默认:xiaoyun
  • 取值范围:
    • xiaoyun
    • xiaogang

volume:

  • 类型:数字
  • 描述:(可选项)合成音量大小,范围是0~100
  • 默认:50

speechRate:

  • 类型:数字
  • 描述:(可选项)合成音频的语速,范围是-500~500
  • 默认:0

sampleRate:

  • 类型:数字
  • 描述:(可选项)合成音频的采样率
  • 默认:16000

pitchRate:

  • 类型:数字
  • 描述:(可选项)语调,范围是-500~500
  • 默认:0

method:

  • 类型:数字
  • 描述:(可选项)选择使用合成参数类型
  • 默认:0
  • 取值范围:
    • 0:统计参数合成 基于统计参数的语音合成,优点是能适应的韵律特征的范围较宽,合成器比特率低,资源较小,性能高,音质适中
    • 1:波形拼接合成 基于高质量音库提取学习合成,音质较好,更加贴近真实发音,但没有参数合成稳定

params:

  • 类型:JSON 对象
  • 描述:(可选项)用户自定义字段值

示例代码

var aliyunNls = api.require('aliyunNls');
aliyunNls.startRead({
    token: '*****',
    appkey:'',
    text:'你好,APICloud'
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

stopRead

停止语音朗读

stopRead( )

示例代码:

var aliyunNls = api.require('aliyunNls'); 
aliyunNls.stopRead();

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

addReadEventListener

语音朗读的相关事件监听

addReadEventListener(callback(ret,err));

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    eventType:   //字符串类型;交互事件类型;取值范围: 
                 //taskFail:识别发生错误事件
                 //channelClosed:与服务端连接关闭的事件
                 //readStarted:语音朗读开始事件
                 //readCompleted:语音朗读结束事件 
     volume:     //数字类型;录音音量大小,仅当 eventType 为 recordVolume 时有值 (该参数仅支持ios)
     request: {      //JSON对象;语音识别的返回信息,仅当 eventType 为后四种时有值 (该参数仅支持ios)
        statusCode:, //字符串类型;状态码
        msg:'',      //字符串类型;结果信息
        event:       //数字类型;回调方法
     },
     result:''       //字符串类型;识别结果,仅当 eventType 为 readStarted、readCompleted 时有值 
}

示例代码

var aliyunNls = api.require('aliyunNls');
aliyunNls.addReadEventListener(function(ret,err){
     if (ret.eventType == 'readStarted') {
       console.log(JSON.stringify(ret));
    } else if (ret.eventType == 'taskFail') {
       console.log('语音识别发生错误');
    } else if (ret.eventType == 'channelClosed') {
       console.log('与服务端连接关闭');
    } else {
       console.log(JSON.stringify(ret));
    }
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

removeReadEventListener

移除语音朗读的相关事件的监听

removeReadEventListener();

示例代码

var aliyunNls = api.require('aliyunNls');
aliyunNls.removeReadEventListener();

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本