让 AI 听懂高燃赛场:Agora × Gemini Transcribe 电竞解说实时字幕开发实践

Google 昨日正式发布了 Gemini 3.5 Transcribe。和 Gemini 系列之前的产品定位不同,这不是一个通用多模态模型,而是一个独立的专用转写模型,只负责语音转文字。

目前 Gemini 3.5 Transcribe 已经在 Google 自己的多个产品中上线,包括 Gboard 上的 Rambler 语音输入、macOS 版 Gemini 应用的 Speak to Window 功能,以及 Chrome 浏览器的语音输入中。开发者可以通过 Gemini API 和 Google AI Studio 使用。

Agora 作为本次发布的官方合作伙伴之一,已经完成了对 Gemini 3.5 Transcribe 的集成支持,开发者也可以在 Agora Conversational AI 中直接进行调用

两个模型,两种用法

Gemini 3.5 Transcribe 包含两个模型,对应不同的使用场景:

gemini-3.5-transcribe-live走 Live API,做实时流式转写。音频边输入,文字边输出,延迟在亚秒级。适合直播字幕、语音 Agent、实时会议纪要这类需要即时响应的场景。

gemini-3.5-transcribe 走 Interactions API,处理预录音频。支持说话人分离(最多 3 人,3 人以上为实验性支持)和词级时间戳,适合会议录音整理、通话质检、播客转录这类对实时性要求不高但需要结构化输出的场景。

转写模式:VERBATIM 和 SMART

两个模型都支持 VERBATIM 和 SMART 两种转写模式,通过 mode 参数切换。

VERBATIM 是逐字转写。用户说了什么就输出什么,对 “嗯”“那个”“啊不对”等语气词和口头禅都会进行保留。该模式适合需要保留原始发言的场景,比如法律记录、语音数据标注。

SMART 则会在转写的同时做文本清洗:

• 去除语气词和口头禅(“嗯”“呃”“你造”)

• 修正口误和自我纠正(用户说“煎饼果子,不对,烤冷面”,输出结果只保留“烤冷面”)

• 自动补全标点、大小写和段落分隔

• 格式化数字、日期、货币、电话号码等结构化内容

举个例子,当用户口述“我邮箱是 San dot Zhang at RTE dot com”时,SMART 模式直接输出 san.zhang@RTE.com。

需要注意的是,SMART 模式和词级时间戳、说话人分离互斥,不能同时开启。如果业务上同时需要干净文本和时间戳,需要在应用层做两次调用。

性能参数

1.准确率(WER)

非流式 2.6% 的 WER 意味着每 100 个词中平均只有不到 3 个词转写有误,多数句子可以直接使用,该成绩在 Artificial Analysis 排名中位列第 5。流式 4.0% 略高,但流式比非流式高 1 到 3 个百分点是 STT 行业的普遍情况。

2.速度

相比上一代 Chirp 3,time to final transcription 提升约 70%。对实时场景来说,这意味着字幕出现得更快,语音 Agent 能更早开始响应,用户感知到的对话等待时间会明显降低。

3.上下文窗口

96k 输入 token,32k 输出 token,大约覆盖一小时音频。开启说话人分离或词级时间戳时,上限降到 30 分钟。

4.其他能力

• 自定义词表:最多 1000 个词条,建议 100 个以内效果最佳

• 语言支持:85+ 语言自动检测,支持句内语言切换

• Function calling:转写模型原生支持,可在转写同时触发函数调用

定价参考

第三方估算约 $0.005/分钟(非流式)和 $0.009/分钟(流式),具体以 Google 官方定价页为准。

社区实践:给电竞直播加实时 AI 字幕

除了对话式 AI 中能够使用 Gemini 转写,在传统的直播中,也能通过增加语音实时转写,让直播更精彩。

模型发布后,社区中有开发者基于 Agora RTC 和 Gemini 3.5 Transcribe Live 做了一个 MatchCast 的开源项目,给英雄联盟的比赛直播加实时字幕。

电竞解说是一个比较极端的转写场景:语速快、游戏术语和选手 ID 密度高、背景有游戏音效。从实际运行效果看,配合自定义词表之后,大部分英雄名和选手 ID 能够正确识别,字幕延迟在可用范围内。

该开源项目完整展示了 Gemini 3.5 Transcribe Live 在实际直播场景中是怎么如何应用的,如果你也想复刻一个刺激的电竞解说,以下为具体教程。

GitHub 链接:

https://github.com/zicojiao/agora-matchcast

架构概览

直播源通过 RTMP 推送至 Agora Media Gateway,进入 RTC 频道。浏览器加入同一频道接收直播画面。同时,一个 Python 服务也加入该频道,订阅直播源的音频流,将其转换为 16kHz 单声道 PCM 后发送至 Gemini。Gemini 返回的字幕文本通过 Agora RTC 数据流回传至频道,浏览器接收后叠加显示在视频画面上。

前端使用 Next.js,后端使用 Python FastAPI。所有 API key 均在服务端管理,浏览器端不直接连接 Gemini。

本地运行

安装依赖:

配前端环境变量:

配后端环境变量:

前后端的 Agora Certificate 是同一个值,环境变量名不一样是因为 Next.js 和 Python 命名习惯不同。

启动后端:

启动前端:

打开 http://localhost:3000。

推直播流

Agora Media Gateway 需要 RTMP server 地址和 stream key。先在 Agora Console 里启用 Media Gateway,然后用项目里的脚本生成 key:

推送本地视频:

移除 STREAM_ONCE=1 可实现循环播放。也可使用 OBS 推流,填入相同的 server 地址和 key 即可。

此时浏览器中应已显示视频画面,点击开始后,字幕将实时出现在画面上。

可配置项

自定义词表:电竞解说中专有名词密度较高,如不提供自定义词表,模型难以正确识别。在后端环境变量中配置:

当前 demo 已内置了一些英雄联盟的常用词,开发者可根据实际场景自行替换。

转写模式:默认为SMART,想要逐字转写改成:GEMINI_TRANSCRIPTION_MODE=verbatim。

字幕延迟调参:

这些参数控制音频活动检测的时间窗口。缩短窗口会提高字幕更新频率,但可能导致文本碎片化;增大窗口则输出更完整,但延迟略高。项目中提供了 CSV 导出功能,每条字幕均记录了浏览器端的延迟数据,便于对比不同配置的效果。

部署

前端可部署至 Vercel,后端可部署至 Railway(仓库中已包含 Dockerfile)。线上部署需注意:

• 前后端使用同一个 BACKEND_API_SECRET

• AGENT_BACKEND_URL 指向线上后端地址

• API key 和 Agora Certificate 仅在服务端配置

免责声明:上述内容仅代表发帖人个人观点,不构成本平台的任何投资建议。

举报

评论

  • 推荐
  • 最新
empty
暂无评论