What the analyzer returns
The demo streams transcript tokens and phrase emotion through the Realtime preview. Periodic snapshots also go to the file models for 15-label whole-recording emotion and 16-label style analysis. For a single recording, use POST /v1/audio/analysis, with model=oruk-resonance to return the transcript plus selected multilabel scores in one response. Emotion labels (15): happy, excited, hopeful, sad, worried, angry, frustrated, disappointed, scared, disgusted, surprised, embarrassed, proud, relieved, neutral. Speaking-style labels (16): energetic, passionate, irritated, warm, playful, sarcastic, deadpan, hesitant, confident, sincere, skeptical, tired, formal, casual, impatient, distracted.
File models select labels using model-specific thresholds. If no emotion reaches its threshold, the highest-scoring emotion is returned as a fallback, even when its score is low. Speaking style has no fallback, so an empty styles array is valid. These scores are not automatically probabilities of a speaker’s feelings. Outputs describe how speech sounds. See capabilities and scope.
Run the same kind of analysis in Python
Resonance is oruk’s flagship speech recognition model. It transcribes English recordings and analyzes emotion and speaking style in one request. The code below analyzes a saved recording; the live interface additionally uses the separate streaming endpoint.
Install the official Python SDK in your terminal:
python -m pip install oruk==0.2.10Save the following as analyze.py, put recording.wav in the same directory, and set ORUK_API_KEY in your environment.
import os
from oruk import Oruk
with Oruk(api_key=os.environ["ORUK_API_KEY"]) as client:
result = client.analyze("recording.wav", model="oruk-resonance")
print(result["text"])
for segment in result["segments"]:
print(segment["start"], segment["end"], segment["emotions"], segment["styles"])Run python analyze.py with the same Python environment used for installation. The script prints the transcript, then each segment’s start and end in seconds with its returned emotion and style labels. For request options and downloads, see the official SDK documentation.
The recording-level score for a label is the highest returned segment score for that label. It does not tell you how much of the recording has that emotion. See the worked example of segment and recording scores before turning these results into analytics.
The microphone demo stops after 30 seconds. File integrations support longer recordings within the documented audio formats and limits. Record only audio you have permission to process.
FAQ
- Is this voice emotion analyzer free?
- Yes. The demo on this page runs against the live oruk Speech API at no cost and with no account. For your own applications, plans start at $9/month with audio minutes included, and self-serve plans start with a 7-day free trial.
- Is my voice recording stored?
- No. Audio is captured in your browser, sent to the API over TLS, analyzed, and discarded once the response is returned. Nothing is retained or used for training.
- How does the analyzer detect emotion from voice?
- An acoustic model scores 15 emotion labels and 16 speaking-style labels directly from the audio signal — pitch, pace, energy, timbre — with thresholds calibrated on held-out audio. Labels describe how the speech sounds, not what the speaker inwardly feels.
- What languages does it support?
- Use English for this combined demo: its whole-recording emotion and style analysis uses English file models. The separate Realtime preview supports 32 locales with phrase-level emotion scores.
- Can I use this in my own product?
- Yes. For a recording, POST /v1/audio/analysis with oruk-resonance returns transcript, emotion, style, and timed segments in one response. To reproduce the live interface, combine the Realtime WebSocket with periodic file analysis, as this demo does.
Build this into your product
The same endpoint powers call analytics, meeting tools, and research pipelines. Plans start at $9/month with audio minutes included, and self-serve plans start with a 7-day free trial.