Zum Hauptinhalt springen

Verwenden von Audio-Modellen

So senden/empfangen Sie Audio über einen /chat/completions Endpunkt

Audioausgabe eines Modells

Beispiel für die Erstellung einer menschenähnlichen Audioantwort auf eine Eingabeaufforderung

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)

Audioeingabe eines Modells

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)

Prüfen, ob ein Modell audio_input und audio_output unterstützt

Verwenden Sie litellm.supports_audio_output(model="") -> gibt True zurück, wenn das Modell Audioausgabe generieren kann

Verwenden Sie litellm.supports_audio_input(model="") -> gibt True zurück, wenn das Modell Audioeingabe akzeptieren kann

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

Antwortformat mit Audio

Unten sehen Sie eine Beispiel-JSON-Datenstruktur für eine message, die Sie von einem /chat/completions Endpunkt erhalten könnten, wenn Sie Audioeingaben an ein Modell senden.

{
"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 Wenn die Audioausgabe-Modalität angefordert wird, enthält dieses Objekt Daten zur Audioantwort des Modells
    • audio.id Eindeutiger Bezeichner für die Audioantwort
    • audio.expires_at Der Unix-Zeitstempel (in Sekunden) für den Zeitpunkt, zu dem diese Audioantwort auf dem Server für die Verwendung in Konversationen mit mehreren Runden nicht mehr zugänglich ist.
    • audio.data Base64-codierte Audio-Bytes, die vom Modell generiert wurden, im im Request angegebenen Format.
    • audio.transcript Transkription der vom Modell generierten Audiodaten.