aliyunNls

setLog

stopSentenceRecognize sentenceRecorderVoiceVolume removeSentenceEventListener

实时语音识别

stopTranscriberRecognize transcriberRecorderVoiceVolume removeTranscriberEventListener

语音合成

stopRead removeReadEventListener

概述

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

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

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

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

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

模块接口

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

setLog({params},callback(ret))

params

path:

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

level:

  • 类型:字符串
  • 描述:设置 log 级别
  • 取值范围:
    • error:错误信息输出
    • warnning:警告信息输出
    • 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 对象
  • 描述:(可选项)用户自定义字段值

示例代码

  1. aliyunNls.startSentenceRecognize({
  2. token: '*****',
  3. appkey:''
  4. });

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

stopSentenceRecognize

停止一句话识别

stopSentenceRecognize( )

示例代码:

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

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

sentenceRecorderIsStarted

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

sentenceRecorderIsStarted(callback(ret));

callback(ret)

ret:

  • 类型:JSON对象
  1. {
  2. isStarted:true //布尔类型;是否启动
  3. }

示例代码

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

可用性

sentenceRecorderVoiceVolume

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

sentenceRecorderVoiceVolume(callback(ret));

callback(ret)

ret:

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

示例代码

  1. var aliyunNls = api.require('aliyunNls');
  2. aliyunNls.sentenceRecorderVoiceVolume(function(ret){
  3. if (ret) {
  4. api.alert({msg:JSON.stringify(ret)});
  5. }
  6. });

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

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

addSentenceEventListener(callback(ret,err));

callback(ret)

ret:

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

err:

  • 类型:JSON对象
  • 描述:错误信息,仅当 eventType 为 recordVolume 时有值
  • 内部字段:

示例代码

  1. var aliyunNls = api.require('aliyunNls');
  2. aliyunNls.addSentenceEventListener(function(ret,err){
  3. if (ret.eventType == 'recordVolume') {
  4. console.log(JSON.stringify(ret));
  5. } else if (ret.eventType == 'recordStart') {
  6. console.log('录音开始');
  7. } else if (ret.eventType == 'recordStop') {
  8. console.log('录音停止');
  9. api.alert({msg:'录音错误'});
  10. } else if (ret.eventType == 'taskFail') {
  11. console.log('语音识别发生错误');
  12. } else if (ret.eventType == 'channelClosed') {
  13. console.log('与服务端连接关闭');
  14. } else if (ret.eventType == 'recognizedCompleted') {
  15. api.alert({msg:'语音识别结束'});
  16. } else {
  17. console.log(JSON.stringify(ret));
  18. }
  19. });

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

removeSentenceEventListener

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

removeSentenceEventListener();

示例代码

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

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

startTranscriberRecognize

开始实时语音识别

startTranscriberRecognize({params})

params

token:

  • 类型:字符串
  • 描述:请使用 动态生成token

appkey:

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

serviceUrl:

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

intermediate:

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

punctuation:

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

ITN:

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

maxSentenceSilence:

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

customizationId:

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

vocabularyId:

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

params:

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

示例代码

  1. var aliyunNls = api.require('aliyunNls');
  2. aliyunNls.startTranscriberRecognize({
  3. token: '*****',
  4. appkey:''
  5. });

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

stopTranscriberRecognize

停止实时语音识别

stopTranscriberRecognize()

示例代码:

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

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

transcriberRecorderIsStarted

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

transcriberRecorderIsStarted(callback(ret));

callback(ret)

ret:

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

示例代码

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

可用性

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

transcriberRecorderVoiceVolume

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

transcriberRecorderVoiceVolume(callback(ret));

callback(ret)

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

可用性

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

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

addTranscriberEventListener(callback(ret,err));

callback(ret)

ret:

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

err:

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

示例代码

  1. var aliyunNls = api.require('aliyunNls');
  2. aliyunNls.addTranscriberEventListener(function(ret,err){
  3. if (ret.eventType == 'recordVolume') {
  4. console.log(JSON.stringify(ret));
  5. } else if (ret.eventType == 'recordStart') {
  6. console.log('录音开始');
  7. } else if (ret.eventType == 'recordStop') {
  8. console.log('录音停止');
  9. } else if (ret.eventType == 'recordFail') {
  10. api.alert({msg:'录音错误'});
  11. } else if (ret.eventType == 'taskFail') {
  12. console.log('语音识别发生错误');
  13. } else if (ret.eventType == 'channelClosed') {
  14. console.log('与服务端连接关闭');
  15. } else if (ret.eventType == 'transcriptionCompleted') {
  16. api.alert({msg:'语音识别结束'});
  17. } else {
  18. console.log(JSON.stringify(ret));
  19. }
  20. });

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

removeTranscriberEventListener

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

removeTranscriberEventListener();

示例代码

  1. var aliyunNls = api.require('aliyunNls');
  2. 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 对象
  • 描述:(可选项)用户自定义字段值

示例代码

  1. var aliyunNls = api.require('aliyunNls');
  2. aliyunNls.startRead({
  3. token: '*****',
  4. appkey:'',
  5. text:'你好,APICloud'
  6. });

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

stopRead

停止语音朗读

stopRead( )

示例代码:

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

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

addReadEventListener

语音朗读的相关事件监听

addReadEventListener(callback(ret,err));

callback(ret)

ret:

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

示例代码

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

removeReadEventListener

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

removeReadEventListener();

  1. aliyunNls.removeReadEventListener();

可用性

可提供的 1.0.0 及更高版本