wxVoicePlus

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

语音识别

speechRecognizerConfiguration startSpeechRecognizer finishSpeechRecognizer cancelSpeechRecognizer startContinusRecognizer finishContinusRecognizer addRecognizeVolumListener removeRecognizeVolumListener

语音合成

speechSynthesizerConfiguration startSpeechSynthesizer cancelSpeechSynthesizer

概述

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startSpeechRecognizer

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

startSpeechRecognizer(callback(ret))

callback(ret)

ret:

  1. {
  2. eventType:'complete', //字符串类型;交互事件类型,取值范围如下:
  3. // complete:本次识别结束(完成)
  4. // finish:停止(完成)语音采集(android不支持)
  5. // error:出现错误,错误码请参见官方网站
  6. // cancel:取消识别时回调
  7. result: '', // 字符串类型;仅当eventType为complete时返回,语音识别结果的文本内容
  8. errorCode: -501, // 数字类型;仅当eventType为error时返回
  9. recognizeFile: { // JSON对象,语音识别时采集的音频文件(pcm格式)保存信息。仅当eventType complete时返回。为由于SDK限制,本参数仅支持 iOS端。
  10. status:true, // 布尔类型;是否获取识别音频文件成功
  11. file:'' // 字符串类型;文件保存的路径
  12. sampleRate:8000 // 数字类型;采样率
  13. }
  14. }

示例代码

  1. var wxVoicePlus = api.require('wxVoicePlus');
  2. wxVoicePlus.startSpeechRecognizer(function(ret) {
  3. if (ret) {
  4. alert(JSON.stringify(ret));
  5. }
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

finishSpeechRecognizer

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

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

finishSpeechRecognizer()

示例代码

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

可用性

iOS系统

可提供的1.0.0及更高版本

cancelSpeechRecognizer

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

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

cancelSpeechRecognizer()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startContinusRecognizer

开始连续性语音识别。

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

startContinusRecognizer(callback(ret))

callback(ret)

ret:

  1. {
  2. eventType:'complete', //字符串类型;交互事件类型,取值范围如下:
  3. //complete:最后一次识别成功的回调事件
  4. //singleRecognition:单次(片段)语音识别结果回调事件
  5. //finish:停止语音采集事件(android不支持)
  6. //error:出现错误事件
  7. result:'', //字符串类型;仅当 eventType 为 complete 或 singleRecognition 时返回,语音识别结果的文本内容
  8. errorCode: -501, //数字类型;eventType 为 error 时返回,错误码请参见官方网站
  9. recognizeFile: { // JSON对象,语音识别时采集的音频文件(pcm格式)保存信息。仅当eventType complete时返回。为由于SDK限制,本参数仅支持 iOS端。
  10. status:true, //布尔类型;保存的状态
  11. file:'' //字符串类型;文件保存的路径
  12. sampleRate:8000 //数字类型;采样率
  13. }
  14. }

示例代码

  1. var wxVoicePlus = api.require('wxVoicePlus');
  2. wxVoicePlus.startContinusRecognizer(function(ret) {
  3. if (ret) {
  4. alert(JSON.stringify(ret));
  5. }
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

finishContinusRecognizer

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

finishContinusRecognizer()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addRecognizeVolumListener

添加语音识别音量监听

addRecognizeVolumListener(callback(ret))

callback(ret)

ret:

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

示例代码

  1. var wxVoicePlus = api.require('wxVoicePlus');
  2. wxVoicePlus.addRecognizeVolumListener(function(ret) {
  3. if (ret) {
  4. alert(JSON.stringify(ret));
  5. }
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

removeRecognizeVolumListener

移除语音识别音量监听

removeRecognizeVolumListener()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

speechSynthesizerConfiguration

语音合成配置。

speechSynthesizerConfiguration({params})

params

appId:

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

volumn:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startSpeechSynthesizer

开始语音合成。

startSpeechSynthesizer({params},callback(ret))

params

text:

callback(ret)

ret:

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

示例代码

  1. var wxVoicePlus = api.require('wxVoicePlus');
  2. wxVoicePlus.startSpeechSynthesizer(function(ret) {
  3. if (ret) {
  4. alert(JSON.stringify(ret));
  5. }
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

cancelSpeechSynthesizer

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

cancelSpeechSynthesizer()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本