理解音频内容

Gemini 可以回答有关音频的提示。您可以向 Gemini 请求添加音频,以便执行涉及理解所含音频内容的任务。例如,Gemini 可以执行以下操作:

  • 描述、总结音频内容或回答与音频内容相关的问题。
  • 提供音频的转写内容。
  • 提供有关音频特定片段的答案或转写内容。

音频理解是 Gemini 的一种多模态输入,可将文本与媒体文件相结合。

如需详细了解如何使用 Gemini 进行音频理解,以及发送 API 请求的分步说明,请参阅发送多模态提示

含音频的提示的规范

您可以向 Gemini 发送的请求中添加音频文件。单个提示中支持的音频数据长度上限为 15 分钟或最多 32,000 个 token。Gemini 不会限制单个提示中的音频文件数量,但单个提示中所有音频文件的总时长不得超过 15 分钟。

Gemini 可以理解语音,用于音频摘要、转写和翻译。

音频必须采用以下音频格式 MIME 类型之一:

  • AAC:audio/aac
  • AIF:audio/aiff
  • FLAC:audio/flac
  • MP3:audio/mp3
  • OGG:audio/ogg
  • WAV:audio/wav

Gemini 对音频施加以下规则:

  • 将每秒音频表示为 25 个词元。例如,1 分钟的音频表示为 1,500 个令牌。
  • 仅推断对英语语音的回答。
  • 分析非语音组件,例如鸟鸣或警报声。
  • 将音频文件采样为 16 Kbps 的数据分辨率。如果音频源包含多个声道,Gemini 会将它们合并为一个声道。

您可以使用 REST API 中的 Chat Completions 端点,并使用 HTTP 客户端或 OpenAI 的官方 Python SDK。您可以将音频作为内嵌数据提供给提示请求,以 base64 编码文件的形式提供,也可以在发出提示请求之前将音频文件上传到存储桶。

如需详细了解音频方面的限制,请参阅 Google Cloud 文档。

如需详细了解 OpenAI 和 Gemini 在 Google Distributed Cloud (GDC) 隔离环境中实现的 Chat Completions 端点,请参阅 https://platform.openai.com/docs/api-reference/chat

理解提示中的音频

以下示例展示了 Gemini Chat Completions API 请求,该请求使用 OpenAI 的官方 Python SDK 或 curl 从文本和音频输入生成文本。您可以将音频作为内嵌数据发送,也可以在请求中提供音频网址。

发送内嵌数据请求

以内嵌数据的形式向提示请求提供音频,数据来自 base64 编码的文件。 API 请求包含用于 base64 编码音频的 input_audio 字段。以下示例展示了如何发送 base64 编码的音频请求:

Python

import openai

client = openai.OpenAI()
model_response = client.chat.completions.create(
  model = "MODEL_ID",
  messages =  [
                {
                  "role": "user",
                  "content": "Show me the lyrics of this song."
                },
                {
                  "role": "user",
                  "content": [
                    {
                      "type": "input_audio",
                      "input_audio": {
                        "data": BASE64_DATA,
                        # Valid formats are aac, aiff, flac, mp3, ogg, or wav
                        "format": "mp3"
                      }
                    }
                  ]
                }
              ]
)

print(model_response)

替换以下内容:

  • MODEL_ID:要生成回答的模型的端点 ID。
  • BASE64_DATA:音频文件的 base64 编码数据。 Base64 编码的数据必须以数据 URI 方案(RFC 2397)为前缀。因此,对于 base64 编码的数据,data 字段的格式例如为 "data": f"data:audio/mp3;base64,{base64_audio}"

curl

curl \
  -X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
  -d  '{
          "model_id": "MODEL_ID",
          "messages": [
            {
              "role": "user",
              "content": "Show me the lyrics of this song."
            },
            {
              "role": "user",
              "content": [
                {
                  "type": "input_audio",
                  "input_audio": {
                    "data": BASE64_DATA,
                    # Valid formats are aac, aiff, flac, mp3, ogg, or wav
                    "format": "mp3"
                  }
                }
              ]
            }
          ],
      }'

替换以下内容:

  • ENDPOINT:您组织使用的 API 端点。
  • PROJECT:您的项目 ID。
  • MODEL_ID:要生成回答的模型的端点 ID。
  • BASE64_DATA:音频文件的 base64 编码数据。 Base64 编码的数据必须以数据 URI 方案(RFC 2397)为前缀。因此,对于 base64 编码的数据,data 字段的格式例如为 "data": f"data:audio/mp3;base64,{base64_audio}"

在请求中发送音频网址

上传音频文件到存储桶,然后发出提示请求。API 请求包含存储分区中音频文件的 audio_url 字段。以下示例展示了如何发送音频网址请求:

curl \
  -X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
  -d  '{
          "model_id": "MODEL_ID",
          "messages": [
            {
              "role": "user",
              "content": "Show me the lyrics of this song."
            },
            {
              "role": "user",
              "content": [
                {
                  "type": "audio_url",
                  "audio_url": {
                    "url": "AUDIO_URL",
                  }
                }
              ]
            }
          ],
      }'

替换以下内容:

  • ENDPOINT:您组织使用的 API 端点。
  • PROJECT:您的项目 ID。
  • MODEL_ID:要生成回答的模型的端点 ID。
  • AUDIO_URL:存储桶中音频网址的路径。 音频网址必须指向存储在 GDC 存储桶中的音频文件。如需了解详情,请参阅存储数据

后续步骤