- Необходимые компоненты
- Принципиальная электрическая схема
- Подключение динамика к Arduino
- Программирование Arduino для TTS (преобразование текста в речь)
Система преобразования текста в речь или TTS преобразует обычный текст в речь. Эта технология позволяет системе озвучивать текст человеческим голосом. Существует множество примеров преобразования текста в речь, таких как объявления в общественном транспорте, звонки в службу поддержки, голосовые помощники в ваших смартфонах или меню навигации любого устройства. Вы даже можете найти TTS в Microsoft Word, где вы установите его для озвучивания текста, написанного в документе.
Сегодня в этом уроке мы узнаем, как преобразовать текст в речь с помощью Arduino. Ранее мы использовали TTS с Raspberry pi в разговоре с будильником, а также преобразовывали речь в текст в Raspberry Pi с помощью голосовой клавиатуры Google.
Первый шаг в ТТС является предварительной обработкой или нормализации. Этот шаг включает в себя преобразование символов, чисел и сокращений в слова, которые могут быть прочитаны машинами, например '?' будет преобразован в «вопросительный знак».
Второй этап включает преобразование текста в нормализованной фонем или фонетических транскриптов. Фонемы - это небольшие части произносимых слов, то есть звуки, из которых состоят предложения. Этот шаг действительно важен для того, чтобы машина могла говорить слова, как люди.
Последний шагом является синтезом фонем в разговорный голос. Этот шаг может быть выполнен разными способами, например, записывая человеческий голос для разных слов / фраз, или генерируя основные звуковые частоты и складывая их в виде фонем, или копируя человеческий говорящий механизм.
Необходимые компоненты
- Плата Arduino
- Спикер
- Схема усилителя
- Регулируемый источник питания
- Подключение проводов
Принципиальная электрическая схема
В этом преобразователе текста в речь мы использовали схему усилителя для уменьшения шума и получения чистого звука. Схема усилителя сделана на ИМС LM386. Принципиальная схема для него показана ниже:
Поток 100K используется для регулировки звука. Отрегулируйте его, чтобы получить чистый звук. Если у вас возникла путаница по поводу этой схемы, ознакомьтесь со схемой усилителя звука на основе LM386. Если у вас нет точного значения резисторов и конденсаторов, используйте близкие по номиналу.
Подключение динамика к Arduino
Подключить усилитель очень просто.
Подключите источник питания к схеме усилителя, подключите цифровой контакт 3 вашего Arduino к резистору 10 кОм и подключите заземление Arduino к заземлению схемы. Теперь подключите динамик, соединив его отрицательную клемму с землей, а положительную клемму с конденсатором 220 мкФ, и подключите источник питания.
Программирование Arduino для TTS (преобразование текста в речь)
Программа для этого TTS на базе Arduino также очень проста, поскольку для этого доступна библиотека. Эта библиотека называется Talkie и может быть добавлена менеджером библиотеки. Чтобы добавить библиотеку, перейдите в Sketch-> Include Library-> Mange Libraries .
Теперь на вашем экране появится менеджер библиотеки. В строке поиска введите Talkie и нажмите кнопку установки. Библиотека будет установлена.
Эта библиотека очень удобна и содержит более 1000 слов и команд. В нем есть несколько примеров, вы можете попробовать их все, но здесь мы используем простой код для объяснения работы.
Вы также можете попробовать другие команды, указанные в библиотеке. Чтобы получить эти команды, перейдите в Documents \ Arduino \ libraries \ Talkie \ src, а затем откройте файлы заголовков и получите несколько команд, которые можно использовать для различных предупреждений. Существует много других библиотек TTS, таких как библиотека jscrane TTS, библиотека Google TTS и т. Д. Вы также можете попробовать их.
Итак, приступим к кодированию. Сначала включите несколько файлов заголовков. Talkie.h используется для инициализации этой библиотеки и установки цифрового вывода 3 Arduino в качестве вывода. Vocab_US_Large.h используется для использования предупреждений, которые мы используем и Vocab_Special.h используется, чтобы использовать паузу мы используем.
#include "Talkie.h" #include "Vocab_US_Large.h" #include "Vocab_Special.h"
Теперь определите значение объекта для использования команд:
Голосовая связь;
Здесь то же сообщение будет повторяться в динамике, поэтому оставьте функцию настройки пустой и поместите команды в функцию цикла. Первая команда voice.say (spPAUSE2) - сделать короткую паузу при повторении предупреждающего сообщения. А следующие команды - это простые слова, означающие: ОПАСНО, ОПАСНО, БУРЯ НА СЕВЕРЕ.
void setup () { } недействительный цикл () { voice.say (spPAUSE2); voice.say (sp2_DANGER); voice.say (sp2_DANGER); voice.say (sp3_STORM); voice.say (sp3_IN); voice.say (sp3_THE); voice.say (sp3_NORTH); }
Наконец загрузите код в Arduino и подключите к нему блок питания. Как только вы включите схему, вы начнете слышать предупреждения! Если вы не получаете четкого звука, попробуйте отрегулировать ручку потенциометра или проверьте, получает ли Arduino надлежащее питание, и убедитесь, что GND Arduino подключен к заземлению цепи.
Проверьте полный код с демонстрационным видео ниже.