Первый раз с программными синтезаторами речи я столкнулся в 1986 году, когда в институт, где я тогда работал, привезли класс на основе компьютеров Yamaha-MSX. Кто-то принес программу - говорилку, которая осуществляла синтез простой стыковкой фонем. Мне удалось тогда сделать узнаваемый синтез русской речи на Бейсике. Значительно позже я собрал собственную базу фрагментов речи, специально начитанных мне профессиональными диктороми (мужской и женский голоса), но основанную на дифонах, т.к. именно на стыках фонем происходило основное количество дефектов. Но и этот синтезатор я не осилил до конца, т.к. кроме стыков нужно было склеить форманты между дифонами. Тогда я решил перевести базу в частотную область и синтезировать сразу в виде набора частот, которые можно скармливать обычному MP3 кодеку. Но тут меня сильно отвлекли другие дела и я не довел до ума и этот проект. В задумках было создание возможности воспроизведения слитной речи с различной эмоциональной окраской, что почти полностью отсутствует в имеющихся синтезаторах.
Еще меня сильно интересуют чисто синтетические TTS движки, которые абсолютно все синтезируют программно на основе модели речевого аппарата человека, а не берут огромную базу начитанных фрагментов. Однако пока такие синтезаторы выдают очень плохое качество речи, по крайней мере, на русском языке. Именно такого типа речевой движок наиболее реально запихнуть в маленький МК.
Кроме собственно чистого воспроизведения фрагментов речи в синтезаторе нужна база знаний в виде правил образования потока этой самой речи на каком-либо языке из фрагментов. Я сильно сомневаюсь, что этот механизм должен являться составной частью говорилки, как это обычно сделано в синтезаторах речи. Думаю, что зарождение речи должно все-таки быть реализовано в другом узле робота, отвечающем за социальную коммуникацию. Сомневаюсь потому, что сама эта база знаний должна иметь свойство адаптивности к текущей ситуации. Грубо говоря, умение разговаривать робот должен обретать в процессе жизнедеятельности, как это делает ребенок. Вот когда одного робота можно будет удовлетворительно обучить, тогда можно и клонировать его базу. Т.е. речевой аппарат - это одно, а способность выражать свои мысли в разных словесных формах с помощью речевого аппарата - это совсем другое. Пока же мы наблюдаем наличие специальных файлов с наборами правил произношения на разных языках. На данном этапе, конечно, такое решение вполне оправдано, но требует непрерывного пополнения и исправления ручками, т.к. невозможно весь наш могучий язык запихнуть в маленький файл.
Поддерживаю ТС в желании сделать TTS на МК, в первую очередь создание самого модуля синтеза звукового потока из потока низкоуровневых управляющих команд. Получилось бы что-то похожее на GRBL, которому скармливают G-коды, а на выходе получают реалтаймовое управление шаговиками. Только в случае с TTS это был бы входной поток низкоуровневых команд, необходимых для синтеза очередного кусочка слова с требуемыми характеристиками. А само словообразование можно пока осуществлять на другом устройстве или в четко отделенной функции генерации потока низкоуровневых команд для синтезатора из произносимого текста и высокоуровневых команд (громкость, темп речи и др). Тогда можно было бы выбирать - оба программных модуля размещать в своем устройстве или какой - то один.
Получается, что нужны два API - низкоуровневый и высокоуровневый.
Вот один из примеров речевого API:
http://www.w3.org/TR/2007/WD-speech-synthesis11-20070110/.