Medera BH-ASR

Speech recognition built for behavioral-health conversations, in English and Arabic. Live benchmark · Leaderboard · Beta 1.2.0 · Proprietary · CPU

Beta. Medera BH-ASR supports clinician documentation and review. It is not cleared or approved as a medical device. It gives no diagnosis and no score: each safety flag carries a severity set by its category, and a recording with an affirmed or hypothetical high-severity flag is marked for urgent review. That mark asks for a clinician's review; it is not a validated risk assessment. Validate the engine in your clinical governance process before clinical use.

Hard-case program. We are collecting the hard cases for safety alerts: indirect phrasing, an alert buried in a long answer, crying or whispered speech, and Arabic dialects. To contribute recordings from consenting speakers (never patients), labels or clinical review, reach Medera through medera.info.

Medera BH-ASR in eight steps: audio, speech regions, speakers, recognition, roles, safety rules, the conversation (in development), review prompts for the clinician

On this page: Highlights · How it works · Leaderboard · Where alerts are lost · Safety rules · What comes next · Explainers · Limitations

Description

Medera BH-ASR turns one recording of a clinical conversation into a speaker-attributed transcript, checked against an independent recogniser, with bilingual safety-language flags for a clinician to review. Nothing is declared up front: the language of every stretch of speech, the speakers and who is the clinician and who the patient are all detected. In English, Pro fuses three open speech recognisers word by word; every profile checks its text against an independent verifier and a guard, and returns versioned JSON. It runs entirely on CPU, with every model file pinned by SHA-256.

The engine is proprietary. This repository holds the model card, the manifest of the open model files the engine runs (config/bhasr.yaml) and the 23 pinned files themselves, the output schema, the computed results behind this page (eval_results/; the test items themselves are not distributed) and the third-party licences. The engine's code, lexicons and rules are not distributed, and its tuned parameters are not in this repository.

Release Date

Beta 1.2.0: October 2026 · leaderboard scored October 8, 2026.

Live benchmark

Open the live benchmark: record or upload a conversation in English or Arabic. BH-ASR runs first, then the other open recognisers transcribe the same speech, and each is scored live by its agreement with the recognisers independent of it. The Leaderboard tab holds the results below, and the Space re-runs a random sample of its real-speech clips on its own CPU to show they reproduce. The live benchmark runs engine 1.2.0 with safety rules 1.3.0, the engine and rules its leaderboard was scored with; what is still in development is marked so on this page.

The same from the command line, for a demonstration recording (never a real patient's):

curl -s -F file=@recording.wav https://medera-medera-bh-asr-demo.hf.space/api/jobs    # the job, with its "id"
curl -s https://medera-medera-bh-asr-demo.hf.space/api/jobs/JOB_ID                    # queued, running, then done with every result

Recordings up to 3 minutes and 25 MB; results stay in memory for 15 minutes.

Highlights

What it does Evidence
One input Language per speech region, speakers by voice, clinician and patient read from the words 97.9 % of transcribed speech carried its speaker's true role on 30 held-out consultations mixed to one channel, with speakers and roles not declared (Lite, English given, without the verifier); the leaderboard's BH-ASR results use the language it detected
Consensus transcript In English, Pro fuses three recognisers around a pivot; every profile checks its text against an independent verifier Lowest word error rate of 13 systems on English mock consultations: 11.02 % (95 % CI 9.16–13.25, resampling 42 consultations), 1.3 points below its pivot (p = 0.004), level with Qwen3-ASR 0.6B (p = 0.15)
Guarded against invented text Checks every segment for speech support, stock phrases, loops, speaking rate and agreement with the verifier; in Pro's English, for context leakage too 0 inserted drug names under a medication prompt where the prompted recogniser alone inserted 71; output text on 1 of 68 real non-speech clips
Safety language Bilingual flags with polarity: affirmed, hypothetical and about-someone-else flags are review prompts; denials and a clinician's screening questions are documented Rules 1.3.0 on the leaderboard's alert statements: English, raised on 12 of the 22 written statements and kept through recognition, in at least one of each statement's two recordings, on all 12; Arabic, raised on 15 and kept on 4. End to end: 12 of 22 in English, 4 of 22 in Arabic (where alerts are lost)
Read in context Rules 1.5.1, in development, read an answer with its question and a statement across a pause On 40 alerts per language in held-out written exchanges, speakers given, scored once with rules 1.5.0, which were written after the set was frozen: English 27 raised (line by line: 6), Arabic 19 (4), with one false prompt in 24 safe exchanges in each language; rules 1.5.1 give the same results (in conversations)
Arabic Language detected per speech region; role cues for Saudi, Gulf and Modern Standard Arabic Lowest word error rate on the Arabic safety statements (synthetic speech): 35.35 %, 1.2 points below Cohere Transcribe run alone, Pro's only Arabic recogniser (p = 0.036, resampling 60 statements); on real read speech (FLEURS) Lite is better: 11.14 % against 12.38 % (p = 0.027, over utterances)
CPU, private Audio in memory, no outbound connection, every model file pinned by SHA-256 23 model files pinned in config/bhasr.yaml; real-time factor on 2 vCPU, English consultations · Arabic statements: Lite 0.86 · 1.3, Pro 2.0 · 1.2

Model Architecture

Architecture type: system of models: voice-activity detection, speaker embedding and clustering, per-region language identification, a recogniser line-up with word-level fusion, an independent verifier, a rule-based guard, role reading and bilingual safety-language rules.

Profile English Arabic Verifier and language ID Use
Pro Parakeet-TDT-0.6B-v2 + Qwen3-ASR-0.6B (clinical context) + Cohere Transcribe, fused Cohere Transcribe Whisper-large-v3-turbo transcripts after the session
Lite Parakeet-TDT-0.6B-v2 Nemotron-3.5-ASR Whisper-large-v3-turbo lighter nodes: one recogniser and the verifier

How the text of one segment is decided

Three recognisers aligned to the pivot vote word by word; in this example a word only one recogniser adds is not added; a verifier and a guard of six checks decide the segment

In English, Pro's members are aligned to the pivot pp, the first of its line-up. In every slot jj the word with the most votes wins, the empty word ∅\varnothing included (two members can delete a pivot word), and a tie keeps the pivot's word:

w^j  =  arg max⁡w  ∑m=1M1 ⁣[ hm,j=w ],ties  →  hp,j \hat{w}_j \;=\; \operatorname*{arg\,max}_{w}\; \sum_{m=1}^{M} \mathbf{1}\!\left[\,h_{m,j} = w\,\right], \qquad \text{ties} \;\rightarrow\; h_{p,j}

A word with no counterpart in the pivot is added only when every other member inserts it at the same place, each member counted once. With Im,jI_{m,j} the words member mm inserts before slot jj:

insert w at j  ⟺  ∀ m≠p:  w∈Im,j \text{insert } w \text{ at } j \iff \forall\, m \neq p:\; w \in I_{m,j}

and a word is added as many times as every other member has it there. No single member can add a word; the pivot's fillers (um, uh) are kept whatever the vote. This counting is a fix in development: the live engine (1.2.0) counted a member's repeated insertion as two members, so one member could add a word (in a constructed case, one member's "don't don't" turned "I want to die" into "I don't want to die"), and a word both other members repeated was dropped. Rescoring Pro's cached outputs with the fix changes 4 of the 1,000 PriMock57 test utterances (two regain words both other recognisers repeated, two lose a repetition only one of them heard; word error rate 10.56 % to 10.51 %, paired p = 0.62) and none on the 8 other evaluation sets, the safety statements among them.

The verifier transcribes independently and is not one of the voters. The guard compares the fused text with it and checks speech support, stock phrases, loops, the speaking rate and agreement with the verifier, and in Pro's English context leakage: two or more terms of a recogniser's context prompt that the verifier did not hear. It then keeps the segment, flags it for review, trims a loop, uses the verifier's words (when the members found none, or their text leaks the context prompt) or drops it, and records why. The verifier also counts toward the majority that keeps a short answer or a stock phrase most of the recognisers heard.

Speakers are told apart by clustering speaker embeddings u\mathbf{u} of short windows on cosine distance,

d(u,v)  =  1−u⊤v∥u∥ ∥v∥ d(\mathbf{u}, \mathbf{v}) \;=\; 1 - \frac{\mathbf{u}^{\top}\mathbf{v}}{\lVert\mathbf{u}\rVert\,\lVert\mathbf{v}\rVert}

and each speaker's role is read from what they say: questions put to the listener, words addressed to them, words about oneself, clinician and patient phrasing, in English and Arabic.

Input

  • Input type: audio, one recording of a conversation. A WAV, FLAC, MP3 or OGG file may instead carry one speaker per channel: when the request names the channels' speakers, each channel is kept separate; otherwise the channels are mixed to one.
  • Input format: WAV, FLAC, MP3, OGG, M4A or WebM, at any sample rate, resampled to 16 kHz; M4A and WebM are decoded to one channel.
  • Languages: English and Arabic, detected for every speech region, so a conversation may move between them. Role cues are written for Saudi, Gulf and Modern Standard Arabic; other dialects are untested.

Output

  • Output type: JSON, schema bh-transcript.v1, and Speech-to-Behavioral-Text (an annotated transcript).
  • Per segment: start and end time, speaker, role, language, text, guard flags and disputed clinical terms, the recognisers' agreement, clinical terms, and safety-language flags with their category, severity and polarity and whether each is a review prompt.
  • Per recording: speakers and roles with the evidence for each role, turns and timing, and a safety summary: the categories of affirmed and hypothetical flags (about-someone-else prompts appear on their segments only), documented denials, screening questions, and the urgent-review mark, set when an affirmed or hypothetical flag is in a high-severity category (suicidal thoughts, plans or means, self-harm, harm to others; hopelessness is moderate).
  • Not evaluated: the partner service also returns each segment's pitch and loudness, language markers per speaker and biomarker snapshots that hold timing only (vocal biomarkers).

Software Integration

  • Runtime: sherpa-onnx 1.13.8 and onnxruntime on CPU, int8 model files where published so.
  • Supported hardware: x86-64 CPUs; the leaderboard timed every system on 2 vCPU. Peak memory on an 11.6-minute consultation, measured before the speaker model was added in 1.2: Lite 3.7 GiB, Pro 8.8 GiB (plan a 12–16 GB node for Pro).
  • Supported operating system: Linux (container image).
  • Integration: an HTTP service (POST /v1/transcribe) with an API key, available to partners under agreement; the live benchmark above for evaluation.

Model Version

Live: engine 1.2.0 with safety-language rules 1.3.0 and output schema bh-transcript.v1, in the live benchmark and its leaderboard. In development and not yet in the live benchmark: rules 1.5.1, which read the conversation (measured below), and the fusion counting fix above.

Evaluation Datasets

BH-ASR trains no recogniser weights: it runs the open recognisers listed above, as the int8 sherpa-onnx exports pinned in config/bhasr.yaml. Its thresholds, line-ups and the role reader's cue weights were chosen or fitted on development data (PriMock57 development consultations and the BH-Stress sets). What was seen, and when:

  • The leaderboard's safety rules (1.3.0) were developed with 6 of the 60 BH-Heldout-3 statements in each language, which are part of the safety test sets below, and a draft of 1.3 was scored once on BH-Heldout-3 before 1.3.0 was frozen.
  • An error analysis of the previous run's test transcripts prompted the engine changes in 1.2.0, which were then checked on development data only. The diarization's minimum of two long windows was added after the first 1.2.0 leaderboard run split short recordings of one person into two speakers; its effect was then measured on the test utterances, so that figure is not held out (false splits on single utterances: 118 of 638 without it, 0 with it).
  • The diarizer's second look at similar voices was added after the first 12 PriMock57 test consultations showed similar voices merged; its parameters come from development data, and the speaker-and-role figure in the highlights is on the other 30, which were not diarized before it.
  • PriMock57's reference transcripts were read while developing rules 1.1, so the rules' result on them is a check for false alarms on seen text.
  • Rules 1.0 predate the freeze protocol of the safety rules.
Test set Language Speech Clips Content
Mock consultations (PriMock57) English real 240 (16.2 min) mock primary-care consultations, UK English; a fixed sample of the test split
Safety statements (BH-Heldout-3) English synthetic 120 (9.4 min) 60 scripted statements (22 alerts), clean and with room noise at 12 dB SNR; 11 synthetic voices
Safety statements (BH-Heldout-3) Arabic synthetic 120 (11.9 min) 60 scripted statements (22 alerts), clean and with room noise at 12 dB SNR; one synthetic voice at three speaking rates

Each language has 60 safety statements, 22 of them alerts, scripted by an independent AI agent that saw neither the rules nor the earlier held-out sets:

Statement kind English Arabic Review prompt expected
Direct 9 9 yes
Indirect 9 9 yes
Conditional 2 2 yes
About someone else 2 2 yes
Denial 12 12 no
Clinician's screening question 8 8 no
Idiom 10 10 no
Neutral 8 8 no

Performance Evaluation

All 13 systems ran on the same CPU runtime (int8 sherpa-onnx exports; Whisper decodes greedily) with the same normalisers (Whisper's English normaliser; Arabic orthographic normalisation), on the 480 clips of the three test sets; systems without Arabic ran on the 360 English clips. Every other recogniser that takes a language is given it; of those run on Arabic, only the Omnilingual CTC models take none. BH-ASR detects the language and diarizes every clip itself.

Metrics

WER  =  S+D+IN \mathrm{WER} \;=\; \frac{S + D + I}{N}

with substitutions SS, deletions DD, insertions II and NN reference words. In the leaderboard's table and figure, as on the Space, its 95 % confidence interval is the 2.5th to 97.5th percentile of WER over 1,000 bootstrap resamples of the clips. The clips of one consultation, and the two recordings of a statement, are not independent, so the highlights' intervals and the paired tests between leaderboard systems resample whole consultations and statements instead (10,000 resamples); the tests on utterance-level runs (FLEURS, int8 against FP16, the fusion fix) resample utterances. Alerts kept counts the alert recordings the rules still raise on the transcript, out of those they raise on the written text, and speed is the real-time factor:

alerts kept  =  TPtranscriptTPreference,RTF  =  tprocessingtaudio \text{alerts kept} \;=\; \frac{\mathrm{TP}_{\text{transcript}}}{\mathrm{TP}_{\text{reference}}}, \qquad \mathrm{RTF} \;=\; \frac{t_{\text{processing}}}{t_{\text{audio}}}

A system's speed is the median RTF of 12 random clips per test set, taken from its middle test set (the lower of two), as on the Space.

Leaderboard

Word error rate with 95 % bootstrap intervals for every system: English mock consultations and Arabic safety statements
# Recogniser English consultations WER (95 % CI) English safety WER Alerts kept, EN recordings Arabic safety WER Alerts kept, AR recordings Speed (RTF)
1 Medera BH-ASR Pro 11.02 (9.4–12.9) 0.35 24 of 24 35.35 6 of 30 2.0
2 Medera BH-ASR Lite 11.50 (9.7–13.5) 0.64 24 of 24 45.91 4 of 30 0.86
3 Qwen3-ASR 0.6B 11.80 (10.0–14.1) 1.16 22 of 24 50.55 3 of 30 0.53
4 Parakeet-TDT 0.6B v2 12.32 (10.3–14.6) 0.12 24 of 24 — — 0.16
5 Parakeet-TDT 0.6B v3 12.77 (10.6–15.3) 0.46 22 of 24 — — 0.17
6 Whisper large-v3 13.55 (11.6–15.8) 0.46 23 of 24 42.44 6 of 30 5.7
7 Cohere Transcribe (03-2026) 13.66 (11.7–15.9) 0.58 24 of 24 36.54 7 of 30 0.48
8 Whisper large-v3-turbo 15.75 (13.4–18.4) 0.52 21 of 24 45.51 4 of 30 0.63
9 Canary-180M-Flash 16.75 (12.9–22.2) 1.04 21 of 24 — — 0.23
10 Nemotron 3.5 ASR Streaming 0.6B 17.31 (14.7–20.4) 1.68 24 of 24 46.30 5 of 30 0.62
11 Omnilingual ASR CTC 1B (v2) 22.15 (19.5–25.3) 3.01 22 of 24 42.83 8 of 30 0.63
12 Omnilingual ASR CTC 300M (v2) 31.05 (27.8–34.7) 5.84 18 of 24 50.08 5 of 30 0.26
13 MedASR 39.46 (34.9–44.6) 6.83 17 of 24 — — 0.05

BH-ASR rows in bold. Alerts are counted per recording, with safety rules 1.3.0, the rules the leaderboard was scored with; each statement is recorded twice. Of the 76 non-alert recordings in each language, Pro raises a false prompt on 2 in English, the same recordings as on the written text; on 8 in Arabic: recognition removes 4 of the 8 the rules raise on the written text and adds 4 (the noisy recording of a denial, the clean recording of a clinician's screening question and both recordings of an idiom). The speaker is read from the words, as the engine reads it; with the test set's speaker given instead, the same alerts are raised, and the false prompts are 2 on the written text and 2 on Pro's transcripts in English, 4 and 5 in Arabic.

Pro's English lead over Qwen3-ASR 0.6B is not significant (p = 0.15, resampling consultations): read it as "at the top", not as a margin. Its gain over its pivot, 1.3 points (p = 0.004), was 1.0 points (p = 0.027) in the 1.1.0 run, before an error analysis of these test transcripts prompted 1.2.0's changes. On the Arabic safety statements every recogniser loses most of the alerts; Pro has the lowest word error rate there, Omnilingual CTC 1B (8 of 30) keeps the most alert recordings, and by statement, BH-ASR Pro, Cohere Transcribe and Omnilingual CTC 1B each keep 4 of the 15 (exact McNemar p = 1.0 against Pro).

Real-time factor of every system on 2 vCPU: below 1 is faster than real time
Real-time factor, 2 vCPU English consultations Arabic statements
BH-ASR Pro 2.0 1.2
BH-ASR Lite 0.86 1.3

Below 1 is faster than real time. Pro runs three English recognisers and the verifier, and is meant for transcripts after the session; in Arabic each profile runs one recogniser and the verifier.

Where safety alerts are lost

An alert passes two gates: the rules must raise it on the written statement, and recognition must keep the words the rules need. With AA annotated alerts, CC of them raised on the written text and KK of those still raised on the transcript:

A  =  (A−C)⏟missed by the rules  +  (C−K)⏟lost in recognition  +  K⏟kept,R  =  KA  =  CA⏟ρ⋅KC⏟κ A \;=\; \underbrace{(A - C)}_{\text{missed by the rules}} \;+\; \underbrace{(C - K)}_{\text{lost in recognition}} \;+\; \underbrace{K}_{\text{kept}}, \qquad R \;=\; \frac{K}{A} \;=\; \underbrace{\frac{C}{A}}_{\rho}\cdot\underbrace{\frac{K}{C}}_{\kappa}

Counted by recording, as the leaderboard counts them:

▶ Two gates · 0:50 · captions in English and Arabic · numbers: Pro · BH-Heldout-3, synthetic voices · safety rules 1.3.0 · per recording

BH-ASR Pro, rules 1.3.0 Alert recordings Missed by the rules Lost in recognition Kept
English 44 20 (16 indirect) 0 24
Arabic 44 14 (6 indirect) 24 6

Each statement is recorded twice, clean and with room noise, so its two recordings are not independent. Counted by statement:

Each alert statement, English and Arabic: kept in at least one recording, lost in recognition, or missed by the rules on the written text

Of the 22 Arabic alert statements, the rules raise 15 on the written text and Pro keeps 4 of those in at least one recording (Wilson 95 % 0.11–0.52), 2 in both: end to end, 4 of 22 (0.07–0.39). In English the rules raise 12 of 22 and Pro keeps all 12 (0.76–1.00): end to end, 12 of 22 (0.35–0.73). English loses its alerts at the rules, mostly on indirect statements; Arabic loses most of them in recognition. Even all 9 Arabic-capable systems together keep only 5 of the 15 (a statement counts when any of them keeps it), so choosing among today's transcripts cannot close that gap: the work is in Arabic recognition itself. Since ∂R/∂ρ=κ\partial R/\partial\rho = \kappa and ∂R/∂κ=ρ\partial R/\partial\kappa = \rho, a point gained on the smaller gate, with the other held fixed, is worth the most:

▶ Raise the smallest gate · 0:27 · captions in English and Arabic · numbers: Pro · BH-Heldout-3, synthetic voices · safety rules 1.3.0 · per recording

Robustness

These are utterance-level runs on cached recogniser outputs (eval/score.py): each utterance is cut at its reference boundaries and its language is given, so they measure recognition and the guard without voice-activity segmentation or diarization.

BH-ASR Pro BH-ASR Lite Parakeet-TDT 0.6B v2 Nemotron-3.5-ASR
English WER, PriMock57 test (1,000 utterances) 10.56 11.04 11.12 16.27
Real non-speech clips with output text, of 68 1 (1.5 %) 1 (1.5 %) 4 (5.9 %) 0 (0 %)
Arabic WER, FLEURS ar_eg test (real read speech: Modern Standard Arabic, speakers from Egypt) 12.38 11.14 no Arabic 11.14
  • Context leakage. Given a psychiatric-medication prompt, the prompted recogniser alone produced text on 100.0 % of real non-speech clips and inserted 71 unsupported drug names in 8 of 1,000 test utterances. BH-ASR Pro inserted 0: the fusion outvoted every one.
  • Precision. On the same 1,000 utterances Parakeet's int8 export is 0.68 points worse than its FP16 export (p = 0.001), which reaches 10.44 %, level with int8 Pro: Pro's English gain over its pivot holds at matched precision only.
  • Real Arabic. On FLEURS read speech (1.3 h) Lite's Nemotron beats Pro's Cohere, the reverse of the synthetic test sets. Real dialectal clinical Arabic has not been evaluated yet.

Safety rules

The rules flag what is said about suicidal thoughts, plans and means, self-harm, harm to others and hopelessness, each with its polarity. Affirmed, hypothetical and about-someone-else flags are review prompts for the clinician; a denial or a clinician's screening question is documented, not prompted. Since rules 1.1 the suicide categories have been drawn from the Columbia–Suicide Severity Rating Scale (Posner et al., 2011); the rules do not administer or score it. Each version is scored once, on text, on statements it was not developed on: from 1.4.0 on, a set an independent AI agent wrote and froze before the version was developed, which then becomes development data for the next. 1.0.0 to 1.2.0 were scored on BH-Heldout-1 to 3 in turn (1.0.0 predates this protocol, so its result may read slightly high), and 1.3.0 on BH-Heldout-3 without the 6 statements per language it was developed with (HO-3* in the figure). Rules 1.5.1, in development, have no unseen set yet: their results equal 1.5.0's on every statement and conversation set.

Recall of each rules version on the first set it had not seen, English and Arabic, with Wilson 95 % intervals

On single statements

BH-Heldout-4, 140 statements per language (80 alerts), scored once with rules 1.4.0:

Rules 1.4.0 Alerts raised Recall (Wilson 95 %) Direct Indirect Conditional About someone else False prompts, speaker given · read
English 26 of 80 0.33 (0.23–0.43) 17 of 30 3 of 30 2 of 10 4 of 10 3 · 3 of 60
Arabic 33 of 80 0.41 (0.31–0.52) 20 of 30 6 of 30 4 of 10 3 of 10 1 · 3 of 60

The rules catch 17 of 30 direct English statements (Wilson 95 % 0.39–0.73) but 3 of 30 indirect ones (0.03–0.26); in Arabic 20 of 30 (0.49–0.81) and 6 of 30 (0.10–0.37). False prompts are counted with the speaker given and with the speaker read from the words, as the engine reads it. The live rules (1.3.0) raise exactly the same alerts on this set, with these false prompts: English 4; Arabic 1 with the speaker given, 5 read from the words. Rules 1.5.1 give exactly these results, and the same as 1.4.0 on every other statement set: they add reading the conversation, and statement phrasings that change none of these results. The set is the AI-written half of BH-Heldout-4; a clinician-written half is planned. Its misses were read while developing rules 1.5.0, so it is now development data. In Arabic the rules raise 9 of 13 Gulf, 7 of 13 Egyptian, 7 of 14 Levantine, 5 of 14 Iraqi, 5 of 13 Modern Standard and 0 of 13 Maghrebi alerts.

In conversations

In a conversation the risk is often in the answer, not in its words: "Yeah. Most nights." after "Have you wished you were dead?". Rules 1.5.1, in development, read each answer with the clinician's last question (turned to the patient's side: "have you wished…" is read as "have I wished…"), read a statement across a pause, and keep a denial a documented denial. A yes, or an answer about the past, is prompted as affirmed; an unsure one as hypothetical. They remove no flag the rules raised, and weaken one kind: when the patient's answer is only a question back in the clinician's own words ("Hurting myself how?"), its flag becomes a documented screening question, not a review prompt. A disclosure after a question back stays a review prompt unless it, too, reads as a question (it ends in a question mark, or opens like one: "had…", "did…") and uses only the clinician's words: "What do you mean? I think about hurting myself every night." is prompted (rules 1.5.0 documented it, which 1.5.1 corrects), but "What? I have been thinking about killing myself?", as a recogniser may punctuate it, is documented. An answer is read from how it opens, so "Most nights I think about it." is prompted, but "I think about it every night." or "It's always there.", with or without a question back, is not yet read with the question and raises nothing.

Alerts raised in held-out conversations by kind, each segment alone against the conversation, English and Arabic

BH-Conv-1: 64 written exchanges per language of 2 to 4 turns, with the speakers given (40 alerts), written by a new independent agent and frozen before rules 1.5.0 were developed, scored once. English recall 0.68 (Wilson 95 % 0.52–0.80; 27 of 40, against 6 with rules 1.4.0 reading each segment alone), Arabic 0.48 (0.33–0.63; 19, against 4), with one false prompt in 24 safe exchanges in each language. With the roles read from the words instead, the patients' results are the same, and 3 of the clinicians' own questions are also prompted (2 English, 1 Arabic). Rules 1.5.1, which have seen this set, give exactly the same results on it, on the development exchanges and on the PriMock57 consultations below. The set's author labels every unsure or past answer an alert, since it needs a follow-up question. The reading has not yet been measured through recognition. On the 57 PriMock57 consultations (7,108 utterances, transcribed by people and read during rules 1.1's development), rules 1.5.0 raise one review prompt, the same as 1.4.0: a patient speaking of someone else's suicide, prompted as about someone else.

▶ Meaning lives in context · 0:40 · captions in English and Arabic · numbers: Safety rules 1.4.0 → 1.5.0, in development · rules 1.5.1 give the same results · BH-Conv-1 · text, speakers given · per exchange

How sure each number is

Every recall in this section comes with its Wilson 95 % interval and counts statements once, not once per recording. An interval narrows with the square root of the sample: halving it takes four times as many statements. A claim of no misses needs counting too: after no miss in nn statements, the 95 % upper bound on the miss rate is

pmax⁡  =  1−0.051/n  ≈  3n, p_{\max} \;=\; 1 - 0.05^{1/n} \;\approx\; \frac{3}{n},

under 5 % only from n=59n = 59, where it is 4.95 %.

The chance of a clean run, (1 − p) to the power n, against the true miss rate, for 29, 59, 149 and 299 statements

▶ Intervals before claims · 0:28 · captions in English and Arabic · numbers: Pro · BH-Heldout-3, synthetic voices · safety rules 1.3.0 · per statement

What is measured, and what is not yet

Every hatched cell below is a recording to make, with consenting speakers and clinician-reviewed labels: the hard-case program this card opens with.

Conditions measured on audio, on text only, or not yet, in English and Arabic

What comes next

The rules stay as a floor. Two methods are planned on top of them; the explainers teach them with example numbers, not measurements.

A context model, added as evidence

A model that reads each answer with the conversation before it adds its evidence to the rules' in log-odds,

ℓ  =  ℓ0+∑jlog⁡LRj,p  =  11+e−ℓ, \ell \;=\; \ell_0 + \sum_j \log \mathrm{LR}_j, \qquad p \;=\; \frac{1}{1 + e^{-\ell}},

which is exact when the sources are independent given the truth (otherwise their weights are fitted together). A review is due when p>τ=1/(1+r)p > \tau = 1/(1 + r), where a miss costs rr unneeded reviews, and whenever the rules fired: the model can add a prompt, never take one away.

▶ Evidence adds in log-odds · 0:33 · captions in English and Arabic · example numbers, not a measurement

A miss rate you can count

With nn known alerts set aside for calibration, take the kk-th lowest detector score as the threshold, k=⌊(n+1)β⌋k = \lfloor (n+1)\beta \rfloor, which needs k≥1k \ge 1: at least 19 calibration alerts for β=0.05\beta = 0.05. A new alert exchangeable with them falls below the threshold with probability at most k/(n+1)≤βk/(n+1) \le \beta. The guarantee holds on average over calibration sets, and only where the calibration speech matches use: real speakers, real rooms. That is why the hard cases above come first.

▶ A guarantee you can count · 0:25 · captions in English and Arabic · illustrative scores

Vocal biomarkers: in progress

We are enhancing every vocal-biomarker feature for dialect, accent and cross-cultural validity, and none is evaluated on this card. The live benchmark returns none of them: no voice measures, biomarker panel or snapshots, prosody or language markers (its results keep the conversation's timing, with turns, speaking rate and pauses, and each segment's recording level). The partner service returns per-segment pitch and loudness, language markers per speaker, and biomarker snapshots that hold timing only (speaking rate, pauses and, on separate channels, response latency); from the next release it computes the voice measures and the biomarker panel only when a deployment turns them on. One principle the voice measures will follow: a voice is compared with the speaker's own baseline, which starts from a group norm and moves toward the person's own with each session.

▶ A baseline of one's own · 0:24 · captions in English and Arabic · illustrative values

Explainers

Seven short animations, each in a light and a dark version that follow the page's theme, with English and Arabic captions. Measured numbers are read from the result files when a video is rendered; a video with measured numbers names their source and unit on screen, and the others say they are examples.

Explainer What it teaches Length Numbers
Two gates Recall is the product of two gates: the rules find an alert, recognition keeps its words. 0:50 Pro · BH-Heldout-3, synthetic voices · safety rules 1.3.0 · per recording
Raise the smallest gate Why the smaller gate pays most: the derivative of a product. 0:27 Pro · BH-Heldout-3, synthetic voices · safety rules 1.3.0 · per recording
Meaning lives in context A word list against meaning; a short answer read with its question. 0:40 Safety rules 1.4.0 → 1.5.0, in development · rules 1.5.1 give the same results · BH-Conv-1 · text, speakers given · per exchange
Evidence adds in log-odds How independent evidence adds in log-odds, and a review threshold from the cost of a miss. 0:33 Example numbers, not a measurement
A guarantee you can count A miss rate you can count: a threshold from calibration alerts. 0:25 Illustrative scores
Intervals before claims Wilson intervals, the price of halving one, and what no misses in n proves. 0:28 Pro · BH-Heldout-3, synthetic voices · safety rules 1.3.0 · per statement
A baseline of one's own Why voice measures need each person's own baseline. 0:24 Illustrative values

Access

The engine is not downloadable. Evaluate it on the live benchmark; production access is an API under agreement with Medera AI. The open model files listed in config/bhasr.yaml are byte-identical to their published releases (sherpa-onnx's int8 exports of the recognisers and its export of TitaNet-large, and Silero VAD's own release 6.2) and keep their own licences.

License/Terms of Use

The engine, its fusion, guard, diarization and role logic, the safety rules and lexicons are proprietary: © 2026 Medera AI, all rights reserved (LICENSE). No licence is granted without a written agreement with Medera AI. Versions 1.0.0 to 1.1.0 were made available under Apache-2.0, and copies received under it stay under it.

Third-party model files keep their own licences (NOTICE, LICENSES/): Parakeet-TDT-0.6B-v2 and TitaNet-large (NVIDIA, CC-BY-4.0), Nemotron-3.5-ASR-Streaming-0.6B (NVIDIA, OpenMDW-1.1), Qwen3-ASR-0.6B (Qwen, Apache-2.0), Cohere Transcribe (Cohere Labs, Apache-2.0), Whisper-large-v3-turbo (OpenAI, MIT) and Silero VAD 6.2 (MIT). The figures and explainers are set in Source Serif 4, Inter, JetBrains Mono and Noto Sans Arabic (SIL Open Font License 1.1); the explainers are animated with Manim Community Edition (MIT).

Deployment Geography

Global (the live benchmark); production deployments under agreement.

Use Case

Clinician-in-the-loop documentation and review of behavioral-health and primary-care conversations in English and Arabic: who said what, a transcript checked against an independent recogniser, and safety language surfaced for a clinician to review. Not for diagnosis, screening, risk assessment or triage.

Limitations

  • English evaluation uses PriMock57: mock primary-care consultations in UK English, role-played but real speech. No behavioral-health session audio has been evaluated yet.
  • Safety test sets are scripted statements in synthetic speech: English in 11 voices, Arabic in a Jordanian Arabic voice (Piper ar_JO) at three speaking rates; their numbers are relative comparisons. Arabic safety review prompts are not reliable through recognition yet.
  • Safety rules raise 12 of the 22 English alert statements and 15 of the 22 Arabic ones even on the leaderboard's written text (rules 1.3.0). On the newest held-out statements (BH-Heldout-4), rules 1.3.0 (live) and 1.4.0 catch 17 of 30 direct English statements but 3 of 30 indirect ones (Arabic: 20 of 30 and 6 of 30), and 0 of 13 Maghrebi Arabic alerts. The conversation reading is measured on text with the speakers given, not yet through recognition; an answer that affirms in its own words ("I think about it every night."), or that reads as an echo of the question, can go unprompted (in conversations). The rules have not yet been reviewed by bilingual clinicians. Treat every flag as a review prompt, never as screening.
  • Severity and the urgent-review mark are set by category alone (every flag of suicidal thoughts is high), not by how intense, recent or specific the statement is, and have not been validated as a measure of risk.
  • Not yet tested: an alert buried in a long answer through recognition, crying or whispered speech, and Arabic dialects in real voices. These are the first cells of the hard-case program above.
  • Speakers are told apart by voice, which fails when two voices are alike; roles need both people to say enough. Children's speech is untested.

Ethical Considerations

Behavioral-health speech is among the most sensitive data there is. The engine processes audio in memory, makes no outbound connection and keeps no recording; the live benchmark is for demonstration only and asks visitors not to upload recordings of real patients. Outputs are aids to a clinician's own judgement. Report security issues to Medera.

References

  • Papadopoulos Korfiatis et al., PriMock57: A Dataset of Primary Care Mock Consultations, ACL 2022.
  • Conneau et al., FLEURS: Few-shot Learning Evaluation of Universal Representations of Speech, 2022.
  • Fiscus, A post-processing system to yield reduced word error rates: ROVER, IEEE ASRU 1997.
  • Radford et al., Robust Speech Recognition via Large-Scale Weak Supervision, ICML 2023.
  • Xu et al., Efficient Sequence Transduction by Jointly Predicting Tokens and Durations, ICML 2023.
  • Koluguri, Park and Ginsburg, TitaNet: Neural Model for Speaker Representation with 1D Depth-wise Separable Convolutions and Global Context, ICASSP 2022.
  • Posner et al., The Columbia–Suicide Severity Rating Scale: Initial Validity and Internal Consistency Findings From Three Multisite Studies With Adolescents and Adults, American Journal of Psychiatry, 2011.
  • Wilson, Probable Inference, the Law of Succession, and Statistical Inference, Journal of the American Statistical Association, 1927.
  • Hanley and Lippman-Hand, If Nothing Goes Wrong, Is Everything All Right? Interpreting Zero Numerators, JAMA,
  • McNemar, Note on the Sampling Error of the Difference Between Correlated Proportions or Percentages, Psychometrika, 1947.
  • Efron and Tibshirani, An Introduction to the Bootstrap, Chapman & Hall, 1993.
  • Vovk, Gammerman and Shafer, Algorithmic Learning in a Random World, Springer, 2005.

Citation

@misc{medera2026bhasr,
  title  = {Medera BH-ASR: Consensus-Guarded Bilingual Speech Recognition for Behavioral Health},
  author = {Medera},
  year   = {2026},
  note   = {Beta 1.2.0}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Evaluation results

  • WER on PriMock57 test, 240-utterance leaderboard sample (real speech)
    self-reported
    11.020
  • WER on BH-Heldout-3 English, safety statements (synthetic speech)
    self-reported
    0.350
  • WER on BH-Heldout-3 Arabic, safety statements (synthetic speech)
    self-reported
    35.350
  • WER on FLEURS ar_eg test (real read speech, Modern Standard Arabic; reference segmentation, language given)
    self-reported
    12.380
  • WER on PriMock57 test, 240-utterance leaderboard sample (real speech)
    self-reported
    11.500
  • WER on BH-Heldout-3 English, safety statements (synthetic speech)
    self-reported
    0.640
  • WER on BH-Heldout-3 Arabic, safety statements (synthetic speech)
    self-reported
    45.910
  • WER on FLEURS ar_eg test (real read speech, Modern Standard Arabic; reference segmentation, language given)
    self-reported
    11.140