Gemini 3.8 TTS 发布:声音定制与语音生成能力升级

9 月 23 日,Google 发布 Gemini 3.8 Flash TTS 和 Flash-Lite TTS 两款文本转语音模型,带来更灵活的声音定制和表达控制。

Agora 作为 Google 的合作伙伴,支持通过 Gemini API 集成 Gemini 3.8 Flash TTS,开发者可以结合 Agora RTC 构建实时语音应用。

本文将介绍 Gemini 3.8 TTS 的核心特性,并以开源项目 Agora Podcasts 为例,展示如何将主题或文章生成双主播节目,让听众实时收听、举手提问,并在主播回答后继续原来的内容。

两款模型,声音定制与规模化生成

两款模型各有侧重。

从声音设计到逐句表达控制

两款模型都支持 逐句控制语音表达。

开发者可以在文本中加入表达要求,调整每句内容的语气、节奏和情绪,具体包括:

1.声音设计:用文字定义角色声音

Flash TTS 支持通过自然语言描述声音特征、角色定位和口音,帮助开发者设计符合场景需求的声音。开发者也可以从 2,000 多种声音中选择合适的音色,并保存设计结果,在后续内容中持续复用。

例如,为课程讲解员设计声音时,可以描述为"音色温暖、吐字清晰、使用普通话";为故事中的角色设计声音时,则可以进一步指定角色特点和口音。

Flash TTS 还支持声音复刻:通过一段 30 秒的本人或已获授权的声音样本,创建可复用的声音。

2.逐句控制:让表达更贴合内容

两款模型均支持逐句控制语音表达。开发者可以针对不同台词设置语气、节奏和情绪,使同一角色在开场、讲解、互动等不同场景中呈现更自然的表达效果。

例如,一段课程开场中,"欢迎回来"可以读得轻快一些;进入复杂概念时,可以放缓语速、增加停顿;提出问题时,再调整重音和语调。

3.双人对话与长音频:保持角色和内容的连贯性

除了单人语音生成,两款模型还支持以下能力:

制作长内容时,除了确认单句效果,也需要检查不同段落之间的音色、语速,以及双人对话的衔接是否符合脚本安排。

性能参数

1.综合质量

综合来看,Flash TTS 和 Flash-Lite TTS 分别以 0.920 和 0.914 位列第一、第二,明显高于上一代 Gemini 3.1 Flash TTS 的 0.783。

两款模型的 多说话人表现 分别为 4.14 和 4.10,高于上一代的 3.60,说明它们更适合生成双人对话。两款模型的类人语音变化 也高于上一代,跨多轮表达时更接近真人。单一风格标签控制 则分别为 4.34 和 4.32,较上一代略有提升。

2. Flash TTS 声音设计能力突出

在 Text-to-Speech Voice Design Leaderboard 列出的模型中,Flash TTS 的英语综合得分为 71.4 ,位列第一;多语言得分为 3.82 ,口音得分为 60.8,两项也都排名第一。

3.多语言表现

在 Voice Arena 的多语言榜单中,两款模型在 7 种语言中分别取得最高分:

Gemini 3.8 TTS 的优势并不局限于英语。两款模型在 7 种语言中都拿到过最高分:Flash TTS 在日语、现代标准阿拉伯语、印地语和墨西哥西班牙语中领先,Flash-Lite TTS 则在英语、巴西葡萄牙语和越南语中得分最高。

对于需要多语言配音、播客或语音智能体的开发者,可以根据目标语言选择模型,而不必只依赖单一模型覆盖所有场景。

开发者体验与接入

开发者可在 Google AI Studio 音频工作台体验声音设计、声音复刻和双人脚本编辑,也可通过 Gemini API 接入应用。

社区实践:Gemini 3.8 TTS 实时互动 AI 播客

模型正式发布后,有社区开发者基于 Gemini 3.8 Flash TTS 制作了一个实时 AI 播客 Demo。

该项目基于 Agora RTC + RTM,搭建了一个可以多人加入的 AI 播客,它支持:

与 NotebookLM 的交互式音频相比,这个示例把个人问答扩展成了多人共享的现场。 NotebookLM 允许用户加入音频概览、向 AI 主播提问,但其他人不能通过共享链接加入这段互动。Agora Podcasts 则让多位听众进入同一个实时房间:大家共同收听,也可以依次举手提问;一个人的问题和主播的回答,其他人也能听到。

与 Clubhouse 的真人语音房相比,这里的对谈主播由 AI 担任。 Clubhouse 让人们进入房间,围绕话题展开实时交流;Agora Podcasts 则由两位 AI 主播组织节目内容、展开对谈,并回应听众的提问。它保留了多人共同参与的语音房体验,也让 AI 从内容生成工具变成了房间里的对话参与者。

GitHub 链接:
https://github.com/zicojiao/agora-podcasts

架构概览


Gemini 3.8 Flash
生成双主播脚本
    │
    ▼
Gemini 3.8 Flash TTS
生成双主播音频
    │
    ▼
Agora RTC
广播给房间内听众
    │
    ├── 听众收听
    │
    └── 听众插话
            │
            ▼
    Gemini 3.5 Transcribe Live
    将语音转成问题
            │
            ▼
    Gemini 3.8 Flash + Flash TTS
    生成并播回答
            │
            ▼
        Agora RTC
        原节目恢复播放

Agora Signaling / RTM:同步举手、问题、聊天和房间状态
Next.js 服务端:转发模型请求并保管密钥

项目采用 Next.js,前端页面和服务端 API 在同一个应用中运行。服务端保管 Gemini API key 与 Agora App Certificate,浏览器负责节目播放、实时音频和房间交互。

房主浏览器通过 AudioWorklet 播放并发布节目音轨,同时管理原节目与插入回答的切换。听众确认问题后,服务端调用文本模型生成回答,再由 TTS 配音;回答播放完毕,原节目从暂停位置继续。因此,房主页面需要在节目期间保持打开。

1.环境准备

开始前需要准备以下环境和凭证。

2.本地启动

获取代码并安装依赖

git clone https://github.com/zicojiao/agora-podcasts.git
cd agora-podcasts
corepack enable
pnpm install --frozen-lockfile
cp env.local.example .env.local

配置环境变量

打开 .env.local,填入 Gemini 和 Agora 配置:

GEMINI_API_KEY=你的-Gemini-API-key
GEMINI_TTS_MODEL=gemini-3.8-flash-tts
GEMINI_TEXT_MODEL=gemini-3.8-flash
NEXT_PUBLIC_AGORA_APP_ID=你的-Agora-App-ID
NEXT_AGORA_APP_CERTIFICATE=你的-Agora-App-Certificate

GEMINI_TTS_MODEL 和 GEMINI_TEXT_MODEL 已有默认值,通常不需要修改。转写模型固定为 gemini-3.5-transcribe-live,只需确保 API key 拥有对应权限。

启动项目

先运行环境检查:

pnpm run doctor

检查通过后启动开发服务器:

pnpm run dev

打开 http://localhost:3000,输入显示名称并创建房间。

邀请听众,并完成一次插话

创建房间后,输入一个主题或一篇文章,等待双主播节目生成。同时也可以将房间链接分享给他人,点击 Start listening 后,即可共同收听节目。

听众点击 Join conversation 后,则可以向 AI 通过语音进行提问。在不方便进行语音沟通时,也可以通过 Type it instead 输入问题。当主播回答结束后,原节目则会自动继续。

3.生产环境部署

由于项目是 Next.js 服务端应用,不能使用静态托管,因此需要部署到托管平台:

  1. 创建一个支持 Next.js 服务端运行的应用。

  2. 设置与 .env.local 相同的环境变量。

  3. 执行构建并启动生产服务:

pnpm run build
pnpm run start

上面的命令来自仓库的 package.json。仓库没有提供特定云平台的一键部署配置,本教程也没有实测具体托管平台。

4.验证

部署前可以运行完整验证:

pnpm run verify

该命令会依次执行环境检查、代码检查、类型检查、功能验证和生产构建。

如需调用真实 Gemini API 做冒烟测试,可以运行:

pnpm run smoke

这个命令会消耗 Gemini API 配额,请按需运行。

5.最后

此 Demo 展示了一条从内容生成到实时互动的完整路径:Gemini 编写并演绎双主播节目,Agora 将节目带入共享房间,听众可以加入对话,提问后继续收听。

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


↙↙↙阅读原文可查看相关链接,并与作者交流