roboforum.ru

Технический форум по робототехнике.

Синтезаторы речи на микроконтроллерах

Синтезаторы речи на микроконтроллерах

Dmitry__ » 05 янв 2017, 15:59

В попытке создать свой синтезатор речи на микроконтроллере, нагуглил разной информации. Ссылки будут появляться и удаляться по мере понимания происходящего.

Началось все с RHVoice, но странные решения с языком foma, непонятным scons и бинарными файлами фонем отпугнули от портирования RHVoice на микроконтроллер. Но надо отметить очень качественный синтез речи. Пример "Шишкосортировщики на шишкодробильщиках" от linvinus:
https://soundcloud.com/tags/rhvoice
https://launchpad.net/~linvinus/+archive/ubuntu/rhvoice

Следующий поиск вывел на синтезатор на stm32. Главное преимущество - полная открытость и документирование, возможность создания своего голоса.
http://radiokot.ru/forum/viewtopic.php?f=59&t=94614

мужские и женские фонемы мp3, wav:
http://proitk.ru/tools/3797-zhenskie-fonemy-mp3-wav/3797-zhenskie-fonemy-mp3-wav

ESpeak:
Воспроизвести: espeak -vru -s130 "Я хреново говорю по-русски.."
http://espeak.sourceforge.net/download.html

Синтезатор "голос":
http://beriinfo.narod.ru/
А там есть образцы голосов, понравились "VitalVoice " :shock:
http://beriinfo.narod.ru/VitalVoice1.mp3


вокодер + ссылки на книги:
https://habrahabr.ru/post/305868/

Распознавание речи. Arduino
http://www.polesite.ru/?p=2001

Говорилки на avr:
http://bascom.at.ua/publ/sintezator_rechi_rc2_na_avr_govorilka/1-1-0-79

Ссылки с робофорума :)
http://roboforum.ru/forum2/topic5106.html
http://roboforum.ru/forum35/topic7695.html

Ну и урок по голосу робота, как же без Colossus? :)
Старая тема:
http://roboforum.ru/forum8/topic9215-345.html#p261067
Новая:



Ссылки ушли в помойку:

STM32 + SD карта. Синтезатор речи “Элиза”
http://mycontroller.ru/old_site/stm32-sintezator-rechi-ldquo-eliza-rdquo/default.htm

“Элиза” - шляпа полная. На sd записываются wav файлы с названием воспроизводимого слова. Все :)
Говорилось о базе в 400 слов - больше чем у "что на порядок превышает словарный запас Эллочки-Людоедки". Но у меня есть сомнения, что в ее базу входили слова со всеми склонениями :) Пример одной из папок, на данный момент в базе 600 таких слов:
Код: Выделить всёРазвернуть
переделаем.wav       под______.wav     послезавтра.wav    приятного.wav
переделаешь.wav      подключаю.wav     постоянный.wav     приятный_.wav
переделать.wav       поезд____.wav     поэтому__.wav      приятных_.wav
переделаю.wav        поезда___.wav     пределы__.wav      против___.wav
переключателем.wav   поездом__.wav     предлагаю.wav      процессор.wav
переключатель.wav    пока_____.wav     препятствие.wav    процессора.wav
переключателями.wav  понедельник.wav   препятствием.wav   процессорами.wav
переключаю.wav       понедельника.wav  препятствию.wav    процессором.wav
переключите.wav      понижать_.wav     препятствия.wav    процессоры.wav

Re: Синтезаторы речи на микроконтроллерах

Scorpio » 07 янв 2017, 07:47

Ты я вижу не на шутку увлекся энтими говорилками ))) Вот объясни, на фига мелкому роботу говорилка на борту? Спортивный интерес - это да. Но практического применения.... Берешь МР3 платку за три рубля, кидаешь туда сотню фраз и звуков отличного качества на все случаии роботовой жизни. Емуж не надо новости из интернета читать, раз он мелкий. А, если робот побольше с линухом или андроидом, то у него уже все есть и тоже отличного качества. Это я так, для затравки. Пятницо всеже.... Хотя у вас уже нет...

Re: Синтезаторы речи на микроконтроллерах

Madf » 07 янв 2017, 11:46

Если честно, так или иначе, все "говорилки" на слух звучат так же как 20 лет назад. Ну да, стало чуть получше с соединением, коверканием букв в слове, но общий вид так и остался.
Единственное где видел самый крутой прорыв/шаг - это в синтезе на всяких новых WaveNet. Речь звучит неотличимо от человеческой (примеры внизу).
Понятно, что такой способ не подойдёт для слабого МК.
Тут видимо придется делать архитектуру сервер-клиент, скажем: слабый МК соединяется по воздуху через ESP8266 к серверу, где отправдяютсямаркеры услышаного звука (некая уникальная последовательность), а дальше сервер (на мощном ПК) готовит в ответ простенький WAV/RAW для воспроизведения МК. Система как у гугла... Минус системы: большие задержки на ответ.

Кстати говоря, не помню где уже, на одном из форумов поднималась идея создать общий язык/стандарт для роботов, чтобы их общение было в звуковом спектре человека и при этом легко можно было им общаться (от малых до великих). В таком ключе, учить человеческому синтезу слабые МК не придется, скорее получится эффект на оборот, на подобии R2D2, когда человек будет привыкать, обучаться понимать робота, единственное, он врядли сможет с ним разговаривать (хотя всё зависит от того, как придумать этот стандарт, может он будет на основе звуков животных, которые человек худо-бедно сможет повторить).

Re: Синтезаторы речи на микроконтроллерах

Виктор Казаринов » 07 янв 2017, 13:08

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

Re: Синтезаторы речи на микроконтроллерах

Dmitry__ » 07 янв 2017, 23:05

Scorpio писал(а):Вот объясни, на фига мелкому роботу говорилка на борту? Спортивный интерес - это да. Но практического применения.... Берешь МР3 платку за три рубля,

Ну ты чего Scorpio? А как же голосом Путина или Ельцина встретить гостя? Да не на заученных фразах? :D
А если без шуток, то я пока не готов ответить зачем это делаю. А озвучку музыкой с sd делаю во всяких игровых системах, но для робота как-то совсем топорно, даже если и для мелкого. Пока я все исследую, говорилку с робофорума услышал, не впечатлило по синтезу, но осталось приятное ощчучение от самого проекта. Если автор говорилки не прочитает личку за неделю, то создам на гитхабе проект с ссылкой на робофорум.
Сейчас начну исследовать проект на stm32...

Виктор Казаринов писал(а):Еще меня сильно интересуют чисто синтетические TTS движки, которые абсолютно все синтезируют программно на основе модели речевого аппарата человека

Это идеал для меня, к которому я буду идти.

Re: Синтезаторы речи на микроконтроллерах

Scorpio » 08 янв 2017, 01:35

Dmitry__ писал(а):А как же голосом Путина или Ельцина...

Лучше Ельцина. Безопаснее....

Re: Синтезаторы речи на микроконтроллерах

Dmitry__ » 08 янв 2017, 01:52

:D
И в "Где-то в Латинской Америке" достает? Но если честно, хакал компанию хилой клинтон не он :)

Re: Синтезаторы речи на микроконтроллерах

Scorpio » 08 янв 2017, 08:02

Не в том смысле. Не долго ведь и Державу обидеть, посредством использования голоса действующей власти... Хотя все от фразы конечно зависит :)

Re: Синтезаторы речи на микроконтроллерах

Eruman » 08 янв 2017, 20:04

Проект Talkie: https://github.com/going-digital/Talkie
По-русски, конечно, балакает с акцентом, но тоже "мясо".

Re: Синтезаторы речи на микроконтроллерах

Dmitry__ » 09 янв 2017, 00:47

Eruman писал(а):Проект Talkie:

Попробовал, качество голоса высокое, интересный проект. Я так понял это просто проигрыватель с высокой степенью сжатия.


Scorpio писал(а):Не долго ведь и Державу обидеть


Державу трудно обидеть, на то она и Держава :D

Re: Синтезаторы речи на микроконтроллерах

ilalexey » 09 янв 2017, 00:55

А есть женский голос с придыханием для синтезаторов? Хочется, а повода весомого пока не понял.
Есть пример?

Re: Синтезаторы речи на микроконтроллерах

Dmitry__ » 09 янв 2017, 15:46

ilalexey писал(а):А есть женский голос с придыханием для синтезаторов? Хочется, а повода весомого пока не понял.
Есть пример?

А потом сиськи попросишь? А потом бабушку через дорогу не переведешь? Вот так и катятся люди по наклонной. :D

Re: Синтезаторы речи на микроконтроллерах

ilalexey » 09 янв 2017, 15:51

Сиськи в пятницу просить ожидать буду.
..а скатился я уже давно.
:)

Re: Синтезаторы речи на микроконтроллерах

ALS » 11 янв 2017, 15:57

Готовый модуль с китайскими фонемами (есть такие ?) - SYN6288, на али их много разных.
Проект на PIC24 - http://www.toughdev.com/content/2014/09 ... ontroller/
Там же - ссылки на два старых проекта на младших PIC-ах :
http://mondo-technology.com/syntho.html
https://web.archive.org/web/20110106230 ... r/main.htm

Re: Синтезаторы речи на микроконтроллерах

Dmitry__ » 11 янв 2017, 17:34

Все ссылки посмотрел, голос везде ужасен. Самый вменяемый проект - "Синтез речи на STM32F100". Сейчас думаю как быстро залезть на елку - заменить память AT45DB в проекте на какую-нибудь распространенную плату с sd картой.


cron
Rambler\'s Top100 Mail.ru counter