TTS语音合成

功能说明:iFLYHOME OS 提供将文本合成语音的能力。 参考:产品白皮书
使用说明:集成方将合成的文本以及合成的参数提供即可,合成过程中会回调合成的状态信息。

在使用时也支持一些自定义的配置(包括发言人等),具体见接口或者协议说明。

定制合成参数说明:采用JSON 字符串方式

KEY VALUE 类型 ApiLevel 说明
speed int 0 语速,1-100
pitch int 0 语调,1-100
volume int 0 音量,1-100
vcn String 1 发音人,如xiaoyan
ent String 1 引擎,默认aisound,如果需要较好的效果,可设置成x 或者 x2
appId String 1 指定AIUI appId(非开放平台应用appId)

注意 指定合成参数 可能存在不支持的情况。不定制 则使用 iFLYHOME OS 默认合成参数

安卓原生

通过如下方法获取能力接口

XiriOPManager.getInstance().getTtsMgr();

主要此处返回值可能为Null, 原因: SDK未初始化

api如下:

public interface ITts {
    /**
     * 播报接口
     * @param text 合成文本
     * @param params 合成参数,传null时表示用当前发言人,若传入定制发言人请提前联系开通相关权限
     * @param callback 回调
     */
    void doSpeak(String text, String params, ITtsCallback callback);

    /**
     * 取消播报
     */
    void cancelSpeak();
}

示例:

ITts tts = XiriOPManager.getInstance().getTtsMgr();
if (tts == null) {
    return;
}
tts.doSpeak("需要播报的文本内容", null, new ITtsCallback() {
    @Override
    public void onSpeakEnd() {
        showResult("播报完成");
    }

    @Override
    public void onSpeakCancel() {
        showResult("播报被取消");
    }

    @Override
    public void onSpeakBegin() {
        showResult("播报开始");
    }

    @Override
    public void onSpeakPaused() {
        showResult("播报暂停");
    }

    @Override
    public void onSpeakResumed() {
        showResult("播报恢复");
    }

    @Override
    public void onSpeakProgress(final int i) {
        showResult("播报进度:" + i);
    }
});

应用内嵌Web

  1. 注册当前TTS语音合成状态

     native_call_H5('h5_send_tts_status',function(data,responseCallback){
         var ttsStatus  = data.ttsStatus;
         var progress = data.progress;
     })
    
  2. 执行语音合成

     H5_call_native('native_start_tts'{"appid":"xxx","token":"xxxxx","text": "需要合成文本"}
     ,function(response){})
    

    ```

  3. 取消当前正在进行的我tts

      H5_call_native('native_cancel_tts',"appid":"xxx","token":"xxxxx",}
      ,function(response){})
    

应用外Web

  1. 注册回调数据监听,创建listener对象

     function callback(data) {
         //对应数据格式
         var data = JSON.stringify(data);
     }
     var listener = new Xiri.Listener(callback);
    
  2. 开启轮询数据获取

     listener.getCmd("open_xiri");
    
  3. 申请能力

     listener.openFeatureFunc("{\"name\":\"native_start_tts\",\"params\":\"{\\\"appid\\\": \\\"xxx\\\",\\\"token\\\": \\\"11111\\\",\\\"text\\\": \\\"需要合成文本\\\"}\"}");
    
  4. 收到回调数据结果

    回调数据data为Json格式

     var jsData = data.data;
     var name = jsData.name;
     var params = JSON.parse(jsData.params);
     //TTS状态
     var ttsStatus = params. ttsStatus;
     //TTS进度
     var progress = params.progress;
    
  5. 取消正在合成的tts

     listener.openFeatureFunc("{\"name\":\"native_cancel_tts\",\"params\":\"{\\\"appid\\\": \\\"xxx\\\",\\\"token\\\": \\\"11111\\\"}\"}");
    

results matching ""

    No results matching ""