Local vs Cloud Dictation: Check Audio, Text, and Destination

Check where audio is recognized, where cleanup text goes, and what the destination app does. Includes Ollama pitfalls and an offline verification checklist.

Source reviewed October 17, 2026 against the 0.3.7 build 42 checkout. Public v0.3.7, released October 15, is build 35; controls may differ. This is a maker-authored implementation review, not an independent network audit. Check the public release

Quick answer

Local speech recognition does not make cloud text cleanup local. Check audio recognition, cleanup text, and the destination app separately. Ducduc requires on-device recognition; same-Mac cleanup needs Offline mode, a loopback endpoint, and an actual local Ollama model. A disconnected test verifies that run, not every future network path.

For a Mac dictation app, check audio recognition, text cleanup, and the destination app separately. A local speech engine can feed a cloud language model. Finished text can then sync or be submitted by the app you dictated into. “Local,” “not used for training,” and “zero retention” answer different questions.

Ducduc requires Apple’s on-device recognition path. Built-in and cloud BYOK cleanup send text to a service. Offline mode + a loopback Ollama endpoint + a downloaded local model can keep ordinary dictation cleanup on this Mac. An address that starts with localhost is not sufficient by itself.

Follow one sentence through the whole route

StageInputDucduc’s routeWhat to verify
RecognitionMicrophone audioApple on-device speech engineLanguage assets and the selected recognition path
CleanupTranscript and relevant cleanup inputsBuilt-in service, your API provider, or local modelEndpoint, model and mode
InsertionFinished textGuarded clipboard insertion or a copy cardTarget field and clipboard handling
DestinationInserted textControlled by the receiving appSync, submission, account and retention settings

Apple documents an on-device requirement for the classic recognition API and describes SpeechAnalyzer’s newer models as on-device. These capabilities explain Ducduc’s implementation; they do not describe every app using Apple speech. Apple’s built-in Dictation has its own device and language conditions, shown in Keyboard settings. See Apple’s recognition API, SpeechAnalyzer explanation and Mac Dictation guide.

Cleanup is instructed to remove fillers, repair supported sound-alike errors and organize speech without answering the request or inventing details. This is an instruction, not a guarantee of perfect meaning preservation. Compare raw and final text for important names, numbers, negatives and conditions.

What a cloud cleanup request can contain

In the reviewed implementation, an ordinary built-in cleanup request can include:

  • Recognized text, cleanup mode, script and formatting preferences.
  • Dictionary terms, relevant correction pairs and protected-term hints.
  • A tone hint, such as email, chat or technical writing.
  • Up to 200 characters from a recent dictation in the same app, within a five-minute context window. This is previous dictation context, not arbitrary text around the cursor.
  • Names and trigger phrases of configured saved Voice Prompts. The catalogue’s full saved contents are resolved locally.
  • A random device ID for quota and a Pro license key when activated.

The cleanup request does not include microphone audio, screenshots or a History dump. Domain and field-role classification stays local and selects a mode or tone. Cloud BYOK also sends transcript and relevant cleanup instructions/context, but goes directly to the configured provider.

Ducduc’s cleanup backend has no transcript database; quota and operational metadata are separate. A feedback report you choose to submit is a different data flow. Provider retention and training terms still apply to cloud requests. The privacy policy and security page describe those boundaries; this article does not independently audit the provider.

Accessibility permission and text access are separate questions

Ducduc does not use screenshots for dictation. Accessibility supports several distinct operations:

  • The trigger key and guarded insertion.
  • Walking focused-field ancestors for a domain and role, without collecting page text for classification.
  • Reading a target field to verify insertion or learn an eligible correction.
  • Capturing your selected text for selected-text voice editing, which can send that selection with the spoken instruction to the chosen model.

“Reads nothing” would be inaccurate. “Uploads the screen” would also misdescribe this implementation. Check the input for the feature you are using, especially when switching from ordinary dictation to selection editing.

Built-in, BYOK, and local Ollama have different boundaries

RouteWho receives cleanup text?Main decision
Built-inDucduc’s endpoint, then its configured providerConvenience, quota and both services’ terms
Cloud BYOKThe provider configured in your model profileYour key, provider bill and API terms
Local Ollama + OfflineDownloaded model on this Mac, if configured accordinglySetup, model quality and local resources

For the same Mac, use localhost, 127.0.0.1 or ::1. The app also accepts a .local host, which can be another computer on your LAN.

Ollama can itself use cloud models. Select an actual downloaded local model. For a strict local setup, disable Ollama’s cloud features and restart it as described in Ollama’s official FAQ. Ducduc’s endpoint check cannot determine every behavior of the service behind that address.

In Settings → Models, Use locally selects the model and enables Offline. Choosing a Hybrid backup alone leaves cloud cleanup active. Hybrid tries cloud first; a timeout does not establish that the server received no text. A local retry cannot undo a previous upload.

Verify a setup without overstating the result

  1. Install the speech assets and a local model, disable Ollama cloud features, and start the service.
  2. Select its loopback endpoint and Offline in Ducduc. Record macOS, app build, model tag, endpoint and mode.
  3. Use harmless text in an empty local document. Disconnect Wi-Fi, Ethernet and any tethering.
  4. Check recognition and cleanup separately: raw text appearing proves less than successful model cleanup.
  5. Reconnect and inspect the configured route. For stronger evidence, observe connections from both Ducduc and Ollama, including background activity.

Disconnected success shows that this run worked without an active network path. It does not establish behavior after reconnecting, the destination’s later sync, or every other process’s activity. Failure may mean missing assets, permissions or an unavailable service; it does not prove an upload. A brief connection observation is limited evidence too. No packet-capture audit is claimed here.

A worked decision: an unreleased API

Suppose you dictate “Do not publish the new billing endpoint until Friday” into an agent prompt. This is a hypothetical workflow, not a measured test.

With built-in cleanup, the transcript enters the cleanup route even if you never submit the prompt. Correctly configured local Ollama can keep that cleanup on the Mac. Submitting the prompt to a cloud agent later gives the destination the text under its own policy.

If the requirement is “this detail must never reach an external service,” check all stages and destination sync. If an approved API provider is permitted, BYOK may fit, but remains cloud processing. Local processing alone does not establish workplace approval or regulatory compliance.

Seven questions to ask any vendor

  1. When, if ever, does microphone audio leave the device?
  2. Which transcript, dictionary, context and selection inputs accompany each mode?
  3. Does cleanup go through the vendor or directly to a provider?
  4. What is retained, for how long, and by whom? No training does not mean no retention.
  5. What does “zero retention” cover? It can still involve server processing.
  6. Which identifiers and credentials accompany requests?
  7. What happens when the network, quota or local model is unavailable?

Ducduc preserves recognized text when cleanup cannot complete, possibly after local replacements and script policies. Exhausted built-in quota requires a deliberate route switch for local cleanup. Unsafe insertion produces a copy card; intentional Copy remains on the clipboard, where clipboard managers may observe it. Local History and dictionary files also remain subject to access on your Mac. See terminal and clipboard limits.

Try it on your own Mac

Try your own vocabulary and editor, then compare the raw transcript and cleaned text in History.

Download for Mac

Published by the maker of Ducduc. Third-party information follows the sources and dates stated in this guide. Authorship, sources and examples

All posts