2.5 Recovering From No Speech

If speech did not start, keep the isolated launcher as your known starting point and find the first command below that did not work:

./bin/emacsvox --diagnose fails

No audio or interactive Emacs has started. Follow the reported selection: set EMACS, correct EMACS= in local.mk, or install Emacs 31 or newer when the Emacs check fails. When the speech backend is not executable, finish installing Omnivox, put it on PATH, or set OMNIVOX_PROGRAM to its absolute executable. Under WSL2, confirm the pre-built executable selected in Install An Omnivox Windows Release Under WSL2, or verify a source-built staged runtime described in Building Omnivox For WSL2.

The diagnostic passes, but --check errors or is inaudible

The speech server needs attention before Emacs configuration is relevant. Follow Backend Diagnostics And Responsibilities until the check produces both its tone and speech.

The audible check passes, but the isolated startup sentence is absent

Run ./bin/emacsvox --diagnose again from the same checkout and shell. Remove an unintended TTS_PROGRAM override if the report does not select omnivox. Then request an Emacs startup backtrace with:

./bin/emacsvox -- --debug-init

An error saying Could not find speech server executable means the backend visible during that start cannot be executed. Correct the reported backend path rather than adding more init-file configuration. For an Omnivox process error, inspect the private log directory described below.

The startup sentence is heard, but speech later stops

If Emacs reports that an Emacsvox speech server exited, inspect the Omnivox session log and type M-x tts-restart RET after correcting the backend problem. Logs are below $XDG_STATE_HOME/emacsvox/omnivox, defaulting to ~/.local/state/emacsvox/omnivox. Spoken text is omitted unless explicit text logging is enabled.

The isolated launcher works, but a customized Emacs start does not

Remove or comment out the Emacsvox environment and load-file forms from the personal init file. This is the rollback: it leaves the checkout and the known-good ./bin/emacsvox path intact. Re-add the forms in the order shown in Persistent Startup; backend selection must happen before setup is loaded.