Audio Input Agent

Send an audio file to a LiteLLM-backed agent and get a text description of its contents.

Code

import requests
from agno.agent import Agent
from agno.media import Audio
from agno.models.litellm import LiteLLM

# Fetch the QA audio file and convert it to a base64 encoded string
url = "https://agno-public.s3.us-east-1.amazonaws.com/demo_data/QA-01.mp3"
response = requests.get(url)
response.raise_for_status()
mp3_data = response.content

# Audio input requires specific audio-enabled models like gpt-audio
agent = Agent(
    model=LiteLLM(id="gpt-audio"),
    markdown=True,
)
agent.print_response(
    "What's the audio about?",
    audio=[Audio(content=mp3_data, format="mp3")],
    stream=True,
)

Usage

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Set your API key

export LITELLM_API_KEY=xxx

Install dependencies

uv pip install -U "litellm>=1.83.0" requests agno

Run Agent

Save the code above as audio_input_agent.py, then run:

python audio_input_agent.py