Gemini 3.5 Transcribe 实战教程:5步把一段录音变成带说话人和时间戳的整理稿

👁 84 次阅读

一、先搞清楚它是什么:不是 ChatGPT 语音,是独立的语音转文本模型

2026年8月26日,Google 在官方博客发布了 Gemini 3.5 Transcribe,定位是『迄今最精准的语音转文本模型』,同时进入 Google AI Studio、Gemini API 和 Gemini Enterprise Agent Platform 的公开预览。它不是 Gemini App 里的语音对话能力,而是一个模型 ID 明确的独立 ASR 模型,有两个型号:

  • gemini-3.5-transcribe:离线录音转文本,走 Interactions API,支持说话人标注和词级时间戳
  • gemini-3.5-transcribe-live:实时流式转文本,走 Live API over WebSocket

官方给出的核心能力有六项:85+ 种语言自动检测(支持句中和句间的跨语言切换)、自定义词表(最多 1000 条术语)、说话人区分(最多 8 人,3 人及以上的归因标注属于实验性功能)、词级时间戳、智能转录(清理『嗯啊』类填充词并重新排版)、以及大小写标点与逆文本归一化(例如把 twenty six million dollars 自动转为 $26M)。

麦克风向右侧箭头转化出一整版已排好版面的会议记录文档
图1:从原始音频到排版好的会议记录,是这条管线的核心产出

为什么值得花篇幅讲它?语音转文本这件事已经做了很多年,但『转出来的东西能直接用』这一步长期没解决:转写稿里塞满嗯呃、『我是说』,自己说错了话也不会自动纠正,标点全靠猜。Gemini 3.5 Transcribe 把这条路拆成两种模式:verbatim 保留原样,smart 负责清理。

官方给的 smart 模式示例:音频说 Um, so for the meeting, I think we should, uh, invite Alice and, wait no, Bob and Carol. ,verbatim 输出保留全部填充词与犹豫,smart 输出直接变成 For the meeting, I think we should invite Bob and Carol. 。再比如散乱的会议要点 First item review budget second item finalize timeline third item send recap,smart 会输出成 1/2/3 的列表。

精度与速度的官方数据(来自 Ars Technica 报道)

Ars Technica 在报道中引用的数字:新版比前代引擎 Chirp 3 从语音到最终成稿大约快 70%;实时语音识别错误率降到 5.5%,Chirp 3 是 7.32%。

指标 Chirp 3(前代) Gemini 3.5 Transcribe 出处
实时识别错误率(WER) 7.32% 5.5% Ars Technica
语音到成稿速度 基准 约快 70% Ars Technica
支持语言数 — 85+ 种(自动检测) 官方博客

要提醒一点:5.5% 的实时错误率,在中文口语、专业术语、多人同时说话的场景里仍会出错。官方也明确说了 smart 模式会改变你原话的措辞,所以法律口供、医疗病历、法庭记录这类必须逐字留存的场景,一定用 verbatim。另外 smart 与时间戳、说话人标注互斥——这条限制直接决定了后面第三步的选题范围。

二、第一步:拿到 API Key 并跑出第一段转写

官方推荐入口是 Google AI Studio。整个接入有三件事:申请密钥、上传音频、调用模型。注意音频要先走 Files API 上传再传 URI,不能直接内联 base64。

from google import genai

client = genai.Client()

audio_file = client.files.upload(file="path/to/sample.mp3")

interaction = client.interactions.create(
    model="gemini-3.5-transcribe",
    input=[
        {
            "type": "audio",
            "uri": audio_file.uri,
            "mime_type": audio_file.mime_type,
        }
    ],
)

print(interaction.output_text)

纯 REST 写法(不用 SDK),先通过 Files API 上传拿到文件 URI,再传给模型:

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: *** \
  -H "Content-Type: application/json" \
  -d '{"model": "gemini-3.5-transcribe", "input": [{"type": "audio", "uri": "YOUR_FILE_URI", "mime_type": "audio/mp3"}]}'
一分为二的时间线,左半边是杂乱重叠的旧版声波,右半边是光滑规整的新版波形
图2:从嘈杂原始音频到规整文本输出

这一步跑通之后,你就有了最短的可用管线。接下来所有进阶都在这 10 行代码上加分支。

三、第二步:两种转录模式到底选哪个

这是整篇教程里最影响产出的一个决策点,两个模式都在 generation_config.transcription_config.mode 里配置。

verbatim:默认值,逐字保留

完整保留一切:填充词(um、uh、like、you know)、重复、停顿、说一半又改口的部分。需要原文存档时用这个。

smart:智能整理,面向阅读

官方文档把它拆成三项处理:去填充词与口吃;行内自我纠正(把『周二,其实不是,周三两点』直接改成『周三下午2点』);结构化排版(把散乱的口语要点排成编号列表)。

官方原文的两个对比示例:

原始音频 verbatim 输出 smart 输出
Um, so for the meeting, I think we should, uh, invite Alice and, wait no, Bob and Carol. Um so for the meeting I think we should uh invite Alice and wait no Bob and Carol. For the meeting, I think we should invite Bob and Carol.
First item review budget second item finalize timeline third item send recap first item review budget second item finalize timeline third item send recap 1. Review budget
2. Finalize timeline
3. Send recap
一双手托着一串发光的对话气泡,气泡中漂浮着不同颜色不同尺寸的文字
图3:smart 模式的价值是让你从转写稿得到可交付文本

参数互斥矩阵:这张表决定了你不会白调一次 API

官方在 Parameter reference 和 Limitations 两节里明确了三组互斥关系,混用会被 API 直接拒绝:

特性 verbatim smart 说明
自定义词表 custom_vocabulary 可用 可用 最多 1000 条,官方建议 100 条以内效果最好
说话人标注 diarization_mode 可用 不支持 最多 8 人,3 人及以上为实验功能
词级时间戳 timestamp_granularities 可用 不支持 Live API 侧只支持语句级时间戳

这里有一个真实的取舍:客服质检既要可读,又要知道是谁在哪一秒说的。但官方设计里,能给你说话人标签的模式(verbatim)输出的是未整理的原文,能整理的模式(smart)拿不到说话人信息。所以正确做法是走 verbatim + diarization_mode 拿标签,再用脚本清理填充词,别指望一个模式解决全部。

# verbatim + 说话人标注 + 词级时间戳
interaction = client.interactions.create(
    model="gemini-3.5-transcribe",
    input=[{"type": "audio", "uri": audio_file.uri, "mime_type": audio_file.mime_type}],
    generation_config={
        "transcription_config": {
            "mode": {
                "type": "verbatim",
                "diarization_mode": "speaker",
                "timestamp_granularities": ["word"],
            }
        }
    },
)

# 智能整理模式
interaction = client.interactions.create(
    model="gemini-3.5-transcribe",
    input=[{"type": "audio", "uri": audio_file.uri, "mime_type": audio_file.mime_type}],
    generation_config={
        "transcription_config": {"mode": "smart"}
    },
)

时长上限:开了功能反而变短

官方 Limitations 写明:普通单请求音频最长 1 小时;一旦启用说话人标注或词级时间戳,上限降到 30 分钟。做长会议转写时,要么本地切段,要么放弃时间戳/说话人功能换全长。

词表上限的实用建议

官方写的是最多 1000 条,但同时写了最佳效果通常在 100 条以内。客服和会议场景的正确做法是只放专有名词、品牌名、缩写字,别塞常见词——官方 Best practices 明确说只放领域术语、品牌、专名,不要放日常词。

四、第三步:音频格式与语言参数

官方文档列了 13 种 MIME 类型,覆盖了常见录音场景:

类别 MIME 类型
常见音频 audio/wav、audio/mp3、audio/m4a、audio/aac、audio/ogg、audio/flac、audio/mpeg、audio/webm
无损与专业 audio/aiff、audio/l16
电话语音 audio/alaw、audio/mulaw(G.711 A-law / μ-law,呼叫中心录音常见)
低带宽实时 audio/opus(WebRTC / 会议工具常用)

关于格式有一个容易踩的坑:很多会议工具的原始导出是 Opus 或 ALAW,很多人第一反应是转成 MP3 再上传。其实这些格式官方都直接支持,转码只会多花 CPU 和一次质量损失,没必要。

语言参数的两种用法

官方写法:language_codes 传空数组或不传,模型自动检测语言,并支持句中跨语言切换;如果你确定语种,传 BCP-47 代码能提高准确率。

# 自动检测(不传或空数组)
"transcription_config": {"language_codes": []}

# 指定语种(中文场景)
"transcription_config": {"language_codes": ["zh-CN"]}

中文用户建议明确传 zh-CN,别依赖自动检测——自动检测虽然官方号称支持 85+ 种,但在中英混说且混说得比较乱的场景里,指定语种通常更稳。

一条声波在中间位置被切成整齐的短句段落,每个短句下方有一条虚线连接到下方列表
图4:词级时间戳让你可以点选任意词跳到对应音频位置

五、第四步:Live API 做实时转写,三种 VAD 策略怎么选

需要实时字幕、语音助手、直播场景时,用 gemini-3.5-transcribe-live 走 Live API。它和 Conversational Live Agent 共用 WebSocket 双向流,但角色完全不同。

特性 Live Agent Live Transcription
主要角色 会听、会推理、会回话的对话助手 实时语音转文本管线
响应模态 语音和文本 流式文本转写
交互方式 轮流对话,有停顿检测和打断 边说边持续处理
支持特性 Function calling、Google Search、系统指令 词表偏置、语言检测、手动/混合 VAD、智能转录
输入流 多模态:音频、视频、图像、文本 仅音频(原始 16-bit PCM)

Python 最短接入:

import asyncio
from google import genai
from google.genai import types

client = genai.Client()
model = "gemini-3.5-transcribe-live"

config = types.LiveConnectConfig(
    response_modalities=["TEXT"],
    input_audio_transcription=types.AudioTranscriptionConfig(
        language_codes=[],  # 自动检测语言
    ),
)

async def main():
    async with client.aio.live.connect(model=model, config=config) as session:
        print("Session established with Live Transcription")
        async for response in session.receive():
            server_content = response.server_content
            if server_content and server_content.input_transcription:
                print("Transcript:", server_content.input_transcription.text)

if __name__ == "__main__":
    asyncio.run(main())

WebSocket 直连写法:

const API_KEY = "YOUR_API_KEY";
const MODEL_NAME = "gemini-3.5-transcribe-live";
const WS_URL = `wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent?key=${API_KEY}`;

const websocket = new WebSocket(WS_URL);

websocket.onopen = () => {
  websocket.send(JSON.stringify({
    setup: {
      model: `models/${MODEL_NAME}`,
      generationConfig: { responseModalities: ['TEXT'] },
      inputAudioTranscription: { languageCodes: [] }
    }
  }));
};
一个开发者戴着耳机对着笔记本电脑轻声说话,屏幕显示干净利落的字幕和文字流
图5:Live API 面向的就是这种实时输入场景

三种 VAD 策略

VAD(Voice Activity Detection)决定什么时候算『说完了一句』。官方给了三档:

策略 机制 适用场景
自动 VAD(默认) 服务器端检测说话的起止 大多数场景,无需配置
混合 VAD 服务器端自动检测说话起点(带前缀音频填充,避免首字被截断)+ 客户端检测静音后发 audio_stream_end 立刻定稿 对延迟敏感、需要零延迟定稿的场景
手动 VAD(推键) 禁用自动 VAD,用 activity_start / activity_end 显式控制边界 对讲机、直播字幕按钮

混合 VAD 的四个步骤(官方原文描述):1) 服务器端自动 VAD 检测说话起点,带前缀音频填充防止首字丢失;2) 客户端本地 VAD 检测到说话停止时立即发 audio_stream_end;3) 服务器把这个信号当作立即定稿的提示,跳过默认的服务端静音等待时间;4) 客户端 VAD 失效时服务端 VAD 作为兜底。

注意:Live API 不支持词级时间戳,只发语句级时间戳(interim_input_transcription 和 input_transcription 字段)。要词级时间戳必须走离线路径。

六、能力边界速查表:一次看全

维度 具体规格 注意
支持语言 85+ 种,支持句中跨语言切换 明确语种时传 language_codes 更稳
说话人标注 最多 8 人,3 人及以上为实验功能 仅 verbatim 模式可用
词级时间戳 仅离线 API 支持,Live API 只有语句级 开启后时长上限从 1 小时降到 30 分钟
自定义词表 最多 1000 条,100 条以内效果最好 与说话人标注、词级时间戳互斥
智能转录 去填充词、自我纠正、结构化排版 会改变原措辞,不可用于原文留存场景
音频时长 普通 1 小时;开启说话人/时间戳后 30 分钟 长会议需切段
音频格式 13 种 MIME(含 ALAW/MULAW 电话录音) 不必强制转 MP3
Flex / Priority 推理 不支持 模型页明确标注 Not supported

七、成本怎么算:一分钟录音到底多少钱

官方定价页对 Transcribe 有两个计费口径:按 token 和按分钟,按分钟口径更适合直觉计算。

计费口径 价格 说明
音频输入 2.00 美元 / 百万 token 或 0.003 美元 / 分钟 25 音频 token / 秒
文本输出 12.00 美元 / 百万 token 或 0.002 美元 / 分钟 175 文本 token / 分钟
混合折算 约 0.005 美元 / 分钟 官方标注为混合费率估算
Live Transcribe 混合折算 约 0.009 美元 / 分钟 实时流的混合费率
免费层 不收费 输入输出均为免费额度

按 0.005 美元/分钟折算,10 小时会议录音约 3 美元;按 0.009 折算的实时场景,10 小时约 5.4 美元。如果批量处理,Batch API 有 50% 折扣,但要确认对应计费口径是否可叠加——官方定价页列的 Batch 折扣适用于文本模型口径,Transcribe 模型建议直接按分钟口径测算。

一个容易被忽略的条款

定价页 Used to improve our products 这一列,免费层是 Yes,付费层是 No。也就是说免费层默认允许 Google 用你的内容改进产品。企业敏感录音(客户数据、内部会议)请走付费层,或者在接入前核对 Terms 的原文。

八、四个真实场景的参数组合

场景 模型 推荐参数 说明
客服录音质检 离线 mode=verbatim + diarization_mode=speaker + timestamp_granularities=[word] + language_codes=[zh-CN] 必须原文 + 要知道谁在哪一秒说;注意 30 分钟上限
播客字幕制作 离线 mode=verbatim + timestamp_granularities=[word],再用后处理清理填充词 smart 与时间戳互斥,所以走 verbatim 再加清洗脚本
实时直播字幕 Live response_modalities=[TEXT] + 自动 VAD WebSocket 流式,输出 interim + final 两类转写
会议纪要生成 离线 mode=smart + custom_vocabulary(放公司术语、人名、产品名) 输出可直接交付,但要接受措辞被改写

九、上手决策树

需要原文存档?
  → 是 → verbatim
    → 需要知道谁说的? → + diarization_mode="speaker"(≤30 分钟)
    → 需要精确到词?   → + timestamp_granularities=["word"](≤30 分钟)
    → 术语多?        → + custom_vocabulary(100 条以内,与上两项互斥)
  → 否 → smart(自动整理,无法拿到说话人和词级时间戳)

需要实时字幕?
  → Live API + gemini-3.5-transcribe-live
  → VAD 策略:默认自动 / 混合(低延迟) / 手动(对讲机)
  → 注意:只有语句级时间戳,没有词级

三个最容易踩的坑

  1. 把 smart 和 diarization_mode 同时传进去——会被 API 直接拒绝,官方 Limitations 里明写了这组互斥。
    把 custom_vocabulary 和时间戳同时传——同样互斥,官方原文:API 会拒绝同时指定这两项的请求。
    以为 smart 输出可以逐字引用——官方明确说它会改变原话措辞,法务/医疗/庭审场景必须回退到 verbatim。

十、总结:一句话记忆点

Gemini 3.5 Transcribe 的核心卖点是把『语音转文本』和『文本后处理』合在一个模型里做了两档:verbatim 留原文,smart 出成品。代价是这两档互斥于说话人标注和词级时间戳,且开启后时长上限减半。

接入路径只有三步:申请密钥 → 上传音频拿 URI → 读 output_text。进阶参数只有五个:language_codes、custom_vocabulary、mode(verbatim/smart)、diarization_mode、timestamp_granularities。参数怎么组合,看上面那张互斥矩阵就够了。

最后提醒一次数据来源:官方博客与 Google AI for Developers 文档是能力、参数、限制、定价的权威来源;精度与速度的对比数字来自 Ars Technica 的独立报道。

参考来源:
1. Google 官方博客《Introducing Gemini 3.5 Transcribe》:https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-5-transcribe
2. Google AI for Developers《Audio transcription – Interactions API》:https://ai.google.dev/gemini-api/docs/transcribe
3. Google AI for Developers《Live transcription with Gemini Live API》:https://ai.google.dev/gemini-api/docs/live-api/live-transcribe
4. Google AI for Developers《Gemini Developer API pricing》:https://ai.google.dev/gemini-api/docs/pricing
5. Ars Technica《Google announces Gemini 3.5 Transcribe for AI-powered speech-to-text》:https://arstechnica.com/ai/2026/08/google-announces-gemini-3-5-transcribe-for-ai-powered-speech-to-text
注:Google 官方文档 Last updated 2026-09-23(转写文档)/ 2026-08-26(Live 转写文档),文中数字以官方当日发布为准,可能随版本更新变化。

订阅 AI 百事知

每周精选 AI 工具评测、行业资讯与使用教程,第一时间送达。

🔗 相关阅读(你可能还想看)

📄 Perplexity Pro 学生免费一年怎么领:验证流程、失败排查与免费版区别全解
📄 AI效率工具提升办公效率的实战方法
📄 Notion AI 数据库自动化实战教程:从零搭建智能工作流到自动化闭环
📄 2026年AI生成PPT工具实战教程:从选型到精修的完整工作流指南
📄 ChatGPT Projects 实战教程:从零建立持续工作流,告别重复上传与提示词
📄 Notion AI 完整使用教程:从零开始掌握 AI 写作、数据库自动化与团队知识库构建(2026 最新版)
📄 NotebookLM 使用教程:从入门到精通的完整指南(2026年最新版)
📄 ChatGPT Slides 实战教程:6 步把一次对话变成团队可协作的演示稿,导出 PPTX 前先验这三样(2026 官方指南)
OpenAI 10 月中旬上线的 ChatGPT Slides,把演示稿从单人文件搬进 Space:从对话、文件、大纲或
📄 用 AI 做竞品调研:从抓取到对比表的完整流程
从调研问题、合规抓取、字段设计到 AI 抽取与人工校验,给出可照做的竞品对比表流程,并附清洗、补全和行动建议。
🤖 想直接和 AI 对话?
免费体验 DeepSeek V4 等顶级模型,无需注册,随问随答
🎯 立即体验 AI 工具

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

🤖 嘟嘟客服
滚动至顶部
🤖 嘟嘟客服
🤖 嘟嘟客服
';i.value='';m.innerHTML+='
...
';fetch('/dify-chat',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({query:q,user:'w'+Date.now()})}).then(function(r){return r.json()}).then(function(d){var a=d.answer||'暂时无法回复';m.removeChild(m.lastChild);m.innerHTML+='
'+a+'
'}).catch(function(){m.removeChild(m.lastChild);m.innerHTML+='
网络异常
'})">发送