Releases: Inhum/voica
Release list
v0.9.8 — Model selection: dynamic chat model + recognition model & language
Added
- Recognition model & language picker (Settings → Dictation, cloud engine): choose Turbo
(faster) or Large v3 (more accurate), and force a recognition language (Auto / Russian /
English) — forcing helps short phrases that auto-detect gets wrong. The local engine (GigaAM)
is Russian-only and ignores these. History records the model actually used.
Changed
- The AI term-fixing model is no longer hard-coded. The app now fetches the live model list
with your key (GET /v1/models), filters chat-capable models, and picks the best available
by a priority chain (llama-3.3-70b-versatile→openai/gpt-oss-120b→openai/gpt-oss-20b
→llama-3.1-8b-instant→gemma2-9b-it), falling back to the first available. - Vocabulary settings gained an AI model picker: “Recommended (automatic)” by default, with
the full live list for power users. Visible only when AI term-fixing is on.
Fixed
- Self-healing: if Groq removes or renames the selected model (as with
qwen/qwen3-32bin
0.9.3, which returned 404), the app now switches to the recommended model on its own — no
urgent release needed. A stale saved choice migrates to “automatic”, and a 404 during dictation
triggers a background re-resolve so the next dictation uses a live model. Dictation stays
fail-open throughout.
v0.9.7 — Local engine: overlapping chunks (no dropped words)
Fixed
- The local engine split long recordings at hard 25-second boundaries, so a word or its
punctuation could be lost or duplicated at the seam. Adjacent windows now overlap ~2s and
the duplicate at the join is trimmed by word match (case/punctuation-insensitive); otherwise
a plain space-join. Parity with the Windows port, which fixed this first.
v0.9.6 — Fix: history metadata overlapping buttons
Fixed
- In a narrow History window the metadata line (date · language · duration · model) ran
under the Copy/Play/Delete buttons. It now truncates before them.
v0.9.5 — History shows the engine/model
Added
- History now shows which engine/model produced each transcript in the metadata line
(date · language · duration · model), e.g.whisper-large-v3-turboor
gigaam-v3-e2e-ctc. Parity with the Windows port, which already displayed it.
v0.9.4 — Local engine: “preparing model” indicator
Added
- On the first local dictation after launch, a small floating “Preparing the
recognition model…” HUD appears while Core ML does its one-time on-device model load
(tens of seconds). Previously the app looked frozen during this wait. Subsequent
dictations, where the model is already in memory, show nothing.
v0.9.3 — Fix: AI term correction model (Groq removed qwen3-32b)
Fixed
- AI term correction failed with HTTP 404 because Groq removed the hardcoded
qwen/qwen3-32bmodel. Switched to the production modelllama-3.3-70b-versatile
and dropped the qwen-specificreasoning_effortparameter. - The model-availability check now reports a 404 clearly (“model unavailable — Groq may
have renamed or removed it”) instead of a bareHTTP 404.
v0.9.2 — Fix: runs on macOS 13+ again
[0.9.2] — 2026-07-18 — Fix: runs on macOS 13+ again
Fixed
- Release builds now run on macOS 13 and later as documented. The binary was being
stamped with the build machine's macOS as its minimum (so CI-built 0.9.0/0.9.1 refused
to launch on anything older than the runner). The build now passes an explicit
-target arm64-apple-macos13.0, kept in sync withLSMinimumSystemVersion.
[0.9.1] — 2026-07-17 — Both models named everywhere
Changed
- Settings → General now names the active model next to the engine switch:
whisper-large-v3-turbo (Groq cloud)orGigaAM v3 — runs on this Mac. - The About window tagline and the README headers (both languages) mention both engines
consistently — cloud Groq Whisper and the local GigaAM model.
[0.9.0] — 2026-07-17 — Local offline engine (GigaAM)
Added
- Local offline speech recognition (opt-in). A new engine switch in Settings → General:
Cloud (Groq) or Local (offline). The local engine runs Sber's GigaAM v3 model entirely
on-device via CoreML (Apple Neural Engine): no internet, no API key, punctuation out of
the box. The model (~400 MB, precompiled CoreML) is downloaded once from a GitHub release
asset with a progress bar and SHA-256 verification; while it downloads, dictation keeps
using the cloud. It can be deleted anytime in Settings → Data ("Delete Local Model").
If the cloud is unreachable and the local model is installed, dictation automatically
falls back to it with an unobtrusive system notification. Limitations: English words may
come out transliterated in Cyrillic; the vocabulary hint remains cloud-only, while AI term
correction works with both engines (it needs a key and network).
GigaAM v3 model for the local engine
Модель локального (офлайн) распознавания для Voica 0.9.0+. Приложение скачивает её автоматически при включении локального движка — вручную ставить не нужно.
Исходная модель: GigaAM v3 e2e CTC (Сбер, лицензия MIT), сконвертирована в CoreML (.mlmodelc, окно 25 с, статическая форма входа).
The offline speech-recognition model for Voica 0.9.0+. Downloaded automatically when the local engine is enabled in Settings — no manual install needed.
Source model: GigaAM v3 e2e CTC (Sber, MIT license), converted to CoreML.
SHA-256: 0dd95e84457775900e47b5a549da5ef239d73b5a28303b813aa16a80466941ba
v0.8.0 — Tabbed Settings
Changed
- Settings reorganized into tabs (toolbar-style, like the system Settings app): General (API key, updates, reset), Dictation (mode, hotkey, output), Vocabulary (terms, AI correction), Data (audio, retention, delete). The old single-page window had outgrown a 13" screen.
Added
- Model availability check. When you enable "Fix terms with AI", Voica pings the chat model and shows a native status: a green checkmark if it's available, or a warning with a hint to allow the model in your Groq console — no docs required to see why correction isn't working.
- Vocabulary character counter — live
N / 800under the field (turns orange over the Whisper prompt budget). - Reset Settings to Defaults (General): returns settings to defaults while keeping the API key, history, audio and vocabulary.
Note: the app is signed with a self-signed certificate (not notarized). On first launch macOS shows an "unidentified developer" warning — right-click the app → Open, or System Settings → Privacy & Security → Open Anyway. See the README for details.
Full changelog: https://github.com/Inhum/voica/blob/main/CHANGELOG.md
v0.7.0 — AI term correction
Added
- AI term correction (opt-in). After transcription, a Groq language model (
qwen/qwen3-32b, no reasoning) reliably fixes garbled vocabulary terms — matching grammatical case and context — in the cases where the Whisperprompthint is powerless (near-homophones of common words, e.g. «войка»/"voice" →Voica). Toggle in Settings → Vocabulary; adds one small extra request (~1–2 s). Fail-open: on any error or timeout the raw transcription is delivered unchanged.
Tip: the dictionary defines the canonical spelling — capitalize terms the way you want them inserted (e.g. Voica, not voica).
Note: the app is signed with a self-signed certificate (not notarized). On first launch macOS shows an "unidentified developer" warning — right-click the app → Open, or System Settings → Privacy & Security → Open Anyway. See the README for details.
Full changelog: https://github.com/Inhum/voica/blob/main/CHANGELOG.md