IFlyVoice

离线语音合成

离线命令词识别

论坛示例

为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

本插件封装了讯飞SDK的离线语音合成和离线命令词识别功能。

注意:

  • 1.所有接口不可同时调用
  • 2.生成的音频文件为pcm格式,后缀不支持其它格式
  • 3.基础资源文件和发音人资源文件(.jet文件)必须是生成的SDK内部的文件,否则会返回11210(appid和离线资源不匹配)错误码
  • 4.错误码请参照讯飞语音云错误码表格

使用此插件之前必须先配置 config 文件,配置方法如下:

  • 名称:IFlyVoice
  • 参数:appId
  • 配置示例:
  <feature name="IFlyVoice">
    <param name="appId_iOS" value="123ab67" />
    <param name="appId_Android" value="123ab67" />
  </feature>

注意:

Android 需升级环境进行编译

initSpeechSynthesizer

初始化语音合成对象(Android使用语音合成必须先调用此接口)

initSpeechSynthesizer(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    state:true     //布尔类型;语音合成对象初始化成功
}

示例代码

var IFlyVoice = api.require('IFlyVoice');
        IFlyVoice.initSpeechSynthesizer(function(ret){
          api.alert({
            msg: JSON.stringify(ret)
        })
        });

可用性

Android系统

可提供的1.0.0及更高版本

startSpeaking

开始离线语音合成

startSynthetic(params,callback(ret,err))

params

text:

  • 类型:字符串类型
  • 描述:文本内容

commonPath_iOS:

  • 类型:字符串类型
  • 描述:iOS基础资源文件路径;支持fs、widget

pronouncePath_iOS:

  • 类型:字符串类型
  • 描述:iOS发音人资源文件路径;支持fs、widget _iOS

commonPath_Android:

  • 类型:字符串类型
  • 描述:Android基础资源文件路径;支持fs、widget

pronouncePath_Android:

  • 类型:字符串类型
  • 描述:Android发音人资源文件路径;支持fs、widget

pronounceName:

  • 类型:字符串类型
  • 描述:发音人资源文件名称(不带后缀文件类型)

path:

  • 类型:字符串
  • 描述:(可选项)合成语音文件保存路径,仅支持fs
  • 默认:'fs://voices'

name:

  • 类型:字符串
  • 描述:(可选项)合成音频文件名字;生成的音频文件为pcm格式,后缀不支持其他格式
  • 默认:'voice.pcm'

speed:

  • 类型:字符类型
  • 描述:(可选项)播放速度
  • 默认:50
  • 取值范围:1-100

volume:

  • 类型:字符类型
  • 描述:(可选项)音量
  • 默认:50
  • 取值范围:1-100

pitch:

  • 类型:字符类型
  • 描述:(可选项)音调
  • 默认:50
  • 取值范围:1-100

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true     //布尔类型;是否合成成功
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code:0,         //错误码
    Type:0,         //错误码类型(Android不支持)
    msg:''          //错误原因  (Android不支持)
}

示例代码

var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.startSynthetic({
   text:'你好柚子',
     commonPath_Android:'',
     pronouncePath_Android:'',
     commonPath_iOS:'',
     pronouncePath_iOS:'',
},function(ret,err){
     if (ret.status) {
        alert('合成成功');
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

pauseSpeaking

暂停语音播放,暂停播放之后,合成不会暂停,仍会继续

pauseSpeaking()

示例代码

var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.pauseSpeaking();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

resumeSpeaking

恢复播放

resumeSpeaking()

示例代码

var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.resumeSpeaking();

stopSpeaking

停止播放并停止合成

stopSpeaking()

示例代码

var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.stopSpeaking();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addSyntheticListener

语音合成相关监听

addSyntheticListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    reason:'',             //字符类型;合成相关事件回调,取值范围如下:
                           //onSpeakBegin:开始合成回调
                           //onSpeakResumed : 恢复播放回调(Android)
                           //onSpeakPaused:暂停播放回调
                           //onSpeakCompleted :播放完成回调(Android)
    bufferProgress:10,     //数字类型;缓冲进度;0-100
    speakProgress:10       //数字类型;播放进度回调;0-100
}

示例代码

var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.addSyntheticListener(function(ret){
    api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

initSpeechRecognizer

初始化命令词对象(Android使用命令词必须先调用此接口)

initSpeechRecognizer(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    state:true     //布尔类型;语音合成对象初始化成功
}

示例代码

var IFlyVoice = api.require('IFlyVoice');
        IFlyVoice.initSpeechRecognizer(function(ret){
          api.alert({
            msg: JSON.stringify(ret)
        })
        });

可用性

Android系统

可提供的1.0.0及更高版本

buildGrammar

语法上传

buildGrammar(params,callback(ret,err))

params

commonPath_Android:

  • 类型:字符串类型
  • 描述Android:基础资源文件路径;支持fs、widget

bnfPath_Android:

  • 类型:字符串类型
  • 描述:Android本地bnf语法文件;支持fs、widget

commonPath_iOS:

  • 类型:字符串类型
  • 描述:iOS基础资源文件路径;支持fs、widget

bnfPath_iOS:

  • 类型:字符串类型
  • 描述:iOS本地bnf语法文件;支持fs、widget

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true     //布尔类型;是否上传成功
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code:0,         //错误码
    Type:0,         //错误码类型(支持ios)
    msg:''          //错误原因
}

示例代码

var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.buildGrammar({
  commonPath_Android:'',
  bnfPath_Android:''
},function(ret,err){
     api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startListening

开始本地识别

startListening(callback(ret,err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true     //布尔类型;是否识别成功
    result:{}       //json对象;识别结果,可能多次回调
    isLast:true     //布尔类型;是否最后一个结果
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code:0,         //错误码
    Type:0,         //错误码类型(支持ios)
    msg:''          //错误原因
}

示例代码

var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.startListening(function(ret,err){
     api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stopListening

调用此函数会停止录音,并开始进行语音识别

stopListening()

示例代码

var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.stopListening();

cancel

取消本次会话

cancel()

示例代码

var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.cancel();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addGrammarListener

离线命令词识别相关监听

addGrammarListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    reason:'',             //字符类型;离线命令词识别相关监听事件回调,取值范围如下:
                           //onBeginOfSpeech:开始录音回调,当调用了`startListening`接口之后,如果没有发生错误则会回调此字段
                           //onEndOfSpeech:停止录音回调, 当调用了`stopListening`接口或者引擎内部自动检测到断点,如果没有发生错误则回调此字段
                           //onCancel:取消识别回调,当调用了`cancel`接口之后,会回调此函数
    volume:10             //数字类型;在录音过程中,回调音频的音量;范围从0-30
}

示例代码

var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.addGrammarListener(function(ret){
    api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

论坛示例

为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

是否仍需要帮助? 请保持联络!
最后更新于 2024/04/24