Найти в Дзене
Diz Kragnet

Подключаем Яндекс SpeechKit к платформе n8n [OpenAI тут не будет, но тут тоже не бесплатно]

Оглавление

Смотри в чем суть, из каждого телевизора начали кричать про n8n и каждый "специалист" теперь пишет мануалы и снимает видео. Каждый "специалист" говорит что он не программист и даже он смог разобраться в этой чудо программе. И так-же для распознавания голоса и передачи дальше в своего чудо AI-Агента он использует OpenAI. Почему? Все просто, соедини два кубика (ноды) между собой и дальше оно все сделает за тебя.

Для тех кто разбирается:

Yandex SpeechKit STT V1 (n8n)
Yandex SpeechKit TTS V1 (n8n)

Что должно быть к этому моменту:

  1. бот в телеграм и его апи ключ
  2. n8n (в облаке или у себя на сервере)
  3. учетная запись в яндекс облаке

Готовый шаблон n8n просто импортируете и тестируете:

n8n_telegram_yandex_tts_stt

Вступление:

  1. Telegram Trigger. Создаем телеграм тригер на получение сообщения .В настройках соединения указываем уже готовое или создаём новое. Указываем API ключ вашего бота, нажимаем сохранить. Идём дальше если надпись"Connection tested successfully".
Вот так
Вот так

2. Switch. Тут происходит проверка на тип сообщения, голосовое или текст. Можно так-же добавить проверку на команду, изображение, файл.

Пытаемся понять речь:

  1. Download Voice File. Проиходит загрузка файла, в данном случае голосовое сообщение отправленное пользователем.
  2. STT. Тут просиходит волшебство вне стен Хогвартса, если вам нет 17 лет, то вас исключат из школы. Мы используем апи синхронного распознавания 1 версии (подробнее). Это простой POST запрос, в заголовке которого должен быть обязательно API ключ. Для этого потребуется сервисный аккаунт. В теле запроса мы передаём бинарный файл который скачали этапом ранее.
  3. Telegram_Text_OK_ERROR. Просто вернём обратно пользователю телеграм текст или ошибку почему у STT это не получилось.

Пытаемся создать голос:

  1. TTS. Опять магия, но уже с большими параметрами (подробнее). Так-же в заголовке обязательно должен быть API ключ. В тело, помимо текста передаём: lang - язык, voice - голос, format - формат аудио (по стандарту и так стоитo ggopus, но файл возвращает почему-то mp3).
  2. Telegram_Voice_OK_ERROR. Отправляем пользователю голосовое сообщение. Нюанс, что-бы оно было именно голосовое, а не прикрепленный документ с mp3 файлом, нужно в дополнительных полях указать имя файла как voice.ogg. Если ошибка, то вернём почему у ноды TTS это не получилось.
Без указания отправляет как документ
Без указания отправляет как документ

3. actionRecordAudio. Отправляет действие пользователю что записывает нам сообщение. Так же можно сделать и на текст, для этого нажимаем + справа вверху, выбираем телеграм и sendChatAction.

Выбор действия для отображения пользователю
Выбор действия для отображения пользователю

На этом настройка завершена.

Больше всего времени у вас займет установка n8n на свой сервер и создание учетной записи и всех ключей. А так-же оплатой в облаке яндекса, хотя для синтеза и распознавания тратится неприлично мало. Так что если вы не будете сильно напрягать своего бота или делать его публичным, хватит вам надолго.

Потребление за неделю, нагрузка на него минимальна, так-как редко нужны эти функции
Потребление за неделю, нагрузка на него минимальна, так-как редко нужны эти функции