Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как сделать "говорилку"?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Схемотехника
Misile_Inc
Доброго времени суток. Есть задача- сделать электронный узел, который осилил бы воспроизведение нескольких коротких фраз вроде "Предельный угол атаки" или "Предельная перегрузка" (фразы приведены для представления о длительности- первое, что вспомнилось). Требования:
1. Российская элементная база.
2. Различимость воспроизводимой фразы в принципе (не нужно нам семь октав, Пенкина воспроизводить не будем). Как в разговоре по аналоговому телефону или даже ниже качеством.
3. Максимальная компактность (Размещение в одноплатном конструктиве с другими компонентами устройства желательно).
4. Для первого прототипа- возможность перезаписи сообщения.

Как представляется мне сейчас на этапе нулевой проработки вопроса:
Использовать микроконтроллер с ЦАП и АЦП. С помощью АЦП оцифровывать поток с микрофона, через ЦАП и усилитель выводить на динамик.
Кто занимался подобным или просто интересно- прошу свои соображения по теме.
Спасибо за внимание.
kovigor
Цитата(Misile_Inc @ Feb 27 2012, 21:36) *
Доброго времени суток. Есть задача- сделать электронный узел, который осилил бы воспроизведение нескольких коротких фраз вроде "Предельный угол атаки" или "Предельная перегрузка" (фразы приведены для представления о длительности- первое, что вспомнилось). Требования:
1. Российская элементная база.


АОНы "Русь". Они голосом произносили определенный номер. И вполне реально переделать схему под отечественную элементную базу, благо свои MCS51, свои ПЗУ и ОЗУ у нас имеются ...
Alexashka
Цитата(Misile_Inc @ Feb 27 2012, 22:36) *
Требования:
1. Российская элементная база.

Может сразу на этом?
Aner
Можно проще, быстрее и дешевле. Используйте спец. микросхемы на принципе - запоминание на коммутируемых конденсаторах, специально для вашей задачи.
Типа ISD4002-120PY. ---> http://www.nuvoton.com/hq/enu/ProductAndSa...es/default.aspx
toweroff
Цитата(kovigor @ Feb 27 2012, 23:41) *
АОНы "Русь". MCS51...

а разве там не Z80 использовался?
rx3apf
Цитата(toweroff @ Feb 28 2012, 10:57) *
а разве там не Z80 использовался?

Это в первых. Потом i51.

Качество все ж оставляло желать лучшего. Я бы задачу ТС решал бы микроконтроллером с быстрым PWM + сериальный флешак. Но требования "российская элементная база" убивают идею на корню...
Xenia
Цитата(rx3apf @ Feb 28 2012, 12:29) *
Я бы задачу ТС решал бы микроконтроллером с быстрым PWM + сериальный флешак.

Солидарна. Если музыкального качества не требуется, то PWM, несомненно, годится. Кстати, говорящие куклы сейчас делают именно на этом же принципе.

Получала поздравительные "говорящие открытки" из-за рубежа. Открываешь ее, а она голосом отправителя тебя поздравляет. Вот и тут можно было бы использовать ту же реализацию. Например - http://www.vip-card.ru/

P.S. Понимаю, что на каждую фразу, по-видимому, потребуется по отдельной VIP-карточке, а питание и динамик один на всех. Зато программировать ничего не надо - куда подаешь питание, та фраза и произносится.
Misile_Inc
Цитата(rx3apf @ Feb 28 2012, 11:29) *
Это в первых. Потом i51.

Качество все ж оставляло желать лучшего. Я бы задачу ТС решал бы микроконтроллером с быстрым PWM + сериальный флешак. Но требования "российская элементная база" убивают идею на корню...

Чем российские контроллеры не полноценны в плане ШИМ? И почему именно последовательная флеш?

Цитата(Alexashka @ Feb 27 2012, 22:44) *
Может сразу на этом?

Жирновато сразу по нескольким параметрам:габариты микросхемы, стоимость средств программирования и отладки, стоимость микросхемы. Зачем так круто?
toweroff
Цитата(Misile_Inc @ Feb 28 2012, 17:13) *
И почему именно последовательная флеш?

емкость и дешевизна
но опять же - "не наше"
DRUID3
Цитата(Misile_Inc @ Feb 27 2012, 20:36) *
1. Российская элементная база.

...понятие растяжимое... есть же ARM-ки

Цитата(Misile_Inc @ Feb 27 2012, 20:36) *
2. Различимость воспроизводимой фразы в принципе

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

Цитата(Misile_Inc @ Feb 27 2012, 20:36) *
(не нужно нам семь октав, Пенкина воспроизводить не будем).

...много теряете... Когда пилот поймет что его отчитывает Пнкин... rolleyes.gif Ну вряд ли захочет повторят ошибки вобщем ))))))...

Цитата(Misile_Inc @ Feb 27 2012, 20:36) *
Как в разговоре по аналоговому телефону или даже ниже качеством.

ШИМ...PCM

Цитата(Misile_Inc @ Feb 27 2012, 20:36) *
3. Максимальная компактность (Размещение в одноплатном конструктиве с другими компонентами устройства желательно).

...ха-ха-ха... Так на ПЛИСине тогда все...

Цитата(Misile_Inc @ Feb 27 2012, 20:36) *
4. Для первого прототипа- возможность перезаписи сообщения.

непонятно...

Цитата(Misile_Inc @ Feb 27 2012, 20:36) *
Как представляется мне сейчас на этапе нулевой проработки вопроса:
Использовать микроконтроллер с ЦАП и АЦП.

ну IDE у Вас на компе, зачем тогда АЦП? И ЦАП не нужен как уже сказали...
Misile_Inc
DRUID3, компактность- это не про российские ПЛИС =). Психологический эффект от голоса Пенкина я конечно недооценил. АЦП вероятно действительно не нужен.
Очевидно, я плохо представляю сложность вопроса. Зачем большая производительность микроконтроллера?
Alexashka
Цитата(Misile_Inc @ Feb 28 2012, 17:13) *
Жирновато сразу по нескольким параметрам:габариты микросхемы, стоимость средств программирования и отладки, стоимость микросхемы. Зачем так круто?

Зато в ней есть все что нужно.
Дорого потому что для оборонки делается. А ширпотреба у нас не делают, для этого китай есть. Но Вам же нужно Российское...так что. Придется выбирать. Либо так, либо исключить требование №1.
Или делать на рассыпухе, каких-нить счетчиках, память типа РФ4 и ЦАПе. Я когдато давно делал такую поделку, но туда много не влезет, или надо много памяти ставить, а это место. А место у Вас тоже критично. Так что куда ни кинь rolleyes.gif
По поводу отладки - это же Cortex, а значит средства стандартные. Полноценный дебаггер можно за 4 штуки в стартерките, а можно и за 15$ на алибабе; IDE есть и бесплатные, и условно бесплатные. Отладочный чемоданчик от Миландра никто не заставляет покупать sm.gif
Вообщем если постараться можно хорошо сэкономить
Misile_Inc
Цитата(Alexashka @ Feb 28 2012, 18:42) *
Зато в ней есть все что нужно.
Дорого потому что для оборонки делается. А ширпотреба у нас не делают, для этого китай есть. Но Вам же нужно Российское...так что. Придется выбирать. Либо так, либо исключить требование №1.
Или делать на рассыпухе, каких-нить счетчиках, память типа РФ4 и ЦАПе. Я когдато давно делал такую поделку, но туда много не влезет, или надо много памяти ставить, а это место. А место у Вас тоже критично. Так что куда ни кинь rolleyes.gif
По поводу отладки - это же Cortex, а значит средства стандартные. Полноценный дебаггер можно за 4 штуки в стартерките, а можно и за 15$ на алибабе; IDE есть и бесплатные, и условно бесплатные. Отладочный чемоданчик от Миландра никто не заставляет покупать sm.gif
Вообщем если постараться можно хорошо сэкономить

Ну а все же, "все, что нужно"- ШИМ? Чем не подходят более дешевые миландровские творения? Миландровский PIC позволяет адресовать те же 128Кб ПЗУ, что и под корпусом этого ARM
Alexashka
Цитата(Misile_Inc @ Feb 28 2012, 18:50) *
Ну а все же, "все, что нужно"- ШИМ? Чем не подходят более дешевые миландровские творения? Миландровский PIC позволяет адресовать те же 128Кб ПЗУ, что и под корпусом этого ARM

Да причем здесь ШИМ. ШИМ можно и программно сделать. Память там 128кБ, вот что главное. И АЦП-ЦАП есть, т.е не нужно изгаляться, а сразу делаете писалку-говорилку всё-в-одном. Либо какойто совсем мелковастый проц, и дополнительно внешнюю память, но это места столько же займет, если не больше. Я бы такой взял, 9х9 LQFP в пластике. Куда уж меньше.
А в 8 разрядных памяти меньше, но если устроит -почему бы и нет.
DRUID3
...да я не говорил, что нужен непременно ARM, я говорил, что есть очень разные процессоры Вашего отечества...
По-поводу ШИМа - да, его более чем...

Цитата(Alexashka @ Feb 28 2012, 17:16) *
И АЦП-ЦАП есть, т.е не нужно изгаляться, а сразу делаете писалку-говорилку всё-в-одном...

бесполезный совет... хотя может это только я не люблю "оверхед"...
Misile_Inc
Все же, в 2х словах, чем вариант с ШИМ предпочтительнее варианта с ЦАП? Если можно, конечно
PIC'и от миландра уже есть на предприятии, поэтому, если нет повышенных требований к производительности, в первую очередь конечно хочется применить их, а не ARM- новая комплектация= новые проблемы.
Alexashka
Цитата(DRUID3 @ Feb 28 2012, 19:17) *
бесполезный совет... хотя может это только я не люблю "оверхед"...

Причем здесь оверхед? Вы что комп всегда с собой таскаете?
В данном случае (при наличии АЦП) устройство получится полностью автономным, только микрофон повесить
DRUID3
Цитата(Misile_Inc @ Feb 28 2012, 17:23) *
Все же, в 2х словах, чем вариант с ШИМ предпочтительнее варианта с ЦАП?

...проще, удобнее, устойчивее к наводкам... мощный IRL или IRF + пару элементов и можно 100 W снимать если сеть 27V rolleyes.gif ...

Цитата(Alexashka @ Feb 28 2012, 17:25) *
Причем здесь оверхед? Вы что комп всегда с собой таскаете?

да... biggrin.gif
Цитата(Alexashka @ Feb 28 2012, 17:25) *
В данном случае (при наличии АЦП) устройство получится полностью автономным, только микрофон повесить

это он и есть - оверхед... излишняя функциональность... при этом неразумная трата человеко-часов... смысла в такой автономности нет - морока с аналогом, а звук то должен быть понятен и разборчив - значит записан диктором и возможно обработан...
Misile_Inc
Про избыточность согласен. Не нужен особо микрофон, хотя сначала я хотел. Все же вряд ли оправдана такая трата места на плате- электронная тетя-информатор все равно останется холодна к матюкам оповещаемого экипажа (электронный Пенкин тоже).
Alexashka
Цитата(DRUID3 @ Feb 28 2012, 19:46) *
это он и есть - оверхед... излишняя функциональность... при этом неразумная трата человеко-часов... смысла в такой автономности нет - морока с аналогом, а звук то должен быть понятен и разборчив - значит записан диктором и возможно обработан...

Ну в общем и целом, может и так, а может и эдак sm.gif Запустить ЦАП или ШИМ займет одинаковое время если есть нормальные либы, другое дело что ШИМ можно вывести на динамик напрямую одним ключом, а для ЦАПа нужен будет УНЧ. А вот с качеством -тут все как раз наоборот.
А про функционал это ТС пусть решает, нужно оно ему или нет. В задании сказано, желательно иметь возможность перезаписи
А таскание компа с прошивками к заказчику и отладка на месте это конечно не оверхед, это просто гемор.
toweroff
про то и говорили - внешняя Flash (подозреваю, что и DataFlash, или более емкое)
Но - не вписываемся в ТЗ - надо "отечественное"
Misile_Inc
Цитата(toweroff @ Feb 28 2012, 19:49) *
про то и говорили - внешняя Flash (подозреваю, что и DataFlash, или более емкое)
Но - не вписываемся в ТЗ - надо "отечественное"

Можем к 1886ВЕ2 прикрутить параллельно через порты флеш 1636РР2 (2Мбайт). Можно даже не управлять выборками- менять адрес и ждать время готовности данных от флеш, затем считывать байт. ШИМ есть. Верно?
Правда места конечно займет не мало. За то 2Мб...Если дискретизация 8КГц- больше 4 минут звука получается
DRUID3
...а там в этих "русских" пиках есть флешь? Если да - то скока... тут мысля родилась...
Misile_Inc
64 Кб памяти программ. Возможно подключение внешней ПЗУ программ до 128Кб.
Есть среди них такие, которые NAND интерфейс умеют.
DRUID3
Цитата(Misile_Inc @ Feb 29 2012, 15:55) *
64 Кб памяти программ. Возможно подключение внешней ПЗУ программ до 128Кб.
Есть среди них такие, которые NAND интерфейс умеют.

Не хотите openLPC туда вставить? Несколько минут можно в 30 кб вместить. Звук странноват, но как раз для такого рода техники+ШИМ. Места хватить может вполне, а вот хватит ли MIPS? Я игрался с ним как раз для того что-бы оптимизировать, но поскольку это далеко не самое важное что мне нужно - подзабросил...
Misile_Inc
8 MIPS для какого-либо декодирования вряд ли хватит. Это их "потолок"
DRUID3
Не знаю, может и хватит... Если нет - попробуем оптимизировать "всем миром" wink.gif ... Linux-ом пользуетесь? Вот я состряпал был простейший плеер, но ничего не успел улучшить... OLPC изначально целочисленный, его правда можно было под int простое заточить, но аФФтАр не захотел почему-то...
Misile_Inc
С огромным удовольствием возвращаюсь к разработке данного устройства. Точнее, к доработке, так как основную работу выполнили без меня
Подскажите, пожалуйста, чем конвертировать *.WAV - файл в бинарник с массивом чисел, желательно, с нормированием к диапазону 0 - 255. В апреле находил какие-то программы, а сейчас - не могу, видимо "в гугле забанили".
_Pasha
А чего все упёрлись в сериал флешь? Неужто параллельные ПЗУ не ко двору?
Misile_Inc
Цитата(_Pasha @ Sep 27 2012, 11:05) *
А чего все упёрлись в сериал флешь? Неужто параллельные ПЗУ не ко двору?

Требование к малым габаритам, значит и к количеству ног микросхем
muravei
Цитата(Misile_Inc @ Sep 27 2012, 09:57) *
чем конвертировать *.WAV - файл в бинарник с массивом чисел, желательно, с нормированием к диапазону 0 - 255.

Вэйв это и есть бинарник с массивом чисел, а для уменьшения диапазона , думаю, подойдет любой звуковой редактор.
Кстати, тут никто не предлагал однобитовый звук , типа упрощенного дельта-сигма.
toweroff
Цитата(Misile_Inc @ Sep 27 2012, 10:57) *
Подскажите, пожалуйста, чем конвертировать *.WAV - файл в бинарник с массивом чисел, желательно, с нормированием к диапазону 0 - 255.

SoundForge
лет 15 назад нужно было получить то же самое. Конвертил в 8бит/8кГц, а потом сохранял в RAW - вот и бинарник в чистом виде
Misile_Inc
Вот здесь есть программка для переделки wav в бинарник или массив шестнадцатеричных чисел, буду ее пробовать: http://www.imeda.nm.ru/
Цитата(muravei @ Sep 27 2012, 11:35) *
Вэйв это и есть бинарник с массивом чисел, а для уменьшения диапазона , думаю, подойдет любой звуковой редактор.
Кстати, тут никто не предлагал однобитовый звук , типа упрощенного дельта-сигма.

Да, но формат файла имеет свои накладные расходы - текстовая информация вначале. Не хотелось бы вручную редактировать или самому писать программу - время дорого.
Тут не просто нужно уменьшить диапазон. wav содержит отрицательные значения, для наших целей все значения должны быть в диапазоне 0-255.
Однобитовый звук? Не слышал, сейчас почитаю.

Цитата(toweroff @ Sep 27 2012, 11:55) *
SoundForge
лет 15 назад нужно было получить то же самое. Конвертил в 8бит/8кГц, а потом сохранял в RAW - вот и бинарник в чистом виде

Спасибо! Но, к сожалению, корпоративная политика запрещает работать с нелицензионным (крякнутым) ПО.
toweroff
Цитата(muravei @ Sep 27 2012, 11:35) *
Вэйв это и есть бинарник с массивом чисел,

нет, это контейнер с заголовком
_Pasha
Про дельта-модуляцию(ДМ): ДМ с двойным интегрированием лучше для голоса подходит, чем линейная. Там можно частоту дискретизации снизить килогерц до 40.
Misile_Inc
Цитата(_Pasha @ Sep 27 2012, 13:18) *
Про дельта-модуляцию(ДМ): ДМ с двойным интегрированием лучше для голоса подходит, чем линейная. Там можно частоту дискретизации снизить килогерц до 40.

То есть, позволяет "сжимать" файл?

Подсчитал, что на каждую секунду голосового сообщения могу выделить 5 кБ флеш.
Таким образом, нужно чем- то сделать файл с частотой дискретизации 5 кГц. Nero и стандартные утилиты Windows позволяют только до 8 опуститься
muravei
Цитата(toweroff @ Sep 27 2012, 10:56) *
нет, это контейнер с заголовком

Дык, вот опосля заголовка, и непрерывно данные , собственно звук.

Редактор http://www.wavosaur.com/?utm_source=about&...aign=executable

Цитата(Misile_Inc @ Sep 27 2012, 10:56) *
Однобитовый звук? Не слышал, сейчас почитаю.

Кто ж его не слышал, но все будут нос воротить.
Просто входной сигнал подается на компаратор , и запоминаются "1" или "0".
Звук вполне нормальный , главное , хорошо фильтровать, а разборчивость зависит от диктора.
Я как-то скачал пару файлов из базы для тренировки распознавателей речи. Так там такие "говоруны" попадались: с 5-го раза разберешь, и то предварительно прочитав фразу.sm.gif
DRUID3
Цитата(muravei @ Sep 27 2012, 16:16) *
Кто ж его не слышал, но все будут нос воротить.

biggrin.gif друзья, вы в самом деле думаете что яйцеголовые ученные такие тупые? И что ваш "однобитный звук"(никто не мог додуматься, да) сожмет что-то круче чем LPC? biggrin.gif Вопрос потянет ли контроллер LPC.
muravei
Цитата(DRUID3 @ Sep 27 2012, 16:21) *
Вопрос потянет ли контроллер LPC.

Вопрос, а "однобитный звук" потянет счетчик . sm.gif
toweroff
Цитата(muravei @ Sep 27 2012, 17:16) *
Дык, вот опосля заголовка, и непрерывно данные , собственно звук.

там обычно PCM, однако сам контейнер на формат данных никаких ограничений вроде не накладывает
muravei
Цитата(toweroff @ Sep 27 2012, 18:44) *
там обычно PCM, однако сам контейнер на формат данных никаких ограничений вроде не накладывает

А надо то что? PCM и есть тупо выборки. Вот ADPCM это уже типа сжатый.
toweroff
Цитата(muravei @ Sep 27 2012, 20:56) *
А надо то что? PCM и есть тупо выборки. Вот ADPCM это уже типа сжатый.

ну так а я о чем? biggrin.gif
чтобы не разбираться, в чем там сжато или нет в контейнере WAV (который еще и "отшелушить" надо от заголовка), сохраняем в RAW, параметры которого (битрейт, разрядность и стерео/моно) мы сами заранее знаем
Mik174
Цитата(Misile_Inc @ Feb 28 2012, 16:13) *
Жирновато сразу по нескольким параметрам:габариты микросхемы, стоимость средств программирования и отладки, стоимость микросхемы. Зачем так круто?


Не факт.
Если рассмотреть вариант http://milandr.ru/index.php?mact=Products,...nt01returnid=68
корпус - LQFP64 с шагом 0,5 мм - весьма мелкий
стоимость - 165 рублей, не назвал бы ее заоблачной
Средства программирования - МТ-линк за 2500 рублей - вполне посильная затрата

И при этом встроенный 12 разрядный АЦП с частотой оцифровки до 500 кГц
Встроенный 2-х канальный ЦАП, тоже 12 разрядный
Вычислительной мощность не напрягаясь хватит - 80 МГц тактовая частота, Cortex M3 совместимый
Misile_Inc
Цитата(Mik174 @ Sep 28 2012, 08:54) *
Не факт.
Если рассмотреть вариант http://milandr.ru/index.php?mact=Products,...nt01returnid=68
корпус - LQFP64 с шагом 0,5 мм - весьма мелкий
стоимость - 165 рублей, не назвал бы ее заоблачной
Средства программирования - МТ-линк за 2500 рублей - вполне посильная затрата

И при этом встроенный 12 разрядный АЦП с частотой оцифровки до 500 кГц
Встроенный 2-х канальный ЦАП, тоже 12 разрядный
Вычислительной мощность не напрягаясь хватит - 80 МГц тактовая частота, Cortex M3 совместимый

Да, вы правы. В то время упустил из виду, что Миландр начал использовать пластик.
Сейчас проблема выбора архитектуры позади - информатор урезан в функциональности и выполнен на ARM7 фирмы Analog devices через DAC в составе другого прибора.
Проблема сейчас в том, что свободно всего 28 кБ флеш и сюда надо уместить 5 секунд звука + ПО, воспроизводящее звук.
alexvu
Если звук это речь, то очень хорошо сжимает кодирование GSM. Насчет размера ПО декодера не могу сказать.
syoma
Цитата
Подскажите, пожалуйста, чем конвертировать *.WAV - файл в бинарник с массивом чисел, желательно, с нормированием к диапазону 0 - 255. В апреле находил какие-то программы, а сейчас - не могу, видимо "в гугле забанили".

Таке вещи легко делаются в MATLABе - там есть спец. функции для работы со звуком и массивами чисел.
-=Sergei=-
Цитата(syoma @ Oct 1 2012, 18:37) *
Таке вещи легко делаются в MATLABе - там есть спец. функции для работы со звуком и массивами чисел.


http://forum.milandr.ru/viewtopic.php?f=36&t=550#p4100

Уже все сделали sm.gif Это на ARM.

Вот тут можно найти пример для 8-ми битника 1886ВЕ2. Воспроизведение звука http://milandr.ru/uploads/Products/product...ekt_1886BE2.rar
Там из внутреней памяти порядка 10 сек речи формируется через ШИМ.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.