Программирование BASCOM
Меню сайта
Категории каталога
Мои статьи [115]
Наш опрос
Оцените мой сайт
Всего ответов: 1292
Главная » Статьи » Мои статьи

Синтезатор речи для озвучивания времени и температуры

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

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



Печатная плата односторонняя.



Алгоритм работы такой:
Контроллер принимает специально подготовленную строку через УАРТ с другого контроллера, в котором собственно организованы часы с термометром.
Далее вычитывает бинарные данные из микросхемы памяти и из них формирует посредством ШИМа необходимые фразы.

Время - формат 1020210 (10 - это маркер времени, далее часы и минуты: двадцать часов двадцать одна минута).

Последняя цифра: если 0 - время "милитер”  24 часа. Если 1 – время 12 часов и тогда диктор сообщит что у нас восемь часов двадцать одна минута вечера.  

Дата - формат 207190513 (20 - это маркер даты, далее день недели [7-воскресенье], число, месяц, год: Сегодня воскресенье девятнадцатого мая две тысячи тринадцатого года).

Температура - формат 30041 (30 - это маркер температуры, далее температура и знак: четыре градуса ниже ноля).

Воспроизведение одной фонемы - формат 400101  (40 - это маркер одной фонемы, далее номер фонемы[01 - кукует кукушка] и количество повторов).

Разделителем между форматами служит символ "/" - косая черта.

Общий вид передаваемой строки - 1020210 / 207190513 / 30041 / 400301


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


'==========Подготовка текста времени и температуры для отправки в синтезатор речи==========
'******************************************************************************************
Govorilka:

'Формат 102021 / 207190513 / 30041 / 400301
'В одиночном звуке ввел количество повторов

      '===Дата===
      Str_temp = "20"
      Str_temp = Str_temp + Str(weekday)
      If Dat < 10 Then
       Str_temp = Str_temp + "0"
       Str_temp = Str_temp + Str(dat)
      Else
       Str_temp = Str_temp + Str(dat)
      End If
      If Month < 10 Then
       Str_temp = Str_temp + "0"
       Str_temp = Str_temp + Str(month)
      Else
       Str_temp = Str_temp + Str(month)
      End If
      If Year < 10 Then
       Str_temp = Str_temp + "0"
       Str_temp = Str_temp + Str(year)
      Else
       Str_temp = Str_temp + Str(year)
      End If
       Str_temp = Str_temp + "/"

      '===Время===
      If Hour < 10 Then
       Str_temp = Str_temp + "100"
       Str_temp = Str_temp + Str(hour)
      Else
       Str_temp = Str_temp + "10"
       Str_temp = Str_temp + Str(hour)
      End If
      If Mine < 10 Then
       Str_temp = Str_temp + "0"
       Str_temp = Str_temp + Str(mine)
      Else
       Str_temp = Str_temp + Str(mine)
      End If
       Str_temp = Str_temp + "/"

      '===Температура===
      If Temper < 10 Then
      Str_temp = Str_temp + "300"
       Str_temp = Str_temp + Str(temper)
      Else
      Str_temp = Str_temp + "30"
       Str_temp = Str_temp + Str(temper)
      End If
      If Znak = "-" Then Str_temp = Str_temp + "1"
      If Znak = "+" Then Str_temp = Str_temp + "0"
      Str_govor = Str_temp

   Print #1 , Str_govor + Chr(13);

Return

Посылать необходимый текст можно и с помощью любой терминальной программы, настроив её на скорость 9600.

Сигнал через простейший фильтр НЧ попадает на усилитель.
Лучшее качество звучания получается с НЧ динамиками достаточно большой мощности.
На фото динамик от системника, но и он вполне справляется с поставленной задачей.



В качестве микросхем памяти можно использовать любые SPI FLASH из серии 25хх, общей ёмкостью не менее 2МБ.

В результате творческой работы был изготовлен бинарный файл и написан код для его воспроизведения.
С адреса &h10000 записаны фонемы для озвучивания времени, даты, дня недели и температуры.
Адреса можно посмотреть в файле !BBS_Minimum_01.doc в архиве.

Архив (плата, схема, описание адресов, прошивка WAV, исходный код).
  
После изготовления платы необходимо прошить микросхему памяти с помощью соответствующего программатора - их описания есть на нашем сайте (1 и 2).
Далее прошить контроллер и выставить фус-биты. 
Для PonyProg FUSE  : 
CKOPT  ,  BODLEVER  ,  BODEN  , SUT0   
После этого можно нажать кнопку "Тест" и проверить работоспособность устройства.
Следующий шаг - подключение другого контроллера или терминала.

Устройство также собрано и протестировано администратором сайта, который выражает благодарность автору.

По просьбе пользователей, автор записал звуковой фрагмент говорилки.


С уважением, Вадим Муравьёв.

Категория: Мои статьи | Добавил: bascom (03.08.2013)
Просмотров: 12404 | Комментарии: 11
Всего комментариев: 11
11 bascom  
0

10 Alex81  
0
В том то и дело, что повторил, как есть. Просто было интересно, как звучит. Проверял через терминал. Работает. Сам в програмировании не силен. Идеи применения есть. Первое, что приходит в голову это конечно же ЧАСЫ biggrin . Но это не совсем интересно. Часов разработано море. Зайдите в поисковик и наберите "часы" Что будет дальше сами знаете. На базе синтезатора можно сделать устройство, которое будет общаться с нами при помощи двух трех кнопок и все. НИКАКИХ ИНДИКАТОРОВ. Надоели эти лампочки. Разработать небольшое меню управления, прикрепить пару датчиков температуры (дома и на улице), часовую микросхему с календарем хотите пульт и т.д. Пускай себе стоит в углу или еще где и сообщает нам время дату и температуру, в автоматическом режиме или при нажатии на кнопки. Далее каждый берет это чудо устройство и делает с ним , что хочет. Хочет делает игрушку, хочет дарит бабушке или дедушке с плохим зрением, вешает на стенку, ставит в угол или просто выкидывает. Но это только моё мнение,  мои мысли и хотелки. Если найдется человек, который сможет воплатить этот бред в реальность, буду рад помочь чем смогу.

7 Alex81  
0
Собрал конструкцию. Устройство заработало сразу. Качество воспроизведения порадовало. Синтезатор говорит приятным женским голосом. Слова все разборчивые, громкость достаточная.
Вопрос к автору. В файле !BBS_Kontroller_04, запись слов начинается с адреса &H10000   (0.waw) и далее,  а какая информация записана до этого адреса?

8 Vadim_M  
0
Мое упущение, там записаны данные для предыдущей версии. Можно записать предыдущую версию и без, каких либо переделокпротестировать. Если нужно место для дополнения библиотеки, то это местоможно использовать.

9 bascom  
0
В какой конструкции вы применили синтезатор?

4 exersizze  
0
всем привет! пока свои звуки записывать нельзя сюда? и да, очень интересно послушать как оно звучит.

5 bascom  
0
Можно послушать в конце статьи.

6 bascom  
0
В конце статьи добавлена инструкция, как добавить свои звуки или вообще всё заново переделать smile

1 Alex81  
0
Спасибо автору за проделанную работу. Устройство нужное. Лично я соберу обязательно. Из микросхем памяти нашел только M25P16.  Смущает объем памяти (16Mбит) подойдет ли такая ёмкая ?
И ещё небольшое пожелание . Если не трудно выведите на любой пин сигнал для управления режимом  stant-by усилителя. В режиме ожидания -1 (stant-by), во время воспроизведения -0. Думаю много кому пригодится.

2 Vadim_M  
0
производитель указывает объем в битах, а в байтах это ибудет 2МБ (16 / 8 = 2). На ножке 28 имеется управляющий сигнал, но работает он отнизкого уровня. Вы правы, нужно сделать два прямой и инверсный.

3 Alex81  
0
Действительно нужны не менее 2 МБ. Не досмотрел. Спасибо. А Вы собрали эту конструкцию ? Какое  качество воспроизведения?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 5
Гостей: 5
Пользователей: 0
Copyright Radan Studio © 2024