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
注册当前TTS语音合成状态
native_call_H5('h5_send_tts_status',function(data,responseCallback){ var ttsStatus = data.ttsStatus; var progress = data.progress; })
执行语音合成
H5_call_native('native_start_tts'{"appid":"xxx","token":"xxxxx","text": "需要合成文本"} ,function(response){})
```
取消当前正在进行的我tts
H5_call_native('native_cancel_tts',"appid":"xxx","token":"xxxxx",} ,function(response){})
应用外Web
注册回调数据监听,创建listener对象
function callback(data) { //对应数据格式 var data = JSON.stringify(data); } var listener = new Xiri.Listener(callback);
开启轮询数据获取
listener.getCmd("open_xiri");
申请能力
listener.openFeatureFunc("{\"name\":\"native_start_tts\",\"params\":\"{\\\"appid\\\": \\\"xxx\\\",\\\"token\\\": \\\"11111\\\",\\\"text\\\": \\\"需要合成文本\\\"}\"}");
收到回调数据结果
回调数据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;
取消正在合成的tts
listener.openFeatureFunc("{\"name\":\"native_cancel_tts\",\"params\":\"{\\\"appid\\\": \\\"xxx\\\",\\\"token\\\": \\\"11111\\\"}\"}");