Skip to content

Migration guide

Migrating from Hume’s legacy Expression Measurement API

Correction — July 20, 2026: this guide previously described the legacy June shutdown as the end of all Hume expression measurement. Hume’s current official page advertises offline Tagger and real-time Prosody. The migration below applies only to the legacy HumeBatchClient-era workflow.

This guide documents the older HumeBatchClient Expression Measurement batch workflow and its 48-dimension prosody output. Hume’s current page now uses the Expression Measurement name for Tagger and Prosody offerings. If your integration used the legacy client shown below, this page maps that specific workflow onto the oruk Speech API: what transfers, what changes, and what oruk deliberately does not replace.

The short version

For audio emotion measurement, oruk returns 15 calibrated multilabel emotion scores and 16 speaking-style scores from one synchronous REST call — no job polling. In the July 2026 speech-emotion-bench release, oruk Spectra measured 77.6% on the full 64,384-clip evaluation. The legacy Hume prosody snapshot measured 49.6% on the fixed 5,000-clip closed/API subset; current Tagger and Prosody were not evaluated. The oruk entry is trained in-distribution while Hume was evaluated zero-shot; details are on the methodology page. Pricing is $0.0060 per audio minute for emotion (pricing version 2026-07-11). Hume’s current page routes Tagger access through its Research team, so this guide does not present a current Hume price comparison.

Label mapping

The legacy Hume speech prosody endpoint scored 48 emotion dimensions. oruk uses a smaller space: labels that cross thresholds selected on held-out audio are returned. Those thresholds can improve consistency on similar audio but still require validation on your speakers and domain. Near-synonym mappings:

Hume EM dimensionNearest oruk labelLabel type
Angerangryemotion
Anxietyworriedemotion
Excitementexcitedemotion
Joy / Amusementhappyemotion
Sadnesssademotion
Disappointmentdisappointedemotion
Fear / Distressscaredemotion
Disgustdisgustedemotion
Surprise (positive or negative)surprisedemotion
Pride / Triumphproudemotion
Reliefrelievedemotion
Embarrassment / Shameembarrassedemotion
Calmness / Contentmentneutralemotion
Determinationconfidentstyle
Doubtskeptical / hesitantstyle
Tiredness / Boredomtiredstyle
Interestenergetic / passionatestyle

Dimensions without a near-synonym (e.g. Nostalgia, Envy, Awe, Craving) have no direct oruk counterpart — treat them as out of scope rather than forcing a mapping. The full label inventory is on the capabilities page.

Code: before and after

The structural change is async-batch to synchronous: Hume EM submitted a job and polled for results; oruk returns the scored response to the same POST request.

# Legacy Hume Expression Measurement batch SDK workflow
from hume import HumeBatchClient
from hume.models.config import ProsodyConfig

client = HumeBatchClient("HUME_API_KEY")
job = client.submit_job([], [ProsodyConfig()], files=["call.wav"])
job.await_complete()          # poll until the async job finishes
predictions = job.get_predictions()
# oruk emotion API (synchronous, one request)
import os, requests

with open("call.wav", "rb") as audio:
    r = requests.post(
        "https://speech-api.oruk.ai/v1/audio/emotions",
        headers={"Authorization": f"Bearer {os.environ['ORUK_API_KEY']}"},
        files={"file": ("call.wav", audio, "audio/wav")},
        data={"model": "oruk-spectra-1"},
        timeout=120,
    )

r.raise_for_status()
for e in r.json()["emotions"]:
    print(e["label"], e["score"])

What changes in your pipeline

  • Job polling goes away. One POST per file; responses include time-local segments for long files.
  • Raw dimensions become thresholded labels. Instead of thresholding 48 floating scores yourself, oruk applies thresholds selected on held-out audio; a clip can carry several labels. Validate those thresholds on your own domain.
  • Transcripts are available in the same call. POST /v1/audio/analysis returns transcript, emotion, style, and tagged text together — Hume EM required a separate ASR step.
  • English only. oruk API v1 processes English audio. Hume EM was multilingual for some modalities.
  • Billing is per measured second. Every response reports its audio duration, applied rate, and estimated cost.

What oruk does not replace

Honesty over reach: oruk analyzes prerecorded audio only. If your Hume EM usage depended on facial expression measurement, vocal-burst taxonomies, text emotion, or websocket streaming, oruk is not the right replacement — evaluate multimodal vendors for those modalities. Hume’s current voice products include offline Tagger, real-time Prosody, EVI, and TTS; evaluate those products directly when their scope better matches your requirements.

FAQ

Is this guide about Hume’s current Tagger or Prosody products?
No. Hume’s current official page advertises Tagger for offline batch analysis and Prosody for real-time signals. This guide only documents migration from the older HumeBatchClient workflow and its 48-dimension prosody output. Current Hume products require a fresh capability and access comparison.
Is oruk a drop-in replacement for Hume Expression Measurement?
No — the request model and label space differ. Hume EM ran asynchronous batch jobs over 48 emotion dimensions (plus vocal bursts, facial expressions, and text); oruk is a synchronous file-based API returning 15 calibrated multilabel emotion scores and 16 speaking-style scores for English audio. Most audio-emotion pipelines can migrate by remapping labels and replacing the job-polling loop with one POST.
What does oruk cost compared to Hume Expression Measurement?
Hume’s current page routes Tagger access through its Research team, so this guide does not present a directly comparable current Hume rate. oruk emotion requests on Spectra 1 cost $0.0060 per audio minute, and unified analysis (transcript + emotion + style) costs $0.0090. New oruk accounts include $50 in trial credit.
What did Hume Expression Measurement do that oruk does not?
The legacy product covered facial expression, vocal bursts, text emotion, and WebSocket streaming in addition to speech prosody. oruk analyzes prerecorded audio only. Hume’s current public page advertises 600+ dimension voice Tagger analysis and real-time Prosody, which are also outside oruk’s product scope.

Sources and correction policy

  • Hume AI’s current Expression Measurement page, accessed July 20, 2026 — current Tagger and Prosody product scope. The legacy code sample is preserved only to identify the workflow being migrated.
  • Benchmark methodology — full-vs-subset sample sizes, evaluation dates, in-distribution disclosure, and downloadable results.
  • oruk is not affiliated with Hume AI. Report a factual issue to access@oruk.ai.

Test the migration with $50 in trial credit

Run your existing evaluation audio through the oruk emotion API before committing. No card required.

oruk vs Hume AI All Hume AI alternatives Benchmark: 64 systems