Повний гайд: створи бота для транскрибації голосових в n8n

Якщо ви щодня записуєте десятки голосових нотаток, а потім витрачаєте час на їх переслуховування — ви втрачаєте величезну можливість автоматизувати цей процес. Раніше на прослуховування та структурування голосових записів йшло багато часу. Тепер це можна повністю автоматизувати.

У цій статті розповім, як створити Telegram-бота в n8n, який миттєво перетворює голосові повідомлення у текст. Більше сотні автоматизованих процесів навчили: проста ідея на практиці перетворюється на складну систему з багатьма нюансами.

Базова логіка: чотири кроки, які стають складнішими

На перший погляд завдання виглядає простою:

  1. Отримати голосове повідомлення
  2. Зберегти його на сервері
  3. Транскрибувати
  4. Надіслати текст назад у чат

Але коли починаєш тестувати, на кожному кроці виникають складнощі. Проста чотирьохнодова послідовність перетворюється на розгалужену систему з перевірками, резервними варіантами та обробкою помилок.

Що відбувається насправді: повна схема бота

Авторизація користувача

Перше — перевірка, чи може людина надсилати повідомлення боту. Якщо немає доступу — бот відправляє повідомлення про відмову. Це зберігає нерви та гроші, обмежуючи доступ тільки для потрібних користувачів.

Розпізнавання типу файлу

Telegram по-різному передає аудіо:

  • Голосове повідомлення, записане в додатку — має мітку voice
  • Файл з диктофона — передається як audio

Бот має розпізнати тип і уніфікувати обробку. Якщо файл не розпізнано — користувач отримує повідомлення про помилку.

Перевірка формату

Наступний крок — перевірка, чи відповідає файл підтримуваним форматам (OGG, MPEG, MP4). Якщо формат невідомий — знову повідомлення про помилку.

Завантаження та початок транскрибації

Після успішної перевірки бот завантажує файл і відправляє повідомлення: “Починаємо транскрибацію”. Зворотний зв’язок на кожному етапі критично важливий — користувач завжди розуміє, що відбувається.

Резервний варіант (Fallback)

Для транскрибації використовується найдешевша модель GPT від OpenAI. Але вона може не впоратися через перенавантаження або інші проблеми. Тому налаштовано резервний варіант — якщо OpenAI не спрацювала, файл автоматично передається на транскрибацію до іншого сервісу.

Обробка довгих текстів

Telegram має обмеження: максимум 4000 символів на повідомлення. Якщо транскрибований текст довший — бот розбиває його на частини (чанки) по 4000 символів і відправляє послідовно кілька повідомлень.

Покрокове створення бота

Крок 1: Створення Telegram-бота

Відкрийте @BotFather в Telegram:

  • Натисніть /newbot
  • Придумайте назву
  • Скопіюйте API token

У n8n додайте Telegram Trigger ноду (On Chat Message), створіть новий credential, вставте token. Перевірте з’єднання, надіславши /start боту.

Крок 2: Авторизація користувачів

Додайте ноду IF після тригера. Налаштуйте перевірку username:

  • Якщо username дорівнює дозволеному (наприклад, “user_1”) — продовжуємо
  • Якщо ні — відправляємо повідомлення “Заборонено”

Крок 3: Визначення типу аудіофайлу

Додайте ноду Switch для перевірки типу:

  • Перший варіант: voice
  • Другий варіант: audio
  • Fallback: повідомлення про нерозпізнаний файл

Після кожної гілки додайте Set ноду, яка створює уніфіковане поле file_id. Це дозволить обробляти обидва типи файлів однаково.

Крок 4: Перевірка формату

Додайте IF ноду, яка перевіряє MIME type аудіо:

  • OGG (audio/ogg)
  • MPEG (audio/mpeg)
  • MP4 (audio/mp4)

Якщо формат не підходить — відправляємо повідомлення про помилку.

Крок 5: Завантаження файлу

Додайте Telegram Get File ноду. У параметрі File ID вкажіть шлях до уніфікованого поля з попереднього кроку.

Крок 6: Повідомлення про початок

Додайте Telegram Send Message ноду з текстом “Починаємо транскрибацію”. Це дає користувачу зворотний зв’язок.

Крок 7: Транскрибація через OpenAI

Додайте OpenAI Transcribe ноду:

  • Підключіть OpenAI credential
  • Виберіть модель (найдешевша — Whisper)
  • У налаштуваннях (Settings → On Error) виберіть “Continue Using Error Output”

Це створить дві гілки: успіх та помилка.

Крок 8: Резервна транскрибація

Якщо OpenAI не спрацювала, додайте альтернативний шлях. Використайте Set ноду для отримання бінарного файлу з попередніх кроків, потім додайте іншу модель транскрибації.

Для уніфікації результату додайте Edit Fields ноду, яка перейменує вихідне поле в text для обох варіантів.

Крок 9: Обробка довгих текстів

Додайте IF ноду, яка перевіряє довжину тексту:

  • Якщо менше 4000 символів — відправляємо одразу
  • Якщо більше — передаємо в Code ноду

У Code ноді використайте простий JavaScript для розбиття тексту на частини по 4000 символів. Після розбиття кожна частина передається в Telegram Send Message.

Крок 10: Відправка результату

Фінальна Telegram Send Message нода отримує:

  • Chat ID з початкового повідомлення
  • Текст транскрибації

У налаштуваннях вимкніть “Append n8n Attribution”, щоб прибрати підпис від n8n.

Важливі технічні деталі

Обмеження OpenAI: максимальний розмір файлу — 25 МБ. Для більших файлів потрібні альтернативні рішення.

Формат даних: коли посилаєтесь на дані з попередніх нод, використовуйте Expression mode. Наприклад: {{ $json.message.chat.id }} для Chat ID.

Бінарні дані: у версії 2.0 n8n можна працювати з бінарними файлами через Set ноду. Використовуйте {{ $binary.data }} для доступу до файлу.

Пінування даних: під час розробки пінуйте (pin) дані в нодах зі штучним інтелектом, щоб не витрачати токени на кожне тестування.

Як тестувати

  1. Збережіть workflow
  2. Активуйте його
  3. Надішліть голосове повідомлення боту
  4. Перевірте всі гілки: успішну транскрибацію, fallback, довгі тексти

90% автоматизацій працюють саме так: спочатку проста ідея, потім через тестування виявляються нюанси, які треба закрити додатковою логікою.

Можливості для покращення

Базовий бот готовий, але його можна значно розширити:

  • Додати форматування виводу через GPT (підсумки, тези, структуровані списки)
  • Налаштувати різні формати відповіді для різних контекстів
  • Інтегрувати з системами зберігання нотаток
  • Додати категоризацію записів

Особисто використовую окремі ноди для подальшої обробки тексту. Спочатку отримую сирий текст, а потім трансформую його під конкретні задачі.

Висновки

Створення бота для транскрибації — це практичний приклад того, як проста ідея перетворюється на надійну систему. Ключові елементи успіху:

  • Авторизація — захист від небажаних користувачів
  • Зворотний зв’язок — повідомлення на кожному етапі
  • Fallback — резервні варіанти для критичних операцій
  • Обробка помилок — що робити, коли щось йде не так
  • Тестування — багато тестувань виявляють приховані проблеми

n8n відкриває величезні можливості для автоматизації. Те, що раніше здавалося неможливим поєднати, тепер працює в єдиній системі.

Blueprint цього бота доступний безкоштовно. Якщо хочете подякувати за розробку — зможете залишити донат під час завантаження.

Ваш бізнес настільки сильний, наскільки сильні його системи. Автоматизуйте!

Залишити коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Прокрутка до верху