本教程为进阶内容,将详细介绍nuwa数字人创作流程和协议。通过本教程,您将深入了解nuwa数字人的底层原理,从而更好地集成和定制数字人功能。
数字人创作是指通过技术手段创建具有人类特征的虚拟人物,包括形象设计、声音克隆、智能对话等多个方面。数字人可以应用于多种场景,如客户服务、教育培训、娱乐互动等。
- 形象生成:通过AI技术生成或编辑数字人的外观
- 声音克隆:复制或创建数字人的语音特征
- 性格塑造:复制或创建数字人的语音特征
- 知识赋予:复制或创建数字人的语音特征
- 动作生成:让数字人做出自然的动作和表情
通过本教程,您将学习:
- 数字人创作的完整流程
- 如何使用NuwaAI平台的协议进行数字人创作开发
- 数字人创作的最佳实践和技巧
- 如何解决数字人创作中常见的问题
在开始数字人创作之前,了解以下核心概念将有助于您更好地理解整个创作过程。
- 形象(Figure):数字人的外观,包括面部特征、服装、发型,有意义动作和无意义动作等
- 声音(Voice):数字人的语音特征,包括音调、语速、情感等
- 角色(Role):数字人的身份设定,包括职业、性格、专业背景,技能等
- 知识库(Knowledge):数字人存储的知识,包括图片、视频、ppt等
- 智能体(Digital Human):完整的数字人实体,包含形象、声音和智能对话能力
- 准备阶段:收集素材,确定数字人定位
- 形象创作:设计或生成数字人外观
- 声音创作:克隆或创建数字人声音
- 角色选择:设定数字人角色,包括职业、性格、专业背景,技能等
- 知识上传:上传知识到数字人知识库,包括图片、视频、ppt等
- 测试与优化:测试数字人表现并进行优化
- 步骤1: 鉴权 (/web/apiKey/auth)
- 步骤2: 获取声音列表 (/web/model/voice/list)
- 步骤3: 选取一个声音,记录 声音模型名称,声音名称,声音类型
- 步骤4: 创建形象(/web/model/figure/create)
- 步骤5: 使用提示词生成一张图片(/web/model/submitTask)
- 步骤6: 查询图片生成状态(/web/model/submitTask/query)
- 步骤7: 查询图片生成完成,取到图片URL
- 步骤8: 使用提示词和图片URL生成视频(/web/model/submitTask)
- 步骤9: 查询视频生成状态(/web/model/submitTask/query)
- 步骤10: 查询视频生成完成,取到视频URL
- 步骤11: 根据视频URL,声音相关信息编辑形象(/web/model/figure/update),
- 步骤12: 返回请求ID
- 步骤13: 查询编辑状态(/web/model/submitTask/query)
- 步骤14: 查询编辑完成,取到编辑结果
- 步骤15: 查询角色列表(/web/model/role/list)
- 步骤16: 选取一个角色,记录 角色ID,角色名称,角色类型
- 步骤17: 创建智能体(/web/model/digitalHuman/create)
- 步骤18: 返回智能体ID
- 步骤19: 根据形象ID, 角色信息编辑智能体(/web/model/digitalHuman/update),
- 步骤20: 返回请求ID
- 步骤21: 查询编辑完成,取到编辑结果
- 步骤22: 完成
sequenceDiagram
participant 客户端 as 客户端
participant 平台 as Nuwa 平台
客户端->>平台: 1. 鉴权 (/web/apiKey/auth)
平台-->>客户端: 2. 返回token
客户端->>平台: 3. 获取声音列表 (/web/model/voice/list)
平台-->>客户端: 4. 返回声音列表
客户端->>客户端: 5. 选取一个声音,记录 声音模型名称,声音名称,声音类型
客户端->>平台: 6. 创建形象(/web/model/figure/create)
平台-->>客户端: 7. 返回形象ID
客户端->>平台: 8. 使用提示词生成一张图片(/web/model/submitTask)
客户端->>客户端: 9. 查询图片生成状态(/web/model/submitTask/query)
客户端->>客户端: 10. 查询图片生成完成,取到图片URL
客户端->>平台: 11. 使用提示词和图片URL生成视频(/web/model/submitTask)
客户端->>客户端: 12. 查询视频生成状态(/web/model/submitTask/query)
客户端->>客户端: 13. 查询视频生成完成,取到视频URL
客户端->>平台: 14. 根据视频URL,声音相关信息编辑形象(/web/model/figure/update),
平台-->>客户端: 15. 返回请求ID
客户端->>客户端: 16. 查询编辑状态(/web/model/submitTask/query)
客户端->>客户端: 17. 查询编辑完成,取到编辑结果
客户端->>平台: 18. 查询角色列表(/web/model/role/list)
平台-->>客户端: 19. 返回角色列表
客户端->>客户端: 20. 选取一个角色,记录 角色ID,角色名称,角色类型
客户端->>平台: 21. 创建智能体(/web/model/digitalHuman/create)
平台-->>客户端: 22. 返回智能体ID
客户端->>平台: 23. 根据形象ID, 角色信息编辑智能体(/web/model/digitalHuman/update),
平台-->>客户端: 24. 返回请求ID
客户端->>客户端: 25. 查询编辑完成,取到编辑结果
客户端->>客户端: 完成
本节将详细介绍NuwaAI平台提供的数字人创作协议,包括鉴权、文件管理、生图/生视频、声音创作、形象创作和智能体创作等接口。
POST /web/apiKey/auth
curl -X POST https:
-H 'Content-Type: application/json' \
-d '{
"secretKey": "sk-aEr4mRLm9TTBe2_E-LwHNppQ6BhXL3DNce5_1xfdSPN_-LFOnyJHr67wgca1KwcI"
}'
{
"code": 0,
"msg": null,
"data": "MnTjgFHRfslJov-PG9yNdKtGaxPicW06VKCRCt5-zuAh_YA0ECkp9cbFCR8kuK50EgSPFjtabTkAtR-1fNFLUoa-G7o3301t4zIem82yn2Sj5iglV-GDU3OA7pwaZff_"
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| secretKey | String | 是 | API key |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | String | token |
POST /web/web-file/upload
curl -X POST https:
-H 'Authorization: Bearer d8zKE2Wne0ooQ8y9RrW77lfXreNbWDuQ_njsBmrQEU26u1Wtkg7c0PrQUog6sG-WmkO7cnFHX8wG-_m9WTx7Ljdeag8bJj_bR4JMUO8SlCQFfhiWJv7Wsn5nQKb_aVzO' \
-H 'Content-Type: multipart/form-data' \
--form 'file=@"D:\\document\\test\\test001.jpeg"'
{
"code": 0,
"msg": null,
"data": {
"bucketName": "nuwa",
"fileName": "78/202512/20251202/5c0b16e1c89d4ff9ae9b93f775a722f6.jpeg",
"url": "/nuwa/78/202512/20251202/5c0b16e1c89d4ff9ae9b93f775a722f6.jpeg"
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| file | MultipartFile | 是 | 文件 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
| bucketName | String | 桶名 |
| fileName | String | oss中的文件名 |
| url | String | oss中的路径 |
DELETE /web/web-file/deleteFile
curl -X DELETE https:
-H 'Authorization: Bearer x-Snc8HAJKMcV6Rt6NYqqL-biS3jbOJIwuhAZl84k2qjJi84njFsOi6ibrFRn5XDN4ZyvZBGQrE4K0u5s0i7ovQc1QecoFKC8HIlbtWUWy89t6Ay8YhYpsPb_gt4XvaA'
{
"code": 0,
"msg": null,
"data": true
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| filePath | String | 是 | oss中的文件路径 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Boolean | true : 成功,false:失败 |
GET /web/document/getDownPreSignedUrl
curl -X GET https:
-H 'Authorization: Bearer x-Snc8HAJKMcV6Rt6NYqqL-biS3jbOJIwuhAZl84k2qjJi84njFsOi6ibrFRn5XDN4ZyvZBGQrE4K0u5s0i7ovQc1QecoFKC8HIlbtWUWy89t6Ay8YhYpsPb_gt4XvaA'
{
"code": 0,
"msg": null,
"data": "https://nuwa-ai.oss-cn-shenzhen.aliyuncs.com/134/figure/1947499417004638210/be367e3322de4b0eb857aaa62ddd3e46.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20251202T025318Z&X-Amz-SignedHeaders=host&X-Amz-Expires=518399&X-Amz-Credential=YHenriLQRiAqWFbmnZgQ%2F20251202%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=93e949dd325710726103601e661b9bb8b517abcc830fc783388fcd067ecee586"
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| filename | String | 是 | oss中的文件名 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | String | 文件预览地址 |
GET /web/web-file/download
curl -X GET https:
-H 'Authorization: Bearer x-Snc8HAJKMcV6Rt6NYqqL-biS3jbOJIwuhAZl84k2qjJi84njFsOi6ibrFRn5XDN4ZyvZBGQrE4K0u5s0i7ovQc1QecoFKC8HIlbtWUWy89t6Ay8YhYpsPb_gt4XvaA'
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| url | String | 是 | oss中的文件地址 |
POST /web/model/submitTask
curl -X POST https:
-H 'Authorization: Bearer d8zKE2Wne0ooQ8y9RrW77lfXreNbWDuQ_njsBmrQEU26u1Wtkg7c0PrQUog6sG-WmkO7cnFHX8wG-_m9WTx7Ljdeag8bJj_bR4JMUO8SlCQFfhiWJv7Wsn5nQKb_aVzO' \
-H 'Content-Type: application/json' \
-d '{
"type": "text2img",
"forwardPrompt": "生成一张在海边散步的美女图片",
"bizId": 1995841869673639938,
"from": "1",
"aspectRatio": "16:9",
"model": "doubao-seedream-4-5-251128"
}'
{
"code": 0,
"msg": null,
"data": "0be340e8bfd4405fab420a02ac3150d1"
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| type | String | 是 | 生成类型(img2img:图生图,text2img:文生图,img2video:图生视频) |
| forwardPrompt | String | 是 | 正向提示词 |
| bizId | Long | 是 | 形象或才艺Id |
| from | String | 是 | 来源(1:形象美化,2:才艺美化,3:创建数字人,4:生成形象动作视频,5:生成才艺动作视频) |
| model | String | 是 | 模型Id(文生图可选项:gemini-3-pro-image-preview,gemini-3.1-flash-image-preview,doubao-seedream-4-0-250828,doubao-seedream-4-5-251128,doubao-seedream-5-0-260128) |
| aspectRatio | String | 否 | 生成图片的宽高比(可选:16:9,9:16,默认:16:9) |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | String | 请求Id |
POST /web/model/submitTask
curl -X POST https:
-H 'Authorization: Bearer d8zKE2Wne0ooQ8y9RrW77lfXreNbWDuQ_njsBmrQEU26u1Wtkg7c0PrQUog6sG-WmkO7cnFHX8wG-_m9WTx7Ljdeag8bJj_bR4JMUO8SlCQFfhiWJv7Wsn5nQKb_aVzO' \
-H 'Content-Type: application/json' \
-d '{
"type": "img2img",
"forwardPrompt": "生成一张在海边散步的美女图片",
"bizId": 1995841869673639938,
"from": "1",
"aspectRatio": "16:9",
"model": "doubao-seedream-4-5-251128",
"path": "/nuwa/78/figure/1995841869673639938/58eafbb780964614bc5d7b4761211517.jpg"
}'
{
"code": 0,
"msg": null,
"data": "0be340e8bfd4405fab420a02ac3150d1"
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| type | String | 是 | 生成类型(img2img:图生图,text2img:文生图,img2video:图生视频) |
| forwardPrompt | String | 是 | 正向提示词 |
| bizId | Long | 是 | 形象或才艺Id |
| from | String | 是 | 来源(1:形象美化,2:才艺美化,3:创建数字人,4:生成形象动作视频,5:生成才艺动作视频) |
| model | String | 是 | 模型Id(文生图可选项:gemini-3-pro-image-preview,gemini-3.1-flash-image-preview,doubao-seedream-4-0-250828,doubao-seedream-4-5-251128,doubao-seedream-5-0-260128) |
| aspectRatio | String | 否 | 生成图片的宽高比(可选:16:9,9:16,默认:16:9) |
| path | String | 是 | Oss中参考图片地址 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | String | 请求Id |
POST /api/order/detail?id=557899
curl -X POST https:
-H 'Authorization: Bearer d8zKE2Wne0ooQ8y9RrW77lfXreNbWDuQ_njsBmrQEU26u1Wtkg7c0PrQUog6sG-WmkO7cnFHX8wG-_m9WTx7Ljdeag8bJj_bR4JMUO8SlCQFfhiWJv7Wsn5nQKb_aVzO' \
-H 'Content-Type: application/json' \
-d '{
"type": "img2video",
"forwardPrompt": "生成一张在海边散步的美女图片",
"bizId": 1995841869673639938,
"from": "1",
"videoTime":5,
"path": "/nuwa/78/figure/1995841869673639938/58eafbb780964614bc5d7b4761211517.jpg"
}'
{
"code": 0,
"msg": null,
"data": "0be340e8bfd4405fab420a02ac3150d1"
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| type | String | 是 | 生成类型(img2img:图生图,text2img:文生图,img2video:图生视频) |
| forwardPrompt | String | 是 | 正向提示词 |
| bizId | Long | 是 | 形象或才艺Id |
| from | String | 是 | 来源(1:形象美化,2:才艺美化,3:创建数字人,4:生成形象动作视频,5:生成才艺动作视频) |
| videoTime | String | 是 | 视频时长(单位:秒),可选范围[4,10] |
| path | String | 是 | Oss中参考图片地址 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | String | 请求Id |
POST /web/model/queryTask
curl -X POST https:
-H 'Authorization: Bearer Cc-QNbhsWbwc7NcQVr0-NuCQl8NVT6JxbTTi010yDvx0C-w18FmkELIZL5G7E77uRSnfGt7uX9rXjvcb_ee6cfTyNLIYWwDrr71oOJFdwO18HTXf63ca1vWwSS1imjfZ' \
-H 'Content-Type: application/json' \
-d '{
"requestId": "330937c2796b417c9ebd3bf72853ad39",
"lastReq": 0
}'
{
"code": 0,
"msg": null,
"data": {
"status": "done",
"data": {
"requestId": "6fa929b620b74dbabe90bade8d967f7a",
"thumbnailPath": "/pub-nuwa/78/figure/1995841869673639938/a5e9d52675be4a0da036a8093e3ab1d0.jpg",
"scenePath": "/nuwa/78/figure/1995841869673639938/58eafbb780964614bc5d7b4761211517.jpg",
"watermarkUrl": "/nuwa/78/figure/1995841869673639938/81ab006fee864635b63b35499216f383.jpg",
"videoPath": null,
"userId": "78",
"from": "1"
}
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| requestId | String | 是 | 请求Id |
| lastReq | Integer | 是 | 是否最后一次请求(0:否,1:是) |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
| 数据对象属性 | | |
| status | String | 处理状态(running:处理中,done:处理完成) |
| data | Object | 处理结果数据 |
| requestId | String | 请求Id |
| userId | Long | 用户Id |
| from | String | 来源(1:形象美化,2:才艺美化,3:创建数字人,4:生成形象动作视频,5:生成才艺动作视频) |
| videoPath | String | 生成的视频路径 |
| scenePath | String | 生成的图片路径 |
| thumbnailPath | String | 生成的缩略图路径 |
| watermarkUrl | String | 生成的带水印的图片路径 |
POST /webhp/humanAgent/voiceSet
curl -X POST https:
-H 'Authorization: Bearer aNKOUvxiG7aeNM-_IDWMnmPo-aGYiqKPXDx341SI1oynyXb8PH3accwurofBAwiXhwXXZIpz1Pvsc6yAfRJ51qNM-mYs8W4odih8DhFZjZu7B7Ko7OkHr1hEOy7Mu89X' \
-H 'Content-Type: multipart/form-data; boundary=--------------------------906665457628847285063471' \
--form 'file=@"D:\\tmp\\voice\\温柔小雅_.wav"' \
--form 'text="这天气真的热啊,衣服刚晾完就在琢磨晚饭,是煮点面条还是蒸个米饭炒个小菜?先不想了待会儿再说吧。"'
{
"code": 200,
"model": [
{
"version": "1",
"name": "speech:声音克隆__e4ca50ff",
"url": "/nuwa-ai/4000170/voice/f2656220c9654cb292ddf6091e56f4b3.wav"
},
{
"version": "3",
"name": "index:声音克隆__dfb303370fc24d70b328593d4621ae3c",
"url": "/nuwa-ai/4000170/voice/ba3d776aaf7e4ee1951ee03a47b91f21.wav"
}
]
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| file | MultipartFile | 是 | 音频文件 |
| text | String | 是 | 音频文本内容 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 200:请求成功,非200 :请求失败 |
| model | Array | 声音模型列表 |
| model 对象属性 | | |
| version | String | 1:支持多国语言,3:仅支持中文 |
| name | String | 声音模型名称 |
| url | String | oss中声音模型路径 |
POST /web/voice/clone
curl -X POST https:
-H 'Authorization: Bearer x-Snc8HAJKMcV6Rt6NYqqL-biS3jbOJIwuhAZl84k2qjJi84njFsOi6ibrFRn5XDN4ZyvZBGQrE4K0u5s0i7ovQc1QecoFKC8HIlbtWUWy89t6Ay8YhYpsPb_gt4XvaA' \
-H 'Content-Type: application/json' \
-d '{
"voiceName": "A0012",
"content": "这天气真的热啊,衣服刚晾完就在琢磨晚饭,是煮点面条还是蒸个米饭炒个小菜?先不想了待会儿再说吧。",
"voiceType": "5",
"featureList": [
"温柔体贴",
"甜美可爱"
],
"model": [
{
"version": "1",
"name": "speech:声音克隆__e4ca50ff",
"url": "/nuwa-ai/4000170/voice/f2656220c9654cb292ddf6091e56f4b3.wav"
},
{
"version": "3",
"name": "index:声音克隆__dfb303370fc24d70b328593d4621ae3c",
"url": "/nuwa-ai/4000170/voice/ba3d776aaf7e4ee1951ee03a47b91f21.wav"
}
],
"sex": "2",
"voiceTime": 17,
"age": "1"
}'
{
"code": 0,
"msg": null,
"data": true
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| voiceName | String | 是 | 声音显示名称 |
| content | String | 是 | 声音文本内容 |
| voiceType | String | 是 | 声音类型(3:豆包,5:复刻) |
| sex | String | 是 | 性别(1:男,2:女,3:中性) |
| age | String | 是 | 年龄(1:青年,2:中年,3:老年,4:儿童) |
| voiceTime | Integer | 是 | 声音时长(单位:秒) |
| featureList | Array | 否 | 声音特征 |
| model | Array | 是 | 声音模型 |
| model 对象属性 | | | |
| version | String | 是 | 1:支持多国语言,3:仅支持中文 |
| name | String | 是 | 声音模型名称 |
| url | String | 是 | oss中声音模型路径 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Boolean | true :成功,false:失败 |
DELETE /web/voice/delete/{id}
curl -X DELETE https:
-H 'Authorization: Bearer x-Snc8HAJKMcV6Rt6NYqqL-biS3jbOJIwuhAZl84k2qjJi84njFsOi6ibrFRn5XDN4ZyvZBGQrE4K0u5s0i7ovQc1QecoFKC8HIlbtWUWy89t6Ay8YhYpsPb_gt4XvaA'
{
"code": 0,
"msg": null,
"data": true
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| id | Long | 是 | 声音Id |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Boolean | true :成功,false:失败 |
POST /web/voice/voiceList
curl -X POST https:
-H 'Authorization: Bearer x-Snc8HAJKMcV6Rt6NYqqL-biS3jbOJIwuhAZl84k2qjJi84njFsOi6ibrFRn5XDN4ZyvZBGQrE4K0u5s0i7ovQc1QecoFKC8HIlbtWUWy89t6Ay8YhYpsPb_gt4XvaA' \
-H 'Content-Type: application/json' \
-d '{
"type": 1,
"size": 12,
"current": 2,
"feature": "",
"age": "",
"voiceName": ""
}'
{
"code": 0,
"msg": null,
"data": {
"records": [
{
"createTime": "2025-08-12 15:00:50",
"updateTime": "2025-08-12 15:00:50",
"voiceId": "1955162543697666049",
"voiceName": "热血青年",
"modeName": "index:测试1__06bd8d06",
"sex": "1",
"age": "1",
"voiceType": "5",
"feature": "大气活力",
"path": "/pub-nuwa/admin/audio/284ea5be2345470cbffef3aceecde81f.wav",
"systemFlag": "1",
"featureList": [
"大气活力"
]
},
{
"createTime": "2025-08-12 14:59:41",
"updateTime": "2025-08-12 14:59:41",
"voiceId": "1955162254982750210",
"voiceName": "少儿故事",
"modeName": "index:少儿故事__1b7293b3",
"sex": "1",
"age": "4",
"voiceType": "5",
"feature": "亲和力强",
"path": "/pub-nuwa/admin/audio/d5077c655c5e4dc3b35eb93e7d74b491.wav",
"systemFlag": "1",
"featureList": [
"亲和力强"
]
}
],
"total": 14,
"size": 2,
"current": 2,
"pages": 7
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| size | Long | 是 | 每页显示条数 |
| current | Long | 是 | 当前页(从1开始计数) |
| type | Integer | 是 | 查询类型(1:平台声音,2:我克隆的声音) |
| age | String | 否 | 年龄(1:青年,2:中年,3:老年,4:儿童) |
| voiceName | String | 否 | 声音显示名称 |
| feature | String | 否 | 声音特征 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
| recods 属性 | | |
| createTime | LocalDateTime | 创建时间 |
| updateTime | LocalDateTime | 更新时间 |
| voiceId | Long | 声音id |
| voiceName | String | 声音显示名称 |
| modeName | String | 声音模型名称 |
| sex | String | 性别(1:男,2:女,3:中性) |
| age | String | 年龄(1:青年,2:中年,3:老年,4:儿童) |
| voiceTime | Integer | 声音时长(单位:秒) |
| voiceType | String | 声音类型(3:豆包,5:复刻) |
| feature | String | 声音特征 |
| path | String | 声音路径 |
| systemFlag | String | 声音权限(1:公开可见,2:仅个人可见) |
| featureList | Array | 声音特征列表 |
| 分页参数 | | |
| total | Long | 总记录数 |
| size | Long | 每页显示条数 |
| current | Long | 当前页(从1开始计数) |
| pages | Long | 总页数 |
POST /web/figure/create
curl -X POST https:
-H 'Authorization: Bearer x-Snc8HAJKMcV6Rt6NYqqL-biS3jbOJIwuhAZl84k2qjJi84njFsOi6ibrFRn5XDN4ZyvZBGQrE4K0u5s0i7ovQc1QecoFKC8HIlbtWUWy89t6Ay8YhYpsPb_gt4XvaA' \
-H 'Content-Type: application/json' \
-d '{
"figureName": "A042"
}'
{
"code": 0,
"msg": null,
"data": {
"createBy": "18672393036",
"createTime": "2025-12-02 21:05:57",
"updateBy": "18672393036",
"updateTime": "2025-12-02 21:05:57",
"figureId": "1995841869673639938",
"figureName": "A042",
"status": "0",
"systemFlag": "2",
"client": "pc",
"channel": "natural",
"userId": "78"
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| figureName | String | 是 | 形象名称 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
| 形象对象属性 | | |
| figureId | Long | 形象id |
| figureName | String | 形象名称 |
| status | String | 形象状态(0:待完善资料,1:创建中,2:创建成功,3:创建失败) |
| systemFlag | String | 形象权限(1:公开可见,2:仅个人可见) |
| userId | Long | 用户Id |
| createBy | String | 创建人 |
| updateBy | String | 更新人 |
| updateTime | LocalDateTime | 更新时间 |
| client | String | 客户端 |
| channel | String | 渠道 |
PUT /web/figure/edit
curl -X PUT https:
-H 'Authorization: Bearer x-Snc8HAJKMcV6Rt6NYqqL-biS3jbOJIwuhAZl84k2qjJi84njFsOi6ibrFRn5XDN4ZyvZBGQrE4K0u5s0i7ovQc1QecoFKC8HIlbtWUWy89t6Ay8YhYpsPb_gt4XvaA' \
-H 'Content-Type: application/json' \
-d '{
"figureName": "A042",
"figureType": "2",
"startPath": null,
"videoPath": "/nuwa-ai/4000170/figure/1995841607195533313/995a0fdfe22d483ebca42c54c0ae5014.mp4",
"voiceType": "5",
"age": "1",
"sex": "2",
"voiceName": null,
"modeName": "index:新闻女主播__d67c8ff2",
"displayName": "新闻女主播",
"figureId": "1995841607195533313",
"style": "古风",
"actionList": []
}'
{
"code": 0,
"msg": null,
"data": "db5945deccd24ad2bf13687b94c585d8"
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| figureId | Long | 是 | 形象Id |
| figureName | String | 是 | 形象名称 |
| videoPath | String | 是 | oss中的视频路径 |
| voiceType | String | 是 | 声音类型(3:豆包,5:复刻) |
| modeName | String | 是 | 声音模型名称 |
| displayName | String | 是 | 声音显示名称 |
| voicePath | String | 否 | 声音文件路径 |
| style | String | 否 | 风格名称 |
| age | String | 是 | 年龄(1:青年,2:中年,3:老年,4:儿童) |
| sex | String | 是 | 性别(1:男,2:女,3:中性) |
| actionList | Array | 否 | 形象动作视频列表 |
| 动作视频对象属性 | | | |
| id | Long | 否 | 动作Id |
| actionType | String | 是 | 动作类型(0:开场白,1:情感表达,2:表演) |
| videoPath | String | 是 | Oss中动作视频路径 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | String | 请求Id,根据这个Id可以查询形象模型的生成状态 |
DELETE /web/figure/delete/{id}
curl -X DELETE https:
-H 'Authorization: Bearer x-Snc8HAJKMcV6Rt6NYqqL-biS3jbOJIwuhAZl84k2qjJi84njFsOi6ibrFRn5XDN4ZyvZBGQrE4K0u5s0i7ovQc1QecoFKC8HIlbtWUWy89t6Ay8YhYpsPb_gt4XvaA'
{
"code": 0,
"msg": null,
"data": true
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| id | Long | 是 | 形象Id |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Boolean | true: 成功,false:失败 |
POST /web/figure/figureList
curl -X POST https:
-H 'Authorization: Bearer oSBvPLPvYl2emsnvOP_Vbzf_pfLb0V8TiRSuBYvbvxU00YObhaUbf4yk0AD1IVcb7_NX1LQddpW1AIqw7geXWLzU73Yc5D_v-ttzhUhm_qtazrFjoQZlze0mdTkoWNvp' \
-H 'Content-Type: application/json' \
-d '{
"figureName": "",
"type": 2,
"age": "",
"sex": "",
"style": "",
"size": 2,
"current": 1
}'
{
"code": 0,
"msg": null,
"data": {
"records": [
{
"createTime": "2025-12-02 21:05:57",
"updateTime": "2025-12-02 21:05:57",
"figureId": "1995841869673639938",
"figureName": "A042",
"thumbnailPath": /pub-nuwa/47/figure/1996947256201060354/53e2bc648edb4b68918d8936251544da.jpg,
"status": "0",
"systemFlag": "2",
"storage": "0",
"userId": "78",
"nickName": "王白玄龟"
},
{
"createTime": "2025-11-28 12:02:40",
"updateTime": "2025-11-28 12:06:29",
"figureId": "1994255593560322050",
"figureName": "星辰ixYb",
"thumbnailPath": "/pub-nuwa/78/figure/1994255593560322050/262f413c69914f718c30c9fedd53d692.jpg",
"status": "2",
"systemFlag": null,
"storage": "1584116",
"userId": "78",
"nickName": "王白玄龟"
}
],
"total": 8,
"size": 2,
"current": 1,
"pages": 4
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| current | Long | 是 | 当前页(从1开始) |
| size | Long | 是 | 每页显示条数 |
| type | Integer | 是 | 查询类型(1:平台形象,2:我的形象) |
| age | String | 否 | 年龄(1:青年,2:中年,3:老年,4:儿童) |
| sex | String | 否 | 性别(1:男,2:女,3:中性) |
| figureName | String | 否 | 形象名称 |
| style | String | 否 | 形象风格 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Array | 接口响应数据 |
| records对象属性 | | |
| figureId | Long | 形象Id |
| figureName | String | 形象名称 |
| userId | Long | 用户Id |
| nickName | String | 用户昵称 |
| thumbnailPath | String | 形象缩略图路径 |
| storage | Long | 占用存储空间大小(单位:Byte) |
| status | String | 形象状态(0:待完善资料,1:创建中,2:创建成功,3:创建失败) |
| createTime | LocalDateTime | 创建时间 |
| updateTime | LocalDateTime | 更新时间 |
GET /web/figure/detail/{figureId}
curl -X GET https:
-H 'Authorization: Bearer oSBvPLPvYl2emsnvOP_Vbzf_pfLb0V8TiRSuBYvbvxU00YObhaUbf4yk0AD1IVcb7_NX1LQddpW1AIqw7geXWLzU73Yc5D_v-ttzhUhm_qtazrFjoQZlze0mdTkoWNvp'
{
"code": 0,
"msg": null,
"data": {
"createBy": "",
"createTime": "2025-11-28 12:02:40",
"updateBy": "",
"updateTime": "2025-11-28 12:06:29",
"delFlag": "0",
"figureId": "1994255593560322050",
"figureName": "星辰ixYb",
"age": "1",
"sex": "2",
"style": null,
"startPath": "/nuwa/78/figure/1994255593560322050/13d93328e5c04802b22bb77378f69097.jpg",
"thumbnailPath": "/pub-nuwa/78/figure/1994255593560322050/262f413c69914f718c30c9fedd53d692.jpg",
"previewPath": null,
"figurePath": "/nuwa/78/figure/1994255593560322050/model.mp4",
"videoPath": "/nuwa/78/figure/1994255593560322050/0cc04aa4c8224a6b86dfd8a48e588665.mp4",
"voicePath": "",
"displayName": "中二少女",
"modeName": "index:飞销__cbbcc4ec",
"voiceType": "5",
"generaType": "3",
"preStatus": "0",
"status": "2",
"systemFlag": "2",
"failReason": "",
"storage": "1584116",
"client": "pc",
"channel": "natural",
"userId": "78"
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| figureId | Long | 是 | 形象Id |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
| 形象对象属性 | | |
| figureId | Long | 形象id |
| figureName | String | 形象名称 |
| age | String | 年龄(1:青年,2:中年,3:老年,4:儿童) |
| sex | String | 性别(1:男,2:女,3:中性) |
| style | String | 形象风格 |
| thumbnailPath | String | 缩略图路径 |
| previewPath | String | 形象预览路径 |
| figurePath | String | 形象模型路径 |
| videoPath | String | 视频路径 |
| voicePath | String | 声音文件路径 |
| displayName | String | 声音显示名称 |
| modeName | String | 声音模型名称 |
| voiceType | String | 声音类型(3:豆包,5:复刻) |
| generaType | String | 生成模型的类型(1:根据图片生成,2:根据参考帧生成,3:根据视频生成) |
| preStatus | String | 形象预览状态(1:创建中,2:创建成功,3:创建失败) |
| status | String | 形象状态(0:待完善资料,1:创建中,2:创建成功,3:创建失败) |
| systemFlag | String | 形象权限(1:公开可见,2:仅个人可见) |
| failReason | String | 形象模型创建失败的原因 |
| actions | String | 动作列表 |
| client | String | 客户端 |
| channel | String | 渠道 |
| storage | Long | 占用存储空间大小(单位:Byte) |
| userId | Long | 用户Id |
| delFlag | String | 删除标记,1:已删除,0:正常 |
POST /web/digital/user/create
curl -X POST https:
-H 'Authorization: Bearer DH4X6eBEvzBwZ-mkIv7cu0PTxTYhxXPK0-HfBXRzI88byaMSRkmlqsNbtGQGJjYvc5NgIlyjFFOLFy1-q17Ti48mYhg6zFgD0hOCz8D1jdMIJcAhwEDoGMGhB_AbpUhv' \
-H 'Content-Type: application/json' \
-d '{
"name": "A020"
}'
{
"code": 0,
"msg": null,
"data": {
"createBy": "18672393036",
"createTime": "2025-12-04 21:29:59",
"updateBy": "18672393036",
"updateTime": "2025-12-04 21:29:59",
"delFlag": "0",
"id": "1996572693326966785",
"name": "A020",
"status": "0",
"client": "pc",
"channel": "natural",
"userId": "78",
"systemFlag": "2"
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| name | String | 是 | 智能体名称 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
| 智能体对象属性 | | |
| id | Long | 智能体Id |
| name | String | 智能体名称 |
| status | String | 智能体状态(0:待完善资料,1:创建中,2:创建成功,3:创建失败) |
| client | String | 客户端(pc,h5) |
| channel | String | 渠道 |
| userId | Long | 用户Id |
| systemFlag | String | 智能体权限(1:公开可见,2:仅个人可见) |
| createBy | String | 创建人 |
| createTime | LocalDateTime | 创建时间 |
| updateBy | String | 更新人 |
| updateTime | LocalDateTime | 更新时间 |
| delFlag | String | 删除标记,1:已删除,0:正常 |
PUT /web/digital/user/edit
curl -X PUT https:
-H 'Authorization: Bearer DH4X6eBEvzBwZ-mkIv7cu0PTxTYhxXPK0-HfBXRzI88byaMSRkmlqsNbtGQGJjYvc5NgIlyjFFOLFy1-q17Ti48mYhg6zFgD0hOCz8D1jdMIJcAhwEDoGMGhB_AbpUhv' \
-H 'Content-Type: application/json' \
-d '{
"name": "A019",
"age": "1",
"sex": "1",
"applicationScenarios": "5",
"thumbnailPath": "/pub-nuwa/4000170/figure/1993263270656843778/f754be98e8c4420693c95519d0726a5a.jpg",
"figurePath": "/nuwa-ai/4000170/figure/1993263270656843778/model.mp4",
"shapeMouth": 1.5,
"speedSpeech": 1,
"specialty": "- 持有营销传播专业资格证书和品牌推广师认证\n- 在创新科技有限公司担任品牌营销大使2年,负责品牌形象推广和产品宣传\n- 擅长品牌故事讲述、产品特色展示、客户关系维护、活动现场推广\n- 成功参与过创新科技有限公司的多次重大营销活动和产品发布会\n- 在社交媒体平台拥有10万粉丝,品牌传播影响力显著",
"personality": "- 热情、亲和、自信、表达力强、具有强烈的品牌归属感\n- 沟通风格:语言生动有感染力,善于用真实体验和情感共鸣推广品牌",
"languageStyle": "根据场合灵活适配非正式口语化和正式官方话\n- 词汇丰富度:品牌相关术语准确,善用生活化语言和情感化表达传递品牌价值。",
"goal": "- 主要目标:推广创新科技有限公司品牌形象和智能手机产品",
"recommend1": "",
"recommend2": "",
"recommend3": "",
"remark": "",
"roleName": "品牌营销大使",
"roleId": "1941365527974854658",
"skillList": [
{
"skillName": "PPT演讲",
"enabled": "1"
},
{
"skillName": "知识问答",
"enabled": "1"
},
{
"skillName": "用户线索记录",
"enabled": "1"
}
],
"figureId": "1993263270656843778",
"id": "1996571773882441730"
}'
{
"code": 0,
"msg": null,
"data": "aced3bf3189c4576817fd590a6d397b7"
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| id | Long | 是 | 智能体Id |
| name | String | 是 | 智能体名称 |
| age | String | 是 | 智能体年龄 |
| sex | String | 是 | 性别(1:男,2:女,3:中性) |
| figureId | Long | 是 | 形象Id |
| figurePath | String | 是 | 形象模型路径 |
| thumbnailPath | String | 是 | 形象缩率图 |
| shapeMouth | String | 是 | 嘴型 |
| speedSpeech | String | 是 | 语速 |
| roleId | Long | 是 | 角色Id |
| roleName | String | 是 | 角色名称 |
| specialty | String | 否 | 专业背景 |
| personality | String | 否 | 性格特点 |
| languageStyle | String | 否 | 语言风格 |
| goal | String | 否 | 对话目标 |
| recommend1 | String | 否 | 推荐提问1 |
| recommend2 | String | 否 | 推荐提问2 |
| recommend3 | String | 否 | 推荐提问3 |
| remark | String | 否 | 开场白 |
| applicationScenarios | String | 否 | 应用场景编号 |
| skillList | Array | 否 | 技能列表 |
| 技能对象属性 | | | |
| skillName | String | 是 | 技能名称 |
| enabled | String | 是 | 是否启用(1:启用,0:未启用) |
| cardList | Array | 否 | 桌面卡片列表 |
| 卡片对象属性 | | | |
| cardName | String | 是 | 卡片名称 |
| enabled | String | 是 | 是否启用(1:启用,0:未启用) |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | String | 创建智能体模型的任务Id,为空时表示不需要床创建智能体模型,更新绑定的形象模型时才会触发创建智能体模型任务 |
DELETE /web/digital/user/delete/{id}
curl -X DELETE https:
-H 'Authorization: Bearer DH4X6eBEvzBwZ-mkIv7cu0PTxTYhxXPK0-HfBXRzI88byaMSRkmlqsNbtGQGJjYvc5NgIlyjFFOLFy1-q17Ti48mYhg6zFgD0hOCz8D1jdMIJcAhwEDoGMGhB_AbpUhv'
{
"code": 0,
"msg": null,
"data": true
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| id | Long | 是 | 智能体Id |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Boolean | true:成功,false:失败 |
POST /web/digital/user/digitalList
curl -X POST https:
-H 'Authorization: Bearer DH4X6eBEvzBwZ-mkIv7cu0PTxTYhxXPK0-HfBXRzI88byaMSRkmlqsNbtGQGJjYvc5NgIlyjFFOLFy1-q17Ti48mYhg6zFgD0hOCz8D1jdMIJcAhwEDoGMGhB_AbpUhv' \
-H 'Content-Type: application/json' \
-d '{
"type": 2,
"size": 2,
"current": 1,
"name": "",
"age": "",
"sex": ""
}'
{
"code": 0,
"msg": null,
"data": {
"records": [
{
"createTime": "2025-12-04 21:29:59",
"updateTime": "2025-12-04 21:29:59",
"id": "1996572693326966785",
"name": "A020",
"status": "0",
"knowledgeStorage": "0",
"userId": "78",
"systemFlag": "2",
"nickName": "王白玄龟",
},
{
"createTime": "2025-11-27 11:17:02",
"updateTime": "2025-11-28 11:31:07",
"id": "1993881722078064641",
"name": "76d64eac",
"roleName": "小云",
"thumbnailPath": "/pub-nuwa/1/figure/1955077707972714497/69c52b2e195444aa973cdf1a94286f69.jpg",
"status": "2",
"knowledgeStorage": "0",
"userId": "78",
"systemFlag": "2",
"nickName": "王白玄龟"
}
],
"total": 4,
"size": 2,
"current": 1,
"pages": 2
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| type | Integer | 是 | 查询类型(1:平台数字人,2:我的数字人) |
| current | Long | 是 | 当前页(从1开始) |
| size | Long | 是 | 每页记录数 |
| name | String | 否 | 智能体名称 |
| age | String | 否 | 年龄(1:青年,2:中年,3:老年,4:儿童) |
| sex | String | 否 | 性别(1:男,2:女,3:中性) |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
| records | Array | 智能体列表 |
| current | Long | 当前页(从1 开始) |
| size | Long | 每页记录数 |
| total | Long | 总记录数 |
| pages | Long | 总页数 |
| 智能体对象属性 | | |
| id | Long | 智能体Id |
| name | String | 智能体名称 |
| status | String | 智能体状态(0:待完善资料,1:创建中,2:创建成功,3:创建失败) |
| systemFlag | String | 智能体权限(1:公开可见,2:仅个人可见) |
| userId | Long | 用户Id |
| nickName | String | 用户昵称 |
| knowledgeStorage | Long | 占用空间大小(单位:Byte) |
| roleName | String | 角色名称 |
| thumbnailPath | String | 缩略图路径 |
| applicationScenariosName | String | 应用场景名称 |
| createTime | LocalDateTime | 创建时间 |
| updateTime | LocalDateTime | 更新时间 |
GET /web/role/list
curl -X GET https:
-H 'Authorization: Bearer GmPx7rCB_kZag3yG_0QL9D3Cof6nc4OS1ZHPCl1Nst7Pz13-MlYeOSB8KoToiWtFUx7DbxGYCvod5CWby_wJ6yYL8gPN2XAF2U8N0_ihcNzERa6DHQOlBY1KUkv2Ok4J'
{
"code": 0,
"msg": null,
"data": {
"records": [
{
"createTime": "2025-11-08 20:12:13",
"updateTime": "2025-11-08 20:12:13",
"roleId": "1987131038946664449",
"roleName": "直播带货11",
"applicationScenarios": "0",
"language": "1",
"specialty": "",
"personality": "",
"languageStyle": "",
"goal": "",
"workThinking": "",
"modelName": "",
"skillList": [
{
"skillName": "PPT演讲",
"enabled": "1"
}
],
"nickName": null
},
{
"createTime": "2025-11-03 12:06:25",
"updateTime": "2025-11-08 20:12:03",
"roleId": "1985196841234313218",
"roleName": "直播带货",
"applicationScenarios": "0",
"language": "0",
"specialty": "11",
"personality": "22",
"languageStyle": "33",
"goal": "44",
"workThinking": "55",
"modelName": "66",
"description": "77",
"skillList": [
{
"skillName": "知识问答",
"enabled": "1"
},
{
"skillName": "PPT演讲",
"enabled": "1"
},
{
"skillName": "文件发送",
"enabled": "1"
},
{
"skillName": "福利设定",
"enabled": "1"
}
],
"nickName": null
}
],
"total": 22,
"size": 2,
"current": 1,
"pages": 11
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| current | Long | 是 | 当前页(从1开始) |
| size | Long | 是 | 每页记录数 |
| roleName | String | 否 | 角色名称 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
| records | Array | 角色列表 |
| current | Long | 当前页(从1 开始) |
| size | Long | 每页记录数 |
| total | Long | 总记录数 |
| pages | Long | 总页数 |
| 角色对象属性 | | |
| roleId | Long | 角色编号 |
| roleName | String | 角色名称 |
| language | String | 语种(0:文中,1:英文) |
| specialty | String | 专业背景 |
| personality | String | 性格特征 |
| languageStyle | String | 语言风格 |
| goal | String | 对话目标 |
| nickName | String | 创建人昵称 |
| applicationScenarios | String | 应用场景编号 |
| workThinking | String | 工作思维 |
| modelName | String | 角色模型名称 |
| createTime | LocalDateTime | 创建时间 |
| updateTime | LocalDateTime | 更新时间 |
| skillList | Array | 技能列表 |
| 技能属性 | | |
| skillName | String | 技能名称 |
| enabled | String | 是否启用(1:启用,0:未启用) |
POST /web/document/4.0/add
curl -X POST https:
-H 'Authorization: Bearer GmPx7rCB_kZag3yG_0QL9D3Cof6nc4OS1ZHPCl1Nst7Pz13-MlYeOSB8KoToiWtFUx7DbxGYCvod5CWby_wJ6yYL8gPN2XAF2U8N0_ihcNzERa6DHQOlBY1KUkv2Ok4J' \
-H 'Content-Type: application/json' \
-d '{
"fileSize": 27451057,
"digitalUserId": 1996852095362637826,
"originalFilename": "Nuwaai介绍手册2505-邦彦技术.pdf",
"description": ""
}'
{
"code": 0,
"msg": null,
"data": {
"documentId": "7131",
"preUploadUrl": "https://myres.nuwaai.com/nuwa-ai/4000170/knowledge/1996852095362637826/f53c7e92d8aa48e58814dfd93e47f79b.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20251206T032711Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Credential=tkqWx3Hb2WOTUVeXoyJD%2F20251206%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=1340429dcd1a9a228e0e1121cfcb39d0e5f87f0bfa1fda59eed37318a178031e"
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| fileSize | Long | 是 | 文件大小(单位:Byte) |
| digitalUserId | Long | 是 | 数字人ID |
| originalFilename | String | 是 | 原始文件名称 |
| description | String | 否 | 描述 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
| documentId | Long | 文档Id |
| preUploadUrl | String | 预上传地址 |
POST /web/document/importWebsite
curl -X POST https:
-H 'Authorization: Bearer GmPx7rCB_kZag3yG_0QL9D3Cof6nc4OS1ZHPCl1Nst7Pz13-MlYeOSB8KoToiWtFUx7DbxGYCvod5CWby_wJ6yYL8gPN2XAF2U8N0_ihcNzERa6DHQOlBY1KUkv2Ok4J' \
-H 'Content-Type: application/json' \
-d '{
"url": "www.nuwaai.com",
"digitalUserId": 1996852095362637826
}'
{
"code": 0,
"msg": null,
"data": "7133"
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| url | String | 是 | 网站地址 |
| digitalUserId | Long | 是 | 智能体Id |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Long | 文档Id |
PUT {preUploadUrl}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| preUploadUrl | String | 是 | 预上传地址,新增文档信息接口返回,前端直接请求预上传地址接口上传文件 |
POST /web/document/removeV2
curl -X POST https:
-H 'Authorization: Bearer GmPx7rCB_kZag3yG_0QL9D3Cof6nc4OS1ZHPCl1Nst7Pz13-MlYeOSB8KoToiWtFUx7DbxGYCvod5CWby_wJ6yYL8gPN2XAF2U8N0_ihcNzERa6DHQOlBY1KUkv2Ok4J' \
-H 'Content-Type: application/json' \
-d '{
"digitalUserId": 9007199254740991,
"docIds": [
9007199254740991
]
}'
{
"code": 0,
"msg": null,
"data": null
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| digitalUserId | Long | 是 | 智能体Id |
| docIds | Long[] | 是 | 文档Id集合 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
POST /web/document/modifyV2
curl -X POST https:
-H 'Authorization: Bearer GmPx7rCB_kZag3yG_0QL9D3Cof6nc4OS1ZHPCl1Nst7Pz13-MlYeOSB8KoToiWtFUx7DbxGYCvod5CWby_wJ6yYL8gPN2XAF2U8N0_ihcNzERa6DHQOlBY1KUkv2Ok4J' \
-H 'Content-Type: multipart/form-data' \
-F 'file=@test001.jpeg;type=image/jpeg'
{
"code": 0,
"msg": null,
"data": null
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| file | MultipartFile | 是 | 知识文档 |
| docId | Long | 是 | 文档Id |
| editType | Integer | 是 | 文档类型(0:图片/视频,1:文本文档,2:ppt,3: URL) |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
GET /web/document/getDocumentById
curl -X GET https:
-H 'Authorization: Bearer GmPx7rCB_kZag3yG_0QL9D3Cof6nc4OS1ZHPCl1Nst7Pz13-MlYeOSB8KoToiWtFUx7DbxGYCvod5CWby_wJ6yYL8gPN2XAF2U8N0_ihcNzERa6DHQOlBY1KUkv2Ok4J'
{
"code": 0,
"msg": null,
"data": {
"id": "7131",
"analysisUrl": "4000170/knowledge/1996852095362637826/b6aa31c01ab843f5bd3e9b309e77a294.md",
"filePath": "4000170/knowledge/1996852095362637826/f53c7e92d8aa48e58814dfd93e47f79b.pdf",
"type": "pdf",
"original": "Nuwaai介绍手册2505-邦彦技术.pdf",
"sendPermission": "1",
"playPermission": "1",
"description": null,
"category": 1,
"createTime": "2025-12-06 11:27:11",
"updateTime": "2025-12-06 16:03:09",
"status": "1",
"reason": null
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| docId | String | 是 | 文档Id |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
| 对象属性 | | |
| id | Long | 文档Id |
| analysisUrl | String | 解析后的文件地址 |
| type | String | 文档类型 |
| original | String | 原始文件名 |
| sendPermission | String | 发送权限(0:关闭,1:开启) |
| playPermission | String | 播放权限(0:关闭,1:开启) |
| description | String | 描述 |
| category | String | 文档类型(0:图片/视频,1:文本文档,2:ppt,3: URL) |
| status | String | 状态(0:解析中,1:解析成功,2:解析失败) |
| reason | String | 失败原因 |
| createTime | LocalDateTime | 上传时间 |
| updateTime | LocalDateTime | 更新时间 |
GET /web/document/pageV2
curl -X GET https:
-H 'Authorization: Bearer GmPx7rCB_kZag3yG_0QL9D3Cof6nc4OS1ZHPCl1Nst7Pz13-MlYeOSB8KoToiWtFUx7DbxGYCvod5CWby_wJ6yYL8gPN2XAF2U8N0_ihcNzERa6DHQOlBY1KUkv2Ok4J'
{
"code": 0,
"msg": null,
"data": {
"records": [
{
"id": "7130",
"analysisUrl": "4000170/knowledge/1996852095362637826/fb3187e71a5944bba8bd9e4e75b4b65a.md",
"filePath": "www.nuwaai.com",
"type": "web",
"original": "www.nuwaai.com",
"sendPermission": "1",
"playPermission": "1",
"description": null,
"category": 3,
"createTime": "2025-12-06 11:17:59",
"updateTime": "2025-12-06 11:18:42",
"status": "1",
"reason": null
}
],
"total": 1,
"size": 10,
"current": 1,
"pages": 1
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| digitalUserId | Long | 是 | 数字人ID |
| current | Long | 是 | 当前页(从1 开始) |
| size | Long | 是 | 每页记录数 |
| type | String | 否 | 文档类型 |
| documentName | String | 否 | 文档名称 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
| 对象属性 | | |
| id | Long | 文档Id |
| analysisUrl | String | 解析后的文件地址 |
| filePath | String | 原始文档路径 |
| type | String | 文档类型 |
| original | String | 原始文件名 |
| sendPermission | String | 发送权限(0:关闭,1:开启) |
| playPermission | String | 播放权限(0:关闭,1:开启) |
| description | String | 描述 |
| category | String | 文档类型(0:图片/视频,1:文本文档,2:ppt,3: URL) |
| status | String | 状态(0:解析中,1:解析成功,2:解析失败) |
| reason | String | 失败原因 |
| createTime | LocalDateTime | 上传时间 |
| updateTime | LocalDateTime | 更新时间 |
POST /web/talent/create
curl -X POST https:
-H 'Authorization: Bearer x-Snc8HAJKMcV6Rt6NYqqL-biS3jbOJIwuhAZl84k2qjJi84njFsOi6ibrFRn5XDN4ZyvZBGQrE4K0u5s0i7ovQc1QecoFKC8HIlbtWUWy89t6Ay8YhYpsPb_gt4XvaA' \
-H 'Content-Type: application/json' \
-d '{
"type": "1"
}'
{
"code": 0,
"msg": null,
"data": {
"createBy": "18672393036",
"createTime": "2025-12-12 09:41:40",
"updateBy": "18672393036",
"updateTime": "2025-12-12 09:41:40",
"delFlag": "0",
"id": "1999293545418145794",
"name": "e0bc2e17",
"type": "1",
"client": "pc",
"channel": "natural",
"userId": "47",
"systemFlag": "2"
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| type | String | 是 | 才艺类型(1:个人演唱,2:个人演讲) |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
| 才艺对象属性 | | |
| createBy | String | 创建人 |
| createTime | LocalDateTime | 创建时间 |
| updateBy | String | 更新人 |
| updateTime | LocalDateTime | 更新时间 |
| id | Long | 才艺Id |
| name | String | 才艺名称 |
| type | String | 才艺类型(1:个人演唱,2:个人演讲) |
| client | String | 客户端 |
| channel | String | 渠道 |
| userId | Long | 用户Id |
| systemFlag | String | 才艺权限(1:公开可见,2:仅个人可见) |
PUT /web/talent/edit
curl -X PUT https:
-H 'Authorization: Bearer 8thQxHLFXwpEbub_AYQEMwjqAfMzGmA7DuRTggx28pWKT4ji1xwJ3dn7QePpAdBBTPQz7fgnsMiyMhspQg0_klCP9ci3856nvyaH7Qyvfoo7NdreXDtiupW8iKmbo6Rp'\
-H 'Content-Type: application/json' \
-d '{
"songId": "80",
"videoPath": "/nuwa-ai/47/talent/1999293545418145794/cb882de8b5fd42c3a9f549c14843df9e.mp4",
"name": "A032",
"songPath": "/pub-nuwa/admin/music/192643bf5b154bd6920be4278be36fe6.mp3",
"type": "1",
"style": "",
"songName": "七夕之约",
"acappella": "/pub-nuwa/admin/music/c615b8a14c15428fbb8fa0c0d79e7227.mp3",
"songFrom": "1",
"lyric": "/pub-nuwa/admin/music/79ab6e5076694db0ae00e1655146c9b5.lrc",
"subtitlesStatus": "0",
"id": "1999293545418145794"
}'
{
"code": 0,
"msg": null,
"data": true
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| id | Long | 是 | 才艺编号 |
| name | String | 是 | 才艺名称 |
| type | String | 是 | 才艺类型(1:个人演唱,2:个人演讲) |
| videoPath | String | 是 | 场景视频路径 |
| style | String | 否 | 风格 |
| songId | Long | 否 | 音乐Id |
| songPath | String | 否 | 音乐路径 |
| songName | String | 否 | 音乐名称 |
| songFrom | String | 否 | 音乐来源(1:平台,2:我创作的,3:本地上传) |
| lyric | String | 否 | 歌词文件路径 |
| subtitlesStatus | String | 是 | 字幕状态(0:不开启,1:开启) |
| acappella | String | 否 | 分离的人声音路径 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Boolean | true:成功,false:失败 |
DELETE /web/talent/delete/{id}
curl -X DELETE https:
-H 'Authorization: Bearer 8thQxHLFXwpEbub_AYQEMwjqAfMzGmA7DuRTggx28pWKT4ji1xwJ3dn7QePpAdBBTPQz7fgnsMiyMhspQg0_klCP9ci3856nvyaH7Qyvfoo7NdreXDtiupW8iKmbo6Rp'
{
"code": 0,
"msg": null,
"data": true
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| id | Long | 是 | 才艺Id |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Booelan | true:成功,false:失败 |
POST /web/talent/preview
curl -X POST https:
-H 'Authorization: Bearer 8thQxHLFXwpEbub_AYQEMwjqAfMzGmA7DuRTggx28pWKT4ji1xwJ3dn7QePpAdBBTPQz7fgnsMiyMhspQg0_klCP9ci3856nvyaH7Qyvfoo7NdreXDtiupW8iKmbo6Rp'\
-H 'Content-Type: application/json' \
-d '{
"songId": "80",
"videoPath": "/nuwa-ai/47/talent/1999293545418145794/cb882de8b5fd42c3a9f549c14843df9e.mp4",
"name": "A032",
"songPath": "/pub-nuwa/admin/music/192643bf5b154bd6920be4278be36fe6.mp3",
"type": "1",
"style": "",
"songName": "七夕之约",
"acappella": "/pub-nuwa/admin/music/c615b8a14c15428fbb8fa0c0d79e7227.mp3",
"songFrom": "1",
"lyric": "/pub-nuwa/admin/music/79ab6e5076694db0ae00e1655146c9b5.lrc",
"subtitlesStatus": "0",
"id": "1999293545418145794"
}'
{
"code": 0,
"msg": null,
"data": "a516fb5714484f14bfb4723bbaa9dc0d"
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| id | Long | 是 | 才艺编号 |
| name | String | 是 | 才艺名称 |
| type | String | 是 | 才艺类型(1:个人演唱,2:个人演讲) |
| videoPath | String | 是 | 场景视频路径 |
| style | String | 否 | 风格 |
| songId | Long | 否 | 音乐Id |
| songPath | String | 否 | 音乐路径,个人演唱必填,个人演讲非必填 |
| songName | String | 否 | 音乐名称 |
| songFrom | String | 否 | 音乐来源(1:平台,2:我创作的,3:本地上传) |
| lyric | String | 否 | 歌词文件路径,个人演唱必填,个人演讲非必填 |
| subtitlesStatus | String | 是 | 字幕状态(0:不开启,1:开启) |
| acappella | String | 是 | 分离的人声音路径,个人演唱必填,个人演讲非必填 |
| voiceType | String | 否 | 声音类型(3:豆包,5:复刻),个人演讲必填,个人演唱非必填 |
| modeName | String | 否 | 声音模型名称,个人演讲必填,个人演唱非必填 |
| speechText | String | 否 | 演讲文案,个人演讲必填,个人演唱非必填 |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | String | 请求Id,用于查询才艺是视频生成结果 |
POST /web/talent/talentList
curl -X POST https:
-H 'Authorization: Bearer 8thQxHLFXwpEbub_AYQEMwjqAfMzGmA7DuRTggx28pWKT4ji1xwJ3dn7QePpAdBBTPQz7fgnsMiyMhspQg0_klCP9ci3856nvyaH7Qyvfoo7NdreXDtiupW8iKmbo6Rp'\
-H 'Content-Type: application/json' \
-d '
{
"name": "",
"type": "",
"current": 1,
"size": 15,
"systemFlag": "2"
}
'
{
"code": 0,
"msg": null,
"data": {
"records": [
{
"createTime": "2025-12-01 16:02:11",
"updateTime": "2025-12-01 18:01:55",
"id": "1995403034264707074",
"name": "b3baac21",
"type": "1",
"thumbnailPath": "/pub-nuwa/4000170/talent/1995403034264707074/0f5bf4fd6e934ab7b3fbdef049505b6c.jpg",
"preStatus": "0",
"storage": "4906412",
"userId": "4000170",
"nickName": "林墨麟"
},
{
"createTime": "2025-12-01 09:16:14",
"updateTime": "2025-12-01 09:20:44",
"id": "1995300872645877762",
"name": "青春旋律",
"type": "1",
"thumbnailPath": "/pub-nuwa/4000170/talent/1995300872645877762/df380a72f7ef4b4bb513ced80e7c544c.jpg",
"preStatus": "2",
"storage": "41966629",
"userId": "4000170",
"nickName": "林墨麟"
}
],
"total": 22,
"size": 2,
"current": 1,
"pages": 11
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| current | Long | 是 | 当前页 |
| size | Long | 是 | 每页记录数 |
| systemFlag | String | 是 | 权限(1:公开可见,2:仅个人可见) |
| name | String | 否 | 才艺名称 |
| type | String | 否 | 才艺类型(1:个人演唱,2:个人演讲) |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
| records | Array | 才艺列表 |
| current | Long | 当前页(从1 开始) |
| size | Long | 每页记录数 |
| total | Long | 总记录数 |
| pages | Long | 总页数 |
| 才艺对象属性 | | |
| id | Long | 才艺Id |
| name | String | 才艺名称 |
| type | String | 才艺类型(1:个人演唱,2:个人演讲) |
| thumbnailPath | String | 视频缩略图路径 |
| storage | Long | 占用存储空间大小(单位:Byte) |
| userId | Long | 用户Id |
| nickName | String | 用户昵称 |
| createTime | LocalDateTime | 创建时间 |
| updateTime | LocalDateTime | 更新时间 |
GET /web/talent/detail/{id}
curl -X GET https:
-H 'Authorization: Bearer 7gtVj6W2PtnaYnAwPaGSdPf2H07oMJs9Yxe1RSxonDmPuMiIuRJNb1nc7Tz9vKbBf_byrTvEiufnoYGgapIDL-tjv7bhFaLSA7Zp37CXbI2DcNfyP_eAQFs6uOyCQM7V'\
-H 'Content-Type: application/json' \
{
"code": 0,
"msg": null,
"data": {
"createTime": "2025-11-25 14:29:56",
"updateTime": "2025-11-25 21:18:30",
"id": "1993205490860269569",
"name": "A0012",
"type": "2",
"previewPath": "/nuwa-ai/talent/1993205490860269569/video-3f6bacb0400b403d98e1a6b70df7821b.mp4",
"videoPath": "/nuwa-ai/4000170/talent/1993205490860269569/d6056ccbea144ffaaa2e1cbb6f25b7b7.mp4",
"thumbnailPath": "/pub-nuwa/4000170/talent/1993205490860269569/14b459fe4ca344f7ba05ef1c68d137bb.jpg",
"style": "现代",
"songId": "74",
"songPath": "/pub-nuwa/admin/music/8c95aa1cee1d4c89b328478b3b50e269.mp3",
"songFrom": "1",
"songName": "假如给我三天光明",
"songVolume": 0.5,
"subtitlesStatus": "0",
"labiate": 1.5,
"acappella": null,
"lyric": null,
"soundPath": "/pub-nuwa/admin/audio/571901a4f8974cedafc081c9ce5c9006.wav",
"soundName": "新闻女主播",
"speedSpeech": 1,
"speechText": ""
"voiceType": "5",
"modeName": "index:新闻女主播__d67c8ff2",
"preStatus": "2",
"storage": "60905886",
"client": "pc",
"channel": "natural",
"userId": "4000170",
"systemFlag": "2"
}
}
| 参数名 | 参数类型 | 是否必填 | 参数说明 |
|---|
| id | Long | 是 | 才艺Id |
| 参数名 | 参数类型 | 参数说明 |
|---|
| code | Integer | 0:请求成功,非0 :请求失败 |
| msg | String | 响应码 描述 |
| data | Object | 接口响应数据 |
| id | Long | 才艺Id |
| name | String | 才艺名称 |
| type | String | 才艺类型(1:个人演唱,2:个人演讲) |
| previewPath | String | 生成的才艺视频路径 |
| videoPath | String | 场景视频路径 |
| thumbnailPath | String | 视频缩略图路径 |
| style | String | 风格 |
| songId | Long | 音乐Id |
| songPath | String | 音乐路径 |
| songFrom | String | 音乐来源(1:平台,2:我创作的,3:本地上传) |
| songName | String | 音乐显示名称 |
| songVolume | BigDecimal | 音乐音量 |
| subtitlesStatus | String | 字幕状态(0:不开启,1:开启) |
| labiate | BigDecimal | 唇形 |
| acappella | String | 分离的人声音路径 |
| lyric | String | 歌词文件路径 |
| soundPath | String | 演讲声音路径 |
| soundName | String | 演讲声音显示名称 |
| speedSpeech | BigDecimal | 语速 |
| speechText | String | 演讲文案 |
| voiceType | String | 声音类型(3:豆包,5:复刻) |
| modeName | String | 声音模型名称 |
| preStatus | String | 才艺预览地址状态(1:创建中,2:创建成功,3:创建失败) |
| actions | String | 动作列表 |
| storage | Long | 占用存储空间大小(单位:Byte) |
| client | String | 客户端 |
| channel | String | 渠道 |
| userId | Long | 用户Id |
| systemFlag | String | 权限(1:公开可见,2:仅个人可见) |
- 测试数字人:与数字人进行交互,测试其表现
- 收集反馈:收集用户反馈,找出问题和改进空间
- 优化数字人:根据反馈调整数字人的形象、声音和智能对话能力
- 部署数字人:将优化后的数字人部署到实际应用场景
本节将介绍数字人创作的高级功能和技巧,帮助您创建更加专业和个性化的数字人。
- 参考素材选择:选择高质量、清晰的参考图片或视频
- 提示词优化:使用详细、具体的提示词来指导AI生成形象
- 风格一致性:确保数字人的形象风格与应用场景一致
- 细节调整:关注数字人的面部表情、服装细节等
- 参考音频选择:选择音质清晰、风格符合数字人定位的参考音频
- 声音特征调整:根据数字人的性格和角色调整声音的音调、语速等
- 情感表达:确保数字人的声音能够表达适当的情感
- 多语言支持:根据需要为数字人添加多语言能力
- 角色设定:为数字人设定详细的角色背景和性格特点
- 专业知识注入:为数字人添加特定领域的专业知识
- 对话风格调整:根据应用场景调整数字人的对话风格
- 技能组合:为数字人组合多种技能,提高其能力
本节将解答数字人创作中常见的问题,并提供解决方案。
问题:生成的形象不符合预期
解决方案:
- 提供更详细、具体的提示词
- 选择更合适的参考素材
- 尝试不同的生成模型
- 调整生成参数
问题:形象生成失败
解决方案:
- 检查参考素材的质量和格式
- 确保API调用参数正确
- 检查账户余额是否充足
- 联系技术支持
问题:克隆的声音与参考音频差异较大
解决方案:
- 提供更长、更清晰的参考音频
- 确保参考音频中的语音特征明显
- 调整声音克隆参数
- 尝试不同的声音模型
问题:声音生成失败
解决方案:
- 检查参考音频的质量和格式
- 确保API调用参数正确
- 检查账户余额是否充足
- 联系技术支持
问题:智能体对话不自然
解决方案:
- 完善智能体的角色设定和背景信息
- 为智能体添加更多的专业知识
- 优化对话流程和语言风格
- 测试不同的对话场景
数字人创作是一项融合了多种技术的复杂过程,需要综合考虑形象、声音、智能对话等多个方面。通过本教程,您应该已经了解了数字人创作的核心概念、技术原理和完整流程,以及如何使用NuwaAI平台的API进行数字人创作。
数字人技术正在快速发展,未来将在更多领域得到应用。我们将持续改进数字人技术,不断探索和创新,创建更加智能、自然的数字人,为您提供更好的服务和支持。