ai-chatbot/docs/video-canvas-audio-director-2026-09-17.md

41 lines
4.2 KiB
Markdown
Raw Permalink 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.

# 阿里云音频与导演台扩展实施记录
日期:2026-09-17。此记录接续 video-canvas-task-repairs-2026-09-17.md。
## 已完成代码
- 语音/音乐节点从仅上传改为官方模型选择、文本、音色、语言、格式、指令和歌曲参数。控件严格跟随所选模型能力,千问3 TTS 不发送其不支持的数值音调/速度参数。
- 阿里云 HTTP 适配:qwen3-tts-flash、qwen3-tts-instruct-flash、qwen-audio-3.0-tts-flash/plus、fun-music-v1。北京限定模型不能错用国际服务地址;使用原服务商密钥,不给浏览器返回密钥。
- 音频加入持久任务队列。先记录供应商原文件,再下载校验 WAV/MP3 并归档;转存失败只恢复下载,网络受理状态不明不会自动再次生成。
- 导演台 AI 识图入口:调用当前视觉理解模型,把参考图转为人物/立方体/球体和机位组成的可编辑简化布景。结果独立保存,允许显式插入或替换原对象。不是精细纹理/网格重建,也没有凭空生成 GLB。
- 对象轨道包含位置、旋转、缩放、可见性、启用开关、线性/缓入缓出插值、逐帧时间编辑/删除、自动记录、秒/30fps 显示单位、时间轴缩放。旋转按最短弧插值;对象删除清理轨道;修改总时长同步缩放轨道。
- 相机与对象共用播放头和导出时间;跟随相机采样运动后的目标对象。纯对象动画也可预览和导出。场景骨骼动作序列、声音轨道、跨机位自动切镜尚未实现。
- 修正浏览器 crypto.randomUUID 失去调用上下文导致记录帧/插入布景报 Illegal invocation;修正视频编码器立即停止可能丢掉末帧,预热首帧并留出末帧呈现时间。
## 48 服务器配置
已使用 `scripts/configure-aliyun-canvas-audio.cjs --apply` 写入现有阿里云官方北京服务商,保留其他模型和全局默认设置;变更前模型记录备份在应用目录 `.model-config-backups/`(不含服务商密钥)。
- qwen3-tts-instruct-flash:启用,音频页面优先顺序 900。
- qwen3-tts-flash:启用,顺序 901。
- fun-music-v1:已建配置,禁用,标记 activationRequired,等待账号邀测权限确认。
- Qwen Audio 3.0:适配已写,当前 Key 的只读 models 目录未列出,未盲目启用。
- 千问3.8既有视觉理解配置保留。
只读调用官方模型目录返回 HTTP 200,包含千问3 TTS/指令版;未发起真实付费语音/音乐/识图生成。模型目录可见性不能代替生成效果验收。
[千问 TTS 官方文档](https://help.aliyun.com/zh/model-studio/qwen-tts-api);[新音频 HTTP 文档](https://help.aliyun.com/zh/model-studio/cosyvoice-tts-http-api);[Fun-Music 官方文档](https://help.aliyun.com/zh/model-studio/fun-music-api)(邀测、北京地域、临时文件 24 小时)。
## 验证
- helpers 全套 475 项通过;追加总时长/删除对象轨道用例后导演台 24 项通过,合计覆盖 476 项。
- TypeScript `tsc --noEmit --incremental false` 通过。
- `scripts/qa/video-canvas-audio.cjs` 使用实际服务适配器和本地替身:请求参数、归档前检查点、存储失败后零重复 POST、链接过期、服务商错误、租约丢失均通过。
- `scripts/qa/video-canvas-task-db.cjs` 实际临时 PostgreSQL 验证通过:并发幂等、独占领取、恢复与失效 worker 隔离。
- 本地浏览器调用实际 React 组件和 Three.js:音频能力控件、未开通音乐拦截、对象播放头/关键帧编辑/帧单位、独立对象动画视频导出、重建结果插入/替换通过,无浏览器运行错误。模型与上传返回使用本地替身。
- 真实浏览器录制文件经 ffprobe 确认为 VP9、1280×720;设置 2 秒,文件约 1.974 秒。提取首尾帧确认对象实际移动。MediaRecorder 属于实时录制,受浏览器帧调度影响,不能宣称离线逐帧精确编码。
参考站及开源自动剪辑算法详见 `video-canvas-smart-edit-research-2026-09-17.md`。该部分为已完成研究和实施方案,尚未接入完整自动混剪服务。
部署状态:本次生产环境仅更新上述模型配置;应用代码在开发分支完成,未发布到生产应用。