如何用 Gemini Live API 三步搭出实时语音对话应用:完整快速上手指南
【免费下载链接】cookbookExamples and guides for using the Gemini API项目地址: https://gitcode.com/GitHub_Trending/coo/cookbook
你说"开灯",AI 却过了 5 秒才回话——这种"来回延迟"是传统语音助手最大的硬伤。Gemini Live API解决的就是它:音频按帧流式传输,模型实时逐帧回应,还能被你随时打断。仓库里就有现成示例,3 条命令就能跑通第一段对话。
快速上手:3 条命令跑通语音对话
先把代码和依赖拿到手:
git clone https://gitcode.com/GitHub_Trending/coo/cookbook pip install -U google-genai pyaudiomacOS 用户另需执行brew install portaudio。然后设置密钥并启动示例:
export GEMINI_API_KEY=你的密钥 python quickstarts/Get_started_LiveAPI_NativeAudio.py示例脚本里有几组关键参数值得留意:上行采样率 16000Hz、下行 24000Hz、每块 1024 帧,单声道 16 位 PCM。配置里把response_modalities设为["AUDIO"]并开启proactive_audio,模型就会主动开口说话:
CONFIG = { "response_modalities": ["AUDIO"], "proactivity": {"proactive_audio": True} }启动后戴上耳机,直接开口聊就行。它是怎么做到不用等你说完才回话的?
白话讲原理:它像一部电话,不是传信
传统聊天机器人像"写信":写一封、寄一封、等几天回信。Live API 更像打电话——线路一直通着,双方随时可以插话。
示例脚本用 4 个后台任务并行工作,像一座城堡的四座塔楼:听音塔持续捕获麦克风音频,上塔把音频帧发出去,收塔下载模型的回音,播塔通过扬声器播放,中间用两个队列衔接数据。当你插话时,模型发出turn_complete(回合结束)信号,程序随即清空播放队列,你听到的声音立刻停住,不会"自说自话"。
四座塔各司其职,队列衔接音频流——Live API 实时音频管道就像一个分工明确的城堡
看懂了机制,自然要问:它实际能干什么?
实战场景:3 个方向可以直接上手
🗣️ 日常语音助手
解决"打字累、来回等"的问题。在 Get_started_LiveAPI.py 里把文本输入换成麦克风音频,你就得到一个能理解多轮上下文的语音助手。
🔌 物联网语音控制
想把语音控制搬到硬件上?参考 examples/iot/esp32/voice_led_controller/:ESP32 用麦克风采集声音,发给 Gemini API,再根据响应点亮 LED 灯环,从软件原型走到实体装置。
按图接好麦克风、ESP32 与 LED 灯环,实时语音指令就能直接驱动硬件
实时翻译与多模态扩展
解决语言隔阂和"只靠音频不够"的问题。quickstarts/websockets/ 目录里有音频流实时翻译(Live Translation)的示例,以及 Live API 调用工具的示例,可以把音频和视频、文本输入叠在同一通"电话"里。
机制清楚了,真上手时最容易栽进几个坑,提前看一眼。
避坑指南:4 个最容易卡住的问题
- 坑:AI 不停"打断自己"。系统默认扬声器和麦克风通常没有回声消除,麦克风会拾取到 AI 自己的声音。正确做法:始终戴耳机调试。
- 坑:音频发出去发杂、节奏不对。上下行采样率不同(上行 16000Hz、下行 24000Hz),别混用;块大小保持 1024 帧。
- 坑:启动报
asyncio.TaskGroup不存在。说明你的 Python 低于 3.11,正确做法是补装pip install taskgroup。 - 坑:AI 说话风格不对味。用
system_instruction指定语气和结尾追问习惯,别指望模型默认表现。
坑绕过去了,就差最后一步。
收尾
Gemini Live API的价值,在于把"发一封回一封"压缩成双向实时音频流,语音应用从"能对话"变成"像打电话"。今天就去 quickstarts/ 目录跑一遍Get_started_LiveAPI_NativeAudio.py,戴上耳机,你会在示例加载完之前就先听到它开口。🚀
【免费下载链接】cookbookExamples and guides for using the Gemini API项目地址: https://gitcode.com/GitHub_Trending/coo/cookbook
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考