wxVoicePlus

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

语音识别

语音合成

概述

wxVoicePlus 封装了微信语音识别SDK。模块接口分为两部分:1.语音识别,2.语音合成。wxVoicePlus是wxVoice的升级版,封装了微信语音识别的最新SDK,不再支持带有UI的语音识别,支持iPhone X。

使用本模块需先去 微信开放平台 申请开发者账号以及创建APP 获取相应参数。

开发准备工作

首先到“管理中心”创建移动应用,点击“创建移动应用”,填写相关资料,然后将该应用提交审核,只有审核通过的应用才能进行开发。 注册完毕,微信开放平台会在 7 个工作日内完成审核工作。 审核通过之后,开放平台将分配给该移动应用全局唯一的AppID。

使用本模块前需要了解的知识

语音识别有两种方式

  • 连续性识别:调用startContinusRecognizer接口开始识别,只有调用
  • 接口才能停止本次识别,否则一直处于等待语音输入待识别状态。
  • 非连续性识别:调用startSpeechRecognizer接口开始识别,超过一定时间(可通过speechRecognizerConfiguration接口silTime参数配置)后自动停止等待输入语音识别状态,自动进入下个语音识别流程(将录制的语音发送服务器识别后返回结果),自动停止本次识别。

注意!由于原生SDK限制,连续性识别时其识别结果分段依次返回,非连续性识别时其识别结果会一次全部返回

speechRecognizerConfiguration

配置语音识别时的参数

speechRecognizerConfiguration({params})

params

appId:

  • 类型:字符串
  • 描述:微信开放平台分配给移动应用的AppID。

resultType:

  • 类型:数值
  • 描述:(可选项)设置识别类型,0无标点,1有标点
  • 默认:0

silTime:

  • 类型:数值
  • 描述:(可选项)静音检查时间。开始录音,并检测到有语音产生后,超过此时间没有声音,则自动完成本次录音,单位:秒(s)。本参数仅对非连续性识别(通过startSpeechRecognizer接口开启的语音识别)有效。
  • 默认:1.5

示例代码

var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.speechRecognizerConfiguration({
   appId : 'wxd9dbb2f20a952a5d'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startSpeechRecognizer

开始非连续性语音识别。当长时间静默时(默认设置为:开始5秒仍没有说话,或者说话后1.5秒)录音会停止。

startSpeechRecognizer(callback(ret))

callback(ret)

ret:

{                        
    eventType:'complete',    //字符串类型;交互事件类型,取值范围如下:
                             // complete:本次识别结束(完成)
                               // finish:停止(完成)语音采集(android不支持)
                               // error:出现错误,错误码请参见官方网站
                               // cancel:取消识别时回调

    result: '',              // 字符串类型;仅当eventType为complete时返回,语音识别结果的文本内容

    errorCode: -501,         // 数字类型;仅当eventType为error时返回
    recognizeFile: {         // JSON对象,语音识别时采集的音频文件(pcm格式)保存信息。仅当eventType complete时返回。为由于SDK限制,本参数仅支持 iOS端。
       status:true,         // 布尔类型;是否获取识别音频文件成功
       file:''              // 字符串类型;文件保存的路径
       sampleRate:8000      // 数字类型;采样率
  }
}

示例代码

var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.startSpeechRecognizer(function(ret) {
    if (ret) {
        alert(JSON.stringify(ret));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

finishSpeechRecognizer

结束非连续性识别的语音采集。

调用本接口后等待识别结果,不再继续采集声音,只等待服务器返回当前已录音的识别结果。

finishSpeechRecognizer()

示例代码

var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.finishSpeechRecognizer();

可用性

iOS系统

可提供的1.0.0及更高版本

cancelSpeechRecognizer

取消/停止非连续性识别。调用本接口后会完全中断本次识别。

注意:在iOS端 如果调用了finishSpeechRecognizer接口,则必须调用本接口,否则会出现未知问题。

cancelSpeechRecognizer()

示例代码

var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.cancelSpeechRecognizer();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startContinusRecognizer

开始连续性语音识别。

模块会持续录音并识别。当长时间静默时,识别一次。再次说话会继续识别,直到调用 finishContinusRecognizer 接口。

startContinusRecognizer(callback(ret))

callback(ret)

ret:

{                        
    eventType:'complete',   //字符串类型;交互事件类型,取值范围如下:
                            //complete:最后一次识别成功的回调事件
                              //singleRecognition:单次(片段)语音识别结果回调事件
                              //finish:停止语音采集事件(android不支持)
                              //error:出现错误事件
    result:'',              //字符串类型;仅当 eventType 为 complete 或 singleRecognition 时返回,语音识别结果的文本内容

    errorCode: -501,        //数字类型;eventType 为 error 时返回,错误码请参见官方网站
    recognizeFile: {        // JSON对象,语音识别时采集的音频文件(pcm格式)保存信息。仅当eventType complete时返回。为由于SDK限制,本参数仅支持 iOS端。
       status:true,        //布尔类型;保存的状态
       file:''             //字符串类型;文件保存的路径
       sampleRate:8000     //数字类型;采样率
  }
}

示例代码

var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.startContinusRecognizer(function(ret) {
    if (ret) {
        alert(JSON.stringify(ret));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

finishContinusRecognizer

停止连续性语音识别的语音采集。

finishContinusRecognizer()

示例代码

var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.finishContinusRecognizer();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addRecognizeVolumListener

添加语音识别音量监听

addRecognizeVolumListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    volumn:10       //数值类型;音量大小,界限为0-30,通常音量范围在0-15之间
}

示例代码

var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.addRecognizeVolumListener(function(ret) {
  if (ret) {
       alert(JSON.stringify(ret));
  }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

removeRecognizeVolumListener

移除语音识别音量监听

removeRecognizeVolumListener()

示例代码

var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.removeRecognizeVolumListener();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

speechSynthesizerConfiguration

语音合成配置。

speechSynthesizerConfiguration({params})

params

appId:

  • 类型:字符串
  • 描述:微信开放平台分配给移动应用的AppID

volumn:

  • 类型:数值
  • 描述:(可选项)音量范围0-2
  • 默认:1.0

示例代码

var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.speechSynthesizerConfiguration({
    appId : 'wxd9dbb2f20a952a5d'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startSpeechSynthesizer

开始语音合成。

startSpeechSynthesizer({params},callback(ret))

params

text:

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{                        
     eventType:'finishPlaying',   //字符串类型;语音合成结果类型 取值范围:
                                  //finishPlaying:播放完成的回调
                                  //playError:播放错误 (android不支持)的回调
                                  //error:合成出现错误的回调
                                  //cancel:调用cancelSpeechSynthesizer后的回调    
     errorCode: -501,             //数字类型;仅当 eventType 为 error 时返回,错误码请参见官方网站
     recognizeFile:              //字符串类型;合成后的音频文件(mp3格式)保存的路径信息
}

示例代码

var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.startSpeechSynthesizer(function(ret) {
    if (ret) {
        alert(JSON.stringify(ret));
    }
 });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

cancelSpeechSynthesizer

取消语音合成,若已经合成完成在播放阶段,则也会停止播放合成后的语音

cancelSpeechSynthesizer()

示例代码

var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.cancelSpeechSynthesizer();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本