【免费下载链接】F1ReplayTiming
Visualisation of real-time track data and telemetry synced to F1 replays.
F1 Replay Timing 是一款把 F1 实时赛道数据、遥测与官方回放视频精确同步的可视化项目,它的车队无线电字幕功能尤为亮眼:Whisper 本地语音识别先“听写”,多模态 AI 再“校对”,两条引擎自动为车手无线电生成逐字字幕,让你在回放和直播中同步看懂每一次 Box Box。
功能全景:赛车旁边的无线电弹层 🎧
F1 官方会在直播计时流中挑出约 20–40 条精彩无线电,发布车手编号、时间戳和 MP3 链接——但只发音频,不发文字。F1 Replay Timing 的解法很巧妙:
- 音频直接从 F1 服务器播放,服务器端不存储任何音轨;
- 字幕完全在本地生成:Whisper 先把语音转成文字草稿;
- 开启 AI 校对后,每条草稿再交给能“听声音”的 AI 模型修正;
- 回放页与直播页都会按时间轴弹出弹层:车手姓名 + 字幕 + 原声音频,快进跳过的片段不会连环轰炸。
前端弹层逻辑在 TeamRadio.tsx,字幕数据接口为GET /api/sessions/{year}/{round}/team-radio(见 team_radio.py)。
双引擎字幕是如何生成的 ⚙️
引擎一:Whisper 本地听写(faster-whisper)
核心逻辑在 team_radio.py 的transcribe,几个工程细节让识别率明显提升:
| 细节 | 作用 |
|---|---|
| 动态 initial_prompt | 把本片车手姓氏和当年术语(tyres、safety car、DRS/boost)喂给 Whisper,帮它听对车手名字 |
| VAD 静音过滤 | 跳过无人说话的静默段,防止 Whisper “脑补” |
| 提示回读检测 | 识别出“把提示词读回来”的假字幕并丢弃(见 _is_prompt_echo) |
| 英式拼写修正 | 把多语言模型爱写的 "tires" 强制改成 F1 标准的 "tyres" |
模型按需自动下载到DATA_DIR/whisper,后台下载、进度可见,详见 whisper_models.py。
引擎二:AI 校对(OpenRouter 多模态模型)
_caption_ai.py 会把三样东西打包发给 OpenRouter 上的音频模型:
- 音频本体(Base64 内嵌,模型真的在“听”);
- Whisper 草稿(仅作参考提示);
- F1 语境:正在讲话的车手、全场车手名单、当前赛事、赛季术语表(box box、undercut、safety car…2026 起自动换成 boost/overtake mode)。
指令要求模型严格忠于音频、不添加解释、保留 "copy" "box, box" 等原话,并只返回 JSON(INSTRUCTIONS)。于是 "The clerk" 能被纠正为 "Leclerc"。任何一步失败都会静默回退到 Whisper 草稿,字幕永不缺席。
快速上手:开启 AI 字幕的 3 个步骤 🚀
- 在
.env中加入OPENROUTER_API_KEY(在 OpenRouter 官网获取密钥); - 打开前端Settings → Team Radio,打开Improve captions with AI开关,选择 AI 模型;
- 点击 Save。新选的 Whisper 模型会立刻后台下载,页面实时显示进度条。
也可以在.env中直接配置(环境变量优先,界面上会显示为锁定):
| 环境变量 | 默认值 | 说明 |
|---|---|---|
TEAM_RADIO_AI | false | 开启 AI 校对(需OPENROUTER_API_KEY) |
TEAM_RADIO_AI_MODEL | google/gemini-3.5-flash-lite | 需支持音频输入的 OpenRouter 模型 |
TEAM_RADIO_MODEL | small.en | 回放用的 Whisper 模型 |
TEAM_RADIO_LIVE_MODEL | 同回放 | 直播专用模型(要求更快出字幕) |
TEAM_RADIO_CAPTIONS | true | 设为false关闭字幕(音频照播) |
配置读写与“锁定”规则集中在 caption_settings.py,前端对应 CaptionSettings.tsx。
Whisper 模型怎么选?🧩
| 模型 | 大小 | 特点(树莓派 5 / int8 实测参考) |
|---|---|---|
tiny.en | 75 MB | 最快、最省资源,精度一般 |
base.en | 145 MB | 偏快,精度低于 Small |
small.en | 480 MB | 默认,约 12 秒/条 |
medium.en | 1.5 GB | 实测比 Large v3 Turbo 慢且不更准 |
large-v3-turbo | 1.6 GB | 最准,约 24 秒/条,直播在慢机器上可能跟不上 |
💡 推荐组合:回放页用large-v3-turbo换最高精度,直播通过TEAM_RADIO_LIVE_MODEL换成small.en,保证字幕在转播延迟内就绪。设置保存后对新处理的车次生效,旧场次重新处理即可刷新字幕。
项目结构速览 📁
- 字幕主流程:backend/services/team_radio.py
- AI 校对引擎:backend/services/caption_ai.py
- 设置与模型清单:backend/services/caption_settings.py
- 模型后台下载:backend/services/whisper_models.py
- 字幕设置 API:backend/routers/team_radio.py
- 全部环境变量说明:README.md
不用写一行代码,只要一个 API Key,你就拥有了自动滚动、中英俱乐部车手全名、赛季术语精准的车队无线电字幕——这正是 F1 Replay Timing 把“双引擎”玩明白的样子。🏁
【免费下载链接】F1ReplayTiming
Visualisation of real-time track data and telemetry synced to F1 replays.
相关推荐
AI字幕生成器 Whisper-WebUI:一键生成精准字幕的智能解决方案
AI字幕生成器 Whisper WebUI:一键生成精准字幕的智能解决方案 🚀 革命性的AI字幕生成工具Whisper WebUI,让字幕制作变得前所未有的简
语音音频AI 应用Matrix-3D 是什么?Skywork 全景视频生成与3D世界重建神器完整介绍
Matrix 3D 是什么?Skywork 全景视频生成与3D世界重建神器完整介绍 Matrix 3D 是 Skywork 开源的全景视频生成与 3D 世界重建
双字幕、在线搜索、AI翻译一键搞定:mpvRx字幕系统功能全解
双字幕、在线搜索、AI翻译一键搞定:mpvRx字幕系统功能全解 mpvRx 是 Android 上功能最强的开源媒体播放器之一,它的字幕系统把「双字幕同屏、在线
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考