abargum's picture
Add CC BY-NC 4.0 license
074f065 verified
|
Raw History Blame Contribute Delete
4.62 kB

A newer version of the Gradio SDK is available: 6.31.0

Upgrade
metadata
title: Inter-2-Audio Playground
emoji: 🎙️
colorFrom: indigo
colorTo: pink
sdk: gradio
sdk_version: 6.19.0
python_version: '3.12'
app_file: app.py
pinned: false
license: cc-by-nc-4.0

Inter-2 Audio Playground

Try Inter-2 Audio, Interhuman AI's model for how something is said: emotion, engagement, social signals and vocal delivery, read from the voice.

Upload or record a speech clip, pick a task, and press Analyze. The model hears the first 30 seconds of each clip.

Tasks

Task What it returns JSON schema on by default
Emotion one primary emotion: angry, disgusted, fearful, happy, neutral, sad or surprised, with a confidence and evidence no
Combined engagement status (engaged, neutral, disengaged); social signals (Hesitation, Agreement, Uncertainty, Frustration, Interest, Confidence), each with a level and rationale; the primary emotion; and the vocal delivery (Normal, Crying, Laughing, Mumbling, Shouting, Singing, Whispering) yes

Both prompts are editable. Constrain the answer to the task's JSON schema forces valid JSON with only the listed labels; the Emotion answer's confidence is then limited to quarters and its evidence left empty, and rationales are capped at 300 characters. Leave it off to read the model's own wording. Decoding is greedy unless you raise the temperature under Advanced.

API

Every run of the UI is also available as the /generate endpoint. The footer's Use via API link shows the auto-generated reference. From Python:

from gradio_client import Client, handle_file

client = Client("Interhuman/inter2-audio-playground", token="hf_...")  # your Hugging Face token
summary_html, parsed_json, raw_output = client.predict(
    handle_file("clip.wav"),  # audio file or URL; the first 30 s are used
    "",                       # system prompt
    PROMPT,                   # user prompt (see prompts/ or the UI)
    True,                     # audio before text
    False,                    # constrain to the task's JSON schema
    768, 0.0, 1.0, 1.0,       # max new tokens, temperature (0 = greedy), top-p, repetition penalty
    "Emotion",                # task: "Emotion" or "Combined"; picks the schema when constrained
    api_name="/generate",
)

parsed_json is the model's answer as a JSON string (empty if it could not be parsed) and raw_output is the text exactly as generated.

Running a folder of clips

examples/run_inter2_audio.py sends the same prompts as the UI and writes one JSON line per clip:

pip install -U huggingface_hub
hf download Interhuman/inter2-audio-playground --repo-type space --local-dir inter2-audio-playground
cd inter2-audio-playground
python -m venv .venv && source .venv/bin/activate  # a fresh environment: the client needs a recent
pip install gradio_client huggingface_hub          # huggingface_hub, which older transformers installs reject
HF_TOKEN=hf_... python examples/run_inter2_audio.py --task Combined --output combined.jsonl path/to/clips/

Pass audio files and/or folders (searched recursively). --constrain / --no-constrain overrides the task's default. Re-running with the same --output skips clips already done.

Running VocalAffectBench

examples/run_vab_bench.py runs VocalAffectBench (280 clips, 7 emotions) through the API, from the same folder and environment as above:

HF_TOKEN=hf_... python examples/run_vab_bench.py --output vab.jsonl

It downloads the benchmark at a pinned revision, sends each clip with the Emotion prompt and the JSON schema on (--no-constrain lets the model write freely), writes one JSON line per clip (clip id, gold emotion, prediction, raw output) and prints the accuracy overall and per emotion. --limit 5 is a quick check (the clips are sorted by emotion, so it is not a sample). A full run takes roughly 10 minutes of GPU time; if your quota runs out, re-run the same command later and it continues where it stopped.

Notes

  • The Space runs on ZeroGPU: each caller's GPU time counts against their own daily Hugging Face quota (anonymous callers get the least, so use a token), so a long batch may need to be resumed the next day.
  • The Space runs on Hugging Face infrastructure in the US.

License

The contents of this Space (code, prompts and documentation) are released under CC BY-NC 4.0 by Interhuman AI. This covers the files in this repository only; the Inter-2 Audio model is not distributed here.