65 lines
3.9 KiB
Markdown
65 lines
3.9 KiB
Markdown
# Windows 本地真实 RTC 联调
|
||
|
||
该覆盖层只用于本机联调,不访问阿里云服务器。它把 API 的 RTC Token 签发器和 Worker 的语音供应商切换到火山引擎,同时保留数据库、Redis、MinIO、Keycloak和告警模拟器在本地 Docker 中运行。
|
||
|
||
## 1. 生成本地凭据
|
||
|
||
在项目根目录运行:
|
||
|
||
```powershell
|
||
.\deploy\local-rtc\configure.ps1
|
||
```
|
||
|
||
如果还要同时验证方舟大模型总结,可改用:
|
||
|
||
```powershell
|
||
.\deploy\local-rtc\configure.ps1 -EnableArkSummary
|
||
```
|
||
|
||
该模式会额外隐藏读取方舟API Key和内容模型Endpoint ID,并通过只读密钥文件传给Worker。
|
||
如果 RTC 配置已经存在,只需要补充大模型总结,不必使用`-Force`重录全部密钥。先在[方舟 API Key 控制台](https://console.volcengine.com/ark/region:ark+cn-beijing/apikey)创建密钥,再运行:
|
||
|
||
```powershell
|
||
.\deploy\local-rtc\configure-ark-summary.ps1
|
||
```
|
||
|
||
该脚本只更新`ark-api-key`、`CONTENT_GENERATOR`和`ARK_CONTENT_MODEL`,不会修改已有RTC、语音或设备凭据。当前Chat API既支持模型Model ID,也支持Endpoint ID;脚本默认使用`doubao-seed-2-0-lite-260215`,如果账号未开通该模型,可在提示中填写已开通的Model ID或Endpoint ID。
|
||
|
||
脚本会以隐藏输入方式依次读取:
|
||
|
||
- RTC AppKey;
|
||
- 火山引擎 AccessKey ID / Secret AccessKey;
|
||
- 豆包端到端语音 APP ID / Access Token;
|
||
- 豆包音色 ID。
|
||
|
||
密钥文件只生成到`deploy/local-rtc/runtime`,该目录不会提交到 Git。当前首轮联调使用豆包 S2S-O 纯端到端模式(`OutputMode=0`),平台本地路由仍沿用`s2s_hybrid`模板槽位;这是为了只依赖豆包端到端语音凭据,先验证真实双向音频。后续接入火山方舟 Endpoint 后再切换真正的混合编排模式。
|
||
|
||
## 2. 启动本地后端
|
||
|
||
```powershell
|
||
.\deploy\local-rtc\start.ps1
|
||
```
|
||
|
||
首次构建需要下载 Docker 基础镜像。脚本会等待`http://localhost:58080/health/ready`可用。
|
||
|
||
## 3. 启动模拟器
|
||
|
||
双击`device-simulator-windows/release/voice-device-simulator-0.1.0-windows-x64.exe`,然后:
|
||
|
||
1. 保持默认本地平台地址、设备 ID 和本地测试设备密钥;
|
||
2. 点击“检测平台和音频设备”;
|
||
3. 选择麦克风和扬声器;
|
||
4. 确认同一个RTC AppID已在RTC控制台的“实时字幕”功能中启用流式语音识别;
|
||
5. 点击“开始语音聊天”;
|
||
6. 看到“RTC 实时字幕已启动”和“豆包语音任务已激活”后直接说话;
|
||
7. 确认“实时字幕与上传”区域同时出现长者和豆包话轮;
|
||
8. 点击“结束通话”验证字幕补交、`StopVoiceChat`和RTC离房。
|
||
|
||
实时字幕要求先在豆包语音控制台创建服务类型为“流式语音识别”的应用,再在RTC控制台的实时字幕配置中填写该应用的APP ID、Access Token和Cluster ID。未开通或配置不匹配时SDK返回`ServiceAccessDenied`;这与“实时对话式AI > 回调设置”无关,不需要为字幕上传填写回调URL。
|
||
|
||
通话结束后,Worker会根据最终话轮生成通话摘要、关键词、开放话题和待审核故事。只有人工确认故事后才会进入长期记忆,这是既有授权与审核边界,模拟器不会绕过审核自动写入长期记忆。本地默认`CONTENT_GENERATOR=local`仅用于确定性闭环验证;要验证真实大模型总结,必须另外为Worker配置`CONTENT_GENERATOR=ark`、`ARK_API_KEY_FILE`和`ARK_CONTENT_MODEL`。
|
||
|
||
当新通话冻结快照中的`story_extraction`和`personalized_memory`授权均有效时,平台会把最近3次已完成通话的就绪摘要作为短期连续上下文注入豆包;S2S-O模式使用`dialog.system_role`,无需开启供应商侧`dialog_id`历史留存。长者档案中的“避免主动提及”话题也会从下一次开房起一并生效。
|
||
|
||
RTC AppKey、火山 AK/SK 和豆包 Access Token 均不进入模拟器安装包,也不会通过渲染页面读取。
|