[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Emacspeak] Emacsvox and Omnivox: an early experiment now available to try



I'm looking forward to eventually migrating from Emacspeak to Emacsvox.

I'll look into the transition this coming week and let you know how it goes. So far, I've found that letting Windows handle the audio is the most responsive setup.

On another note, I'm also looking into using my screen reader, NVDA, as a speech server. It's a bit crazy, but it would let Emacs and NVDA interrupt each other, and it would let me inherit a bunch of NVDA features, such as sending system audio to one channel and the screen reader to the other, or even simple global shortcuts like copying the last spoken phrase to the clipboard. The downside is that it might hurt responsiveness, since the chain would go from Emacs to Omnivox to NVDA to Eloquence, and NVDA is written in Python, which isn't the fastest. Still, it's something I'm interested in exploring.


Regards, 
Saad
Sent from my iPhone (excuse typos)


On 24 Sep 2026, at 2:25 pm, Bart Bunting <emacspeak@xxxxxxxxxxxxx> wrote:


Hi Saad,

Thanks for taking the time to write. It’s great to hear that you’ve been using Omnivox regularly with Emacspeak and Eloquence on WSL.

Emacsvox is tightly integrated with Omnivox, and I think you’ll get the fullest experience using them together. I’ve certainly found this the most responsive combination, with Windows handling the audio.

When you get a chance to try Emacsvox, I’d be very interested to hear how the transition goes. Let me know if you have any issues and I’ll do my best to assist.

Regards,
Bart

Saad Attieh <saad_attieh@xxxxxxxxxx> writes:

Just wanted to write in and say thanks.
I’ve been using emacspeak with omnivox solidly, for the past 2 to 3 weeks now. I
run Emacspeak on WSL and pipe to eloquence on my windows via omnivox. I did
use an LLM to connect everything up. I am looking forward to at some point
migrating from Emacspeak to Emacsvox.

Regards,
Saad
Sent from my iPhone (excuse typos)

Saad Attieh
saad_attieh@xxxxxx
http://saad.ai

On 24 Sep 2026, at 8:48 am, Victor Tsaran <emacspeak@xxxxxxxxxxxxx>
wrote:

I see. Thanks.

On Wed, Sep 23, 2026 at 1:01 PM Parham Doustdar <parham90@xxxxxxxxx>
wrote:

Hi Victor,
You need Emacsvox (which would be the Emacspeak equivalent) and you
also need Omnivox (which would be the Swiftmac equivalent), if that
makes sense.
HTH.

On 23 Sep 2026, at 21:59, Victor Tsaran (via emacspeak Mailing List)
<emacspeak@xxxxxxxxxxxxx> wrote:

Thanks for the explanation.
So, in the end, do I only need Omnivox  or both Emacsvox and
Omnivox?

--- --- --- ---
Find my music on
Youtube: http://www.youtube.com/c/victortsaran
Spotify: https://open.spotify.com/artist/605ZF2JPei9KqgbXBqYA16
Band Camp: http://victortsaran.bandcamp.com

On Tue, Sep 22, 2026 at 11:57 PM Bart Bunting
<bart@xxxxxxxxxxxxxx> wrote:

Hi Victor,

Thanks for pointing this out. I had let the published manual fall
behind the repository, and the Mac and Linux instructions were
too easy to miss among the WSL material. I have now pushed the
updated README and republished the manual. Sorry for the
confusion.

Emacsvox needs a speech-server process. For a new installation,
I recommend Omnivox. On macOS, Omnivox uses Apple’s
AVSpeechSynthesizer and the system voices available through
it. Emacsvox talks to Omnivox, which handles synthesis and
playback; it does not connect directly to the Mac’s speech
system.

Emacsvox should still work with older Emacspeak-compatible
speech servers, but I have not tested that route heavily. Omnivox
retains the traditional Emacspeak line protocol, while the newer
protocol used between Emacsvox and Omnivox is significantly
different and more extensive. Many Emacsvox features rely on
those additions for their full experience. For example:

• Voice discovery and palettes let you browse installed engines
and voices, preview adjustments, and give a named voice an
ordered set of choices across engines, with fallbacks when a
preferred voice is unavailable.
• Aural Presentation can coordinate speech, voice changes,
sounds, tones, pauses and spatial placement in a single
presentation, including cues positioned within speech.
• Selective replacement lets a newer navigation or status update
cancel obsolete speech from the same context without clearing
unrelated output.
• Playback feedback tells Emacs when speech reaches a marked
position or finishes, supporting features that need to coordinate
with playback.

The compatibility path preserves ordinary speech and some
simpler presentation behavior, but cannot provide all of those
facilities or the same timing guarantees. So an older server may
be usable, but Omnivox is the recommended route for the full
Emacsvox experience.

On either an Intel or Apple silicon Mac, you can install and check
Omnivox with Homebrew:

sh ⧉

brew install bartbunting/omnivox/omnivox
"$(brew --prefix omnivox)/bin/omnivox" --check

That installs the speech server. Emacs 30.2 or newer and
Emacsvox are installed separately. The Mac instructions explain
how to select the Homebrew executable for Emacsvox, including
when starting Emacs from Finder:

https://bartbunting.github.io/emacsvox/Installing-An-Omnivox-Release-Binary.html


Then follow the build and first-speech steps here:

https://bartbunting.github.io/emacsvox/Quick-Installation.html

For GNU/Linux, the manual covers Debian/Ubuntu packages and
the archive or source installation routes. Omnivox normally uses
eSpeak NG there. The Emacsvox package requires a packaged
Emacs 30.2 or newer; the Omnivox amd64 package is tested on
Ubuntu 24.04 and 26.04:

https://bartbunting.github.io/emacsvox/Installation.html

My everyday setup is still WSL2, so feedback on the Mac
installation is particularly useful. Please let me know if any step
is unclear.

Kind regards,

Bart

Victor Tsaran <vtsaran@xxxxxxxxx> writes:

Hi Bart.
I did not see any installation notes or configurations for
Emacsvox for Mac
or Linux in the Github repository. Did I miss something?
Do I need Omnivox for Emacsvox or the latter links to my
default speech
synthesis  manager on mac?


On Tue, Sep 22, 2026 at 4:15 PM Bart Bunting
<emacspeak@xxxxxxxxxxxxx>
wrote:

Hello all,

I wanted to follow up on my August announcement with the
main changes
since then, particularly the installation options and speech
engines.

I am conscious that this list is specifically about Emacspeak,
and do not
want to fill it with Emacsvox announcements. Robert and I
are working
towards a dedicated Emacsvox mailing list. In the meantime,
I hope an
update on this existing thread is useful to those who
expressed interest.

The current releases are Emacsvox 2026.9.5 and Omnivox
1.12.1. One
correction to my original announcement: Emacsvox now
supports Emacs 30.2
and newer, so Emacs 31 is no longer required.

Installation should now be considerably easier:

• Windows: There is a downloadable Windows x64 setup
wizard containing
Emacs, Emacsvox and Omnivox. It installs for the current
user, offers a
speech test, and creates a Start menu shortcut. No
administrator
privileges, compiler or WSL installation are required. This
installer is an
unsigned preview, currently bundling Omnivox 1.12.0;
testing with screen
readers and on fresh machines would be particularly
welcome. The guided
WSL2 installation remains available.
• macOS: Omnivox now has a Homebrew tap, supporting
both Apple silicon and
Intel Macs. Install it with brew install
bartbunting/omnivox/omnivox. The
tap is already updated to 1.12.1. Emacs and Emacsvox are
installed
separately.
• Debian and Ubuntu packaging: Both projects now publish
downloadable .deb
packages. Emacsvox requires a packaged Emacs 30.2 or
newer. Omnivox’s amd64
package is tested on Ubuntu 24.04 and 26.04. These are
release downloads,
rather than packages in the distributions’ official
repositories.

Omnivox’s speech-engine choices have also expanded:

• eSpeak NG on Windows, macOS and GNU/Linux.
• Native Windows WinRT voices and macOS
AVSpeechSynthesizer voices.
• Optional Piper neural voices, Flite, and RuTTS Russian
voices.
• RHVoice, with a separately installed compatible runtime
and voice data.
• Eloquence and Software DECtalk on Windows, using
compatible runtimes
supplied by the user.
• Experimental TGSpeechBox support on Windows x64.

Availability varies by platform and architecture. MBROLA
support and
additional Linux integrations are also being developed, but
are not part of
the standard release installation. Proprietary speech
runtimes are not
distributed with either project.

Voice installation and configuration have received quite a lot
of
attention. In the WSL-to-Windows setup, Emacsvox can now
install matching
optional engine components and download additional Piper,
Flite and RHVoice
voices from within Emacs. Downloads are verified, and
installing a voice is
separate from enabling and applying it.

The voice browser lets you search, listen to samples, compare
voices and
try eSpeak variants. The common voice editor brings
together voice
adjustments and fallback choices, including engine-specific
Eloquence and
DECtalk controls where supported. These managed download
facilities
currently use the bundled WSL-to-Windows launcher; other
launch
arrangements still need their own engine and voice
configuration. Existing
users with custom voice palettes should read the upgrade
notes, as older
palettes require conversion.

There have also been improvements to speech
responsiveness, interruption
and recovery. Omnivox 1.12.1 fixes a case where speech
stopped partway
through a line containing a link.

On the Emacsvox side, changes include improvements to
Agent Shell response
navigation and speech, Notmuch performance, terminal
completion and
minibuffer feedback. Image and PDF OCR now uses
PaddleOCR, with
reading-order and table support. Aural Presentation also has
more
accessible controls for investigating a particular piece of
feedback and
changing its voice or sound.

Another preview feature allows Emacs to run on a remote
Linux machine
while Omnivox synthesizes and plays speech on your
workstation, connected
through SSH.

The Emacsvox manual describes installation, voice setup,
everyday use and
troubleshooting. Both projects remain experimental, and
reports from
different machines and configurations are very welcome.
Until the dedicated
list is ready, please feel free to contact me directly or use the
projects’
GitHub issue trackers.

My thanks again to Raman for Emacspeak and the foundation
it provides, to
Robert for his modernization and cross-platform work, and to
everyone who
has tried these projects or offered feedback.

Kind regards,

Bart


<bart@xxxxxxxxxxxxxx> writes:



Hello all,



There has been some interest in Emacsvox and Omnivox,
so I thought it
might
be useful to describe where the projects currently stand
and make them
available to anyone who would like to experiment with
them.



Emacsvox is an experimental Emacs 31 audio desktop
derived from
Emacspeak:



https://github.com/bartbunting/emacsvox



Robert Melton began Emacsvox as a modernization of
Emacspeak for current
Emacs and Emacs Lisp. My repository started from Robert's
work but has
since
diverged substantially.  I do not want to imply that Robert
has endorsed
all
the directions I have taken.



Emacsvox is not a drop-in replacement for an existing
Emacspeak
configuration. It requires Emacs 31 or newer, uses its own
emacsvox-*
namespace, and has made some incompatible changes
while replacing
obsolete
APIs and modernizing the Lisp.



Much of my work has concentrated on current Emacs
packages and workflows,
including Org, Notmuch, Magit, EAT, Agent Shell, Vertico,
Corfu and
others.



The largest architectural experiment is Aural Presentation.
Its purpose
is
to separate the meaning of an event or object from the way
it is
presented.
A package can identify something as a heading, unread
message, tool
result,
folded section or warning without permanently deciding
which voice,
sound,
tone, pause or spatial position must represent it. Users can
then adjust
that presentation globally or for a particular package,
mode, session or
buffer.



Omnivox is the accompanying cross-platform speech
server:



https://github.com/bartbunting/omnivox



Omnivox also began with Robert's work. I initially
developed it further
because I wanted responsive speech while running Emacs
inside WSL2, with
Windows performing synthesis and audio playback.



On Windows, Omnivox supports the native WinRT voices
and eSpeak. It can
also
use a locally installed Freedom Scientific Eloquence
runtime and an
optional
Software DECtalk helper. On macOS it supports
AVSpeechSynthesizer and
eSpeak, while GNU/Linux uses eSpeak, with Piper available
as an
experimental
option.



Omnivox retains the traditional Emacspeak line protocol
and includes an
adapter for upstream Emacspeak. The additional Emacsvox
protocol is
negotiated separately. It adds facilities such as logical
voice
discovery,
structured speech and sound timelines, selective
cancellation, playback
markers and callbacks.



These facilities make some useful behaviours possible, but
they also
introduce considerably more complexity than the
deliberately small
original
Emacspeak protocol. I regard this as an experiment in a
different
direction,
not an assertion that the original design was wrong.



Both projects are still at an early stage. There will certainly
be bugs,
rough edges and assumptions inherited from my own
setup. Nevertheless,
they
are not merely demonstrations: I use Emacsvox and
Omnivox every day as my
normal Emacs and speech environment.



I should also be transparent about how the work has been
produced. I have
used Agent Shell and Codex extensively during the
development of both
projects. This has greatly accelerated the work and may
also have
introduced
some of the rough edges associated with what is now
called "vibe coding."



I do not regard generated code as evidence of correctness.
Both projects
are
backed by extensive automated test suites and build,
documentation and
release checks. Even so, tests only verify the assumptions
encoded in
them.
They cannot replace human review or real use across a
wider range of
machines and configurations. That is another reason I
describe these
projects as experiments and welcome independent testing
and criticism.



My principal configuration is Emacs running inside WSL2
with Omnivox
running
natively on Windows, so that remains the best-exercised
route.



I have now revised and published the Emacsvox manual to
the point where
other people should be able to attempt an installation:



https://bartbunting.github.io/emacsvox/



The manual describes the platform routes, prerequisites,
installation,
first-speech checks and recovery steps. It includes a
straightforward
WSL2
route using a pre-built Omnivox archive and a bounded
native-Windows
trial.
Native Windows Emacsvox remains explicitly marked as a
preview because
the
complete combination still needs fresh-machine testing.



I have also published Omnivox 1.4.1 binary archives for
Windows x64 and
ARM64, macOS Intel and Apple silicon, and GNU/Linux
x86-64:




https://github.com/bartbunting/omnivox/releases/tag/v1.4.1



The archives include the required adjacent runtime data,
licence
information
and published SHA-256 checksums. The Windows and
macOS archives are not
code-signed, which is documented so that nobody is
encouraged to weaken
local security policy merely to try them.



I am putting this forward because there has been interest,
not because I
want to compete with Emacspeak, fragment its community
or step on
anyone's
toes. I hope it will be received in that spirit.



Testing reports, bug reports and technical discussion would
be very
welcome,
especially from configurations different from mine.
Contributions are
also
welcome from anyone who would like to become involved.
That might mean
code,
documentation, testing another platform, adding a speech
engine,
improving
an integration, investigating a bug or simply reporting
where the
instructions were unclear. There is no expectation that a
contribution
needs
to be large.



I would also be interested in comparing approaches with
other current
Emacspeak-related work. There may be useful ideas and
fixes that can be
shared even where the projects make different
architectural choices.



Finally, none of this would exist without T. V. Raman's
extraordinary
work
in creating and sustaining Emacspeak and establishing the
audio-desktop
ideas on which it depends. Robert Melton's Emacs
modernization and
original
cross-platform work gave me the practical foundation from
which to
begin. My
sincere thanks to both of them.



Kind regards,



Bart


Emacspeak discussion list -- emacspeak@xxxxxxxxxxxxx
To unsubscribe send email to:
emacspeak-request@xxxxxxxxxxxxx with a subject of:
unsubscribe



--

--- --- --- ---
Find my music on
Youtube: http://www.youtube.com/c/victortsaran
<http://www.youtube.com/vtsaran>
Spotify:
https://open.spotify.com/artist/605ZF2JPei9KqgbXBqYA16
Band Camp: http://victortsaran.bandcamp.com

Emacspeak discussion list -- emacspeak@xxxxxxxxxxxxx
To unsubscribe send email to:
emacspeak-request@xxxxxxxxxxxxx with a subject of: unsubscribe

--

--- --- --- ---
Find my music on
Youtube: http://www.youtube.com/c/victortsaran
Spotify: https://open.spotify.com/artist/605ZF2JPei9KqgbXBqYA16
Band Camp: http://victortsaran.bandcamp.com

Emacspeak discussion list -- emacspeak@xxxxxxxxxxxxx
To unsubscribe send email to:
emacspeak-request@xxxxxxxxxxxxx with a subject of: unsubscribe


|Full archive May 1995 - present by Year|Search the archive|


If you have questions about this archive or had problems using it, please contact us.

Contact Info Page