My adapter, which has been indevelopment for about 12 years under Linux,
and over 30 years if you count the first version that ran on the Apple 2E,
consists of a device driver and a user space daemon.
The driver carries keyboard and tty events into user space,
and the program responds to key commands and speaks
the output of the computer using espeak (a software synthesizer)
or a hardware synth attached to a serial port.
Newer computers that don't have a serial port can use a usb-serial converter.
There is plenty of documentation within the project itself.
You can clone it here.