Files
antiwear-web/README.md
ZF sun ca5f3369bf docs: 更新README并添加华为云认证凭证文件
添加华为云AK/SK获取指南到README文档
新增credentials.csv文件用于存储认证信息
2026-04-29 17:38:24 +08:00

262 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 华为交互数字人 - HwICSUiSdk 标准集成项目
这是一个基于 HwICSUiSdk 的华为交互数字人标准集成示例项目,展示了如何在前端项目中集成和使用数字人交互功能。
## 📁 项目结构
```
antiwear-web/
├── hwICSUiSdk/ # SDK 目录(已提供)
│ ├── HwICSUiSdk.esm.js # ESM 模块入口
│ ├── HwICSUiSdk.d.ts # TypeScript 类型定义
│ ├── HwICSUiSdk.css # SDK 样式
│ └── ...
├── server/ # 后端服务
│ ├── index.js # 后端主入口
│ └── package.json # 后端依赖
├── scripts/
│ ├── main.js # 主逻辑代码
│ └── api.js # 前端 API 调用模块
├── styles/
│ └── main.css # 自定义样式
├── index.html # 主页面
└── README.md # 项目说明
```
## 🚀 快速开始
### 1. 环境要求
- Node.js 14+ (后端服务)
- 现代浏览器(Chrome、Firefox、Edge、Safari 最新版本)
- 支持 WebRTC 和 WebSocket
- 需要麦克风权限(用于语音交互)
### 2. 获取华为云 AK/SK
访问密钥(AK/SK,Access Key ID/Secret Access Key)是您在华为云的长期身份凭证,用于 API 请求签名认证。
#### 获取步骤
1. 登录 [华为云控制台](https://console.huaweicloud.com)
2. 将鼠标移至右上角用户名处,在下拉列表中单击 **"我的凭证"**
3. 单击 **"访问密钥"** 区域
4. 单击 **"新增访问密钥"**
5. 输入描述信息后单击 **"确定"**
6. 单击 **"立即下载"** 下载密钥文件(credentials.csv)
> **注意**:
> - 每个用户最多可创建 **2个** 访问密钥
> - 每个访问密钥仅能下载 **一次**,请妥善保管
> - 访问密钥永久有效,建议定期更换
下载的 CSV 文件内容示例:
```
username,user_id,access_key,secret_access_key
username@example.com,xxxxxxx,AKXXXXXXXXXX,skXXXXXXXXXX...
```
其中:
- **AK**(Access Key):对应环境变量 `HUAWEI_AK`
- **SK**(Secret Access Key):对应环境变量 `HUAWEI_SK`
#### 获取项目 ID(Project ID)
项目 ID 获取方式:
1. 登录华为云控制台
2. 进入 "我的凭证" > "项目 ID"
3. 或访问 [获取项目ID](https://support.huaweicloud.com/api-metastudio/metastudio_02_0006.html)
### 3. 后端服务配置
#### 方式一:使用 AK/SK 认证(推荐)
设置环境变量:
```bash
# Windows
set HUAWEI_AK=your_access_key
set HUAWEI_SK=your_secret_key
set HUAWEI_PROJECT_ID=your_project_id
```
```bash
# Linux/Mac
export HUAWEI_AK=your_access_key
export HUAWEI_SK=your_secret_key
export HUAWEI_PROJECT_ID=your_project_id
```
#### 方式二:使用用户名密码认证
```bash
# Windows
set HUAWEI_USERNAME=your_username
set HUAWEI_PASSWORD=your_password
set HUAWEI_DOMAIN_NAME=your_domain_name
set HUAWEI_PROJECT_ID=your_project_id
```
```bash
# Linux/Mac
export HUAWEI_USERNAME=your_username
export HUAWEI_PASSWORD=your_password
export HUAWEI_DOMAIN_NAME=your_domain_name
export HUAWEI_PROJECT_ID=your_project_id
```
### 4. 启动服务
#### 启动后端服务
```bash
cd server
npm install
npm start
```
后端服务将在 `http://localhost:3001` 启动。
#### 启动前端项目
在另一个终端窗口:
```bash
# 使用 Python 3
python -m http.server 8080
# 或使用 Node.js 的 http-server
npx http-server -p 8080
# 或使用 VS Code Live Server 插件
```
然后在浏览器中访问 `http://localhost:8080`
### 5. 配置参数
#### 默认参数(已预填)
| 参数 | 默认值 |
|------|--------|
| 服务器地址 | `metastudio-api.cn-north-4.myhuaweicloud.com` |
| 机器人ID | `2c9084bf9c9cc1c0019db2c4ca2a5c89` |
| 项目ID | `c67bf5e7d1f84d20a6eefff2c1ee9cd4` |
### 6. 使用流程
1. **启动后端服务**:`cd server && npm start`
2. **启动前端服务器**:`python -m http.server 8080`
3. **获取授权码**:点击页面上的 "🔑 获取授权码" 按钮
4. **初始化 SDK**:点击 "初始化 SDK" 开始使用
## 📖 功能说明
### 核心功能
1. **SDK 初始化与销毁**
- 初始化:配置服务器地址、机器人ID等参数
- 销毁:释放资源,清理数字人实例
2. **对话控制**
- 开始对话:启动数字人交互会话
- 停止对话:结束当前会话
3. **语音交互**
- 开始说话:启动语音识别,用户语音输入
- 停止说话:结束语音识别
4. **文本交互**
- 发送文本消息给数字人
5. **其他控制**
- 打断说话:立即中断数字人当前说话
- 静音/取消静音:控制远程音频
### 事件监听
SDK 提供了丰富的事件回调:
| 事件 | 说明 |
|------|------|
| ERROR | 错误事件 |
| JOB_INFO_CHANGE | 任务信息变更 |
| SPEAKING_START | 数字人开始说话 |
| SPEAKING_STOP | 数字人停止说话 |
| SPEECH_RECOGNIZED | 语音识别结果 |
| SEMANTIC_RECOGNIZED | 语义识别结果 |
| ENTER_SLEEP | 进入休眠状态 |
| ENTER_ACTIVE | 进入激活状态 |
| JOB_END | 任务结束 |
## 🔧 开发指南
### 前端 API 调用
后端服务提供了以下接口:
#### 获取一次性授权码
```
POST /api/once-code
```
响应示例:
```json
{
"once_code": "OATAXWpTNDPGjVyzxNLKvumcv297Q7uUz5CCltLtFDE1uqnPAPmS4jm61XnMQGuV"
}
```
错误响应:
```json
{
"error_code": "CONFIG_MISSING",
"error_msg": "请配置环境变量 (AK/SK 或用户名密码)"
}
```
### 后端接口
| 接口 | 方法 | 说明 |
|------|------|------|
| /api/once-code | POST | 获取一次性授权码 |
| /health | GET | 健康检查 |
## ⚙️ 配置选项
SDK 支持多种配置项:
| 配置项 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| ENABLE_CAPTION | boolean | true | 启用字幕显示 |
| ENABLE_CHAT_BTN | boolean | true | 启用聊天按钮 |
| ENABLE_HOT_ISSUES | boolean | true | 启用热点问题 |
| SHOW_LANGUAGE_UI | boolean | true | 显示语言切换UI |
| ENABLE_DEVICE_SETTING | boolean | true | 启用设备设置 |
| ENABLE_NETWORK_CHECK | boolean | true | 启用网络检查 |
| AUTO_PLAY_REMOTE_VIDEO | boolean | true | 自动播放远程视频 |
| DEFAULT_MUTE_REMOTE_AUDIO | boolean | false | 默认静音远程音频 |
## 📝 注意事项
1. **HTTPS 要求**:在生产环境中,WebRTC 功能需要在 HTTPS 环境下运行
2. **浏览器权限**:首次使用需要授权麦克风和摄像头权限
3. **资源释放**:页面卸载时务必调用 `destroy()` 方法释放资源
4. **错误处理**:建议对所有异步操作添加错误处理
5. **后端服务**:获取授权码需要启动后端服务并配置正确的环境变量
## 🔍 调试技巧
1. 使用浏览器开发者工具查看控制台日志
2. 调整日志级别查看详细信息:
```javascript
HwICSUiSdk.setLogLevel('debug'); // debug | info | warn | error | none
```
3. 查看网络面板监控 WebSocket 连接
## 📄 许可证
本项目仅供学习和参考使用。
## 🤝 技术支持
如有问题,请参考 HwICSUiSdk 官方文档或联系技术支持。