Accept the Arc licence (non-commercial use only)

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Arc is licensed by Whissle Inc. under CC BY-NC 4.0 and the Whissle terms in LICENSE, for non-commercial use only. Commercial use (in or with a product or service, paid or hosted services, business use, or commercial use of outputs) requires a separate written licence from Whissle Inc.: contact ksingla@whissle.ai. Whissle Inc. keeps all rights not expressly granted; no patent or trademark rights are granted.

Log in or Sign Up to review the conditions and access this model content.

Arc v1.2 (Arc Mini and Arc Transcriber): one streaming model for transcript, names, numbers, speakers, tags and events

Arc is an all-in-one streaming audio model. You give it audio and, optionally, your list of names and some context. One model then returns, as the audio plays:

  • a transcript with inline tags on names, numbers and entities ([Theo Brandt](name: Theo Brandt), [102 to 98](score: 102-98));
  • names linked to your own list (people, teams, organisations, places, ...), and numbers with their values (scores, clocks, money, dates, durations, percentages, ...);
  • speakers and their roles, and per-utterance acts, intents and segment labels;
  • sound and channel events (silence, telephone / narrowband audio, degraded audio, clipping, plus many experimental labels);
  • device-directed speech (is this utterance addressed to an assistant?);
  • context memory: the decoder can take your names, terms, a topic and the text said so far.

This repository holds two models. Both use the same Python package and the same output schema.

model version in v1.2.0 --backbone folder download runs on choose it when
Arc Mini 1.1.1 (unchanged) mini (alias edge) mini/ about 71 MB CPU (files at about 0.3x real time on 4 cores, live streaming real time on 4 cores without partials); GPU optional apps, laptops, on-device, low latency
Arc Transcriber (full) 1.2.0 (new) full (aliases parakeet, server) full/ about 77 MB + NVIDIA Parakeet-TDT 0.6B v2 encoder (about 2.5 GB, fetched from Hugging Face on first use) GPU recommended; CPU works for files best transcript and name accuracy

Coming next: Arc Transcriber Edge, a 4-bit version of the full model for Android, Mac and low-cost cloud serving. It will be published in this repository as a new revision.

Revisions (git tags of this repository):

revision Arc Mini (mini/) Arc Transcriber (full/) notes
v1.2.0 (current) 1.1.1 1.2.0 new Arc Transcriber files; use with arc-transcriber 1.2.0
v1.1.2 1.1.1 1.1.1 licence text updated, same weight files as v1.1.1
v1.1.1 1.1.1 1.1.1 folders mini/ and full/
v1.1.0 1.1.0 (folder edge/) 1.1.0 (folder server/) earlier folder names, kept so installs pinned to v1.1.0 keep working

The arc-transcriber package pins the model revision that matches its version (arc-transcriber 1.2.0 loads v1.2.0). Pin revision= yourself if you load the model from your own code.

English, 16 kHz mono (other rates are resampled). Licence: CC BY-NC 4.0, non-commercial use only (see Licence).

Quick start

pip install "arc-transcriber @ git+https://github.com/WhissleAI/arc_transcriber@v1.2.0"
hf auth login        # accept the terms on this page first (approval is automatic)

arc-transcribe meeting.wav                                         # Arc Mini, CPU
arc-transcribe game.wav --domain nba --names roster.txt            # with your name list
arc-transcribe call.wav --backbone full --device cuda              # Arc Transcriber (full)
arc-transcribe --mic --context "Whissle, Arc, Jane Doe"             # live microphone, with context terms
arc-transcribe meeting.wav --format json -o meeting.json           # full records
from arc_audio import Arc, load_audio

arc = Arc.from_pretrained("WhissleAI/arc-v1.1", backbone="mini", revision="v1.2.0", threads=4)
# Arc Transcriber: Arc.from_pretrained("WhissleAI/arc-v1.1", backbone="full", revision="v1.2.0", device="cuda")
names = ["Jane Doe", {"name": "Harbor City Hawks", "kind": "team", "aliases": ["Hawks"]}]

# whole file
out = arc.predict("game.wav", domain="nba", names=names)
for u in out["transcript"]:
    print(u["start"], u["text"], u.get("device_directed"))
print(out["names"], out["numbers"], out["audio_events"])

# live: feed 100 ms chunks, get new records back
s = arc.stream(domain="meeting", names=names, auto_prev=True)
s.set_context(kb=["Whissle", "Arc"], kb_type=["org", "product"])      # context for the decoder (names, terms)
wav = load_audio("meeting.wav")
for i in range(0, len(wav), 1600):
    new = s.feed(wav[i:i + 1600])        # dict of new transcript lines, names, numbers, events, ...
final = s.flush()

Context for the decoder (both models):

  • arc.set_context(names=[...], terms=[...], topic="meeting", previous_text="...", auto_prev=True) applies to every later call.
  • Stream.set_context(...) changes it mid-stream.
  • names / terms are things the speakers may say; topic is a short domain hint; auto_prev=True feeds back what was already said (context memory).
  • Separately, names= on predict() / stream() is your name list for linking. Mentions are linked to it, and a fuzzy / phonetic snap step fills links the model missed (via: "snap"; turn it off with kb_snap=False).

What's new in v1.2.0

Only Arc Transcriber changes (1.1.1 -> 1.2.0). Arc Mini is unchanged (the mini/ files are byte-identical to v1.1.1). The full/ folder keeps the same file names, tensor names and packed 4-bit format, so existing integrations and ports load it without code changes. Updated files: full/config.json (version, event and device-directed thresholds), full/adapters.safetensors and full/decoder/model.q4.safetensors.

  • Better transcripts: word error rate 15.7 % -> 13.7 % on our held-out multi-domain dev set, with gains in every content type (sports commentary, meetings, news, talk shows, court hearings), and fewer repetition loops (4 of 255 windows, down from 11).
  • More names and numbers found in the transcript, better assistant intents and lower diarization error (table below).
  • Device-directed speech: the default threshold moves from 0.50 to 0.85 (fewer false triggers at the same recall; see below).
  • Audio events: per-label thresholds re-calibrated; safety labels (scene.gunshot_explosion, scene.scream, scene.glass_break, scene.distress, scene.crying) are now set for a low false-alarm rate. They stay experimental and off by default.
  • Tag thresholds, tag offsets, the label list and the default-on event labels are unchanged.
  • Weaker: short assistant commands (word error rate 7.0 % -> 10.9 % on 20 short-command windows).

Results

Arc Transcriber 1.2.0 vs 1.1.1 (our held-out dev sets)

Both versions run on the same audio with the same scoring. These are our own held-out multi-domain dev sets (sports commentary, meetings, news, talk shows, court hearings, voice-assistant commands), not public benchmarks. Brackets are 95 % paired bootstrap intervals of the difference. Public-set numbers for v1.2 will follow; the public-set tables further down were measured on the 1.1.1 models.

measure Arc Transcriber 1.1.1 Arc Transcriber 1.2.0
word error rate, % (255 windows, about 22,900 words; lower is better) 15.7 13.7 [-2.6, -1.5]
name span recall, overlap / exact, % 76.4 / 67.4 80.2 / 71.8
number span recall, overlap / exact, % 85.0 / 75.3 86.8 / 76.9
assistant intents, top-1 accuracy, % (60 classes; small set) 48.3 53.2 [+2.6, +7.9]
diarization error rate, % (34 long windows; lower is better) 40.8 38.8 [-3.8, -0.5]
device-directed false-positive rate at the default threshold, % (1,650 clips; recall 90.7 % for both) 2.6 (threshold 0.50) 2.3 (threshold 0.85)
scene.gunshot_explosion false alarms on clean speech, % 3.4 0.2
word error rate on short assistant commands, % (20 windows; lower is better) 7.0 10.9

Device-directed operating points of Arc Transcriber 1.2.0 on the same dev set (set device_directed.threshold in full/config.json to trade recall for fewer false triggers):

threshold false-positive rate true-positive rate
0.50 4.4 % 96.0 %
0.70 3.7 % 93.7 %
0.85 (default) 2.3 % 90.7 %
0.95 1.3 % 86.3 %

Public test sets (measured on Arc Mini 1.1.1 and Arc Transcriber 1.1.1)

These tables were measured on the 1.1.1 models (revision v1.1.1). Arc Mini is unchanged in v1.2.0, so its rows still apply; Arc Transcriber 1.2.0 numbers on these sets will be added here. What they show, including where Arc is behind:

  • Arc Mini has a higher word error rate than Moonshine base and Whisper base.en on every set, and than Moonshine tiny on most sets; it beats Moonshine tiny on SLURP and matches or improves on Arc v1.0 on every set. Its value is in the extra outputs from one small streaming model, not in raw word error rate.
  • Arc Transcriber 1.1.1 trails raw Parakeet-TDT 0.6B v2 (the encoder it uses) and Whisper large-v3-turbo on LibriSpeech; it is close to them on SLURP and AMI.
  • Whisper large-v3-turbo + a separate NER model finds number values on Earnings-21 clearly better than Arc (value recall 84.1 % vs 67.2 % for Arc Transcriber 1.1.1) and has a higher name F1. On SLURP intents, a text classifier on the transcript of any of the ASR systems tested beats Arc's streaming intent read-out.
  • pyannote 3.1 is far ahead of Arc on speaker diarization (AMI DER 10.2 % vs about 45 %).

All numbers below were measured by us with one shared protocol for every system (same audio, same reference, same normaliser, same scorer). Every set is evaluated on its public test split (subsets as stated). 95% confidence intervals are paired bootstrap intervals over test items. 'n/c' = not computed.

Word error rate (%, lower is better)

system LibriSpeech test-clean LibriSpeech test-other VoxPopuli test SLURP test Earnings-21 (long-form) AMI test (long-form, headset mix)
Arc Mini 1.1.1 (on-device, streaming) 8.5 22.9 12.4 39.9 24.8 35.3
Arc Transcriber 1.1.1 (Parakeet encoder) 5.5 7.8 8.1 16.9 13.2 23.9
Arc v1.0 8.7 23.7 15.2 43.3 32.1 38.8
Parakeet-TDT 0.6B v2 1.6 3.3 5.0 16.2 11.1 24.6
Whisper large-v3-turbo 1.8 4.0 9.6 15.6 11.7 24.8
Whisper small.en 2.9 6.7 6.8 21.5 14.1 29.1
Whisper base.en 4.2 9.8 8.2 29.2 16.0 29.5
Moonshine base 3.2 8.2 9.0 33.5 16.6 28.3
Moonshine tiny 4.6 11.8 11.8 45.3 22.6 31.9
test items / hours 500 / 1.09 h 500 / 0.90 h 400 / 0.77 h 600 / 0.47 h 39 / 3.25 h 12 / 1.00 h

Paired differences (percentage points, A minus B; negative = A better):

comparison LibriSpeech test-clean LibriSpeech test-other VoxPopuli test SLURP test Earnings-21 (long-form) AMI test (long-form, headset mix)
Arc Transcriber 1.1.1 vs Parakeet-TDT 0.6B v2 +3.9 [3.3, 4.5] +4.5 [3.7, 5.3] +3.0 [2.2, 4.1] +0.7 [-0.8, 2.2] +2.1 [1.5, 2.7] -0.7 [-2.0, 0.8]
Arc Transcriber 1.1.1 vs Whisper large-v3-turbo +3.8 [3.2, 4.4] +3.9 [3.1, 4.7] -1.6 [-3.9, 0.5] +1.3 [-0.5, 3.2] +1.5 [0.7, 2.3] -0.9 [-2.7, 0.9]
Arc Mini 1.1.1 vs Moonshine tiny +3.9 [3.2, 4.6] +11.1 [9.8, 12.5] +0.7 [-0.4, 1.7] -5.5 [-8.9, -2.1] +2.2 [-1.8, 4.9] +3.3 [1.7, 4.9]
Arc Mini 1.1.1 vs Moonshine base +5.3 [4.7, 6.0] +14.7 [13.3, 16.1] +3.4 [2.6, 4.4] +6.3 [3.2, 9.6] +8.2 [6.3, 10.3] +7.0 [4.6, 9.0]
Arc Mini 1.1.1 vs Whisper base.en +4.3 [3.6, 5.1] +13.1 [11.7, 14.5] +4.2 [3.4, 5.1] +10.6 [7.2, 14.1] +8.8 [6.7, 11.2] +5.7 [3.1, 8.3]
Arc Mini 1.1.1 vs Arc v1.0 -0.2 [-0.7, 0.3] -0.8 [-1.7, 0.1] -2.8 [-3.5, -2.1] -3.5 [-5.6, -1.3] -7.4 [-9.3, -5.6] -3.5 [-4.8, -1.8]

Protocol: Whisper English text normaliser on reference and hypothesis; WER = total errors / total reference words per set. Long recordings (Earnings-21: one 300 s segment from each of 39 test calls; AMI: twelve 300 s segments from the official test meetings) are cut by the same pause-based segmenter (<= 15 s pieces) for every system; utterances of 30 s or less are decoded whole by the baseline models. Subsets: LibriSpeech 500 utterances each, VoxPopuli 400 utterances of 0.6-12.7 s, SLURP 600 recordings (headset and far-field), seeded random samples. Baselines: greedy decoding as published. Arc: beam 4.

Names and numbers in the transcript: Earnings-21 (39 test segments, 300 s each)

Gold: 387 person / organisation / product mentions and 515 numbers with a checkable value, from the corpus' reference entity annotation.

system how entities are produced name recall name precision name F1 number value recall number value precision
Arc Mini 1.1.1 (on-device, streaming) one model (inline tags) 31.0 [23.9, 39.5] 22.2 25.9 72.2 [67.7, 77.0] 50.2
Arc Transcriber 1.1.1 (Parakeet encoder) one model (inline tags) 47.3 [39.9, 55.0] 38.9 42.7 67.2 [62.0, 72.9] 57.3
Arc v1.0 one model (inline tags) 26.1 [19.7, 33.7] 12.6 17.0 67.0 [60.9, 73.1] 42.2
Whisper large-v3-turbo ASR + separate NER model 49.6 [41.8, 58.0] 45.4 47.4 84.1 [78.2, 89.4] 84.1
Parakeet-TDT 0.6B v2 ASR + separate NER model 46.0 [38.1, 54.5] 40.8 43.3 66.2 [57.9, 75.0] 71.0
Whisper small.en ASR + separate NER model 41.9 [34.9, 49.4] 41.6 41.8 81.9 [76.1, 87.3] 81.8
Whisper base.en ASR + separate NER model 34.9 [28.4, 41.6] 36.0 35.4 79.6 [73.6, 85.1] 78.5
Moonshine base ASR + separate NER model 31.8 [25.5, 38.8] 33.3 32.5 66.8 [58.4, 75.3] 64.9
Moonshine tiny ASR + separate NER model 28.4 [22.2, 35.1] 29.4 28.9 63.1 [55.7, 70.9] 60.6
reference transcript reference transcript + NER (upper bound of the two-model approach) 72.6 [64.6, 80.2] 62.4 67.1 88.5 [83.7, 93.3] 88.0

Paired differences (points):

comparison name recall name F1 number value recall
Arc Transcriber 1.1.1 vs Whisper large-v3-turbo + NER -2.3 [-9.1, 4.1] -4.8 [-10.4, 0.8] -16.9 [-23.5, -10.1]
Arc Transcriber 1.1.1 vs Parakeet-TDT 0.6B v2 + NER +1.3 [-4.8, 7.3] -0.6 [-6.2, 4.8] +1.0 [-4.8, 6.2]
Arc Mini 1.1.1 vs Whisper large-v3-turbo + NER -18.6 [-26.1, -10.6] -21.5 [-27.4, -15.7] -11.8 [-18.0, -5.8]
Arc Mini 1.1.1 vs Parakeet-TDT 0.6B v2 + NER -15.0 [-22.6, -7.0] -17.4 [-24.2, -10.9] +6.0 [-2.6, 14.3]
Arc Mini 1.1.1 vs Whisper base.en + NER -3.9 [-9.8, 2.4] -9.5 [-14.1, -4.6] -7.4 [-13.3, -1.1]
Arc Mini 1.1.1 vs Moonshine base + NER -0.8 [-6.8, 5.5] -6.7 [-11.2, -2.2] +5.4 [-2.6, 13.6]
Arc Mini 1.1.1 vs Arc v1.0 +4.9 [1.0, 9.2] +8.9 [5.5, 12.8] +5.2 [1.1, 9.6]
Arc Transcriber 1.1.1 vs Arc v1.0 +21.2 [15.7, 26.4] +25.7 [20.8, 30.7] +0.2 [-6.0, 6.6]

Protocol: matching inside each 300 s segment, time-free; a name matches when one normalised word sequence contains the other; numbers match on value (one value parser for every system). NER = an off-the-shelf OntoNotes-5 RoBERTa-base tagger (PERSON / ORG / PRODUCT / WORK_OF_ART; MONEY / PERCENT / CARDINAL / ORDINAL / DATE / QUANTITY). Precision is a lower bound for every system (the reference annotation leaves out generic business terms).

Internal human-labelled multi-domain set (sports, news, talk, meetings, legal, voice assistant)

inline span F1 (overlap) Arc v1.0 Arc Mini 1.1.1 Arc Transcriber 1.1.1
names (3637 gold spans) 62.2 67.8 76.4
numbers (2630 gold spans) 72.4 77.1 85.0

Caveat: decoding thresholds for Arc Mini / Arc Transcriber were tuned on this set, so these numbers are optimistic; it is not a public benchmark.

SLURP intents (60 intents; recordings from the SLURP test split)

786 test utterances; majority-class accuracy 8.4.

system approach accuracy macro-F1
Arc Mini 1.1.1 (on-device, streaming) one model, from audio (streaming read-out) 49.8 [46.6, 52.8] 42.4
Arc Transcriber 1.1.1 (Parakeet encoder) one model, from audio (streaming read-out) 51.3 [47.8, 54.2] 44.8
Arc v1.0 one model, from audio (streaming read-out) 49.4 [46.4, 51.8] 40.5
reference transcript text classifier on the transcript (upper bound) 84.5 [81.8, 87.1] 81.2
Whisper large-v3-turbo text classifier on the transcript 77.3 [73.7, 80.9] 73.2
Parakeet-TDT 0.6B v2 text classifier on the transcript 76.2 [72.4, 79.8] 73.6
Whisper small.en text classifier on the transcript 72.1 [68.5, 75.8] 68.9
Whisper base.en text classifier on the transcript 66.5 [63.0, 70.0] 66.8
Moonshine base text classifier on the transcript 63.5 [59.5, 67.1] 61.5
Moonshine tiny text classifier on the transcript 56.4 [52.7, 60.4] 53.7

Text classifier: TF-IDF + logistic regression trained on the SLURP training transcripts (same 60 intents).

Speaker diarization, AMI test meetings (twelve 300 s segments, headset mix)

system DER % (all segments) missed / false alarm / confusion % segments
Arc Mini 1.1.1 (on-device, streaming) 44.8 7.0 / 3.5 / 34.4 12
Arc Transcriber 1.1.1 (Parakeet encoder) 44.7 8.1 / 3.4 / 33.3 12
Arc v1.0 45.0 6.8 / 3.6 / 34.6 12
pyannote 3.1 (diarization only) 10.2 4.1 / 2.2 / 3.8 12

DER at 10 Hz frames, best one-to-one speaker mapping, overlapped speech excluded, no collar; Arc models are streaming and audio-only, pyannote is offline.

Hardware and latency

Measured on a shared x86 server (4 CPU cores, torch.set_num_threads(4)), 16 kHz English audio, arc_audio 1.1.x. Arc Transcriber 1.2.0 has the same size and structure as 1.1.1, so its speed and memory are the same.

backbone mode real-time factor (lower is faster) peak RAM load time
Arc Mini whole file (predict, beam-4 transcript, all heads) 0.26-0.40 about 1.0 GB about 3 s
Arc Mini live stream, partial transcripts off (partials=False) 0.9 (100 ms chunk p50 62 ms) about 1.6 GB
Arc Mini live stream with partial transcripts every 0.4 s 1.4 (needs more than 4 cores; use partial_every_s=1.0 or partials=False on small CPUs) about 1.6 GB
Arc Transcriber whole file, CPU (fp32) 0.9 about 3.5-4.3 GB about 8 s (+ one-time 2.5 GB download)
Arc Transcriber GPU (fp16 encoder) not measured yet

The Arc Mini download is about 71 MB (4-bit packed weights; about 252 MB as float32). Weights are unpacked to float32 in memory at load time.

Outputs

predict() returns one dict, and stream().feed() returns the new records of the same kinds:

key content
transcript utterances {start, end, text, words: [{text, start, end, tag}], tags: [{tag, start, end, text}], device_directed: {p, directed}}
names one per name mention: heard, tag (person / team / organization / place / ...), entity (your list's spelling) or null, state (linked / not_in_list / abstain), start, end, via
numbers heard, kind (score, clock, time_of_day, date, duration, money, percent, ordinal, count, stat, measure, ...), value, value2, unit, start, end
speakers, diarization per-speaker role and tags; {speaker, start, end} segments
utterances, segments, spans, events per-utterance acts / intents; segment labels; word-span tags; instant events (speaker change, ...)
audio_events {label, start, end, p, status} sound / channel events (see below)
device_directed (stream) {start, end, p, directed} per utterance
bio_events cough / throat clear / breath
frames (return_frames=True) per-100 ms probabilities of every tag and event

Inline tag classes of the transcript decoder: ENTITY_PERSON TEAM ORG PLACE WORK EVENT LEGAL GAME MAP LAW PRODUCT TERM, NUMBER and its kinds (CLOCK COUNT DATE DURATION FIELDPOS ID JERSEY MEASURE MONEY ODDS ORDINAL PERCENT REF SCORE STAT TIME), and CONTACT_PHONE EMAIL URL ADDRESS (contact spans are tagged in the transcript only).

Event labels and their status

Events come from one head that reads the same audio features as the rest of Arc. Each label has a status:

status labels default
stable scene.silence (Mini) on
beta meta.channel.telephone, meta.channel.narrowband, meta.degraded_audio, meta.clipping (Mini; on Arc Transcriber scene.silence is beta and meta.clipping experimental) on
experimental every other label (music, laughter, applause, cheer, siren, alarm, typing, cough, room size, SNR, safety labels, ...) off; events="all" or --events all

Clip-level F1 on a held-out event evaluation set (thresholds fitted on a separate half of it), measured on the 1.1.1 models. Arc Transcriber 1.2.0 uses re-calibrated thresholds; its F1 on this set will be added with the v1.2 public numbers.

label Arc Mini 1.1.1 F1 Arc Transcriber 1.1.1 F1
scene.silence 0.86 0.71
meta.channel.telephone 0.96 0.68
meta.channel.narrowband 0.96 0.77
meta.degraded_audio 0.73 0.62
meta.clipping 0.73 0.21

Limitations

  • English only. Other languages are transcribed poorly or not at all.
  • Events are mostly experimental. Only the labels marked stable / beta above are on by default. Experimental labels are often wrong on real audio. On Arc Transcriber 1.2.0 the safety labels catch only 10 to 14 % of events at their shipped thresholds, scene.crying is not detected reliably, and meta.overlap is effectively off (threshold 0.999).
  • Names are hardest in meetings and assistant commands. Names in meetings and in short assistant requests are the weakest category; supply a name list or context terms when you can.
  • Arc Transcriber (full): its transcript and names are better than Arc Mini's, but its speaker roles and events are weaker (sports speaker roles: 75 % correct per voice vs 96 % for Arc Mini on the same windows; use Arc Mini when roles matter most). Short assistant commands are transcribed slightly worse by 1.2.0 than by 1.1.1. Its streaming mode computes Arc features in 10 s chunks, so tags and links arrive later than on Arc Mini; whole-file predict() uses 30 s chunks.
  • Speaker-change detection is modest (F1 about 0.43 on Arc Transcriber 1.2.0, from 0.16 to 0.66 depending on content).
  • Device-directed is beta on Arc Mini and experimental on Arc Transcriber; short utterances (< 1.5 s) have the most false alarms (about 21 % of non-directed clips under 1.5 s are flagged by Arc Transcriber 1.2.0).
  • Word timings on Arc Transcriber come from 80 ms encoder frames and are coarser than on Arc Mini.
  • External ASR words (--asr deepgram|verbit): Arc reads the words of these services as an optional transcript input. They are grouped into utterances with the same audio-based rule as the built-in transcript.
  • The model can produce wrong names, numbers and tags. Do not use it for decisions about people without human review.

Weights and files

  • mini/model.q4.safetensors (Arc), mini/moonshine-streaming-tiny/model.q4.safetensors (speech encoder + transcript decoder) and full/decoder/model.q4.safetensors are stored as 4-bit codes with per-group scales (group 32). arc_audio unpacks them at load time to exactly the values the model was evaluated with (no accuracy change). The remaining tensors are float32 / float16.
  • mini/heads.safetensors: event and device-directed heads. full/adapters.safetensors: Arc Transcriber's adapters and heads.
  • mini/model.q4.safetensors keeps one float16 table (word.tok_E, 21 MB) that is not on the 4-bit grid; it is a different table from the speech decoder's embedding (checked), so it cannot be shared without changing outputs.
  • MANIFEST.sha256 lists the SHA-256 of every file in this revision (sha256sum -c MANIFEST.sha256 in a full download).
  • Porting to MLX / Core ML / ONNX Runtime / ExecuTorch / TensorRT: see docs/DEPLOYMENT.md and docs/WEIGHTS_FORMAT.md in the GitHub repository, with golden reference outputs (tests/golden/) to check an export against (tests/golden/full.json matches Arc Transcriber 1.2.0, tests/golden/mini.json Arc Mini 1.1.1).
  • The NVIDIA Parakeet-TDT 0.6B v2 encoder is not included; the package downloads nvidia/parakeet-tdt-0.6b-v2 from Hugging Face on first use (pinned revision) and reads only its encoder weights. NeMo is not needed.

Licence and attributions

  • Arc code and Arc weights in this repository: CC BY-NC 4.0 plus the Whissle terms in LICENSE, non-commercial use only. See also NOTICE.
  • Commercial use (in or with a product or service, paid or hosted services, business use, or commercial use of outputs) requires a separate written licence from Whissle Inc.: contact ksingla@whissle.ai.
  • Whissle Inc. owns Arc and keeps all rights not expressly granted. The public licence does not limit Whissle Inc.'s own use of Arc or its right to license Arc, including later versions and derived models, on other terms. No patent or trademark rights are granted; "Whissle", "Whissle Arc", "Arc Mini" and "Arc Transcriber" are trademarks of Whissle Inc.
  • Arc is provided as is, without warranty. You are responsible for your outputs and for the rights and consents needed for the audio you process.
  • mini/moonshine-streaming-tiny/ and full/decoder/ are modified versions of Moonshine Streaming tiny by Useful Sensors, Inc. (dba Moonshine AI), MIT License; the licence and copyright notice are kept in those folders.
  • Arc Transcriber (full) uses NVIDIA Parakeet-TDT 0.6B v2, CC-BY-4.0, Copyright NVIDIA Corporation. It is downloaded from NVIDIA's repository at run time and is not modified or redistributed here; the adapters in full/adapters.safetensors read its encoder outputs.

Citation

@misc{whissle2026arc,
  title  = {Arc: an all-in-one streaming audio model},
  author = {{Whissle Inc.}},
  year   = {2026},
  note   = {Version 1.2.0 (Arc Mini 1.1.1, Arc Transcriber 1.2.0)},
  url    = {https://huggingface.co/WhissleAI/arc-v1.1}
}
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

Model tree for WhissleAI/arc-v1.1

Finetuned
(2)
this model