我先不加词汇服务。把现在这条链讲清楚,才能知道下一步应该改哪里。

要解决什么

页面已经能提交和阅读任务,但界面上显示“已完成”,并不能解释文件去了哪里、谁推进了下一步。这篇只记录本地代码事实,不把未来设计算进去。

有哪些看法,我怎么选

可以按目录一个个读,也可以从一个请求追下去。我选后者:用同一个用户、一段短音频,记下每次产生的 ID。

现在实际怎样运行

浏览器申请上传地址 → 直传对象存储 → 确认文件完成
  → API 创建任务 → 任务服务投递 transcode
  → 转码 Worker 上传 WAV 并上报
  → 任务服务切换阶段,投递 transcribe
  → 转写 Worker 上传 JSON 并上报 → 任务完成

关键入口都在 Vox 仓库内:

位置现在做的事
01_apiService/internal/handler/JWT 用户请求、文件和任务 HTTP 接口
02_fileService/internal/service/service.go文件记录、所有权检查、签名地址、上传完成校验
03_taskService/internal/service/task.go创建任务、转码完成后推进转写
03_taskService/internal/distributor/rabbitmq.go按 routing key 投递两个处理队列
06_transcodeService/internal/normalizer/ffmpeg.go提取音频并转换为 16kHz 单声道 WAV
04_transcriberService/internal/transcriber/whisper.go加载模型、识别文本和段落时间戳
web/app.js录音或上传、任务列表、播放器与字幕跟随

任务表已经保存 stagelanguage,但查询任务的 protobuf 没有返回这两个字段。前端看不到它们,是接口契约缺了一段。词汇服务目前只打印一句占位文字;没有看到总结服务实现。

还要记住三个缺口:任务入库和发消息分两步;Worker 处理报错后仍会 Ack;任务只有一个会随阶段变化的输出文件 ID。这些分别留到 03—05 篇解决。

k8s/ 有 Worker 和 KEDA 配置,只能说明写了部署方案,不能证明线上扩缩容已经验证。转写 Dockerfile 也不能作为 CUDA 或 Metal 已启用的证据。

我会怎样验证

先用浏览器网络面板记录 file_idtask_id,再查看同一任务的服务日志和文件列表。确认输入、转码产物、转写 JSON 能对应上,JSON 包含 text 和带毫秒时间戳的 segments

前端的浏览器回归使用模拟 API;它能验证交互,不能替代这次真实链路检查。验收记录要另外注明真实使用的存储、模型和 Worker。

这一轮做到能回答“哪段代码推进了下一步、失败在哪儿能看见”,就够了。

目录 · 下一篇:云端和边缘怎么分工