This is Digitalker! … and Jameco JE520 too. Vintage Speech Synthesis.

In this post, I create a board for the Digitalker speech synthesizer chipset

Background

The digitalker chipset by national semiconductor was popular during the 80s as a way to add speech capability to products and projects. The chipset was sold by Jameco and other electronics parts resellers. Here’s an excerpt from a typical Jameco catalog:

Jameco Catalog 201 Excerpt, January 2001

The basic chipset would have included the MM54104 speech synthesizer chip, as well as the SSR1 and SSR2 speech ROMs. The set could be expanded on with the “vocabulary expansion” which included the SSR5 and SSR6 ROMs.

The digitalker differs from phoneme-based speech synthesizers such as the General Instruments SP0256A-AL2 or the Votrax SC-01A. Rather than building words by assembling a sequence of basic speech building blocks, the Digitalker included whole digitized words in ROM. This led to the vocabulary being somewhat restrictive — whereas the SP0256A-AL2 or SC-01A could produce virtually any word, the Digitalker can only produce the word set that has been digitized into its ROM set.

The Digitalker was originally developed by Forrest Mozer, with Mozer’s work starting out developing a speech chip to be used in a calculator for the blind. Mozer’s design was then license to National Semiconductor to become what would be sold as the Digitalker MM54104N and related chips. The ICs bear the name Mozer printed prominently on the IC.

ROMs

As mentioned above, the vocabulary is dependent on the ROMs used. If you don’t have the right ROMs, then you can’t say the words you want. The following ROMs are known:

  • SSR1, SSR2: The default ROMs included as part of the digitalker chipset.
  • SSR3, SSR4: I’m not sure if these exist or not. People have assumed based on the existence of SSR5 and SSR6 that SSR3/SSR4 must have existed, but I’m not sure anyone has a sample or a description of the vocabulary.
  • SSR5, SSR6: This is the “vocabulary expansion” set shown in the Jameco excerpt in this blog post. It contains a useful set of common English words. SSR5 and SSR6 are known to exist, but I do not personally have them (if you have a copy of this ROM image, please share!)
  • MM52116SHR/L / DT1052. This is a small ROM containing a basic set of numbers.
  • Jameco JE520. Jameco electronics sold a speech synthesizer for use with the Commodore 64 and Apple computers. More details at biosrythm.com. This ROM set seems to include a lot of SSR1/SSR2/SSR5/SSR6 though reorganized in a different order, and with some words missing and some other words added.
  • Dynamic Logic LTD. A small pcboard with a digitalker and a 4K ROM. Contains the numbers 0-10 and a few words such as “warning” and “over load”. Reported to be an elevator anunciator.
  • Genesis Alarm Panel. A ROM set from some form of security alarm panel. Interesting words like “intruder” and “burglar”.
  • RS Components,
    • Type-2 (MM52664SJQR). Common words with a British accent
    • Type-4 (MM52664SJQT). Numbers and letters.
  • Sensaphone 1104, early version. This was a device for monitoring businesses or homes over the phone. Note that there are multiple versions this model, older units use the digitalker chipsets but newer versions implement the digitalker algorithm in software using an 8031 microcontroller and external EPROM. The ROM used by the emulation is not quite compatible with the digitalker chipset due to changes to the endian-ness of some of the speech tables (background provided by Jonathan Gevaryahu). The Sensaphone set includes words talking about temperatures and voltages, DTMF tones, etc. There is a duophone device that may have the same ROM set.
  • Arcade and Pinball Games
    • Faceoff
    • Harem
    • Scorpion

It’s likely that there other devices out there in the wild. I know that certain elevator speech announcement systems may use the Digitalker, some fire alarm panels, some cash registers. If you do have a device that uses the Digitalker, then please do consider dumping the ROM and making it available to the community.

You may be able to find digitalker ROMs on website such as archive.org, for example https://archive.org/details/digitalker.

There are also references in literature to software, DTSW500, written for use with the CP/M operating system, that would allow people to record and encode their own speech ROMs. This would be the holy grail for digitalker enthusiasts. Nobody we know has this software. Several people are actively seeking it. If you do have any leads, then please do share.

Interfacing

An excerpt from the National Semiconductor datasheet is below:

Excerpt, National Semiconductor Datasheet for Digitalker IC

Interfacing the chip is fairly straightforward. It includes the following:

  • 8 Data Bits, used to select the word to speak
  • Chip Select and Write inputs, used to tell the chip when to load the data bits
  • CMS (“Command Select”), which tells whether to load a new word, or merely reset the interrupt
  • An Interrupt, which is sent back to the host computer to tell it that the digitalker has finished speaking the word.

The digitalker must be interfaced to an external speech ROM, or in the case of vintage ICs, potentially multiple relatively small ROMs together with address decoding logic.

Goals

I wanted to be able to communicate with the digitalker via I2C, Serial, or TCP/IP over Wifi. I2C was my primary intended communication method, as it allows easy attachment to a raspberry pi or other project.

Secondarily, I wanted to be able to support many different ROM sets, to build as large a vocabulary as practical.

Designing a digitalker board in 2021

Below is a schematic of my board:

Digitalker Board, Schematic (click to enlarge)

Here are description of the sections of the schematic.

  • Boost Converter (upper left). I wanted to run the board off 5V, but the digitalker IC requires 7-11V, so I opted to use a pololu boost converter, model U3V12F9. This boost converter accepts 5v and produces 9V. I added fuses and TVS diodes on both sides of it for protection (vintage chips are rare, and I like to be cautious). As an alternative, one could power the board off of 9VDC, and use a regulator to drop the 9V down to 5V for the 5V components.
  • Microcontroller (center left). I used an ATMEGA 328P, which has become by go-to microcontroller in projects that require a moderate amount of IO lines. I added a 6-pin header for in-circuit programming, and a 6-pin header for I2C.
  • ESP8266 (bottom left). I added a footprint for an ESP-01 module, so the board could be operated over Wifi instead of via RS232 or I2C. The ESP8266 is dirt cheap, and makes a convenient way to add wireless to a project. It’s entirely optional.
  • RS-232 (upper right). Vintage peripherals often used a DB25 serial connector for interface to the host computer, and I like to duplicate that in my vintage-themed projects. I added a MAX202 level converter, and headers for DB25 or DB9. Populate only the MAX202 or the ESP8266, not both.
  • Speech Synthesizer (Center Right). Here we have the digitalker IC as well as a 39SF040 Flash Chip. The 39SF040 offers 512 KB of storage, which at first sounds like overkill, but adding multiple ROM sets can quickly eat up storage. I broke four of the address lines (A14-A17) out to the microcontroller, so it can bank switch which ROM set is to be used.
  • Audio Filter and Amplifier (lower right). Here we have an opamp and RC filter as called for by the Digitalker datasheet. I followed the approach I saw on a design by A Fox Consulting and Design where they used a potentiometer in the RC section. For an amplifier, I chose the Adafruit TPA2016 breakout board, because it’s a nice small stereo amplifier that offers I2C volume control. Using the breakout board is easier than it would have been to mount the tiny SMD amplifier myself.

Implementation

I had a pcboard produced of my design, and here is a picture:

Digitalker Speech Synthesizer I2C/RS232/Wifi board

It’s relatively straightforward. The ESP8266 module and the MAX202 are not populated in the above picture. I’m using a single small speaker, though one could easily add a second speaker, or use larger speaker.

Software

The software for the ATMEGA328P as well as a python program for interfacing over I2C, Serial, or TCP, is available in my github repository at https://github.com/sbelectronics/digitalker.

The speech ROM images themselves are not present in my repo. I’m not sure exactly what the policy should be on those ROMs. They’re not my intellectual property, nor am I the one who dumped them, so I don’t feel comfortable distributing the ROM images myself. Ideally the community would come together and see if they could make their way into the public domain.

Obtaining Digitalker ICs — where to buy them

I obtained my ICs from eBay, which is where I come across the resources for a lot of my vintage projects. As of January 2021 there are several people selling Digitalker ICs. This may or may not be the case by the time you’re reading this blog post – eBay inventory can fluctuate tremendously.

Acknowledgements

  • Jonathan Gevaryahu. Jonathan was helpful in finding the ROM images that I was looking for, and knows a lot about the Digitalker and some of the devices it was used in. Jonathan is an active developer in the MAME community, and it looks like he has worked on emulation of some speech synthesizers.
  • George de Bouter is an active speech synthesis chip collector, and has amassed quite a collection. He provided me with a lot of the background on the Digitalker as well as a few other interesting vintage speech chips.

Comments (10)

  1. Greg says:

    I have the Digitalker ROMs SSR5, SSR6. But, have no way of making an image of them.

  2. I have an interface for the Sinclair ZX81 called DCP S-Pack/DCP Speech. It uses the 045C Digitalker chip 54104 and the SSR1 chip. There are four sockets for three more chips which should be able to buy in 1983.

  3. Jason says:

    Hi! Digging your vids! I can’t see, and I’m an 80s child, so all things talking are interesting to me.

    In the alarm words, I think the word “get,” between “garage” and “glass,” is supposed to be “gas” as in gas leak.

    Hope that’s useful.

  4. Jason says:

    Oops, guess I should’ve kept listening before I posted.

    I think some other words might be different.

    “Nuff,” between “north” and “number” is “not?”
    “parrot,” between “pan” and “past,” is “panic?”
    “Shift,” after “service,” is “shed?” Seems to fit with “storage.”
    “Swerch,” after “supervisory,” is “switch?”

    In the Scorpion rom,

    “car,” after “error,” is “far?” Seems to fit alphabetically.
    “letter,” between “is” and “level,” is “lesser?”
    “scorp-unk2” is “-ss”, as in second`s`? It’s appeared before, so maybe?
    “test” is “-est,” as in great`est`, and low`est`?

    Thanks for reading, hope this is useful.

  5. J Guidry says:

    I have a Milton Bradley MBX – it likewise uses a variant of the MM52664 ROM chip – the MM52664MBX/N.

    This is a standard 28 pin DIP, and I really would like to understand how to dump it and make it available. I have no idea what the pinout is. Help?

  6. J Guidry says:

    Update: I got my version of this speech ROM for the Milton Bradley MBX (1983) dumped.

    https://atariage.com/forums/topic/333348-mbx-reproduction/?do=findComment&comment=5032374

    MM52664MBX/N is the part number for the ROM. I’d be curious what content is in the ROM compared to all the others!!!

    Also, it used a 2364 pinout (per the data sheet I found for the MM52664).

  7. Mike DiBattista says:

    Hello,
    I thought you might be interested in this. Recently I worked on an older arcade game called “Lucky Egg”. It uses the Digitalker 54104 along with another socketed, 24-pin National Semi IC which I assume is a PROM with the markings: B208 SHXF, US PAT 4214125, MOZER 1981, NSC 1981.
    The game accepts coins and drops a toy ‘egg’. It has some programmed phrases along the Flintstones’ Dino theme such as “Dino Loves You”, “Yabba Dabbo Do” etc.
    I’m sure the owner would not mind if I provide an image of the PROM if you are interested. I have a number of DataIO programmers but I don’t know if this PROM can be read using any industry standard PROM/EPROM pinout.
    Let me know if you are interested and provide guidance on how it can be read.
    Regards, MIke D.

  8. Hello, there is a CPM program called DTSW500 that allows the user to create speech roms for the digitalker. I built a few for digitalker back in the 90’s when Advanced Computer Controls ITC-32 supported digitalker. You didn’t mention it so I’m assuming it has not came to your attention. I think the files for this program might be at this site (BAMA) https://bama.edebris.com/manuals/bitsavers/components/national/digitalker/NSC_DIGITALKER_CPM/
    You would have a better chance than I in investigating this and reassembling the disk images available from the BAMA site… would take me days to do it… you, probably a few hours. Check it out… there may be more words in the archive than what was on the available speech roms. Good luck.

  9. Mark Durham says:

    The Nat Semi datasheet for the DT1051 / DT1054 shows the SSR3 & SSR4 ROMs and details the few phrases that are in the ROMs. I don’t think there’s much to be gained from them as the vocab is very small. Makes me wonder why there’s 2 ROMs, unless there’s more hidden in them.

    I’ve made progress with the Nat Semi DVSS (DTSW-500) application and hope to be creating my own ROMs very soon.

  10. Mark Durham says:

    A quick update on my Digitalker progress: I can now create my own ROMs using the the Nat Semi DVSS application on a CP/M emulator running under Win10. It also works on my RC2014 system but is a pain to transfer the files back an forth – and the emulator runs a lot faster than the real RC2014 hardware!

    Details of how to create your own ROMs using DVSS can be found here: https://github.com/MarkD833/Digitalker-Digital-Voice-Selection-Software including the format of the .VOC file and a walkthrough to create your own custom ROMs.

    Note that we are still limited to the vocabulary that Nat Semi have provided with the DVSS suite.

Leave a Reply

Your email address will not be published. Required fields are marked *