emubns - a Braille 'n Speak synth emulator
Copyright (C) 2020 Mateusz Viste
-- WHAT IS IT? ---------------------------------------------------------------
emubns is a program that emulates a Braille 'n Speak (BNS) synthesizer. BNS
synthesizers were commonly used by sight-deficient people in the nineties to
work in DOS. These were actually autonomous mini-computers able to take notes,
and one of their features was being able to receive vocalization instructions
from a PC over an RS-232 link. emubns is exclusively focused on this single
feature.
-- WHAT IS IT GOOD FOR? ------------------------------------------------------
I created emubns to play with ancient DOS screen readers, and to understand
the miracle behind blind people being able to work with DOS.
emubns is a Linux program that listens on a local TCP port (by default 7333),
awaiting for BNS instructions issued by a screen reader. Then it processes the
instructions and outputs voice using the espeak-ng library.
I created emubns for a specific use case: using a screen reader installed on a
DOS system inside a Qemu VM.
Qemu makes it possible to redirect virtualized COM ports to a tcp port, and
that's where emubns kicks in.
-- HOW? ----------------------------------------------------------------------
Typically, one would load emubns first, and then run his Qemu VM using
something like this:
qemu -hda disk.img\
-chardev socket,id=comport,host=127.0.0.1,port=7333\
-device isa-serial,chardev=comport
Inside the Qemu VM, a screen reader should be installed (like PROVOX, JAWS,
ASAP, etc). This screen reader should be configured to send its output to
a "Braille 'n Speak" synth conected to COM1. From now on, anything typed or
displayed on the VM screen should be vocalized accordingly.
-- REQUIREMENTS --------------------------------------------------------------
emubns relies on espeak-ng for all its voice output, hence it requires
espeak-ng to be installed on the host system.
-- BUILDING ------------------------------------------------------------------
To build emubns on Linux, simply type 'make'. This should produce an emubns
executable, assuming that your system has all necessary dependencies:
a C compiler (clang/gcc), libespeak-ng, espeak-ng headers and the make tool.
The Windows version is built with Mingw64.
-- DOWNLOAD ------------------------------------------------------------------
You may fetch the latest version of emubns at the address below:
Source code:
http://emubns.sourceforge.net/emubns.tar.xz
Win x64 build:
http://emubns.sourceforge.net/emubns-win.zip
I have also prepared a Qemu image containing a FreeDOS kernel with basic
tools and a pre-installed screen reader. The package can be fetched here:
http://emubns.sourceforge.net/svarog386-qemu-provox.zip
-- LICENSE -------------------------------------------------------------------
emubns is open-source software, published under the terms of the ISC license.
Copyright (C) 2020 Mateusz Viste
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
---------------------------------------------------------------------[ EOF ]--