跳至主要內容

使用 Audio 模型

如何向 /chat/completions 端點傳送 / 接收 audio

模型的 Audio 輸出

將提示詞轉換為類人音訊回應的範例

import os 
import base64
from litellm import completion

os.environ["OPENAI_API_KEY"] = "your-api-key"

# openai call
completion = await litellm.acompletion(
model="gpt-4o-audio-preview",
modalities=["text", "audio"],
audio={"voice": "alloy", "format": "wav"},
messages=[{"role": "user", "content": "Is a golden retriever a good family dog?"}],
)

wav_bytes = base64.b64decode(completion.choices[0].message.audio.data)
with open("dog.wav", "wb") as f:
f.write(wav_bytes)

模型的 Audio 輸入

import base64
import requests

url = "https://openaiassets.blob.core.windows.net/$web/API/docs/audio/alloy.wav"
response = requests.get(url)
response.raise_for_status()
wav_data = response.content
encoded_string = base64.b64encode(wav_data).decode("utf-8")

completion = litellm.completion(
model="gpt-4o-audio-preview",
modalities=["text", "audio"],
audio={"voice": "alloy", "format": "wav"},
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What is in this recording?"},
{
"type": "input_audio",
"input_audio": {"data": encoded_string, "format": "wav"},
},
],
},
],
)

print(completion.choices[0].message)

檢查模型是否支援 audio_inputaudio_output

使用 litellm.supports_audio_output(model="") -> 若模型可產生 audio 輸出,則回傳 True

使用 litellm.supports_audio_input(model="") -> 若模型可接受 audio 輸入,則回傳 True

assert litellm.supports_audio_output(model="gpt-4o-audio-preview") == True
assert litellm.supports_audio_input(model="gpt-4o-audio-preview") == True

assert litellm.supports_audio_output(model="gpt-3.5-turbo") == False
assert litellm.supports_audio_input(model="gpt-3.5-turbo") == False

含 Audio 的回應格式

以下是當您向模型傳送 audio 輸入時,可能會從 /chat/completions 端點收到的 message JSON 資料結構範例。

{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"refusal": null,
"audio": {
"id": "audio_abc123",
"expires_at": 1729018505,
"data": "<bytes omitted>",
"transcript": "Yes, golden retrievers are known to be ..."
}
},
"finish_reason": "stop"
}
  • audio 如果請求了 audio 輸出模式,則此物件包含來自模型的 audio 回應資料
    • audio.id audio 回應的唯一識別碼
    • audio.expires_at 此 audio 回應在伺服器上對於多輪對話不再可用的 Unix 時間戳記(以秒為單位)。
    • audio.data 由模型產生的 Base64 編碼 audio 位元組,格式如請求中所指定。
    • audio.transcript 由模型產生的 audio 逐字稿。
🚅
LiteLLM Enterprise
為正式環境打造的 SSO/SAML、稽核記錄、支出追蹤、多團隊管理與防護欄。
深入瞭解 →