akou 0.4.0
Pre-release
Pre-release
This build is not signed by Apple. The first time you open akou, macOS refuses it. On macOS 14, Control-click akou in Applications, choose Open, then Open again. On macOS 15 and later, open akou once, then go to System Settings, Privacy & Security, and click Open Anyway. After an update macOS may ask for the microphone and system audio again. The speech models are downloaded on first run. See docs/install.md.
What's Changed
- chore: pin the compose example to akou 0.3.0 and record the 0.3.0 image tags on the GPU bead by @GeiserX in #72
- docs(ux): spec dictation so akou types what you say into any app and learns from your fixes by @GeiserX in #70
- chore(beads): track the dictation spec as an epic with one bead per item, so the lanes can start by @GeiserX in #73
- fix(server): stop a reused Idempotency-Key from returning a job made with other options by @GeiserX in #74
- chore(beads): record that #74 fixed the idempotency, s? label and install.md server bugs by @GeiserX in #77
- fix(asr): one llama.cpp build table, so a Mac on cpu runs best and /v1/server stops claiming a GPU on the CPU by @GeiserX in #76
- fix(server): speaker labels no longer add "Yeah." at turn edges by @GeiserX in #75
- chore(beads): record that #76 fixed the llama.cpp build table review, and track its four small follow-ups by @GeiserX in #78
- chore(beads): close the diarization filler and similar-voices beads fixed and measured in #75 by @GeiserX in #79
- fix(server): a retry with keywords reordered or the language in another case keeps its job by @GeiserX in #82
- feat(dictation): answer a dictation at once on a busy server, and send it there without the audio crossing the internet in the clear by @GeiserX in #80
- feat(capture): akou-capture dictate runs a whole dictation on fakes, so no test ever presses a real key by @GeiserX in #83
- feat(models): see how each model behaves, download or delete it from the UI, and drop unused ones in the app too by @GeiserX in #81
- chore(beads): close the Models page bead shipped in #81 and track its three review follow-ups by @GeiserX in #86
- feat(ui): give dictation a pill, a draft box and a settings page before the session lands by @GeiserX in #84
- feat(dictation): a remote that is down no longer loses the dictation, and dictated text can go through your provider first by @GeiserX in #87
- feat(dictation): decode a dictation on the loaded model and read the helper's own lines, so akou dictate clip.wav prints a word by @GeiserX in #85
- feat(capture): dictation pastes only where it began, never into a password field, and gives the clipboard back after the app reads it by @GeiserX in #88
- feat(dictation): send the audio to the remote while the key is held, so a 20 s dictation answers as fast as a 3 s one by @GeiserX in #90
- fix(capture): make the helper's tests compile on main again by @GeiserX in #91
- feat(ui): find, retry and fix past dictations, and bind a dictation key by pressing it by @GeiserX in #89
- test(ui): stop the narrow Models page test from failing every open PR by @GeiserX in #95
- feat(capture): the key tap never waits on an insert, and a fix typed in the app comes back to learn from by @GeiserX in #93
- fix(dictation): a remote dictation that fails at the press no longer holds the rest of the hold in memory by @GeiserX in #92
- feat(dictation): set dictation up from its settings, and a new dictation key works at once or is refused where you set it by @GeiserX in #94
- feat(ui): a per-app rules editor, and the grant setup the dictation switch runs once akou reports its grants by @GeiserX in #96
- feat(capture): a real Mac hears the dictation key, and the grant it needs is measured by @GeiserX in #97
- feat(ui): choose the dictation microphone from a list, and hear dictation when the pill is off by @GeiserX in #99
- feat(dictation): offer to learn only real mishearings, and keep dictation fixes out of call transcripts by @GeiserX in #98
- feat(ui): teach dictation your own words and replacements without touching calls, and show live words in the pill once allowed by @GeiserX in #101
- feat(capture): dictation on a Mac now pastes and types into the app instead of always failing by @GeiserX in #100
- feat(dictation): start a dictation from the tray or a script, and delete dictations for good by @GeiserX in #102
- feat(capture): dictate on the built-in mic instead of a Bluetooth headset, and keep Fn from opening the emoji picker by @GeiserX in #103
- feat(dictation): dictate with Qwen where a GPU runs it, and fall back to Parakeet instead of hanging by @GeiserX in #105
- feat(dictation): stop room noise and filler words from being typed, and stream dictation events by @GeiserX in #106
- fix(ui): stop the dictionary wiping a word's note, decode and pending review when you add a form by @GeiserX in #104
- test(dictation): catch app-helper drift in CI on every OS, and let spoken marks become punctuation by @GeiserX in #107
- feat(dictation): keep each dictation's audio so Retry can decode it again on another engine by @GeiserX in #108
- feat(dictation): show the dictation pill without taking the keyboard from the app you dictate into by @GeiserX in #109
- feat(dictation): keep a dictation the app could not take in the draft box, and learn the word you fix there by @GeiserX in #110
- fix(dictation): keep dictated words out of the app log when Learn or Undo fails by @GeiserX in #111
- chore(beads): record the dictation wave's closes, follow-ups and flaky tests from #104 to #110 by @GeiserX in #112
- chore(beads): keep the owner's deployment detail out of the public tracker by @GeiserX in #115
- feat(ui): save dictation words and replacements for real, so "example dot com" types example.com by @GeiserX in #117
- feat(capture): a Linux paste waits for the target's read, and the first syllable is proven to reach the text by @GeiserX in #114
- feat(dictation): dictation.format now changes what gets typed, and a remote dictation uploads during the hold instead of at release by @GeiserX in #113
- test(ui): prove the draft box and its learn chip work end to end, so page and main side cannot drift apart by @GeiserX in #118
- feat(dictation): let Enter send, Shift+Enter draft and Escape cancel while a dictation runs by @GeiserX in #116
- feat(ui): name a per-app rule's app by dictating into it, instead of typing its bundle id by @GeiserX in #120
- feat(ui): let the Dictation page test the remote akou and say when it is down, so a bad key or dead remote shows before the first press by @GeiserX in #121
- feat(dictation): a forgotten dictation stops by itself, "send it" sends, and the words you fixed can be reviewed by @GeiserX in #122
- fix(dictation): keep dictated words out of the log when formatting fails, and prove the dictation lane on the shipped server by @GeiserX in #124
- feat(ui): list the words fixed while dictating under Words to review, so a let-go fix can still be learned or taken back by @GeiserX in #123
- feat(capture): dictation on Windows hears its key and inserts into the app instead of exiting by @GeiserX in #119
- chore(beads): track the gaps a real archive re-transcription found in best jobs by @GeiserX in #126
- feat(dictation): check a fix against the dictation's own audio before offering to learn it by @GeiserX in #125
- feat(dictation): learn a word you fix in the app itself, not only in the draft box by @GeiserX in #128
- feat(capture): dictation on Linux hears its key and records the mic instead of exiting by @GeiserX in #127
- fix(dictation): stop pressing into a GPU a final pass holds, and warm best again once it is free by @GeiserX in #129
- feat(capture): a dictation pauses the music that is playing and gives back only what it paused by @GeiserX in #130
- feat(capture): dictation on a Linux desktop with the GlobalShortcuts portal hears its chord without reading /dev/input by @GeiserX in #131
- chore(beads): record the second dictation wave's closes and follow-ups from #113 to #131 by @GeiserX in #132
- chore(release): 0.4.0, dictation types into any app on a Mac by @GeiserX in #133
Full Changelog: v0.3.0...v0.4.0