[TUHS] speak and speech synthesis
Will Senn via TUHS
tuhs at tuhs.org
Wed Sep 16 11:42:50 AEST 2026
It'd be great to have the files archived. If you point me at them I can
collect, otherwise, if you like, you can send them to me and I'll work
with the team to find a home.
BTW, I got it working through some gymnastics, V3/V4 had quite a bit of
the necessary files, dspinellis had speak.c/speak.v.
It's not 100% faithful in my current environment for a couple of reasons
- 1) I'm using SC01A as exemplar, not having a pre SC01 pot around, and
2) it hurt my ears without minimal smoothing from one phoneme into another.
Oh, and I'm leveraging simh's sdl for the audio out.
I'll work on packaging it up with explanation but right now, bas has all
of the graphics it knows about, fortran extends and uses more of the
graphic functions that I've implemented (the full set), and now, I have
added /dev/vs into the mix and speak lives:
from v6 with the adapted simh and appropriate mkconf stuff:
echo 'all your base are belong to us. Research Unix V6 is speaking aloud
in 2026' | /bin/speak
result in all of its glory (tell me it sounds as glorious to your ears):
https://decuser.github.io/assets/audio/votrax-v6.wav
Later,
Will
On 9/15/26 6:22 AM, Douglas McIlroy wrote:
>> Also, Doug, you wrote technical report 14, which seems canonical about
>> how speak worked. Is that the best source you or anyone else knows of
>> vis a vis v6's implementation?
> That''s the only documentation I know of. I also have C source and
> driver tables for
> several points in time. I cam pass them to tuhs if needed.
>
> Doug
>
> On Tue, Sep 15, 2026 at 12:47 AM Will Senn via TUHS <tuhs at tuhs.org> wrote:
>> In a similar investigation to my graphics dive, this time into speech
>> synthesis, I found that |/dev/vs| talks to the synthesizer through a
>> DC-11. I’m trying to determine the interrupt/vector assignment for that
>> device—specifically the Federal Screw Works Votrax interface.
>>
>> There is quite a bit of useful material scattered across UNIX V4 through
>> V6. From that, I can reconstruct the system generically: add the |vs|
>> driver to the kernel, create |/dev/vs|, add PCM audio support to SIMH,
>> and translate the historical phoneme stream into approximate speech
>> based on what can be pieced together from the source and documentation.
>> This "should" work and get speak working...
>>
>> I’d prefer, though, to reproduce the original interface somewhat more
>> faithfully. The V4/V6 |vs.c| sources give the CSR address (|0174150|)
>> and the receive/transmit interrupt routines (|vsrintr| and |vsxintr|),
>> but I haven’t yet found the actual interrupt vector assignment used for
>> the Votrax/DC-11 installation.
>>
>> If anyone has an old kernel configuration, |mkconf| entry, low-core
>> |l.s|, hardware note, or other documentation showing how the Screw Works
>> Votrax interface was actually vectored, I’d be very interested in seeing it.
>>
>> Also, Doug, you wrote technical report 14, which seems canonical about
>> how speak worked. Is that the best source you or anyone else knows of
>> vis a vis v6's implementation?
>>
>> Thanks,
>>
>> Will
>>
More information about the TUHS
mailing list