我一直在用的 macOS 应用 gemini-live-translate-macos 最近加了一个新功能。这个应用通过 ScreenCaptureKit 直接抓取指定 App 的音频,不需要 BlackHole 这类虚拟声卡,再把音频送到 Gemini Live API 做实时翻译,输出繁体中文字幕并播放中文语音。之前写过两篇开发记录:一篇讲怎么用 AGY CLI 从零搭起来,另一篇讲怎么用 Claude Code 把它从“能用”改到“好用”。
新功能起点:Live API 文档里多了一页
![]()
这次加功能的起因很简单:我看到 Live API 的文档里新增了“实时转录”这一项。既然应用已经接入了 Live API,我原本以为加一个纯转录模式只是改几个参数的事。
但查完文档才发现,Google 同时发布了两个名字非常像、能力却差很多的模型。我真正想要的说话人分离功能,在我最初以为的那个模型上根本没有。
先把两个模型的差别说清楚
这部分是我花时间最多的地方。Live 页面官方文档的 limitations 部分写得很直接:
说话人分离不支持实时流式会话。要做说话人分离,必须用非流式的音频转录接口。
也就是说,“实时看到谁在说什么”目前做不到。要做说话人分离,只能先把会议录下来,等会议结束后把整段音频发过去。这个限制决定了我后面整个架构的走向。
转录模式的配置结构
配置结构和原来的翻译模型不一样。responseModalities 必须设为 TEXT,转录参数放在 setup.inputAudioTranscription 下面:
{ "setup": { "model": "models/gemini-3.5-transcribe-live", "generationConfig": { "responseModalities": ["TEXT"] }, "inputAudioTranscription": { "languageCodes": [],响应侧新增了一个原来翻译模型没有的字段。这个区别会影响 UI 怎么写,后面再展开。
目前最容易的部分已经跑通,剩下的工作主要围绕会后转录流程和界面调整。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.