Gemini는 오디오에 관한 프롬프트에 대답할 수 있습니다. Gemini 요청에 오디오를 추가하여 포함된 오디오의 콘텐츠를 이해하는 것과 관련된 작업을 수행할 수 있습니다. 예를 들어 Gemini는 다음 작업을 할 수 있습니다.
- 오디오 콘텐츠를 설명하거나 요약하거나 오디오 콘텐츠에 관한 질문에 답변합니다.
- 오디오 스크립트를 제공합니다.
- 오디오의 특정 부분에 관한 답변 또는 스크립트를 제공합니다.
오디오 이해는 텍스트와 미디어 파일을 결합하는 Gemini의 멀티모달 입력 중 하나입니다.
Gemini를 사용한 오디오 이해에 관한 자세한 내용과 API 요청 전송에 관한 단계별 안내는 멀티모달 프롬프트 보내기를 참고하세요.
오디오가 포함된 프롬프트 사양
Gemini에 대한 요청에 오디오 파일을 추가할 수 있습니다. 단일 프롬프트에서 지원되는 최대 오디오 데이터 길이는 15분 또는 최대 32,000개의 토큰입니다. 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개의 토큰으로 표시됩니다.
- 영어 음성에 대한 대답만 추론합니다.
- 새소리나 사이렌과 같은 비음성 구성요소를 분석합니다.
- 오디오 파일을 16Kbps 데이터 해상도로 샘플링합니다. 오디오 소스에 여러 채널이 포함된 경우 Gemini는 이를 단일 채널로 결합합니다.
REST API에서 채팅 완성 엔드포인트를 사용하고 HTTP 클라이언트 또는 OpenAI의 공식 Python SDK를 사용할 수 있습니다. 프롬프트 요청에 오디오를 인라인 데이터로 제공할 수 있습니다(base64로 인코딩된 파일). 또는 프롬프트 요청을 하기 전에 스토리지 버킷에 오디오 파일을 업로드할 수 있습니다.
Google Cloud 문서에서 오디오의 제한사항에 대해 자세히 알아보세요.
OpenAI 및 Gemini가 Google Distributed Cloud (GDC) 에어갭에서 구현하는 Chat Completions 엔드포인트에 대해 자세히 알아보려면 https://platform.openai.com/docs/api-reference/chat을 참고하세요.
프롬프트의 오디오 이해
다음 예시에서는 Python 또는 curl용 OpenAI 공식 SDK를 사용하여 텍스트 및 오디오 입력에서 텍스트를 생성하는 Gemini Chat Completions API 요청을 보여줍니다. 오디오를 인라인 데이터로 전송하거나 요청에 오디오 URL을 제공할 수 있습니다.
인라인 데이터 요청 보내기
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}"입니다.
요청에 오디오 URL 전송
프롬프트 요청을 하기 전에 오디오 파일을 스토리지 버킷에 업로드합니다. API 요청에는 스토리지 버킷의 오디오 파일에 대한 audio_url 필드가 포함됩니다. 다음 샘플은 오디오 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: 스토리지 버킷에 있는 오디오 URL의 경로입니다. 오디오 URL은 GDC 스토리지 버킷에 저장된 오디오 파일을 참조해야 합니다. 자세한 내용은 데이터 저장을 참고하세요.