roboforum.ru

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

Говорилка для AVR

Re: Говорилка для AVR

yakuzaa » 10 мар 2009, 13:12

опааа! проект до жути интересен! У меня сейчас что-то похожее в mp3 плеере стоит - цифры от 0 до 19, затем десятки и сотни женским голосом записаны в AT45DB041, прога написана чтобы из этих кусочков числа набирать, голос оочень качественный.. а что если бы эта "говорилка" хранила свои сэмплы в датафлешке? тогда-же можно очень качественную говорилку сварганить - а то я глянул - здесь все буквы описаны мааленьким массивчиком...
Код: Выделить всёРазвернуть
uint8_t PROGMEM sound_A        []={(  46), 0xE1,0xC3,0xE1,0xC7,0x8F,0x0F };
uint8_t PROGMEM sound_E        []={(  46), 0xF8,0x03,0x0F,0x07,0xC1,0xE3 };
uint8_t PROGMEM sound_I        []={(  46), 0xFF,0x40,0x17,0xFF,0x00,0x03 };
uint8_t PROGMEM sound_O        []={(  46), 0xF8,0x7C,0xC1,0xF1,0xF8,0x03 };
uint8_t PROGMEM sound_U        []={(  46), 0xFE,0x00,0x7F,0xFC,0x00,0x03 };


и т.д.
кароче предлагаю сделать говорилке апгрейд! :beer:

Re: Говорилка для AVR

Strijar » 10 мар 2009, 13:21

Здесь нет маленьких кусочков текста - здесь фонемы. Это и правда синтезатор речи - можно синтезировать любой текст, а не только то что записал разработчик

Re: Говорилка для AVR

Duhas » 10 мар 2009, 13:28

вот если бы сделать конфигурируемый фыльтр, или скорее обработчик, для фонем.. дабы менять тон и тд.. вот это было б крутя...

Re: Говорилка для AVR

yakuzaa » 10 мар 2009, 13:34

Выкладываю рабочие процедуры для вывода звука из AT45DB041

Низкоуровневая Voiceout([начало фрагмента] , [конец фрагмента]) служит для вывода определенного интервала страниц из памяти (всего из 2048)

вот, например фраза "тысяча" Voiceout(1256 , 1282); занимает всего 26 страниц...

матрица Say([номер сэмпла]) выводит уже "нарезанные" сэмплы

ну и самое интересное Corresp([любое число от 0 до 1999]) - набирает сэмплы в фразу

будет звучать как "тысяча девятьсот девяносто девять"

Добавлено спустя 4 минуты 28 секунд:
объясните, кто может - какие фонемы за что отвечают - я запишу голосовые фонемы и попробую это все в датафлеш запихать...
Вложения
dataflash.h
(4.15 КиБ) Скачиваний: 575
dataflash.c
(8 КиБ) Скачиваний: 549

Re: Говорилка для AVR

Strijar » 10 мар 2009, 13:44

yakuzaa писал(а):объясните, кто может - какие фонемы за что отвечают - я запишу голосовые фонемы и попробую это все в датафлеш запихать...


[[ru:Фонема]]

Фоне́ма (др.-греч. φώνημα «звук») — минимальная единица звукового строя языка.

Re: Говорилка для AVR

yakuzaa » 10 мар 2009, 13:52

да емае! :lol:
я знаю что такое фонемы! мне надо чтобы кто-нибудь объяснил назначения фонем в массиве
например, понятно что "sound_E" в массиве - это гласная "Е"
а вот какую букву этот массив воспроизводит - вообще не понятно:
Код: Выделить всёРазвернуть
uint8_t PROGMEM sound_S_z2     []={(  46),                      0xAA,0xAA,0x5A,0xA5, 0x5A,0xAA };

Re: Говорилка для AVR

Strijar » 10 мар 2009, 14:20

yakuzaa писал(а):я знаю что такое фонемы! мне надо чтобы кто-нибудь объяснил назначения фонем в массиве например, понятно что "sound_E" в массиве - это гласная "Е"
а вот какую букву этот массив воспроизводит - вообще не понятно:


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

Re: Говорилка для AVR

yakuzaa » 10 мар 2009, 14:24

понятно, знач. не знаете.... :pardon:
люююууди! по таблице может кто-нибудь подсказать?

Re: Говорилка для AVR

Strijar » 10 мар 2009, 14:47

yakuzaa писал(а):понятно, знач. не знаете....


А чего тут знать то? - "Программа документированна на языке Си" ;) Я бы сам глянул - но щас по уши в vhdl...

Re: Говорилка для AVR

Duhas » 10 мар 2009, 14:51

поглядите куда кормятся данные массивы - найдете ответ...

Re: Говорилка для AVR

yakuzaa » 10 мар 2009, 15:08

глянул - примерно понятно... думаю как сейчас сделать чтобы без особых переделок фонемы из датафлеш дергать... :o

Re: Говорилка для AVR

Strijar » 10 мар 2009, 15:34

А зачем на датафлэш? Там фонем длинней 32 байт нет, в среднем 8-16. В первом сообщении было написано, что вся программа 2кб. Ну сделаете вы сэмплированые фонемы - это кардинально улучшит качество? Заблуждение.

Re: Говорилка для AVR

yakuzaa » 10 мар 2009, 15:37

можно засемплировать не только отдельные фонемы, но и слоги, цифры... благо размер датафлеши позволяет...

Re: Говорилка для AVR

dr-mobius » 31 мар 2009, 21:25

Привет всем.
Недавно видел плату с прикрученной SD картой.
Я так подумал прикинул и что надумал...
Записать на карту достаточное количество вариантов ответа, используя кодировку mp3.
Далее прицепить плату звукового сенсора..
Написать программу анализа вопросов и в зависимости от задаваемого вопроса проигрывать вариант ответа :)Сорри темой ошибся...
Последний раз редактировалось dr-mobius 31 мар 2009, 21:50, всего редактировалось 2 раз(а).

Re: Говорилка для AVR

=DeaD= » 31 мар 2009, 21:26

И? В чем фишка? :)


Rambler\'s Top100 Mail.ru counter