Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Голосовой синтезатор на STM32F4xx
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
mantech
Собственно есть небольшая задачка rolleyes.gif , сбацать вот такую штуковину, чтобы при вводе текста, контроллер проговаривал его, например, через встроенный ЦАП. Ну и самое главное, чтоб это было хотябы более-менее похоже на чел. голос biggrin.gif

Может кто уже что-то подобное делал?
Aner
Только с кодеком более-менее получиться, цап у 4хх не то. Проходили это. Посмотрите как это у китацев сделано.
mantech
Цитата(Aner @ Jan 11 2014, 14:54) *
Только с кодеком более-менее получиться, цап у 4хх не то. Проходили это. Посмотрите как это у китацев сделано.


Да не скажите - работает wav плеер на встроенном цапе - качество вполне достойное, еслиб он так текст проговаривал, то это просто шикарно будет!
Aner
.. тут как скаать, .. может кого и три ноты устраивает в музыке, ... и это просто шикарно будет!
Но, я бы хотел семь нот слышать и их сочетания, комбинации и тп.
mantech
Цитата(Aner @ Jan 11 2014, 15:55) *
.. тут как скаать, .. может кого и три ноты устраивает в музыке, ... и это просто шикарно будет!
Но, я бы хотел семь нот слышать и их сочетания, комбинации и тп.


Тут дело не в нотах и музыке biggrin.gif

Вы когда по сотику разговариваете, ведь прекрасно понимаете собеседника, а тут качество в 2 раза выше.

Никто не говорит о качестве музыкального воспроизведения, это просто голос, сложность в формировании звуков, т.е. конечно, можно назаписывать кучу слов, проиндексировать и потом загружать и проигрывать, НО это будет занимать очень много места (хотя решается картой памяти), и пригодно только для проговаривания числительных, а вот как сделать синтез слов?
Alex11
Если только числительные - тогда это не очень много места. Синтез нормальный займет его существенно больше (русский). И времени на разработку потратите ...дцать человеко-лет, пока можно будет слушать без тошноты.
mantech
Цитата(Alex11 @ Jan 12 2014, 00:38) *
Если только числительные - тогда это не очень много места. Синтез нормальный займет его существенно больше (русский). И времени на разработку потратите ...дцать человеко-лет, пока можно будет слушать без тошноты.


В принципе - согласен. Во первых, слушать без тошноты можно только навороченные версии фестиваля с всяческими интерполяциями и т.д. Посмотрел на их объем кода - цать человеколет обеспечено crying.gif

И второе - как правило в задачах нужно проговаривание каких-либо фраз типа "у вас осталось" NNN "чего-то там", а вот числа - это вещь полезная, причем уже делал все это на компе.

Вобщем тема можно сказать, закрыта laughing.gif
Salamander
У STMicroelectronix есть проект под STM32F103xx и кодек SPEEX.
Есть там функции как realtime речи, так и воспроизведения из FLASH заранее записанного фрагмента.
Я реализовал цифровую рацию на cc1101 и этом кодеке. Работает прекрасно, скорость передачи данных 10 кбит/сек, качество не хуже чем в мобильнике.
jcxz
Цитата(mantech @ Jan 12 2014, 12:31) *
В принципе - согласен. Во первых, слушать без тошноты можно только навороченные версии фестиваля с всяческими интерполяциями и т.д. Посмотрел на их объем кода - цать человеколет обеспечено crying.gif

Когда-то (во времена ДОС) на PC писал читалку книжек. sm.gif
Так как своих знаний не хватало для создания своего синтезатора, то использовал готовый (уже тогда они были).
Я использовал Фонемафон. Исходники его мне найти не удалось, но имелся исполняемый бинарник. Я его частично дизассемблировал, нашёл точки входа
нужных функций, завернул в библиотеку и прилинковал к своей программе.
Качество звучания было вполне приемлемым для прослушивания книжек. Его можно было ещё существенно повысить если расставить ударения в словах.
Но найти открытых словарей с ударениями для русских слов мне тогда не удалось, сделал сам на какое-то кол-во слов.
Я потом много книжек прочитал (т.е. - прослушал) с помощью него. sm.gif
Так вот - тот исходный исполняемый бинарник весил менее 64К. И большая часть там как я понимаю не код, а некие структуры данных.
Работало это у меня на i486 на 100МГц. sm.gif
Исходный Фонемафон который я использовал был образца 1991 года. Возможно за это время где-то в сети появились его исходники.
Если их найти, то судя по всему современный Cortex-M3 вполне его потянет по ресурсам (памяти и быстродействию).
Попробуйте погуглить: СИНТЕЗАТОР РУССКОЙ РЕЧИ "ФОНЕМАФОН"
Если интересно, приаттачиваю сюда доку от него: Нажмите для просмотра прикрепленного файла
AlexandrY
Цитата(jcxz @ Jan 12 2014, 11:27) *
Когда-то (во времена ДОС) на PC писал читалку книжек. sm.gif

Качество звучания было вполне приемлемым для прослушивания книжек. Его можно было ещё существенно повысить если расставить ударения в словах.


А вам память случайно не изменяет?
Даже сейчас движки текст-в-речь очень часто дают нечто неразборчивое.
Без специальной разметки текста специально для проговаривания получается очень посредственное качество различимости некоторых выражений.

Т.е. сложность даже не в воспроизведении, а в специальной разметке текста.
Кто ее будет специально делать для встраиваемого устройства?

Фича воспроизведения голосом произвольных текстов очень рискованная с точки зрения юзабельности и лучше ее опробывать базируясь на WEB сервисах. А их кстати теперь очень много. Например - https://www.vocalware.com/
Время отклика вполне приемлемое.
Фразы, как понимаю, можно конвертировать и не в реальном времени.
Тут надо спросить сразу откуда может появляться сам динамический текст в приложении на Cortex-M4? Скорее всего весь текст уже известен на этапе компиляции.
jcxz
Цитата(AlexandrY @ Jan 12 2014, 15:56) *
А вам память случайно не изменяет?
Даже сейчас движки текст-в-речь очень часто дают нечто неразборчивое.
Без специальной разметки текста специально для проговаривания получается очень посредственное качество различимости некоторых выражений.

Случайно - нет. В сети можно найти образцы звучания Фонемафона. Качество конечно пониже чем у современных, но книжки можно слушать вполне разборчиво.
И про ударения я писал.

Цитата(AlexandrY @ Jan 12 2014, 15:56) *
Тут надо спросить сразу откуда может появляться сам динамический текст в приложении на Cortex-M4? Скорее всего весь текст уже известен на этапе компиляции.

И что? Размер такого текста на порядки меньше чем его представления в аудиоданных. А для встраиваемых систем это критично.
А может быть и динамический, если устройство принимает некие данные извне и их озвучивает.
muravei
Цитата(mantech @ Jan 12 2014, 09:31) *
только навороченные версии фестиваля

А Flite не прокатит?
x893
Цитата(Salamander @ Jan 12 2014, 11:32) *
У STMicroelectronix есть проект под STM32F103xx и кодек SPEEX.
Есть там функции как realtime речи, так и воспроизведения из FLASH заранее записанного фрагмента.
Я реализовал цифровую рацию на cc1101 и этом кодеке. Работает прекрасно, скорость передачи данных 10 кбит/сек, качество не хуже чем в мобильнике.


А более подробно с этим можно где-то ознакомится ?
mantech
Цитата(AlexandrY @ Jan 12 2014, 13:56) *
Фича воспроизведения голосом произвольных текстов очень рискованная с точки зрения юзабельности и лучше ее опробывать базируясь на WEB сервисах. А их кстати теперь очень много. Например - https://www.vocalware.com/
Время отклика вполне приемлемое.
Фразы, как понимаю, можно конвертировать и не в реальном времени.
Тут надо спросить сразу откуда может появляться сам динамический текст в приложении на Cortex-M4? Скорее всего весь текст уже известен на этапе компиляции.


Возможно, но как правило нужно качественное подключение к инету, а в моем случае рассматривается полностью автономное устройство.

Да, как правило фразы уже заготовлены, но есть числа, которые меняются, поэтому и написал, что достаточно числительных. Да при этом существует ограничение, но все-таки у меня нет задачи делать читалку книг, а просто голосовое меню - так что пойдет, зато голос будет как у человека, а не нечто похожее на голос biggrin.gif

Ну и в третьих - голос планируется передавать через телефонную или сотовую сеть, и это еще добавляет вклад в неразборчивость голоса, так что какой-либо фонемный синтезатор его ухудшит еще сильнее...
AlexandrY
Цитата(mantech @ Jan 12 2014, 18:55) *
Ну и в третьих - голос планируется передавать через телефонную или сотовую сеть, и это еще добавляет вклад в неразборчивость голоса, так что какой-либо фонемный синтезатор его ухудшит еще сильнее...


Современные TTS движки проговаривают числа целиком без синтеза.
jcxz
Цитата(muravei @ Jan 12 2014, 19:54) *
А Flite не прокатит?

Хм.. Интересно... Даже исходники вроде имеются...
А Вы его смотрели - что он требует по ресурсам?
muravei
Цитата(jcxz @ Jan 13 2014, 05:33) *
А Вы его смотрели - что он требует по ресурсам?

Я нет, попробуйте спросить здесь.
sherr
Есть такой проект у японцев STM32F4Discovery TTS
но для английского языка .
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.