Main Content

Talking keyboard

Functional description

The whole project is built around stuff I had laying around, so there should be plenty of ways pulling it off.

An old keyboard (about 1988 vintage) gives the project its enclosure and “user-interface”. An Arduino Nano is hooked up to the keyboards original controller and simulates the host PC and receives the keyboard inputs from the keyboard.

The Arduino reads a WAV file from a FAT formatted SD card. The file name is determined by the key which was pressed so changing the sounds on the keyboard is as easy as properly naming WAV files on an SD card. The sound is output as PWM for the next stages. If a file is missing, the keyboard does not say anything. The library used supports 32, 22.05, 16, 11.25 and 8 kHz sampling rate mono WAV files with 8 bits.

shift+letter (Shift+A, Shift+W): FEMALE_A.WAV, FEMALE_W.WAV
function key (F1, F12): PIANO_1.WAV, PIANO_12.WAV
umlaut (ü, ö): MALE_UE.WAV, MALE_UE.WAV
everything else (1, 2): MALE_1.WAV, MALE_2.WAV
To reduce PWM related hissing noise, a small and simplistic filter has been added. As an op-amp I chose a TLC277 from my parts bin. As an output stage a cheap Chinese PAM8406 module was used.”

Link to article