Skip to content
MagicFrog
Menu

Voice

Talk to MagicFrog — dictation on your own speech stack, spoken replies, and hands-free conversation.

MagicFrog supports voice input and spoken replies on both the desktop app and the web app. The speech chain never leaves your infrastructure: recognition and synthesis run on-device or on self-hosted endpoints you configure — no third-party speech cloud is involved.

Voice input (dictation)

Dictation captures your microphone and turns it into text in the composer.

  • Two capture modes. hold records until you stop it; endpoint ends the utterance automatically after a quiet gap (about 1.2 seconds) measured on the page.
  • Your own recognizer. Audio is sent to a self-hosted transcription endpoint speaking the OpenAI-audio request shape — local servers such as whisper.cpp server, faster-whisper, or LocalAI work as-is. The default endpoint is loopback (http://127.0.0.1:8080).
  • Language and model hints. You can set a primary language subtag (for example zh or en); omit the model to let the endpoint use its default.
  • Cancellable. Requests have a timeout cap, so a stuck endpoint cannot hang the composer.

Browser cloud recognition is not supported — it would send your audio to the browser vendor's cloud.

MagicFrog web console: the Voice section of Settings → Preferences, showing the speech engine, transcription endpoint, and dictation language

The screenshot shows the real Voice section of the web app's Settings → Preferences page: speech engine selection, the transcription endpoint, and the dictation language.

Spoken replies (text-to-speech)

Agent replies can be read aloud, with a global switch and a per-session override (a per-session recorded value wins over the global one).

Two synthesis engines, both inside the same boundary:

  • System voices — the local voices built into your device.
  • Self-hosted endpoint — a synthesis server you run, also speaking the OpenAI-audio shape (default loopback http://127.0.0.1:8000).

Long replies are spoken in chunks so playback starts fast, a caption shows what is being read, and each message is announced at most once — streaming updates or restoring a tab never cause double speech.

Desktop and web

The same feature works on desktop and in the browser:

Capability Desktop (Electron) Web (browser)
Microphone capture Yes Yes
System-voice playback Yes Yes
Loopback http:// endpoints Allowed Allowed on http:// origins; rejected up front on https:// pages (mixed content)

The web app checks up front and refuses an http loopback endpoint on a secure page before you record, instead of failing mid-recording.

Hands-free conversation

A voice session is a continuous conversation — listening, thinking, speaking — with a mute control and a running exchange transcript.

The microphone stays closed while a reply plays and reopens about 0.6 seconds after it ends — the assistant never hears itself.

Privacy boundary

Nothing in the voice chain names a third-party speech cloud. The engines may only reach your own loopback or self-hosted endpoints and the on-device speech stack.

Voice settings persist locally per app install: dictation language, both endpoints and models, the synthesis engine, the global speak-replies switch, and per-session overrides.