name: gemini-audio description: 实现 Google Gemini API 音频功能的指南 - 分析音频的转录、总结和理解(最多 9.5 小时),加上使用可控 TTS 生成语音。当处理音频文件、创建转录、分析语音/音乐/声音或从文本生成自然语音时使用。 license: MIT allowed-tools:
- Bash
- Read
- Write
- Edit
Gemini Audio API 技能
使用 Google 的 Gemini API 处理音频的转录、分析和理解,以及生成自然语音。支持每个请求最多 9.5 小时的音频和多种格式。
何时使用此技能
在需要时使用此技能:
- 转录 音频文件为带时间戳的文本
- 总结 音频内容并提取关键点
- 分析 语音、音乐或环境声音
- 生成语音 从文本使用可控语音和风格
- 处理 播客、访谈、会议或任何音频内容
- 理解 非语音音频(鸟鸣、警笛、音乐)
先决条件
API 密钥设置
技能自动按此顺序检测您的 GEMINI_API_KEY:
- 进程环境:
export GEMINI_API_KEY="your-key" - 技能目录:
.claude/skills/gemini-audio/.env - 项目目录:
./.env(项目根目录)
获取您的 API 密钥:访问 Google AI Studio
创建 .env 文件,内容为:
GEMINI_API_KEY=your_api_key_here
Python 设置
安装所需包:
pip install google-genai
快速开始
音频分析(转录、总结)
from google import genai
import os
# API 密钥从环境自动检测
client = genai.Client(api_key=os.getenv('GEMINI_API_KEY'))
# 上传音频文件
myfile = client.files.upload(file='podcast.mp3')
# 转录
response = client.models.generate_content(
model='gemini-2.5-flash',
contents=['生成语音的转录。', myfile]
)
print(response.text)
# 总结
response = client.models.generate_content(
model='gemini-2.5-flash',
contents=['用 5 个要点总结关键点。', myfile]
)
print(response.text)
使用辅助脚本
# 转录音频
python .claude/skills/gemini-audio/scripts/transcribe.py audio.mp3
# 总结音频
python .claude/skills/gemini-audio/scripts/analyze.py audio.mp3 \
"总结关键点"
# 分析特定片段(时间戳为 MM:SS 格式)
python .claude/skills/gemini-audio/scripts/analyze.py audio.mp3 \
"02:30 到 05:15 之间讨论了什么?"
# 生成语音
python .claude/skills/gemini-audio/scripts/generate-speech.py \
"欢迎来到我们的播客" \
--output welcome.wav
音频理解能力
支持格式
| 格式 | MIME 类型 | 最佳用途 |
|---|---|---|
| WAV | audio/wav |
未压缩,最高质量 |
| MP3 | audio/mp3 |
压缩,广泛兼容 |
| AAC | audio/aac |
压缩,良好质量 |
| FLAC | audio/flac |
无损压缩 |
| OGG Vorbis | audio/ogg |
开放格式 |
| AIFF | audio/aiff |
Apple 格式 |
音频规格
- 最大长度:每个请求 9.5 小时
- 多个文件:数量无限,合并最大 9.5 小时
- 令牌率:32 令牌/秒(1 分钟 = 1,920 令牌)
- 处理:自动下采样至 16 Kbps 单声道
- 文件大小限制:
- 内联:请求总最大 20 MB
- 文件 API:每个文件 2 GB,项目配额 20 GB
- 保留:48 小时自动删除
分析功能
- 转录:带标点的完整文本
- 时间戳:参考片段(MM:SS 格式)
- 多说话人:识别不同说话人
- 非语音:分析音乐、声音、环境音频
- 语言:支持多种语言
语音生成(TTS)
可用 TTS 模型
| 模型 | 质量 | 速度 | 成本/1M 令牌 |
|---|---|---|---|
gemini-2.5-flash-native-audio-preview-09-2025 |
高 | 快 | $10 |
gemini-2.5-pro TTS 模式 |
优质 | 慢 | $20 |
可控语音选项
- 风格:专业、休闲、叙事、对话
- 节奏:慢、正常、快
- 语调:友好、严肃、热情
- 口音:自然语言控制
TTS 示例
response = client.models.generate_content(
model='gemini-2.5-flash-native-audio-preview-09-2025',
contents='生成音频:欢迎来到今天的剧集,以温暖、友好的语调。'
)
# 保存音频输出
with open('output.wav', 'wb') as f:
f.write(response.audio_data)
输入方法
方法 1:文件上传(推荐 >20MB)
# 上传并重用
myfile = client.files.upload(file='large-audio.mp3')
# 多次使用文件
response1 = client.models.generate_content(
model='gemini-2.5-flash',
contents=['转录这个', myfile]
)
response2 = client.models.generate_content(
model='gemini-2.5-flash',
contents=['总结这个', myfile]
)
方法 2:内联数据(<20MB)
from google.genai import types
with open('small-audio.mp3', 'rb') as f:
audio_bytes = f.read()
response = client.models.generate_content(
model='gemini-2.5-flash',
contents=[
'描述这个音频',
types.Part.from_bytes(data=audio_bytes, mime_type='audio/mp3')
]
)
常见用例
转录
python scripts/transcribe.py meeting.mp3 --include-timestamps
带关键点的总结
python scripts/analyze.py interview.wav "提取主要话题和关键引语"
说话人识别
python scripts/analyze.py discussion.mp3 "识别说话人并提取对话"
片段分析
python scripts/analyze.py podcast.mp3 "总结 10:30 到 15:45 的内容"
非语音分析
python scripts/analyze.py ambient.wav "识别所有声音:语音、音乐、环境"
最佳实践
文件管理
- 对于 >20MB 或重复使用的文件,使用文件 API
- 文件在 48 小时后自动删除
- 管理配额(项目限制 20 GB)
提示工程
- 具体:“转录 02:30 到 03:29”
- 使用时间戳进行片段分析(MM:SS 格式)
- 组合任务:“转录并总结”
- 提供上下文:“这是医疗访谈”
成本优化
- 对于大多数任务,使用
gemini-2.5-flash($1/1M 令牌) - 对于复杂分析,升级到
gemini-2.5-pro($3/1M 令牌) - 检查令牌计数:1 分钟音频 = 1,920 令牌
错误处理
- 上传前验证文件格式和大小
- 实施指数退避以应对速率限制
- 处理 48 小时文件过期
令牌成本和定价
音频输入(32 令牌/秒):
- 1 分钟 = 1,920 令牌
- 1 小时 = 115,200 令牌
- 9.5 小时 = 1,094,400 令牌
模型定价:
- Gemini 2.5 Flash:$1.00/1M 输入,$0.10/1M 输出
- Gemini 2.5 Pro:$3.00/1M 输入,$12.00/1M 输出
- Gemini 1.5 Flash:$0.70/1M 输入,$0.175/1M 输出
TTS 定价:
- Flash TTS:$10/1M 令牌
- Pro TTS:$20/1M 令牌
参考文档
有关详细信息,请参阅:
references/api-reference.md- 完整 API 规范references/code-examples.md- 全面的代码示例references/tts-guide.md- 文本到语音实现指南references/best-practices.md- 高级优化策略
脚本概述
所有脚本支持 3 步 API 密钥检测:
- transcribe.py:生成带可选时间戳的转录
- analyze.py:使用自定义提示的通用音频分析
- generate-speech.py:文本到语音生成
- manage-files.py:上传、列出和删除音频文件
运行任何脚本时使用 --help 查看详细用法。