На основе примера AN #165 - RC2 sound / Voice playback от полного безделья создан фонемный синтезатор речи - говорилка. (От администрации сайта: Очень хороший способ заполнить безделье. Лентяи, берите на вооружение!)
Это не конструкция для повторения, а тема для длительной и кропотливой работы. (От администрации сайта: а мы повторили как есть - говорит говорилка! Она позволяет через терминал отправлять целые фразы!). Понимает только русские строчные буквы, можно слушать через наушники, но наилучшие результаты получаются при подключении только басовой колонки.
Сначала я схватил микрофон и пробовал диктовать туда фонемы но, увы, в результате получаются одни шумы. Короче, нужен отличный студийный звук. В сети нашел аудио книгу "Культура речи - как правильно и грамотно говорить по-русски ". Читает женщина с красивым чистым голосом. В дальнейшем я обнаружил искажения, на которые не обратил внимания в начале работы. Видимо, нужно поискать запись лучшего качества. Фонемы выделялись с помощью Sound Forge Pro 10.0 (русская версия), есть в интернете.
Открываем mp3 файл и приводим его к нужным нам значениям.
Моно - ОБЯЗАТЕЛЬНО.
Частота опроса – 15625. В этом случае самые длинные фонемы помещаются в 256 байт. Для установки частоты опроса 15625 нужно в меню "обработка \ ресемплирование \ ресемплирование" установить "Новая частота опроса 15625". Ставим флажок на "Фильтровать для восстановления формы сигнала". Точность интерполяции - 2. В результате получаем в меню "вид \ свойства файла \ тип файла" -Wave(microsoft). Формат аудио Uncompressed (ОБЯЗАТЕЛЬНО). Частота опроса аудио - 15 625 Гц. Число бит аудио - 8 бит. Каналы аудио - 1(Моно)(ОБЯЗАТЕЛЬНО моно).
Дальше все долго, но зато очень просто. Мышкой выделяем нужный фрагмент, копируем и вставляем в новое окно. Удаляем, вырезаем, копируем и т.д. и т.д., достигая приемлемого размера. Полезно проверить результат, составив слово из имеющихся фонем. Полученный mp2 файл загружаем в RC_Coder. (Вся теория тут: AN #165 - RC2 sound / Voice playback). Ни каких установок я там не менял, а просто создавал одноименный *.bin файл. Затем при помощи BasComData.exe получаем файл с расширением *.ddd. Это утилита для преобразования бинарных файлов в код программы типа DATA. Содержимое копируем в исходный код программы BASCOM AVR. При помощи специально написанного терминала, понимающего по-русски, можно в контроллер отправлять целые фразы. Если устройство не подключено к терминалу, то ножку RX нужно подсоединить через 10к к +5в, иначе контроллер зависнет.
Фонемы "М" и "К" у меня совсем не получились, если увеличить скорость опроса в два, а лучше в три раза, результат будет совсем другой. Можно попробовать "трудные” фонемы создавать и воспроизводить на большей скорости, чем остальные (места должно хватить). Если эта тема получит продолжение, то нужно обязательно определить единые источники и терминологию.
От администрации сайта: тема безусловно интересная и полезная. Открывает огромные перспективы - с помощью недорогого широко распространённого контроллера синтезировать человеческий голос.
Сфера применения очень широка - от детских игрушек до голосовых информеров, голосовых меню, и т.д. Всех заинтересованных, повторивших или модернизировавших конструкцию - просьба писать сюда.
Что можно добавить уже сейчас - активный фильтр, настроенный на полосу пропускания человеческого голоса, например такой. Тогда можно будет использовать любую акустику. Можно и нужно добавить электронный регулятор громкости в самой Меге, на том же полевом транзисторе и матрице резисторов в затворе(примитивный ЦАП). Уровень громкости сделать параметром в терминале.
Продолжение.
В процессе работы обратил внимание, что после сброса, при попытке заслать новые данные, не всегда это получается. Оказывается, нужно читать AN_#183_RUS.
Для второй версии необходимо подключить другой пин (сверяйтесь по исходникам!). На плате дополнительно установлен светодиод - индикатор питания, а также кнопка - для возможной модернизации программы (ручного теста).
Если чего, кому интересно. Программа для генерации блока DATA из WAV файлов (и не только), скомпилирована, угощайтесь: https://yadi.sk/d/ZV-DHldijGAqz Автору огромное спасибо!!!! Выручил!!!
Переменная S бит iiСвистит, конечно. Сжатие очень большое. При написании пришлось делать много проб, подбирая более илименее удачные звуки.Некоторые варианты я закомментировал,попробуйте заменить может вам он лучше подойдет. Попробуйте второй вариант, здесь применен другой способ ивроде свистит меньше.
Чёт свист и непонятки, даже после фильтра не то... Может так и должно быть? В коде копался, много чего понял, там буквы все есть, а те, что закоментированны?
Уважаемый автор! Я повторил ваше устройство, оно мне очень понравилось. Не могли бы вы фонемы "М" и "К" сделать с большей скоростью? И исправить под них программу! Буду очень благодарен!
Да, можно любые слова проговаривать, которые из терминала передали или от другого контроллера. Здесь аудио нужно, а не видео. В ближайшее время не запишу, нет времени. Но поверьте на слово, это работает. Тем более, что я не автор, а админ портала.