roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 10:52

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 132 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 9  След.
Автор Сообщение
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 03 апр 2009, 15:58 
Не в сети

Зарегистрирован: 16 дек 2008, 19:30
Сообщения: 8
Цитата:
мне надо чтобы кто-нибудь объяснил назначения фонем в массиве
например, понятно что "sound_E" в массиве - это гласная "Е"
а вот какую букву этот массив воспроизводит - вообще не понятно:


В массивах sound_xx хранятся не фонемы а звуковые фрагменты частей фонемы, где первая цифра длина, а далее битовый массив.
А вот фонема Е описывается так:
uint16_t PROGMEM f_E []={ fonem(snd_E, 6)+Stop }; //(snd_E индекс для sound_E)
Описывает, что надо sound_E воспроизвести 6 раз с паузой между семплами FonTime. Пауза между битами BitTime.
Буква Е использует только один звуковой фрагмент, в согласных же их обычно несколько.

При использовании флешки такое сжатие, конечно можно и даже нужно выбросить, для повышения качества. И просто записать набор фонем отдельными целиковыми семплами.
А вот как записать словарь фонем, я к сожалению не знаю. Готовый бы где взять.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 21 апр 2009, 21:15 
Не в сети

Зарегистрирован: 23 мар 2009, 14:52
Сообщения: 29
Откуда: Челябинск
Я плохо пока еще разбираюсь в МК и программировании... Подскажите как это засунуть в мой проект, созданный в CVAVR?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 22 апр 2009, 17:18 
Не в сети

Зарегистрирован: 23 мар 2009, 14:52
Сообщения: 29
Откуда: Челябинск
помогите разобраться, пожалуйста(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 22 апр 2009, 17:28 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Уточни пожалуйста что значит твой проект и куда что ты хочешь "засовывать"?

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 22 апр 2009, 17:30 
Не в сети

Зарегистрирован: 23 мар 2009, 14:52
Сообщения: 29
Откуда: Челябинск
У меня в CVAVR создана простая программа для робота, и я хочу добавить ему возможность говорить...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 22 апр 2009, 19:57 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
а что мешает, религия?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 22 апр 2009, 20:04 
Не в сети

Зарегистрирован: 23 мар 2009, 14:52
Сообщения: 29
Откуда: Челябинск
я просто не понимаю, как то что лежит в архиве, засунуть в квавр...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 22 апр 2009, 20:11 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
ну для начала нужно распаковать архив


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 22 апр 2009, 20:18 
Не в сети

Зарегистрирован: 23 мар 2009, 14:52
Сообщения: 29
Откуда: Челябинск
издеваетесь??... Может быть, я и нуб... но до этого я как то сам догадался...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 22 апр 2009, 20:19 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
т.е. у тебя архив в архиве?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 22 апр 2009, 20:24 
Не в сети

Зарегистрирован: 23 мар 2009, 14:52
Сообщения: 29
Откуда: Челябинск
вообщем я имею файлы из архива:
_MAKE.BAT
_SP12DEV
_sp12rc
COMPILER.H
m8515_prog.BAT
MAIN.C
MAKEFILE
project.elf
project.hex
SP_NUMB.C
Speaker2.c
speaker4.DSN
Speaker.h
uart_out.c
что дальше??


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 22 апр 2009, 20:26 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2008, 14:41
Сообщения: 997
Откуда: СПб
прог. языки: C,Python
Ctrl + C Ctrl V ? :crazy:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 22 апр 2009, 20:28 
Не в сети

Зарегистрирован: 23 мар 2009, 14:52
Сообщения: 29
Откуда: Челябинск
что именно и куда скопипастить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 22 апр 2009, 23:59 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
все *.c и *.h - исходники

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Говорилка для AVR
СообщениеДобавлено: 27 апр 2009, 11:48 
Не в сети

Зарегистрирован: 16 дек 2008, 19:30
Сообщения: 8
Для начинающих:

В проэкте используется компилятор gcc-avr (winavr).
Начинающим, мое мнение, лучше им и пользоваться. Хоть по началу не самый простой, но самый мощный, и более соответствующий стаднартам.
Сам им и пользуюсь в связке со средой разработки eclipse.
makefile - это и есть файл проэкта.
speaker4.DSN - документ эмулятора Proteus, в котором все это можно запустить и послушать, без реального железа.

Но, при желании перенести проэкт под другой компилятор, или другой процессор нужно:
Добавить в свой проэкт файлы "Speaker2.c" и "Speaker.h", а пример использования посмотреть в "main.c".


1. Удалить в Speaker2.c строки:
#include "avr/io.h"
#include "avr/pgmspace.h"
И заменить на свои файлы каксающиеся периферии процессора, например:
#include <iom8.h>


2. Заменить атрибуты PROGMEM на атрибуты, указывающие размещение данных во флэш.
Например:
/*gcc-avr */ uint8_t PROGMEM sound_A []={( 46), 0xE1,0xC3,0xE1,0xC7,0x8F,0x0F };
/* ICCAVR */ flash unsigned char sound_A []={( 46), 0xE1,0xC3,0xE1,0xC7,0x8F,0x0F };
/*чистый с */ const uint8_t sound_A []={( 46), 0xE1,0xC3,0xE1,0xC7,0x8F,0x0F };


3. Заменить макросы pgm_read_byte и pgm_read_word на нормальное обращение к данным.
Например:
/*gcc-avr */ uint16_t FW=pgm_read_word(pFonem);
/*чистый с */ uint16_t FW=pFonem*;

/*gcc-avr */ Result.Addr=pgm_read_word( &snd_list[SndCode] );
/*чистый с */ Result.Addr=snd_list[SndCode];

4. Для отсчета задержек используется переменная F_CPU.
У меня она передаётся из makefile. Но можно и прямо в файле "Speaker2.c" переопределить её значение.
Сама задержка у меня генерируется ассемлерной вставкой:
#define delay_us(Time_uS)
При другом компиляторе или другом процессоре нужно изменить её.

Важно. В некоторых компиляторах есть готовые функции задержек.
Но не все они годятся. В том же gcc-avr это _delay_us(), но вычисление времени там сделано через
числа с плаваюшей точкой, и соответственно она не годится.

А вообще, в конечном устройстве задержки лучше обрабатывать через таймер.
Предоставленный же здесь пример - чисто дидактический, без всего лишнего.


5. Если не нужен, отладочный вывод, выкидаваем строку:
#include "stdio.h"
и закоментируем все printf/putchar.

Добавлено спустя 4 минуты 50 секунд:
Для русских букв в проэкте используется кодировка CP866(DOS).
Если удобнее работать с символами в кодировке Windows-1251, то для этого варириата
выкладываю изменённый файл "Speaker2.c".


Вложения:
Speaker2_1251.zip [5.58 КиБ]
Скачиваний: 66
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 132 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 9  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO