14.9 Backend Diagnostics And Responsibilities

Local server messages/errors remain in diagnostics buffers, hidden from the ordinary buffer list by default. Use C-e H D m for main or C-e H D n for notification diagnostics, or M-x tts-show-diagnostics with Speaker or Notify. Missing local diagnostics are reported rather than invented.

Set tts-hide-diagnostic-buffers to nil in Customize and restart speech to include them in the ordinary list. Existing diagnostics are retained; custom buffer switchers may show hidden buffers independently.

Choose the diagnostic at the failed layer:

omnivox is not found

In WSL, run ./bin/emacsvox-wsl-install --check and inspect its saved path. On other POSIX systems check PATH or an absolute OMNIVOX_PROGRAM. Keep espeak-ng-data and third-party-licenses beside the executable.

omnivox --check errors or is inaudible

Diagnose below Emacsvox using Omnivox’s build guide, platform status, and diagnostics guide. Do not change Emacs configuration before tone/speech work.

The check passes but Emacsvox is silent

Confirm TTS_PROGRAM was omnivox before setup loaded, then use M-x tts-speak-version. Rerun the WSL installer check for a release installation. For development source staging, run make verify-windows-omnivox-runtime and restart after restaging.

A process starts and later fails

The POSIX/WSL launcher retains private bounded stderr logs at $XDG_STATE_HOME/emacsvox/omnivox, normally ~/.local/state/emacsvox/omnivox. Spoken text is excluded unless OMNIVOX_LOG_SYNTHESIS_TEXT is explicitly enabled; that can expose passwords, mail, and documents.

Speech works but is delayed

Note whether diagnostic logging is already enabled. Use C-e d D to enable it only if needed, reproduce one short non-confidential presentation, then restore its previous on/off state. The default log path is ~/.emacsvox-aural-diagnostics.log and can be changed with C-u C-e d D when enabling. Records dispatch-sent, mixer-source-observed, and playback-terminal-observed share a dispatch ID. Match it in Omnivox logs to separate submission, queueing, synthesis, and mixer-source delay. This Emacs log is off by default because submitted speech text is complete. A mixer observation is not physical output; device/hardware buffering can add delay. The diagnostics menu’s l also exposes the explicit session logging control with its privacy warning.

Emacsvox owns selection, launcher, Windows staging, and its bundled Lisp adapter. Omnivox owns native builds, engines, CLI, runtime layout, and protocols. Backend-local READMEs document compatibility adapters and licensed runtimes. Use those owning references for versioned details instead of duplicating their contracts in first-installation instructions.