Voice dictation
Would rather talk than type? Speak into the note you're editing and Minerva writes down what you said, dropping the text right where your cursor is. Everything happens on your own computer — your voice never leaves it.
Dictation runs entirely on your machine. Your recorded voice is used to produce the text and is never sent anywhere. The very first time you dictate, Minerva downloads a small speech model; after that it works even offline.
Starting and stopping
Dictation is a simple on/off toggle: trigger it once to start listening, and again to stop and drop the text into your note. You can start it three ways:
While you're speaking, a small pill at the bottom of the window shows Listening… with Insert and Cancel buttons. Press Esc to cancel without inserting anything. When you stop, the pill briefly shows that it's writing out your words; the finished text appears at your cursor, with a space added automatically so it doesn't run into the word before it.
Speed vs. accuracy
In Settings you can choose how carefully Minerva listens. A lighter option is fastest but a little rougher; a heavier one is more accurate but takes longer. The middle option is a good default for most people.
Recording audio
Dictation keeps only the words. To keep the audio itself — a meeting, a voice memo, an idea you talked through — make a recording instead. It's saved as a file in your thoughtbase and embedded in your note as a player, and nothing is transcribed unless you ask.
assets/recordings/, named for the date and time you started. It's embedded at your cursor in the note you were in. If no note was open, Minerva makes a new note for it.Transcription uses the same on-device speech model as dictation, so your recordings never leave your computer.
Recordings are part of your knowledge graph too: each one knows which notes embed it, when it was recorded, how long it is, and whether it has a transcript. A query cell like this lists the ones still waiting to be transcribed:
:::query-table
title: Recordings without a transcript
---
SELECT ?recording ?recordedAt ?note WHERE {
?n minerva:embeds ?r ; minerva:relativePath ?note .
?r a minerva:AudioRecording ; minerva:relativePath ?recording .
OPTIONAL { ?r minerva:recordedAt ?recordedAt }
FILTER NOT EXISTS { ?r minerva:hasTranscript true }
}
ORDER BY DESC(?recordedAt)
:::