Skip to content

VoiceToonBot SDK(卡通形象) 快捷使用说明

SDK 资源

https://robot.chaoxing.com/sdk/VoiceToonBot.js — 正式环境 SDK 文件

https://robot1.chaoxing.com/sdk/VoiceToonBot.js — 测试环境 SDK 文件

https://robot-dev.chaoxing.com/sdk/VoiceToonBot.js — 开发环境 SDK 文件

初始化属性

请保证 origin 与 SDK js 资源引用地址始终一致

属性名类型必填默认值说明
appIdstring智能体开放平台应用 ID 鉴权说明
appAuthTokenstringSDK 接入 token 鉴权说明
originstring-服务地址 查看选项
elementstring/HTMLElement-容器元素,可以是选择器或元素对象
presetstring-形象预置名称
animationTypestringjson动画数据类型 可选值
tonestringxiaoyan语音音色可选值
asrnumber0是否启用 ASR 语音识别 可选值
speaknumber0是否启用语音合成 可选值
talkRulesobject-朗读读音纠错规则 查看详情
listenWeakupnumber1唤醒监听开关,为0时允许用户手动启动,为1时自动启动 可选值
wakewordnumber-唤醒词,仅支持中文 (启动 ASR 后生效)
wakewordAuxsnumber-辅助唤醒词,仅支持中文,多个用逗号分隔 (启动 ASR 后生效)
localestringzh-CN多语言设置可选值
rendererstringsvg指定渲染器可选值
rendererSettingsobject-渲染设置

属性值说明

origin

服务提供地址,请根据不同的环境选择不同的地址。

  • 开发环境:https://robot-dev.chaoxing.com

  • 测试环境:https://robot1.chaoxing.com

  • 生产环境:https://robot.chaoxing.com

animationType

动画类型说明
jsonJSON 动画
apngapng 动画
imageimage 动画

locale

语言值说明
zh-CN中文
en-US英文

tone

音色值说明
x4_guange男声
x4_lingxiaoyao_em女声
x4_ningning男童
tencent:601012女童

asr

说明
0关闭
1开启

speak

说明
0关闭
1开启

talkRules

提示

若您需要使用智能体页面的读音规则请对接 获取机器人文字发音配置接口

属性名类型是否必填示例格式说明
phoneticRulesArray[{ "scene": "丽水市", "pronunciation": "li2 shui3 shi4" }]拼音标注规则
regexRulesArray[{"scene": "文档编码:(\d+)\/ks", flag:"g", "pronunciation": "$1-ks"}]正则替换规则
textRulesArray[{ "scene": "丽水市", "pronunciation": "丽水", flag: "g" }]文本替换规则

listenWeakup

提示

  • 0时允许用户手动启动,为1时自动启动
  • 启用 ASR 后生效
  • 推荐为 0,用户手动启动更符合使用习惯
说明
0关闭(手动开启)
1开启(自动开启)

renderer

提示

默认svg渲染器存在问题时可切换canvas渲染器尝试修复

渲染器说明
svgSVG 渲染器
canvasCanvas 渲染器

rendererSettings 配置

属性名类型是否必填默认值说明
preserveAspectRatiostringxMinYMin slice缩放控制,可选值

静态方法

方法签名说明
init(options: Object) => Promise<VoiceToonBotInstance>初始化形象
getClass(animationType: string) => VoiceToonBotClass(🚀 高级用法)获取指定动画数据类型的专用初始化类

实例方法

方法签名说明
talk(text:string, options?:{ intercept?:boolean = true }) => void触发语音朗读, intercept = false 时允许连续多次调用而不打断前序朗读
on(event: string, callback: function) => void监听事件
once(event: string, callback: function) => void监听事件(仅监听一次,触发后自动取消监听)
off(event: string, callback?: function) => void关闭事件监听
setLocale(locale:string) => void切换多语言设置
setVolume(volume:number, duration?:number) => void设置音量,第一个参数为音量(0-1),第二个参数为淡入淡出过渡时间(ms)
setSpeed(volume:number) => void设置语音倍速,值为 0.5-2.5,设置后下次调用 talk 生效
playThinkingAnimation() => void随机播放一个思考动画(需要动画拥有thinkFrames
stopAnimation() => void停止动画播放
playAnimationBySegment(animation: String | Array, options: { loop?: boolean }) => void播放指定动画
pause() => void暂停语音
resume() => void恢复语音(不能恢复被 intercept中断的语音)
intercept() => void中断语音
destroy() => void销毁形象

事件

事件名称回调签名说明
analysis(isMute: boolean, data: Float32Array[]) => void音频时点分析事件,第一个参数为当前是否静音,第二个参数为的音频数据采样
speakControl(status: boolean) => void语音控制开关状态变更
talkStart(e: Event) => void语音播放时触发
talkEnd(e: Event) => void语音播放结束时触发
loadProgress(percent: number) => void形象加载进度变化
loadComplete(percent: number) => void形象加载完成
wakeup() => void语音唤醒成功
asrStart(status: boolean) => void语音识别开启
asrStop(status: boolean) => void语音识别关闭
animationStart(animationName: String | Array) => void开始播放动画
animationEnd(animationName: String | Array) => void停止播放动画(被打断的动画不会触发该事件)
asrControl(status: boolean) => void点击形象上的 ASR 控制开关时返回 ASR 启用状态
asrResult(text: string) => voidASR 语音识别成功
asrError(error: Error) => voidASR 语音识别触发异常
localeChange(locale: string) => void多语言切换时触发,提供当前使用的新语言
error(error: string) => void运行时异常捕获

代码示例

javascript
// ESM 模式引入 SDK;浏览器可直接使用 script 标签引入 IIFE 格式的 SDK
import VoiceToonBot from "path-to-sdk";

const options = {
  appId: "your_app_id",
  appAuthToken: "your_app_auth_token",
  origin: "", // TTS服务认证源
  preset: "", // 预置配置名称,仅用于预置建议模式
  element: "#botContainer", // 容器元素,可以是选择器或元素对象
};

const bot = await VoiceToonBot.init(options).catch((error) => {
  // 初始化异常捕获
});

if (!bot) return;

bot.on("error", (error) => {
  // 运行时异常捕获
});

bot.on("loadProgress", (percent) => {
  // 加载进度
});
bot.on("loadComplete", () => {
  // 加载成功做点什么
});

bot.on("talkStart", () => {
  // 讲话开始做点什么
});

bot.on("talkEnd", () => {
  // 讲话结束做点什么
});

// 触发语音
bot.talk("你好,让我说点什么吧");
// 中断语音
bot.intercept();
// 销毁实例,释放资源
bot.destroy();

最近更新: