Listening
What the app hears
The app hears two channels: your microphone (you) and your computer's sound (the other participants). The words heard so far appear at once in a "speaking…" bubble, which the finished phrase replaces.
Where speech becomes text
Pick it in Settings, then Advanced, then Audio, then Speech-to-text.
- Engine: where speech is turned into text. Automatic (the default) uses our hosted service while your plan includes it and credits are left, and the model on this computer otherwise
- Words to spell right (empty): names and rare words hosted speech should spell as you do, separated by commas; the model on this computer ignores them
- Local model: Automatic (the default), Fast or Balanced
- Use the GPU (on): runs the model on the graphics card when the app finds one, and on the processor when you turn it off; the card's name shows in brackets. It can change only between phrases, not while speech is being heard or transcribed
- (tooltip "Download the Balanced model (574 MB)") downloads the model, after a card that says its size and that it comes from huggingface.co
- The model's state: Not downloaded, Partly downloaded, Downloading, or Model ready, with its size
- Local speech recognition ("On this computer" in the Engine box): speech is turned into text on your own computer, and the audio stays there. The speech model downloads once at the first start (Fast: about 265 MB; Balanced: about 575 MB); nothing is transcribed until it is ready. The Local model box picks it: Automatic (the default) takes Balanced on a graphics card that keeps up with speech and Fast otherwise; Fast runs on any computer; Balanced is more accurate and needs a graphics card or Apple Silicon. Where the app finds a graphics card, a Use the GPU switch under the box (on by default) lets you keep speech on the processor instead.
- Our hosted service ("Cloud (letmesoloit.com)" in the app; All-Inclusive, or any plan with a Credit Pack): the audio goes through our server, paid in credits. Its streaming option shows the words while people speak; like phrases, a stream is charged for all the audio it sends, one credit per 10 seconds. So that names and rare words are spelt right, the app sends it up to 100 words with the audio: your own list first, then name-like words from the About me of your active prompt. Your list is Settings, then Advanced, then Audio, then Speech-to-text, then Words to spell right: separate the words with commas (the empty field suggests "e.g. Kubernetes, Grafana, your colleagues' names"); hosted speech prefers these spellings when it hears something close. A service you set up with your own key gets them if it takes them; the model on this computer ignores the list.
- A service you set up with your own key.
- Automatic (the default) uses our hosted service while your plan includes it and credits are left, for every language and on every computer, and streams where the service streams. Otherwise it uses local speech recognition, which is also the fallback when our service cannot be reached or fails. Without our hosted service, the chat waits for the speech model's download, with its progress shown. Automatic never uses a service you set up with your own key.
Once the local model is downloaded, its state reads Model ready, and the download arrow gives way to a trash can that deletes it again.
- (tooltip "Delete the downloaded model (574 MB)") deletes it, after a card that says the size freed; the state above it reads Model ready, and the model downloads again when you need it
What each choice sends and keeps is in the Privacy Policy.
A cloud service with your own key
In Settings, then Advanced, then Audio, then Cloud speech with your key, pick the service, paste its API key and choose its model; the app tests the key and says whether it works. Then pick that service's Own key choice as the engine. When the service refuses, the window says why:
- It refused the key: the key is wrong or no longer valid. Check it in the same place.
- The key has no credit or quota left: add credit or raise the quota in your account on the service's own dashboard, since the app cannot change it, or pick another engine.
- It does not offer the model: choose another model in the same place.
- It is limiting requests: some phrases may be missed until it lets them through again.
Languages
Speech recognition and the hints work in twelve languages: English, Ukrainian, Russian, German, Spanish, French, Japanese, Polish, Swedish, Chinese, Korean and Portuguese. One setting, Language, in Settings, then Assistant, then Conversation and Settings, then Advanced, then Audio, then Language, chooses how. English is the default: a language you pick is heard exactly, with no detection. Automatic detects the language each side of the call speaks, with speech on this computer or our hosted service and answers from our hosted service; the hints reply in yours. A speech service you set up with your own key, or answers from your own provider, always hears a language you pick: there the list has no Automatic, and a saved Automatic works as English. This follows the route live: when the answers move to your own provider during a call, detection stops and the rows change.
Under Automatic, detection runs for each side of the call on its own. A side settles once two separate utterances, each with 3 seconds or more of voice, agree on a language; if none agree after 4 utterances or 30 seconds of that side's voice, it settles on the language heard longest so far (on a tie, the most recent). A small language detector on this computer also hears each phrase with 3 seconds or more of voice: when it is sure the phrase is in another of the twelve, the call's side changes to it at once, from that phrase on, and the answers follow. Your microphone's side changes only when the detector is sure of the same new language on two phrases in a row, starting within 20 seconds of each other, since your microphone also hears the room and your own speakers; both phrases are then shown again in the new language. Shorter phrases do not count, so an "OK" or a name never flips it. Until a side has settled, it takes the other side's language, else English. Speech on this computer detects the language from the audio, our hosted service from the text of each finished phrase. With streaming, each side's stream opens at once in that side's last language (its own from an earlier call, kept on this computer, else the other side's, else English), so the text shows from the first second. When the detector hears another language, the app sends the stream a short signal naming it, with no audio: our hosted service hears the phrase again in the new language from the audio it already has, and the new text replaces what was shown. Nothing is sent or charged twice. Hints answer in your own side's language, else the call's.
A language you pick is heard exactly: speech is read in that language only, with no detection and no automatic switching, and the answers follow it. A second language is then one shortcut away; see Hints.
What local speech recognition needs
These figures are approximate. What each system needs as a whole, memory and disk included, is in System requirements.
- With graphics as in the System requirements table, 2 cores (4 threads) and 8 GB of memory are enough. Without them, English, Russian, German, Spanish, French, Japanese, Polish and Swedish run on the processor alone: 8 cores (16 threads) and 16 GB of memory keep up with both sides of a call; 6 cores (12 threads) and 8 GB are about the minimum for that.
- Ukrainian, Chinese, Korean and Portuguese, and the more accurate Balanced model, need a graphics card: Balanced needs 4 GB or more of video memory, and the System requirements list the cards by maker. Integrated laptop graphics run only the Fast model, just about live. On Windows and Linux the card needs a Vulkan driver, which current NVIDIA, AMD and Intel drivers include.
- A measured example (2026-10-14, a real call played aloud): a low-end laptop, 2 cores / 4 threads with AMD Radeon Vega 3 graphics, runs Fast at about 3 seconds per phrase once the language is known, so the text appears about 3.5 to 5 seconds after a phrase ends; while the language is detected a phrase takes about 5 seconds. Balanced is too slow there, and Automatic does not pick it. With a GeForce GTX 1650, Balanced takes about 1.3 seconds per phrase (about 2.1 while detecting) and stays on the card. A call where people take turns keeps up; both sides talking without a pause does not.
- On a plan that includes our hosted service, Automatic sends every language there, these four included, so your computer's hardware does not matter. Without it, Automatic runs them on this computer with the best model it keeps up with, which may fall behind without a graphics card or Apple Silicon.
- When a model on the graphics card is too slow, Automatic first tries it once on the processor and keeps whichever reads faster, saying "Speech switched to …" if it moved; it does not try again in this version of the app. If your computer still falls behind, the app says so and names a faster choice: on a plan that includes our hosted service, Fast or our service (our service alone when Fast is too slow); without it, Fast or the "Use the GPU" switch where it is offered (the switch alone when Fast is too slow). It stays on the fastest local choice and keeps the captions close to live, and never moves the audio to the cloud by itself.
Microphone and speaker
Settings, then Advanced, then Audio lists your microphones and speaker sources and shows the one in use. A change applies at once on Save; a device that will not open keeps the previous one. A saved device that is not connected when listening starts (headphones switched off) is replaced by the system default for that run; the setting stays, so the device is used again the next time it is there. On macOS there is no speaker to choose: the app hears the computer's sound itself, with the Screen Recording permission.
- Language (English by default): the language the app listens for and answers in; Automatic detects it where it is offered
- Quick-switch language (None by default): a second language the Switch language shortcut toggles to, until you quit; the row shows only while Language is a language you picked
- Mic device (System default): the microphone the app hears as you; inside the box (tooltip "Refresh") reads the devices again
- Speaker device (System default): the sound the app hears as the other participants
Voice detection
The Voice detection section, numbered in the picture below, decides what counts as speech. The two thresholds set the level above which a sound counts as a voice, one for your microphone (100 by default) and one for the other participants (200); each goes from 1 to 10,000. Hint on my own speech is off by default: the app answers what the other participants say, and with it on also what you say. Filter speaker echo is on by default and drops microphone phrases that are only the call's sound coming back through your speakers. Auto-adjust sensitivity is on by default: while the app listens, each threshold follows the call, within half to double its saved value and never saved, so the next start begins from your values again. Suggest calibration is on by default: when one side keeps coming back unrecognised, a notice says so with a Calibrate link; turning it off stops the notice, and Calibrate in Settings works either way.
- (tooltip "Calibrate mic") asks you to stay quiet for 3 seconds, then to read a sentence aloud three times, and sets the Mic threshold; it works while the app is listening
- (tooltip "Calibrate speaker") plays a short clip three times through your speaker while you stay quiet, and sets the Speaker threshold
- Mic threshold, 1 to 10,000 (100): the level above which sound counts as your voice. Raise it if the app hears noise as speech, lower it if quiet speech is missed
- Speaker threshold, 1 to 10,000 (200): the same for the other participants
- Hint on my own speech (off): also answers what you say, not only the other participants
- Filter speaker echo (on): drops microphone phrases that are only the call's sound coming back through your speakers; turn it off only if your own words go missing
- Auto-adjust sensitivity (on): the thresholds follow the call while it runs, between half and double their saved value, and are never saved
- Suggest calibration (on): says so when one side keeps coming back unrecognised, with a Calibrate link
Calibrate
When one side keeps coming back unrecognised, the window says "Hard to understand the other side: check the volume or calibrate." (or "your microphone"). First check the system volume, and that Settings, then Advanced, then Audio uses the right microphone and speaker.
Then calibrate, while the app is listening. The notice's Calibrate link opens the two Calibrate buttons, and , in the title of Voice detection in Settings, then Advanced, then Audio. Calibrate mic (tooltip "Calibrate mic") asks you to stay quiet for 3 seconds, then to read a sentence aloud three times. Calibrate speaker (tooltip "Calibrate speaker") plays a short clip three times through your speaker while you stay quiet. The app sets the level between the background noise and the voice, and Save keeps it. When the voice is not clearly above the noise, the app says so and changes nothing.
- The notice, with its Calibrate link, which opens the Calibrate buttons
Mute your microphone
Ctrl+Alt+M, or in the action bar, stops the app hearing you: nothing of your microphone is transcribed or sent. The other participants are still heard, and it does not mute you in the call. Its twin, Ctrl+Alt+O or beside it, pauses the other participants instead: nothing of theirs is transcribed or sent, and nothing is charged, until you press it again. Every start is unmuted and unpaused.