Gemini 3.5 Transcribe

Gemini 3.5 Transcribe 是 Google 的多语言语音转文字模型,可通过 Agent Platform 使用。依托 Gemini 的音频理解能力,它能提供低延迟、高准确度的转写服务,并支持基于话语的语言检测、说话人区分、字词级时间戳、智能转写以及自定义词汇语音纠偏。

Gemini 3.5 Transcribe 是主要的音频转写工具,可弥合深度推理多模态模型与高度优化的语音转文字工作流之间的差距。

如需开始使用,请查看 Gemini 3.5 Transcribe 简介笔记本。

它支持两种主要操作方法:

  • 流式(实时)转写:使用 gemini-3.5-transcribe-live 模型流式传输音频并实时接收转写结果。
  • 同步转写:使用 gemini-3.5-transcribe 模型在单个请求中转写完整的预录音频文件。

功能支持和限制

Gemini 3.5 Transcribe 的两个端点支持以下功能:

功能 直播 (gemini-3.5-transcribe-live) 音频文件处理 (gemini-3.5-transcribe) 发布阶段 备注 / 限制
语言自动检测 支持(85 种以上的语言) 支持(85 种以上的语言) 支持 包括会话中途混用代码。
话语级时间戳 支持 不支持 支持
字词级时间戳 不支持 支持 实验性 降低转写准确率。
自定义词汇偏向 支持(最多 1,000 个字词) 支持(最多 1,000 个字词) 支持 客户通常会发现,最多使用 100 个字词可获得最佳效果。
智能听写和格式设置 支持(通过手动端点设置) 支持 实验性 包括填充词移除和意图感知字母数字格式设置。对于直播,请与手动端点搭配使用。
讲话人区分 不支持 支持(最多 8 个扬声器) 实验性 3 位以上说话者的归因功能尚处于实验阶段。
音频时长上限 最多 10 分钟 最长 15 分钟 支持 启用说话人标识或时间戳等功能后,文件处理时间限制为 15 分钟。

直播转写

BidiGenerateContent (Live) API 会保持打开状态,以便您向模型流式传输小块音频,并逐步接收转写结果。此功能用于近乎实时地为麦克风输入的内容添加字幕或进行转写。

如需在不编写任何代码的情况下试用流式转写功能,请在 Agent Studio 的 Gemini Live API 页面上打开 gemini-3.5-transcribe-live,然后录制或上传音频,并观看转写结果实时流式传输。

在 Agent Studio 中试用 Gemini 3.5 Transcribe

如需转写流式音频,请构建 LiveConnectConfig,并将 response_modalities 设置为 ["TEXT"],同时配置 input_audio_transcription。

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

client = genai.Client(enterprise=True, project=PROJECT_ID, location=LOCATION)

config = types.LiveConnectConfig(
    response_modalities=["TEXT"],
    input_audio_transcription=types.AudioTranscriptionConfig(
        language_codes=["it-IT", "en-US"],
    ),
)

async def streaming_main(audio_file, config):
    # Connect to the Live API session
    async with client.aio.live.connect(model="gemini-3.5-transcribe-live", config=config) as session:
        # In a complete implementation, you would chunk the audio and send via:
        # await session.send_realtime_input(audio=types.Blob(data=data, mime_type="audio/pcm;rate=16000"))
        # await session.send_realtime_input(audio_stream_end=True)

        async for message in session.receive():
            if message.server_content:
                server_content = message.server_content

                # Track the active interim segment
                interim = server_content.interim_input_transcription
                if interim and interim.text:
                    print(f"Interim: {interim.text}")

                # Save final transcript and clear the interim
                final = server_content.input_transcription
                if final and final.text:
                    print(f"Final: {final.text}")

同步转写

您可以使用标准 generate_content 方法来转写已录制的完整音频文件。通过在 GenerateContentConfig 内构建 AudioTranscriptionConfig 来配置参数。

字词级时间戳

设置 word_timestamp=True 会返回字词级时间。响应的 audio_transcription.words 列表包含每个识别出的字词及其 start_offset 和 end_offset。

from google import genai
from google.genai import types

# Initialize the client for Vertex AI / Agent Platform
client = genai.Client(enterprise=True, project=PROJECT_ID, location=LOCATION)

with open("input.wav", "rb") as f:
    audio_bytes = f.read()

response = client.models.generate_content(
    model="gemini-3.5-transcribe",
    contents=[
        types.Part.from_bytes(
            data=audio_bytes,
            mime_type="audio/wav",
        ),
    ],
    config=types.GenerateContentConfig(
        audio_transcription_config=types.AudioTranscriptionConfig(
            word_timestamp=True,
        ),
    ),
)

parts = getattr(response, "parts", []) or []
if parts and (audio_tx := getattr(parts[0], "audio_transcription", None)):
    for w in getattr(audio_tx, "words", []) or []:
        print(f"[{w.start_offset} - {w.end_offset}] {w.word}")

if text := "".join(p.text for p in parts if getattr(p, "text", None)):
    print(f"**{text}**")

讲话人区分和自定义词汇

设置 diarization=True 会要求模型识别并标记各个说话人。您还可以提供 custom_vocabulary 字段,其中包含一系列短语,这些短语可引导 Gemini 3.5 Transcribe 识别特定字词。如果还使用 language_codes 指定了语言,模型通常会更可靠地遵循自定义词汇表指令。

response = client.models.generate_content(
    model="gemini-3.5-transcribe",
    contents=[
        types.Part.from_uri(
            file_uri="gs://cloud-samples-data/generative-ai/audio/coffee_order.wav",
            mime_type="audio/wav",
        ),
    ],
    config=types.GenerateContentConfig(
        audio_transcription_config=types.AudioTranscriptionConfig(
            diarization=True,
            language_codes=["en-US"],
            custom_vocabulary=["oatmilk", "oz"],
        ),
    ),
)

parts = getattr(response, "parts", []) or []
for p in parts:
    audio_tx = getattr(p, "audio_transcription", None)
    speaker = getattr(audio_tx, "speaker_label", "UNKNOWN") if audio_tx else "UNKNOWN"
    text = getattr(p, "text", "") or (getattr(audio_tx, "text", "") if audio_tx else "")

    if text:
        print(f"**{speaker}**: {text}")

转写模式

Gemini 3.5 Transcribe 通过 AudioTranscriptionConfig 中的 mode 参数支持两种转写模式:

  • VERBATIM(默认):返回逐字逐句的转写内容,保留原始填充词(“嗯”“呃”“就像”“你知道”)、重复、停顿和口误。
  • SMART(智能转写):通过应用智能后处理功能,优化转写内容以方便阅读:
    • 流畅度优化:去除对话中的填充词、口吃和误启动。
    • 内嵌自我更正:直接解析口头更正(例如,“我们周二见,不,周三下午两点见”会更正为“我们周三下午 2:00 见”)。
    • 自动结构化格式设置:自动将语音内容整理成段落、编号列表、项目符号、格式化日期、货币和数字。
    • 语法修正:应用自然的标点符号、句首字母大写和流畅的表达。
语音音频 VERBATIM 输出 SMART(智能转写)输出
“嗯,对于会议,我认为我们应该,呃,邀请 Alice,不,等等,Bob 和 Carol。” “嗯,对于这次会议,我认为我们应该邀请 Alice,不,是 Bob 和 Carol。” “对于这次会议,我认为我们应该邀请 Bob 和 Carol。”
“第一项:审核预算;第二项:确定时间表;第三项:发送总结” “第一项:审核预算;第二项:确定时间表;第三项:发送总结” “1. 查看预算
2. 确定时间轴
3. 发送总结”

使用 SMART 模式进行同步转写

response = client.models.generate_content(
    model="gemini-3.5-transcribe",
    contents=[
        types.Part.from_bytes(
            data=audio_bytes,
            mime_type="audio/wav",
        ),
    ],
    config=types.GenerateContentConfig(
        audio_transcription_config=types.AudioTranscriptionConfig(
            mode="SMART",
        ),
    ),
)

使用 SMART 模式和手动端点检测进行实时转写

在将 SMART 模式与直播转写 (gemini-3.5-transcribe-live) 搭配使用时,您应使用手动端点检测(手动语音活动检测),而不是自动 VAD。由于 SMART 模式会应用话语级后处理(例如解析内嵌自我更正以及设置列表或段落的结构),因此自动 VAD 可能会在自然停顿期间过早地拆分用户的想法。

如需配置手动端点检测,请在 RealtimeInputConfig 中停用 automatic_activity_detection,并使用 activity_start 和 activity_end 明确标记用户语音轮次的开始和结束:

config = types.LiveConnectConfig(
    response_modalities=["TEXT"],
    realtime_input_config=types.RealtimeInputConfig(
        automatic_activity_detection=types.AutomaticActivityDetection(
            disabled=True,
        ),
    ),
    input_audio_transcription=types.AudioTranscriptionConfig(
        mode="SMART",
    ),
)

async with client.aio.live.connect(
    model="gemini-3.5-transcribe-live", config=config
) as session:
    # Signal start of speech turn
    await session.send_realtime_input(activity_start=types.ActivityStart())

    # Stream audio chunks...
    await session.send_realtime_input(
        audio=types.Blob(data=audio_bytes, mime_type="audio/pcm;rate=16000")
    )

    # Signal end of speech turn so SMART mode can process the complete utterance
    await session.send_realtime_input(activity_end=types.ActivityEnd())

语言支持

Gemini 3.5 Transcribe 支持以下语言和 BCP-47 语言代码:

语言 BCP-47 代码 就绪 语言 BCP-47 代码 就绪
南非荷兰语 af-ZA 实验性 日语 ja-JP 支持
阿姆哈拉语 am-ET 实验性 爪哇语 jv-ID 实验性
阿拉伯语(埃及) ar-EG 实验性 卡布佛得鲁语 kea-CV 实验性
亚美尼亚语 hy-AM 实验性 卡纳达语 kn-IN 实验性
阿萨姆语 as-IN 实验性 哈萨克语 kk-KZ 实验性
阿塞拜疆语 az-AZ 实验性 韩语 ko-KR 支持
白俄罗斯语 be-BY 实验性 吉尔吉斯语 ky-KG 实验性
孟加拉语(孟加拉) bn-BD 实验性 拉脱维亚语 lv-LV 实验性
孟加拉语(印度) bn-IN 实验性 林加拉语 ln-CD 实验性
波斯尼亚语 bs-BA 实验性 立陶宛语 lt-LT 实验性
保加利亚语 bg-BG 实验性 马其顿语 mk-MK 实验性
保加利亚语(阿罗马尼亚语) rup-BG 实验性 马来人 ms-MY 实验性
缅甸语 my-MM 实验性 马拉雅拉姆语 ml-IN 实验性
粤语(繁体) yue-Hant-HK 实验性 马耳他语 mt-MT 实验性
加泰罗尼亚语 ca-ES 支持 普通话(简体) cmn-Hans-CN 支持
宿务语 ceb 实验性 马拉地语 mr-IN 实验性
中部高棉语 km-KH 实验性 蒙古语 mn-MN 实验性
克罗地亚语 hr-HR 支持 尼泊尔语 ne-NP 实验性
捷克语 cs-CZ 实验性 挪威语 nb-NO 实验性
丹麦语 da-DK 支持 奥里亚语 or-IN 实验性
荷兰语 nl-NL 支持 波兰语 pl-PL 支持
英语(澳大利亚) en-AU 支持 葡萄牙语(巴西) pt-BR 支持
英语(英国) en-GB 支持 葡萄牙语(葡萄牙) pt-PT 支持
英语(印度) en-IN 支持 旁遮普语 pa-IN 实验性
英语(美国) en-US 支持 旁遮普语(果鲁穆奇文) pa-Guru-IN 实验性
爱沙尼亚语 et-EE 实验性 罗马尼亚语 ro-RO 支持
波斯语 fa-IR 实验性 俄语 ru-RU 支持
菲律宾语 fil-PH 实验性 塞尔维亚语 sr-RS 实验性
芬兰语 fi-FI 支持 信德语(阿拉伯字母) sd-Arab-IN 实验性
法语 fr-FR 支持 斯洛伐克语 sk-SK 实验性
法语(加拿大) fr-CA 支持 斯洛维尼亚语 sl-SI 实验性
加利西亚语 gl-ES 实验性 西班牙语(拉丁美洲) es-419 实验性
格鲁吉亚语 ka-GE 实验性 西班牙语(西班牙) es-ES 支持
德语 de-DE 支持 西班牙语(美国) es-US 支持
希腊语 el-GR 支持 斯瓦希里语(肯尼亚) sw-KE 实验性
古吉拉特语 gu-IN 实验性 瑞典语 sv-SE 支持
豪萨语 ha-NG 实验性 塔吉克语 tg-TJ 实验性
希伯来语 he-IL 实验性 泰卢固语 te-IN 实验性
印地语 hi-IN 支持 泰语 th-TH 实验性
匈牙利语 hu-HU 实验性 土耳其语 tr-TR 支持
冰岛语 is-IS 实验性 乌克兰语 uk-UA 支持
印度尼西亚语 id-ID 实验性 乌兹别克语 uz-UZ 实验性
意大利语 it-IT 支持 越南语 vi-VN 支持

区域级可用性

Gemini 3.5 Transcribe 适用于以下 Cloud de Confiance by S3NS 位置:

端点 Cloud de Confiance by S3NS 位置 发布就绪情况
gemini-3.5-transcribe global 支持
gemini-3.5-transcribe us 支持
gemini-3.5-transcribe eu 支持
gemini-3.5-transcribe-live global 支持
gemini-3.5-transcribe-live us 支持
gemini-3.5-transcribe-live eu 支持

最佳做法

  • 提供清晰的音频:确保录音中的语音清晰可辨,并避免严重削波。
  • 在已知的情况下提供语言提示:如果您事先知道音频语言,请指定 language_codes,以最大限度地提高准确率。
  • 目标自定义词汇表:仅包含 custom_vocabulary 中的独特领域术语、品牌名称或专有名词,而非日常用语。
  • 在实时转写中使用手动端点检测和 SMART 模式:停用自动 VAD (automatic_activity_detection),并显式发送 activity_start 和 activity_end 信号,以便模型可以对完整话语应用流畅度优化、自我更正和格式设置。

在 Agent Studio 中试用 价格

模型 ID ['gemini-3.5-transcribe', 'gemini-3.5-transcribe-live']
模态
文本 仅输出
图片 不支持
音频 仅输入
视频 不支持
功能
工具
API
使用选项
支持的区域

模型可用性

  • 全球:global

机器学习处理

  • 美国:Multi-region
  • 欧洲:Multi-region
版本
  • gemini-3.5-transcribe-preview
    • 发布阶段:预览版
    • 发布日期:2026 年 8 月
  • gemini-3.5-transcribe
    • 发布阶段:正式版
    • 发布日期:2026 年 10 月
  • gemini-3.5-transcribe-live-preview
    • 发布阶段:预览版
    • 发布日期:2026 年 8 月
  • gemini-3.5-transcribe-live
    • 发布阶段:正式版
    • 发布日期:2026 年 10 月