Архив рубрики «WavePlayer»

STM32 Синтезатор речи “Элиза”

Это не совсем синтезатор, т.к. он для воспроизведения речи использует библиотеку слов, которые записаны на карту памяти, но для удобства буду использовать именно это слово.

Почему “Элиза”? Во-первых, потому что произносит слова женским голосом. Во-вторых, Элиза – это первое, что пришло в голову.

Итак, что же умеет делать Элиза.

Её словарный запас определяется библиотекой, которая располагается на карте памяти. Чем больше библиотека, тем больше словарный запас. На данный момент библиотека содержит более четырехсот слов, что на порядок превышает словарный запас Эллочки-Людоедки из произведения Ильфа и Петрова.

Эти четыреста слов занимают примерно 10 мегабайт памяти. Я применил карту памяти на 2 гигабайта, поэтому словарь можно значительно расширить.

Прочитать остальную часть записи »

STM32 Воспроизведение звука. Расширение возможностей программы

В предыдущей статье приводился пример того, как можно воспроизвести звук с помощью STM32. Пришло время расширить возможности этой программы, но прежде давайте определимся: для чего это нужно. Не проще ли купить недорогой китайский mp3-проигрыватель. Его возможности будут больше, да и цена…

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

Например, недавно я сделал по заказу GSM-сигнализацию. Работает она исправно, но общается с пользователем через смс-ки, что не всегда удобно. Заказчик хочет, чтобы она могла “говорить”. Сработал датчик –> звонок пользователю –> голосовое сообщение “сработал такой-то датчик”.

Еще одно применение -  сделать небольшой модуль, состоящий из контроллера и карты памяти. Этот модуль можно подключать к устройству по USART, через который передавать команды для воспроизведения слов, фраз, предложений. Таким образом можно озвучить разные устройства.

Не будем забывать о проекте “Умный дом”. Для этого проекта воспроизведение звука желательно необходимо. Поэтому займемся усовершенствованием программы для ее дальнейшего практического применения. Назовем ее “Wave Player”, или сокращенно WP. Соответственно все функции, относящиеся к ней, будут иметь префикс wp.

Прочитать остальную часть записи »

STM32 Воспроизведение звука. Настройка периферии + первый звук

Итак, наша задача  -  воспроизведение WAV-файлов с помощью микроконтроллера STM32. В предыдущих статьях разобрались со структурой  WAV-файлов, с библиотекой FatFs, которая позволяет работать с файловой системой, поигрались с ЦАПом. Приведу ссылки на эти статьи:

  1. Работа с Fat   статья1статья2 ;
  2. Структура WAV-файлов;
  3. Работа с ЦАПом.

Теперь необходимо объединить все это в одно целое, чтобы получить звук на выходе ЦАПа. В начале не будем ставить заоблачные цели, а ограничимся следующими возможностями:

Прочитать остальную часть записи »

STM32 Воспроизведение звука. Структура WAV-файлов

Возникла потребность в воспроизведении с помощью микроконтроллера WAV-файлов, расположенных на карте памяти. Учитывая, что STM32 имеют “на борту” ЦАП и ДМА, эта задача вполне выполнима. Помимо практической стороны она также полезна в целях самообразования – изучим работу ЦАПа и некоторые другие возможности контроллера.

Для начала необходимо разобраться в том, что из себя представляет WAV-файл. Он содержит оцифрованный звук: с помощью АЦП через строго заданные интервалы времени производится измерение уровня сигнала, после чего результат измерения сохраняется. Затем с помощью ЦАПа оцифрованные данные можно превратить в звук.

Прежде чем записать оцифрованные данные в файл их необходимо “упаковать в обертку”, на которой указать некоторую информацию об этих данных: их размер, сколько каналов, частоту дискретизации. Структура этой обертки, т.е. формат WAV-файла, изображена ниже:

Прочитать остальную часть записи »