冲到 OpenAI 社区榜二,我做了个让 C 罗解说梅西比赛的 AI 解说员丨开源项目分享

四年一度的世界杯来了。看比赛的时候我冒出一个念头:解说员那么多如果没有我心仪的,能不能自己动手搓一个新的 AI 实时解说员?


于是就有了这个项目。做完我把它发到 OpenAI 的 Reddit 社区,没想到当天冲到了日榜第二,评论区不少人问原理、问怎么搭,还提出了很多我自己都没想到的新点子。所以干脆把原理和玩法整理成文,一次讲清楚。


图片


先看一段效果。这场比赛是美国对阵比利时,解说员是"特朗普":个人特色非常鲜明,夸人有自己的一套,还有自己的专属口头禅,总能将话题引到自己身上。


视频里发生的事,说白了就一句话:给一路真实的直播流,配一个会看画面、会实时开口的 AI 解说员。这就是我开源的 WorldCupVoice (https://github.com/zicojiao/worldcupvoice)。


它不是把比赛录下来事后配音,是真·实时:直播流进来,AI 看着和观众一模一样的画面,生成的语音再被送回直播间。世界杯只是它最好看的演示场景,这套链路适用于任何一路直播。


准确而言,这个不大的小项目,把「实时直播 + 大模型看懂画面 + AI 开口解说」这条最难的链路整个跑通了。



除了图一乐,好像还真能做点有意义的事情


一个是无障碍辅助(Accessibility),给视障人士做专业解说。


这个想法来自 Reddit 评论区一位网友的回复。真人解说默认"你看得见画面",所以很多球场细节他不会讲——球在哪、压力从哪侧压上来、谁在悄悄前插。这些对看得见的人是废话,对看不见的人却是全部。AI 可以把这些被省略的空间信息补回来,给视障观众一份"看得见的解说"。它不是要取代真人,而是补上真人会跳过的那部分。


图片


另一个是普及大众赛事,让普通人的比赛也有自己的解说席。


当直播与 AI 解说的链路打通,解说员的人设、语气、水平就都能换。脑洞随之打开:让"梅西"去解说 C 罗的比赛是什么画风?给小区幼儿园的足球赛配一段央视级解说,孩子追着球跑、旁白热血沸腾,光想就又好笑又期待。再往后,拔河、广场舞、公司年会的趣味运动会,都能有自己的"激情解说席"。


体育解说一直是少数专业场合才有的待遇。而这套东西,理论上能把“专业解说”下放给每一场普通人自己的比赛——这才是我觉得它最有意思的地方。





一图看懂 AI 实时解说的架构


很多人以为"AI 解说"就是丢段视频给大模型让它说几句。难点恰恰在于:这是直播,要求边看、边想、边说,还得快。顺着数据流走一遍就明白了:

直播源(OBS/编码器/本地视频)      │  RTMP 推流      ▼Agora Media Gateway  ← 把 RTMP 转成实时音视频      │      ▼  Agora RTC 频道  ──────────┐      │                          │      ▼                          ▼浏览器观众               AI 解说后端(看直播+听AI解说)        │ 1. 采样画面帧                       │ 2. 视觉模型"看懂"                       │ 3. TTS 生成语音                       └──→ 把 AI 声音回推到 RTC 频道

拆开看,频道里其实有三种角色在同一个房间里:


  1. 直播源:把画面推进来的那一路。可以是循环播放的本地视频,也可以是 OBS、摄像头、编码器送来的实时现场画面。

  2. AI 解说员:一个"后端参与者"。它不停地采样当前画面 → 交给视觉模型理解 → 让 TTS 把解说词读出来 → 再把这段声音发回频道。

  3. 浏览器观众:你打开网页看到的那一端,同时播放直播画面、AI 的声音、解说文字,还有"解说间状态"。


关键巧思在这里:AI 看的不是另一路视频,而是和观众完全相同的那一路 RTC 画面。 这意味着它解说的就是你正在看的内容,不会"画音不对齐"。


技术栈也很主流:前端是 Next.js,后端是 Python 的 FastAPI,实时音视频用 Agora,视觉理解 + TTS 语音合成各司其职。


整体的技术设计中,最吃功夫的其实是"实时"这两个字:画面要实时进来,AI 生成的语音还得低延迟送回直播间。这部分我交给了 Agora——延迟一高,解说就跟不上画面、马上穿帮。选它也有个现成的好处:Agora 是 OpenAI Realtime API 的官方合作伙伴,SDK 和 OpenAI 打通得比较顺,接起来省了不少胶水代码。



项目设计的三个小巧思


第一,先给 AI"补课",它才认得球员。


光看画面,AI 顶多说"穿红色球衣的球员"。所以我让你在 data/matches/ 里用一个 JSON 描述这场比赛:两队、球衣颜色、球员名单、剧情背景。喂了这份"小抄",AI 才能喊出具体名字、贴着比赛叙事去解说。换个场景同理——你也可以把"参赛的是哪几个小朋友"写进去。


第二,声音才是解说的灵魂。


音色很大程度上决定了"像不像真转播间"。项目支持三套 TTS:


  • OpenAI TTS:默认就能跑通,适合先把流程打通。前面提到 Agora 是 OpenAI Realtime API 的官方合作伙伴,所以真要往"实时语音对话"那个方向做,这套组合也是最省心的。

  • ElevenLabs:能自己"调"一个体育解说音色,激情、有爆发力,最接近电视里那种。

  • Fish Audio:想做中文解说的话值得试试,我预留了"中文玩梗解说"和"中文战术解说"两种角色。


顺带提一句:开源仓库里只放了解说员的人设和 prompt,没把我自己的私有音色 ID 塞进去——音色你得自己去对应平台建。


第三,在线 ≠ 烧钱。


AI 实时看画面、实时说话,是真金白银的 token 消耗。所以我专门做了一套成本闸门:


明确的 Start AI / Stop AI 开关、观众"心跳"(没人看了就自动停)、每个会话还有硬性最长时长上限。后台部署在那儿,并不会偷偷一直烧钱。





如果你也想复刻,这里是教程指南


下面是面向开发者的精简版。完整命令以仓库 README 为准,这里帮你建立"先后顺序"的全局观。


1) 装前端、配环境变量


pnpm installcp .env.example .env.localopenssl rand -hex 32   # 生成一个后端密钥,前后端要填同一个


.env.local 里主要填 Agora 的 App ID / Certificate、后端地址、刚生成的密钥和一个本地访问密码。


2) 起后端(FastAPI)

cd serverpython -m venv .venv && source .venv/bin/activatepip install -r requirements.txt -r requirements-dev.txtcp .env.example .env.local      # 填 Agora、密钥、OPENAI_API_KEYpython -m uvicorn app.main:app --reload --host 127.0.0.1 --port 8000


3) 配 TTS 音色(可选,但强烈建议)


默认 OpenAI TTS 能用;想要"广播腔"就配 ElevenLabs,想要中文就配 Fish Audio,把对应的 voice ID 填进 server/.env.local。TTS 会让你的解说,更富有灵魂!


4) 起前端、进直播间

pnpm dev      # 打开 http://localhost:3000


5) 给它一路直播流


先在 Agora Console 启用 Media Gateway,用它的 REST API 生成 RTMP 推流 key(项目自带 pnpm run media-gateway:key 帮你生成)。然后三选一把画面推进去:


注意:仓库不内置任何比赛视频(转播画面有版权),你得自备一段 16:9 的 .mp4,或者直接接一路实时画面。配上前面那份比赛 JSON,解说效果会好很多。


6) 上线


前端部署到 Vercel,后端用 Railway 跑 Docker,前后端共用同一个密钥即可。


接下来想往哪走

路线图里几个方向,我觉得挺有想象力:


  • 降低延迟:缩短"画面 → AI 开口"之间的时间差,越实时越像真解说;

  • 多人解说:多个 AI 解说员同台,一个负责激情,一个负责战术分析,互相搭话;

  • 无障碍专属模式:给视障观众提供更密集的球场空间信息;

  • 多语言多音色:覆盖不同国家的语言和声音风格。





最后,聊点好玩的


做这个项目最爽的一刻,不是代码跑通,而是 AI 第一次对着画面喊出"好球!"的那一下——感觉就像你养的 AI 突然学会看球了,还看得特别投入。


以前聊语音合成,纠结的无非是音色像不像人、读得顺不顺。但解说这事儿,硬是把语音从"念稿机"逼成了"现场嘴替":它得先看懂场上发生了啥,再用对的情绪、对的人设,在对的那一秒开口。会看、会想、会接话——它不再是被动播放的声音,而是个真能跟上节奏的搭子。


所以别只盯着球场。下次你家猫主子打架,说不定也能配上一段激情解说。


项目地址:

github.com/zicojiao/worldcupvoice(MIT 协议,可自由使用)。


觉得有意思,欢迎去点个 Star。


图片

阅读更多 Voice Agent 学习笔记:了解最懂 AI 语音的头脑都在思考什么


图片

注册登录 后评论
    // 作者
    R
    @RTE_Dev_Comm
    还什么也没有写~
    • 0
    // 本帖子
    分类
    // 相关帖子
    Coming soon...
    • 0
    冲到 OpenAI 社区榜二,我做了个让 C 罗解说梅西比赛的 AI 解说员丨开源项目分享RTRTE_Dev_Comm