All commands assume you have already:
- Activated the venv:
source .venv/bin/activate - Built the dataset:
python -m audiocapbench.build_dataset --output-dir data/audio_caption - Authenticated GCP:
source ~/google-cloud-sdk/path.bash.inc && gcloud auth application-default login --project salesforce-research-internal
source credentials.env && python -m audiocapbench.evaluate \
--provider openai --model gpt-4o-audio-preview \
--data-dir data/audio_caption \
--credentials credentials.env \
--concurrency 10 \
--max-tokens 8192 \
--no-aac-metricssource credentials.env && python -m audiocapbench.evaluate \
--provider openai --model gpt-4o-mini-audio-preview \
--data-dir data/audio_caption \
--credentials credentials.env \
--concurrency 10 \
--max-tokens 8192 \
--no-aac-metricssource credentials.env && python -m audiocapbench.evaluate \
--provider openai --model gpt-audio \
--data-dir data/audio_caption \
--credentials credentials.env \
--concurrency 10 \
--max-tokens 8192 \
--no-aac-metricssource credentials.env && python -m audiocapbench.evaluate \
--provider openai --model gpt-audio-mini \
--data-dir data/audio_caption \
--credentials credentials.env \
--concurrency 10 \
--max-tokens 8192 \
--no-aac-metricsNote: Realtime models use WebSocket connections. Concurrency is limited since each connection is persistent. Use --concurrency 3 to avoid overwhelming the gateway.
source credentials.env && python -m audiocapbench.evaluate \
--provider openai_realtime --model gpt-4o-realtime-preview \
--data-dir data/audio_caption \
--credentials credentials.env \
--concurrency 3 \
--max-tokens 8192 \
--no-aac-metricssource credentials.env && python -m audiocapbench.evaluate \
--provider openai_realtime --model gpt-realtime \
--data-dir data/audio_caption \
--credentials credentials.env \
--concurrency 3 \
--max-tokens 8192 \
--no-aac-metricssource credentials.env && python -m audiocapbench.evaluate \
--provider openai_realtime --model gpt-realtime-mini \
--data-dir data/audio_caption \
--credentials credentials.env \
--concurrency 3 \
--max-tokens 8192 \
--no-aac-metricssource credentials.env && source ~/google-cloud-sdk/path.bash.inc && python -m audiocapbench.evaluate \
--provider gemini --model gemini-2.5-flash \
--data-dir data/audio_caption \
--credentials credentials.env \
--concurrency 10 \
--max-tokens 8192 \
--no-aac-metricssource credentials.env && source ~/google-cloud-sdk/path.bash.inc && python -m audiocapbench.evaluate \
--provider gemini --model gemini-2.5-pro \
--data-dir data/audio_caption \
--credentials credentials.env \
--concurrency 10 \
--max-tokens 8192 \
--no-aac-metricssource credentials.env && source ~/google-cloud-sdk/path.bash.inc && python -m audiocapbench.evaluate \
--provider gemini --model gemini-2.5-flash-lite \
--data-dir data/audio_caption \
--credentials credentials.env \
--concurrency 10 \
--max-tokens 8192 \
--no-aac-metricssource credentials.env && source ~/google-cloud-sdk/path.bash.inc && python -m audiocapbench.evaluate \
--provider gemini --model gemini-2.0-flash \
--data-dir data/audio_caption \
--credentials credentials.env \
--concurrency 10 \
--max-tokens 8192 \
--no-aac-metricsNote: Gemini 3 requires VERTEX_LOCATION=global (not us-central1).
source credentials.env && source ~/google-cloud-sdk/path.bash.inc && VERTEX_LOCATION=global python -m audiocapbench.evaluate \
--provider gemini --model gemini-3-flash-preview \
--data-dir data/audio_caption \
--credentials credentials.env \
--concurrency 10 \
--max-tokens 8192 \
--no-aac-metricssource credentials.env && source ~/google-cloud-sdk/path.bash.inc && VERTEX_LOCATION=global python -m audiocapbench.evaluate \
--provider gemini --model gemini-3-pro-preview \
--data-dir data/audio_caption \
--credentials credentials.env \
--concurrency 20 \
--max-tokens 8192 \
--no-aac-metricssource credentials.env && python -m audiocapbench.evaluate \
--provider openai --model gpt-4o-audio-preview \
--data-dir data/audio_caption \
--credentials credentials.env \
--max-samples 10 \
--concurrency 5 \
--no-aac-metrics --no-llm-judge# Sound only
source credentials.env && python -m audiocapbench.evaluate \
--provider openai --model gpt-4o-audio-preview \
--data-dir data/audio_caption \
--credentials credentials.env \
--category sound \
--concurrency 10 \
--no-aac-metrics
# Music only
source credentials.env && python -m audiocapbench.evaluate \
--provider openai --model gpt-4o-audio-preview \
--data-dir data/audio_caption \
--credentials credentials.env \
--category music \
--concurrency 10 \
--no-aac-metrics
# Speech only
source credentials.env && python -m audiocapbench.evaluate \
--provider openai --model gpt-4o-audio-preview \
--data-dir data/audio_caption \
--credentials credentials.env \
--category speech \
--concurrency 10 \
--no-aac-metrics- Concurrency:
--concurrency 10runs 10 parallel API calls for both inference and LLM judge. Adjust based on rate limits. - max-tokens:
--max-tokens 8192is used uniformly across all models for fairness. Gemini 2.5+ thinking models require it (thinking tokens share the budget), and GPT models benefit from not being artificially truncated at the default 256. - Results: Saved to
results/<provider>_<model>_<timestamp>.json - LLM Judge: Uses GPT-4.1 via Salesforce Gateway. Disable with
--no-llm-judgefor faster runs. - Some models may not be available on the Salesforce Gateway or Vertex AI. If a model returns errors, it may not be enabled for your project.