炸裂!我用 Gemini 新模型给英雄联盟解说做实时字幕,语速再快也没翻车!(附开源代码)

图片


电竞解说实时转写向来是业内难啃的「硬骨头」——超快语速、高密度的黑话和选手 ID,叠加激烈的游戏背景音,对模型的识别能力和延迟解决方案是全方位的极限考验。


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 行业的普遍情况。


  1. 速度


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


  1. 上下文窗口


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


  1. 其他能力


  • 自定义词表:最多 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


架构概览


直播源 (OBS / 本地视频)
    |
    | RTMP 推流
    v
Agora Media Gateway
    |    
vAgora RTC 频道 ──────────> Next.js 播放器(视频 + 原始音频)
    |
    v
Python 音频订阅端(16kHz 单声道 PCM)
    |
    v
Gemini 3.5 Transcribe Live
    |
    | 字幕文本
    v
Agora RTC 数据流 ──────────> 浏览器叠加显示字幕

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


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

本地运行

安装依赖:

# 前端
pnpm install

# 后端
cd server
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cd ..

配前端环境变量:

cp .env.example .env.local

NEXT_PUBLIC_AGORA_APP_ID=<你的 Agora App ID>
NEXT_AGORA_APP_CERTIFICATE=<你的 Agora App Certificate>
NEXT_PUBLIC_LIVE_CHANNEL_NAME=matchcast-live
NEXT_PUBLIC_MATCH_FEED_UID=234567
AGENT_BACKEND_URL=http://localhost:8000
BACKEND_API_SECRET=<用 openssl rand -hex 32 生成一个,前后端共享>

配后端环境变量:

cp server/.env.example server/.env.local

AGORA_APP_ID=<你的 Agora App ID>
AGORA_APP_CERTIFICATE=<你的 Agora App Certificate>
MEDIA_UID=234567
BACKEND_API_SECRET=<和前端同一个>

GEMINI_API_KEY=<你的 Gemini API key>
GEMINI_TRANSCRIBE_MODEL=models/gemini-3.5-transcribe-live
GEMINI_LANGUAGE=en-US
GEMINI_TRANSCRIPTION_MODE=smart

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

启动后端:


cd server
source .venv/bin/activate
uvicorn app.main:app --reload --host 127.0.0.1 --port 8000

启动前端:

pnpm dev

打开 http://localhost:3000。

推直播流

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

pnpm run media-gateway:key


推送本地视频:

RTMP_STREAM_KEY=<生成的 key> \
RTMP_INPUT=/path/to/your-clip.mp4 \
STREAM_ONCE=1 \
pnpm run stream:sample

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


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

可配置项


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


GEMINI_VOCABULARY_MODE=custom
GEMINI_TRANSCRIBE_VOCABULARY=Faker,T1,Cloud9,Shockwave

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


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


字幕延迟调参

GEMINI_TRANSCRIBE_ACTIVITY_MIN_MS=5000
GEMINI_TRANSCRIBE_ACTIVITY_MAX_MS=6000
GEMINI_TRANSCRIBE_ACTIVITY_HANDOFF_SECONDS=1.5

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


部署


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


  • 前后端使用同一个 BACKEND_API_SECRET

  • AGENT_BACKEND_URL 指向线上后端地址

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

图片

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

注册登录 后评论
    // 作者
    R
    @RTE_Dev_Comm
    还什么也没有写~
    • 0
    // 本帖子
    分类
    关键词
    // 相关帖子
    Coming soon...
    • 0
    炸裂!我用 Gemini 新模型给英雄联盟解说做实时字幕,语速再快也没翻车!(附开源代码)RTRTE_Dev_Comm