- Необхідні компоненти
- Кругова діаграма
- Підключення динаміка до Arduino
- Програмування Arduino для TTS (від тексту до мови)
Система перетворення тексту в мовлення або TTS перетворює звичайний текст у мовлення. Ця технологія дозволяє системі вимовляти текст людським голосом. Існує безліч прикладів перетворення тексту в мову, наприклад оголошення в громадському транспорті, дзвінки до служби підтримки клієнтів, голосові помічники на ваших смартфонах або навігаційне меню будь-якої машини. Ви навіть можете знайти TTS у Microsoft Word, де ви налаштуєте його вимовляти текст, записаний у документі.
Сьогодні в цьому підручнику ми дізнаємося, як зробити конвертер тексту в мову за допомогою Arduino. Раніше ми використовували TTS з Raspberry pi в розмовному будильнику, а також перетворювали мову в текст на Raspberry pi за допомогою голосової клавіатури Google.
Перший крок в ТТС є попередньою обробкою або нормалізації. Цей крок передбачає перетворення символів, цифр та скорочень у слова, які можна прочитати на машинах на зразок '?' буде перетворено у “знак запитання”.
Другий етап включає перетворення тексту в нормалізованої фонем або фонетичних транскриптов. Фонеми - це маленькі частини вимовлених слів, тобто ці звуки складають речення. Цей крок дійсно важливий, щоб машина могла говорити слова так, як це роблять люди.
Останній кроком є синтезом фонем в розмовний голос. Цього кроку можна досягти різними методами, наприклад, записавши людський голос для різних слів / фраз, або генеруючи базові звукові частоти та складаючи їх у фонем або копіюючи механізм людської мови.
Необхідні компоненти
- Дошка Arduino
- Спікер
- Схема підсилювача
- Регульоване джерело живлення
- Підключення проводів
Кругова діаграма
У цьому перетворювачі тексту в мову ми використали схему підсилювача, щоб зменшити шум і отримати чіткий звук. Схема підсилювача виконана за допомогою мікросхеми LM386. Схема для нього показана нижче:
Для регулювання звуку використовується горщик 100 КБ. Налаштуйте його, щоб отримати чіткий звук. Якщо у вас є якісь плутанини щодо цієї схеми, перевірте схему підсилювача звуку на базі LM386. Якщо у вас немає точного значення резисторів і конденсаторів, тоді використовуйте ті, що мають близьке значення.
Підключення динаміка до Arduino
Після підключення схеми підсилювача підключення стає дуже простим.
Підключіть джерело живлення до схеми підсилювача і підключіть цифровий штифт 3 вашого Arduino до резистора 10K і підключіть землю Arduino до землі схеми. Тепер підключіть динамік, підключивши його мінусову клему до заземлення, а позитивну клему до конденсатора 220µF і підключіть джерело живлення.
Програмування Arduino для TTS (від тексту до мови)
Програма для цього TTS на базі Arduino також дуже проста, оскільки для цього доступна бібліотека. Ця бібліотека називається Talkie, і її може додавати менеджер бібліотеки. Щоб додати бібліотеку, перейдіть до Ескіз-> Включити бібліотеку-> Бібліотеки Mange .
Тепер на вашому екрані буде Менеджер бібліотек. У рядку пошуку введіть 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 () { } void loop () { 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 підключений до заземлення схеми.
Перевірте повний код за допомогою демонстраційного відео, наведеного нижче.