O Gemini pode responder a comandos sobre áudio. É possível adicionar áudio às solicitações do Gemini para realizar tarefas que envolvem entender o conteúdo do áudio incluído. Por exemplo, o Gemini pode fazer o seguinte:
- Descrever, resumir ou responder a perguntas sobre conteúdo de áudio.
- Forneça uma transcrição do áudio.
- Fornecer respostas ou uma transcrição sobre um segmento específico do áudio.
O entendimento de áudio é uma das entradas multimodais do Gemini que combinam texto com arquivos de mídia.
Para mais informações sobre o entendimento de áudio com o Gemini e instruções detalhadas para enviar solicitações de API, consulte Enviar um comando multimodal.
Especificações para comandos com áudio
É possível adicionar arquivos de áudio à sua solicitação para o Gemini. A duração máxima aceita de dados de áudio em uma única solicitação é de 15 minutos ou até 32.000 tokens. O Gemini não limita o número de arquivos de áudio em um único comando, mas a duração total combinada de todos os arquivos de áudio em um único comando não pode exceder 15 minutos.
O Gemini pode entender a fala para resumo, transcrição e tradução de áudio.
O áudio precisa estar em um dos seguintes tipos MIME de formato de áudio:
- AAC:
audio/aac - AIF:
audio/aiff - FLAC:
audio/flac - MP3:
audio/mp3 - OGG:
audio/ogg - WAV:
audio/wav
O Gemini impõe as seguintes regras ao áudio:
- Represente cada segundo de áudio como 25 tokens. Por exemplo, um minuto de áudio é representado como 1.500 tokens.
- Inferir respostas apenas para fala em inglês.
- Analisar componentes que não são de fala, como cantos de pássaros ou sirenes.
- Faça a amostragem de arquivos de áudio para uma resolução de dados de 16 Kbps. Se a fonte de áudio tiver vários canais, o Gemini vai combiná-los em um só.
É possível usar o endpoint Chat Completions na API REST e um cliente HTTP ou os SDKs oficiais da OpenAI para Python. É possível fornecer o áudio como dados inline para a solicitação de comando como um arquivo codificado em base64 ou fazer upload do arquivo de áudio para um bucket de armazenamento antes de fazer a solicitação de comando.
Saiba mais sobre as limitações de áudio na documentação do Google Cloud .
Para saber mais sobre a OpenAI e o endpoint Chat Completions que o Gemini implementa no Google Distributed Cloud (GDC) isolado, consulte https://platform.openai.com/docs/api-reference/chat.
Entender áudio de um comando
Os exemplos a seguir mostram uma solicitação da API Gemini Chat Completions para
gerar texto com base em entradas de texto e áudio usando os SDKs oficiais da OpenAI para Python
ou curl. Você pode enviar áudio como dados in-line ou fornecer um URL de áudio na
solicitação.
Enviar solicitações de dados in-line
Forneça áudio como dados in-line para a solicitação de comando de arquivos codificados em base64.
A solicitação de API contém o campo input_audio para áudio codificado em base64. O exemplo a seguir mostra como enviar solicitações de áudio codificadas em 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)
Substitua:
MODEL_ID: o ID do endpoint do modelo que você quer usar para gerar a resposta.BASE64_DATA: os dados codificados em base64 do arquivo de áudio. Os dados codificados em base64 precisam ter um prefixo com um esquema de URI de dados, RFC 2397. Portanto, o formato do campodatapara dados codificados em base64 é, por exemplo,"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"
}
}
]
}
],
}'
Substitua:
ENDPOINT: o endpoint de API que você usa na sua organização.PROJECT: o ID do projeto.MODEL_ID: o ID do endpoint do modelo que você quer usar para gerar a resposta.BASE64_DATA: os dados codificados em base64 do arquivo de áudio. Os dados codificados em base64 precisam ter um prefixo com um esquema de URI de dados, RFC 2397. Portanto, o formato do campodatapara dados codificados em base64 é, por exemplo,"data": f"data:audio/mp3;base64,{base64_audio}".
Enviar URLs de áudio na solicitação
Faça upload do arquivo de áudio para um bucket de armazenamento antes de fazer a solicitação de comando. A solicitação
da API contém o campo audio_url para arquivos de áudio em buckets de armazenamento. O exemplo a seguir mostra como enviar solicitações de URL de áudio:
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",
}
}
]
}
],
}'
Substitua:
ENDPOINT: o endpoint de API que você usa na sua organização.PROJECT: o ID do projeto.MODEL_ID: o ID do endpoint do modelo que você quer usar para gerar a resposta.AUDIO_URL: o caminho para um URL de áudio em um bucket de armazenamento. Os URLs de áudio precisam se referir a arquivos de áudio armazenados em um bucket de armazenamento do GDC. Para mais informações, consulte Armazenar dados.