อ่านเว็บไซต์นี้เป็นภาษาไทย
All work

Case study

Cadence

Voice dictation for developers who think in two languages: mix Thai and English in one sentence, and code words come out spelled as the code spells them.

Client
Our own tool
Services
Product Engineering, AI Systems
Year
2026

The challenge

Thai developers talk in a mix of Thai and English, often inside one sentence, and the English words are usually code: function names, file names, library names. General dictation tends to handle the Thai and mangle the technical terms, or the other way round.

Our approach

Make dictation aware of the code you are working on. Cadence finds the repository behind the app in focus and builds a vocabulary from it, so the words that matter most are written the way the project writes them.

What we built

  • One hotkey. Press to start, speak, press again. The text is typed into whatever app has focus.
  • Real-time, two-language recognition. Streaming speech-to-text that follows Thai and English switching mid-sentence.
  • A vocabulary from your repository. Built fresh each session from the focused project, so identifiers are recognized as identifiers.
  • A pass that restores developer words. Loanwords and code terms are written back in their proper form instead of phonetic Thai.
  • An honest microphone. A still pill means the mic is closed; a lit pill means Cadence is listening. The mic opens only during a session, and stops on its own if you forget.

Stack

  • Swift
  • TypeScript
  • Bun
  • Soniox real-time speech-to-text
  • macOS CGEvent
  • Keychain
  • launchd

Outcome

  • Dictation that writes code words the way the code writes them.
  • Part of the daily toolkit in our workshop, alongside Helm and Lens.
  • Built with its limits written down: what is measured, what is not yet, and what is deliberately out of scope.

Have a system that has to hold up?

We design and build custom AI systems and products with the same engineering you see here.