Gathering detailed insights and metrics for duix-guiji
Gathering detailed insights and metrics for duix-guiji
Gathering detailed insights and metrics for duix-guiji
Gathering detailed insights and metrics for duix-guiji
npm install duix-guiji
Typescript
Module System
Node Version
NPM Version
Cumulative downloads
Total Downloads
Last day
250%
7
Compared to previous day
Last week
147.6%
52
Compared to previous week
Last month
283.9%
215
Compared to previous month
Last year
-67.8%
2,015
Compared to previous year
1npm i duix-guiji -S
1 2import DUIX from 'duix-guiji' 3 4const duix = new DUIX() 5 6duix.on('intialSucccess', () => { 7 // 开始会话 8 duix.start({ 9 conversationId: '', 10 openAsr: true 11 }).then(res => { 12 console.info(res) 13 }) 14}) 15 16// 初始化 17duix.init({ 18 sign: 'xxxx', 19 containerLable: '.remote-container' 20}) 21
注意: 不要将duix实例放在Vue的data中,也不要放在react的state中(无需使其响应式)。
1duix.init({ 2 sign: '', 3 containerLable: '.remote-container' 4})
参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
containerLable | string | 是 | 数字人容器。数字人将渲染到这个Dom中。 |
sign | string | 是 | 鉴权字符串。如何获取sign? |
调用 start
方法将开始渲染数字人并进行交互。
注意: 此方法需要在
intialSucccess
事件触发后调用,intialSucccess
事件表示所有资源准备完成。如下:1duix.on('intialSucccess', () => { 2 duix.start({ 3 conversationId: '', 4 muted: true, 5 wipeGreen: false, 6 }).then(res => { 7 console.log('res', res) 8 }) 9})
参数
key | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
conversationId | number | 是 | 平台会话id | |
muted | boolean | 否 | false | 是否以静音的模式开启数字人视频。 重要提示: 由于自动播放政策限制,如果您的网页还没有与用户有任何点击交互,请把这个参数置为 true ,否则将导致数字人无法加载。如果您有这样的需求,建议您先用静音模式启动,在产品中设计一个交互,比如一个“开始”的按钮来调用duix.setVideoMuted(false) |
openAsr | boolean | 否 | false | 是否直接开启实时识别,此项传true,相当于在调start后立即调用 openAsr 方法 |
wipeGreen | boolean | 否 | false | 是否对视频做扣绿幕操作。在平台上创建会话时需上传一个纯绿色的背景图片 |
useActSection | boolean | 否 | false | 是否启动数字人动作区间。启用后数字人不说话时不会有动作(需要数字人模型支持动作区间) |
设置数字人视频是否静音, true是静音,false为非静音。
打断数字人说话
驱动数字人说话,支持文本驱动和音频文件驱动。
1duix.speak({content: '', audio: 'https://your.website.com/xxx/x.wav'})
参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
content | string | 是 | 数字人回答的文本 |
audio | string | 否 | 数字人回答音频地址,可以通过getAnswer 获取平台配置的答案 |
interrupt | boolean | 否 | 是否打断之前说的话 |
数字人回答问题
1duix.answer({question: 'xxx'})
参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
question | string | 是 | 问题文本 |
interrupt | boolean | 否 | 是否打断之前说的话 |
userId | number | 否 | 业务层用户唯一id,开启记忆功能时使用,用来关联用户历史记录. 如果为空,默认使用appId |
isHistory | boolean | 否 | 是否开启历史记录 |
isVector | boolean | 否 | 决策是否带入之前的相似回答 |
平台获取问题的答案
1duix.getAnswer({ question: '今天的天气怎么样?' })
参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
question | string | 是 | 问题文本 |
userId | number | 否 | 业务侧用户唯一id,指定后获得答案是开启记忆功能 |
返回data
名称 | 类型 | 描述 |
---|---|---|
answer | string | 数字人回答的文本 |
audio | string | 数字人回答音频地址 |
开始录音。
结束录音,录音成功后将返加语音识别结果(文本),返回Promise。
开启语音实时识别(注意此方法需在show触发时候调用)。开启语音实时识别后,可通过监听 asrResult
事件,接收识别(文本)结果。
关闭语音实时识别。
停止当前会话。建议在页卸载事件中调用此方法,以防止刷新或关闭网页时当前会话资源未及时释放。
1window.addEventListener('beforeunload', function(event) { 2 if (duix) { 3 duix.stop() 4 } 5});
获取本地语音流,方便外部做音频可视化等功能
获取远端音视频流,方便外部做自定义
恢复播放,目前仅针对部分移动端浏览器即便由用户操作触发自动播放,仍无效的情况。在抛出4009的error中由用户操作触发resume方法可解决。
监听事件。
事件名称,详见下方表格。
回调函数
对于返回Promise
的方法,参数格式为{ err, data }
,如果err
不为空,则代表调用失败。
名称 | 描述 |
---|---|
error | 有未捕获错误时触发。 |
bye | 会话结束时触发。 |
intialSucccess | 数字人初始化成功。可以在这个事件的回调中调用start 方法 |
show | 出数字人已显示。 |
progress | 数字人加载进度。 |
speakSection | 数字人说话当前的音频和文本片段(answer方法会采用流式获取结果,如果单独调用speak,该事件与speakStart一致) |
speakStart | 驱动数字人说话,到数字人实际说话之间有一点延迟,此事件表示数字人实际开始说话了 |
speakEnd | 数字人说话结束 |
openAsrSuccess | 语音实时识别开启成功后触发 |
asrResult | 语音实时识别结果 |
asrClose | 关闭语音实时识别成功时触发 |
report | 每秒报告RTC网络/画面质量等信息 |
1{ 2 code: '', // 错误码 3 message: '', // 错误信息 4 data: {} // 错误内容 5} 6
error code
名称 | 描述 | data |
---|---|---|
3001 | RIC连接失败 | |
4001 | 开始会话失败 | |
4005 | 鉴权失败 | |
4007 | 服务端会话异常结束 | code: 100305 模型文件未找到 |
4008 | 获取麦克风流失败 | |
4009 | 浏览器基于播放策略无法自动播放 | 请先考虑静音播放或用户操作调用start方法 |
number类型的进度,0-100
1 2{ 3 audio: '', // 音频地址 4 content: '', // 文本内容 5} 6
1 2{ 3 audio: '', // 音频地址 4 content: '', // 文本内容 5} 6
1 2{ 3 audio: '', // 音频地址 4 content: '', // 文本内容 5} 6
字符串类型,asr识别文本结果
1{ 2 "video": { // 视频相关信息 3 "download": { 4 "frameWidth": 1920, // 分辨率-宽 5 "frameHeight": 1080,// 分辨率-高 6 "framesPerSecond": 24,// 分辨率-帧率 7 "packetsLost": 0, // 总丢包数 8 "packetsLostPerSecond": 0 // 总丢率(每秒丢包数) 9 } 10 }, 11 "connection": { // 连接信息 12 "bytesSent": 206482, // 发送总字节数 13 "bytesReceived": 79179770, // 接收总字节数 14 "currentRoundTripTime": 3, // 包往返时间(单位毫秒),这个时间越大画面越延迟 15 "timestamp": 1688043940523, 16 "receivedBitsPerSecond": 2978472, // 接收码率(每秒接收到的bit数,1Mb = 1024^2 bit) 17 "sentBitsPerSecond": 7920 // 发送码率(每秒发送的bit数,1Mb = 1024^2 bit) 18 } 19}
注意: 未在上述详细列出的事件参数均为空
2.1.5
2.1.4
speak
纯文本时,tts进行预合成。2.1.3
answer
接口中间异常时没有speakEnd
事件stop
时没有清空播放队列startRecord
增加鉴权2.1.2
speak
传入纯文本时,url地址发送错误。2.1.1
answer
接口异常和数据异常时没有返回errspeakStart
事件回调中调用speak
会播放两遍2.1.0
answer
方法,支持GPT流式接口返回,增加speakSection
事件getAnswer
增加userId参数,支持记忆功能2.0.3
2.0.2
speak
方法增加interrupt
参数break
打断方法2.0.1
Promise
,统一返回格式为{err: '', data: ''}
init
方法start
方法增加conversationId
必填字段speak
方法入参格式调整break
方法getAnswer
方法1.1.19
1.1.18
1.1.17
report
事件。1.1.15
1.1.14
1.1.13
1.1.11
1.1.10
1.1.8
start
方法调用注意事项说明。1.1.6
1.1.5
wipeGreen
,以支持对视频扣绿幕。1.1.4
1window.addEventListener('beforeunload', function(event) { 2 console.log('on beforeunload') 3 if (duix) { 4 duix.stop() 5 } 6});
show
事件触发时才会显示。1.1.2
transparent
值,如果传true,则数字人背景透明。1.1.1
start
方法中传muted: true
无效的bug。1.1.0
openAsr
方法不再传入回调方法,改用 asrResult
事件来接收实时语音识别回传的识别结果。speakStart
事件,表示数字人开始说话。speakEnd
事件,数字人说话结束。stopRecord
方法新增支持 Promise 方式调用,原传回调的方式目前依然兼容,建议使用 Promise 方式。1.0.30
start
方法接收robotMode参数,现在可以在不重新new实例的情况下,切换对话/直驱模式。1.0.27
1.0.26
1.0.25
1.0.24
1.0.23
1.0.22
1.0.19
0.0.45 (暂未发布到npm)
0.0.44
0.0.43
0.0.42
0.0.41
0.0.40
0.0.39
0.0.38
0.0.37
0.0.36
0.0.34
0.0.33
0.0.32
0.0.31
0.0.30
0.0.27
0.0.26
No vulnerabilities found.
No security vulnerabilities found.