Skip to content

Releases: scriptease/typewhisper-r2t2-plugin

0.3.0

Choose a tag to compare

@scriptease scriptease released this 30 Sep 21:01

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 prompt parameter (#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_m model 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

Choose a tag to compare

@scriptease scriptease released this 25 Sep 17:09

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

Choose a tag to compare

@scriptease scriptease released this 25 Sep 12:41

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

Choose a tag to compare

@scriptease scriptease released this 20 Sep 18:10

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

  1. Unzip the server archive, fetch the Q8_0 GGUF, point server.json at it, run ./start.sh
    (details in the archive's README.md). Serves http://127.0.0.1:8488.
  2. Copy R2T2Plugin.bundle to ~/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.