Repository navigation
Releases: scriptease/typewhisper-r2t2-plugin
Release list
0.3.0
Server update: the server is now stock audio.cpp v0.9.0, unmodified. The fork build from 0.2.x is no longer needed. The plugin is unchanged.
Everything from 0.2.x is now in upstream audio.cpp:
- the live-route
promptparameter (#618) - incremental streaming with an instant finalize (#696); it now also re-encodes cached audio when later, louder speech changes the normalization
- K-quant weights, so the community Q4_K_M loads, and a
confucius4_r2t2_q4_k_mmodel package (#702)
New in this server: a fix for a crash when a stream ended in silence with a language set, which took the server down (#712, by @hdcola). After that crash, TypeWhisper switched to another engine.
This repository will be retired once the plugin is available in TypeWhisper itself; see TypeWhisper discussion #1388.
Quants
| Quant | Size | Source |
|---|---|---|
| Q8_0 (recommended) | 2.5 GB | davidxifeng/Confucius4-R2T2-gguf |
| F16 | 4.1 GB | davidxifeng/Confucius4-R2T2-gguf |
| Q4_K_M | 1.2 GB | Nairod785/Confucius4-R2T2-Q4_K_M-GGUF |
Artifacts
| File | Contents |
|---|---|
r2t2-server-macos-arm64-0.3.0.zip |
audiocpp_server from audio-v0.9.0-bin-macos-arm64-metal.tar.gz (sha256 7cea9219…83b1b4), with the executable bit set, start.sh, server.json.example, Apache-2.0 license |
R2T2Plugin-0.1.0.zip |
R2T2Plugin.bundle, unchanged from 0.1.0 (universal, macOS 14+, TypeWhisper 1.7.0+) |
Upgrade
Replace audiocpp_server in your server directory with the one from the archive, clear quarantine (xattr -dr com.apple.quarantine <path>) and restart ./start.sh. Your server.json stays as it is. The binary is ad-hoc signed and not notarized.
SHA-256:
f2a9f65be3ed4ddce22ab263a51038bdf19204fd736233bc01ca719f324c13ad r2t2-server-macos-arm64-0.3.0.zip
fa9cc8bd24eeb8f81398ff3d1351faafd7ba22629c56f73dadacf5161d2f5399 R2T2Plugin-0.1.0.zip
0.2.1
Server update: the server now also loads the community Q4_K_M quant, which is half the size of Q8_0 and faster. It also includes the fast finalize from 0.2.0. The plugin is unchanged.
Quants
| Quant | Size | Source |
|---|---|---|
| Q8_0 (recommended) | 2.5 GB | davidxifeng/Confucius4-R2T2-gguf |
| F16 | 4.1 GB | davidxifeng/Confucius4-R2T2-gguf |
| Q4_K_M, new | 1.2 GB | Nairod785/Confucius4-R2T2-Q4_K_M-GGUF |
Stock audio.cpp rejects Q4_K_M with R2T2 ASR supports f32/f16/bf16/q8_0 weights, but tensor ... is q4_k. This server lets Q2_K, Q4_K and Q6_K weights through that check; it's a one-line change, discussed in audio.cpp#678.
Q4_K_M is a community quant. It was tested here on two English clips on an M-series Mac, streaming with 320 ms chunks:
| Q8_0 | Q4_K_M | |
|---|---|---|
| 14 s clip transcript | reference | identical |
| 60 s clip transcript | reference | identical except "honour"/"labour" |
| 60 s clip, CLI streaming wall time | 39 s | 26 s |
| 60 s live stream, last audio → final transcript | 0.36 s | 0.30 s |
The quant author validated it on more languages; see their model card.
Artifacts
| File | Contents |
|---|---|
r2t2-server-macos-arm64-0.2.1.zip |
audiocpp_server (Apple silicon), start.sh, server.json.example, Apache-2.0 license |
R2T2Plugin-0.1.0.zip |
R2T2Plugin.bundle, unchanged from 0.1.0 (universal, macOS 14+, TypeWhisper 1.7.0+) |
The server is built from the fork branch scriptease/audio.cpp fix/r2t2-kquant-weights (commit f305a00), which is the 0.2.0 finalize fix plus the weight-check change, not stock upstream audio.cpp. The finalize fix is proposed upstream in audio.cpp#696.
Upgrade
Replace audiocpp_server in your server directory with the one from the archive, clear quarantine (xattr -dr com.apple.quarantine <path>) and restart ./start.sh. To use Q4_K_M, download it and point path in server.json at r2t2-q4_k_m.gguf. The binary is ad-hoc signed and not notarized.
SHA-256:
b9454a023651698e042e6152d55a53549e09684bd26137c89aaca34969f090e7 r2t2-server-macos-arm64-0.2.1.zip
fa9cc8bd24eeb8f81398ff3d1351faafd7ba22629c56f73dadacf5161d2f5399 R2T2Plugin-0.1.0.zip
0.2.0
Server update: long dictations now finalize immediately. The plugin itself is unchanged.
Fix
Before, every 320 ms streaming chunk re-ran the audio encoder and a full thinker prefill over all audio so far, so per-chunk cost grew with the utterance. On longer dictations the server fell behind the microphone and caught up only after you stopped talking, which looked like a slow finalize at 100 % GPU.
The server now caches the encoder output of completed 4 s windows and keeps the thinker's KV cache for the unchanged prompt prefix between chunks, so each chunk only computes what is new.
Measured on an M-series Mac, Q8_0, 320 ms chunks, 60 s of speech streamed in real time:
| 0.1.0 | 0.2.0 | |
|---|---|---|
| last audio → final transcript | 24.9 s | 0.4 s |
| final transcript | same | same |
Artifacts
| File | Contents |
|---|---|
r2t2-server-macos-arm64-0.2.0.zip |
audiocpp_server (Apple silicon), start.sh, server.json.example, Apache-2.0 license |
R2T2Plugin-0.1.0.zip |
R2T2Plugin.bundle, unchanged from 0.1.0 (universal, macOS 14+, TypeWhisper 1.7.0+) |
The server is built from the fork branch scriptease/audio.cpp fix/r2t2-incremental-finalize (commit c860013 on top of upstream main), not from upstream audio.cpp. The upstream path for this fix is still being discussed with the R2T2 port's author (davidxifeng/audio.cpp#1); a stock upstream build does not have it yet.
Upgrade
Replace audiocpp_server in your server directory with the one from the archive, keep your server.json, clear quarantine (xattr -dr com.apple.quarantine <path>), restart ./start.sh. The binary is ad-hoc signed and not notarized.
SHA-256:
7fd607355143961177e8e243b178e7ca784b95913287fd6eb60b6295e877a4c0 r2t2-server-macos-arm64-0.2.0.zip
fa9cc8bd24eeb8f81398ff3d1351faafd7ba22629c56f73dadacf5161d2f5399 R2T2Plugin-0.1.0.zip
0.1.0
First release of the Confucius4-R2T2 transcription plugin for TypeWhisper, plus the audio.cpp
server that runs the model on-device.
Artifacts
| File | Contents |
|---|---|
R2T2Plugin-0.1.0.zip |
R2T2Plugin.bundle (universal, macOS 14+, TypeWhisper 1.7.0+) |
r2t2-server-macos-arm64-0.1.0.zip |
audiocpp_server (Apple silicon) built from audio.cpp main @ 6c70f32, plus start.sh, server.json.example, Apache-2.0 license |
| Source code | plugin sources, the target-registration patch for typewhisper-mac, server config |
Both binaries are ad-hoc signed and not notarized. After unzipping:
xattr -dr com.apple.quarantine <path>.
Install
- Unzip the server archive, fetch the Q8_0 GGUF, point
server.jsonat it, run./start.sh
(details in the archive'sREADME.md). Serveshttp://127.0.0.1:8488. - Copy
R2T2Plugin.bundleto~/Library/Application Support/TypeWhisper/Plugins/, restart
TypeWhisper, select Confucius4-R2T2 as the transcription engine, and hit Test Connection.
Notes
- Streaming, append-only transcription; batch and live sessions both go over the live route.
- Dictionary terms are forwarded to the model as recognition context, which needs the
prompt
query parameter from audio.cpp#618 (included in
the shipped binary). - Measured on an M-series Mac with Q8_0 and 320 ms chunks: a 14 s English clip streams in ~6.5 s
warm, first text after ~1.0 s.