vibrato
Standalone Jev-class emotion model: one pass over a message sequence returns calibrated PAD scores, an emotion family and yes/no judgments.
Overview
Vibrato is an open System One model for reading emotion. In one forward pass over a message sequence, where messages can carry text and/or state snapshots, it returns calibrated probability distributions: Pleasure, Arousal and Dominance scores as 9-bin ordinal distributions, an emotion family choice, yes/no judgments and a confidence flag. It began as the user-emotion front end of a companion AI stack and grew into a general model.
It targets companion AI, chat analytics, moderation, mental-health triage and adaptive interfaces, where the usual approach is an LLM call per message. The runtime is a 1.86M-parameter judgment head on a frozen embedding backbone (the README says e5-small at 118M suffices), with the teacher LLM used only offline. The README reports measured head latency of about 3 ms on CPU int8 and a full path of about 16 ms on GPU or 144 ms on CPU, versus 3.7 to 13.2 s for LLM baselines, and data that never leaves the machine.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Score | Pleasure, Arousal and Dominance levels (Likert 1 to 9) | 1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 |
| Choice | Which emotion family does the user express? | — |
| Yes / no | Yes/no affect judgments (e.g. is the user distressed?)(inferred) | yes · no |
How it works
- Provide a message sequence (text and/or state snapshots).
- Run one forward pass through the backbone and judgment head.
- Receive PAD distributions, emotion family, yes/no answers and confidence.
- Use them in the application; escalate on low confidence.
Strengths
- Millisecond latency on CPU, per the README.
- Runs locally; no text leaves the machine.
- Full distributions rather than point estimates.
Caveats
- Emotion inference is sensitive; outputs should not be treated as diagnoses.
- Trained with an LLM teacher; inherits its biases.
At a glance
- Type
- Project
- Status
- research
- Runtime
- local model (CPU or GPU)
- Has code
- yes
Use cases and integrations
How curated lists describe it
A complete System One model for emotion — emotion reading as typed decisions.
wh000wh000/awesome-jev-live
Frequently asked questions
What does Vibrato output?
PAD score distributions, an emotion family, yes/no judgments and a confidence flag.
How fast is it?
The README reports about 16 ms on GPU and 144 ms on CPU for the full path.
Does it need an LLM at runtime?
No, the teacher LLM is used only offline.
Related projects
Mangaba AI's local, calibrated typed-decision model for Portuguese text, trained to optimize the Brier score; proprietary since v5.
ProjectproductionPythonAudio-native Jev-style model: a frozen Whisper encoder encodes speech once and typed questions return emotion and prosody distributions.
ServiceresearchPython- jev-chat-windows★ 802
Windows WeChat reply assistant: local offline OCR reads the chat, Jev judges intent and tension and ranks three drafted replies to fill in.
ProjectproductionPython DeepSeek Harness plugin that classifies each user message's emotion, urgency and department with Jev and injects it as context.
PluginbetaTypeScriptFork of the jev-chat Windows app adding a key-free local LAYA judgment backend and a DPI-aware screen capture fix.
ProjectbetaPythonAndroid chat co-pilot that reads the active chat via Accessibility and returns typed verdicts on intent, emotion and risk; never replies.
AppbetaKotlin