HaSeen
Tuner take-home · Dialect Deviation Detection · Yahya Elnawasany

HaSeen هـ · سين

I built HaSeen to read an Arabic turn and say, for every word, whether it belongs to the dialect the voice agent was told to speak, and what it is when it does not. It runs offline on a CPU, with no LLM. The name is the idea: Egyptian says هيتم, MSA says سيتم; one letter decides the dialect.

New · HaSeen in Tuner. The same model as a Tuner eval: call metadata, a dialect_drift red flag, a live guard for LiveKit — tried on a real Tuner workspace.See it in Tuner →
0.869mean F1 on a fresh test, scored once
6targets: MSA, Egyptian, Saudi, Gulf, Levantine, Iraqi
6 / 6under 1% false alarms on native speech
7.1 msper sentence, int8, CPU, offline
3 days12–14 Oct, three iterations
~$11of GPU time in total
Try it · real outputs of the shipped model
Exact output of HaSeen-3-ONNX (int8), misses included. The label under a word is the most likely of the varieties it belongs to.
Three iterations in three days

Each build answered the question the last one raised

7 Oct 12–13 Oct 13–14 Oct 14 Oct Intro call "agents driftout of dialect" Build 1 · 3 varieties Egyptian, Gulf, MSAEgyptian F1 0.963, own gold Q: can it cover the region? Build 2 · 9 varieties expert lexicons, 25 cities0.932 on an in-style bench Q: is that bench too easy? Build 3 · 6 targets fresh human-speech test0.869 · Build 2 gets 0.819 shipped as HaSeen 3.0.0

Builds 1 and 2 are HaSeen 1 and HaSeen 2 in the repository's notes. I keep all three and their results, but the one I ship and stand behind is Build 3 (HaSeen 3.0.0): the only one measured on data that none of them had seen.