Проверьте качество до настройки n8n

Загрузите свою запись: тот же движок, что стоит за нодой и вашим будущим эндпоинтом.

Перетащите аудиофайл – или нажмите, чтобы выбратьMP3 · WAV · M4A · OGG · MP4 · до 30 минут

API расшифровки аудио на n8n: готовый шаблон с Palatine Speech

Бесплатный шаблон для n8n: POST-эндпоинт /transcribe принимает аудиофайл и возвращает расшифровку в JSON. Понадобятся API-ключ Palatine Speech и n8n с нодой Palatine Speech, а перед публикацией адреса включите Header Auth.

  • Шаблон бесплатный
  • 3 рабочие ноды
  • n8n Cloud и self-hosted
  • Нода с открытым кодом (MIT)
  • от 0,29 ₽/мин
  • Данные в РФ (152-ФЗ)

Как работает шаблон

Шаблон «Expose a speech-to-text /transcribe API with Palatine Speech» из библиотеки n8n превращает ваш n8n в API расшифровки аудио: HTTP-эндпоинт, на который любой сервис отправляет файл и получает текст. Скрипт, форма или сервис шлёт POST с аудиофайлом и получает текст в JSON. Свой бэкенд для этого писать не нужно: приём файла, обращение к Palatine Speech и ответ клиенту собраны из трёх нод.

Воркфлоу n8n: Receive Audio (Webhook), Palatine Speech Transcription и Return Transcript, разложенные по трём блокам

Так шаблон выглядит на холсте n8n: три блока «Receive the audio», «Process with Palatine Speech» и «Deliver the result». Над ними после импорта будет ещё заметка с описанием шаблона на английском.

Файл приходит как multipart/form-data в поле data, и n8n кладёт его в бинарное поле с тем же именем. Нода Palatine Speech берёт бинарник по умолчанию из data, поэтому соединять поля вручную не приходится. Ответ клиенту отправляет нода Respond to Webhook: webhook в шаблоне настроен так, что отвечает именно она, а не сам триггер. Кроме трёх рабочих нод, на холсте есть четыре заметки: описание шаблона и подписи трёх блоков.

НодаТипЧто делает
Receive Audio (Webhook)Webhookпринимает POST на путь transcribe, ответ оставляет за нодой Respond to Webhook
Palatine Speech TranscriptionPalatine Speechраспознаёт файл моделью palatine_large_highspeed, язык определяет сам
Return TranscriptRespond to Webhookотправляет клиенту JSON-элементы, пришедшие с предыдущей ноды (режим All Incoming Items)

Что понадобится до установки

Нужны API-ключ Palatine Speech из личного кабинета и n8n с установленной нодой Palatine Speech. Клиенты обращаются к адресу вашего n8n, поэтому он должен быть доступен им по сети.

Ноду ставят как community-пакет n8n-nodes-palatine-speech (версия 1.1.1, лицензия MIT), работу с ним проверяли на n8n 1.39.1 и новее. Какие файлы принимает распознавание: из аудио AIFF, ASF, FLAC, M4A/AAC, MP3, OGG (Vorbis и Opus), Opus и WAV, из видео AVI, MKV, MOV и MP4, у которых берётся только звуковая дорожка. Эти списки взяты из документации API и описывают само распознавание.

Установка по шагам

Порядок повторяет описание шаблона на n8n.io: нода и ключи, затем проверка на тестовом адресе, затем защита и публикация.

  1. Поставьте ноду. На своём сервере: Settings → Community Nodes → Install, пакет n8n-nodes-palatine-speech, при включённой N8N_COMMUNITY_PACKAGES_ENABLED=true. В n8n Cloud ноду выбирают из верифицированных, если она доступна в вашем рабочем пространстве.
  2. Добавьте шаблон в n8n со страницы шаблона на n8n.io или импортируйте файл transcribe-api.json.
  3. Откройте ноду Palatine Speech Transcription и добавьте учётные данные Palatine Speech API: ключ из личного кабинета, Base URL https://api.palatine.ru.
  4. Отправьте POST в формате multipart/form-data с файлом в поле data на тестовый адрес https://<ваш n8n>/webhook-test/transcribe. Он работает, пока в редакторе включено прослушивание тестового события (Listen for Test Event). Проверьте, что в ответе пришла расшифровка.
  5. До того как давать адрес кому-то ещё, откройте ноду Webhook и включите авторизацию Header Auth. Учётные данные передавайте только доверенным клиентам.
  6. Опубликуйте воркфлоу и переключите клиентов на рабочий адрес https://<ваш n8n>/webhook/transcribe. Вызовы рабочего адреса в редакторе не показываются, смотрите их во вкладке Executions. Заодно выставьте лимиты загрузки под своё развёртывание, о них ниже.

Третий и пятый шаги делают разные вещи. Ключ Palatine нужен, чтобы n8n мог обращаться к API, а Header Auth защищает ваш эндпоинт: без него адрес открыт всем, кто его знает, и каждая расшифровка списывается с баланса вашего ключа.

Ограничения синхронного эндпоинта

Главная особенность шаблона в том, что эндпоинт синхронный. Клиент отправляет файл и держит HTTP-соединение, пока нода в n8n опрашивает задачу в API Palatine Speech: нода создаёт задачу, а потом спрашивает её статус. У Palatine Speech нет вебхуков о готовности, поэтому узнать результат иначе, чем опросом, нельзя.

По умолчанию нода опрашивает задачу каждые 500 мс и делает до 200 попыток, то есть ждёт около 100 секунд. Если запись за это время не обработана, нода завершается ошибкой «Task … did not complete within polling limit (200 attempts)». Для длинных записей увеличьте Polling Interval (Ms) или Max Poll Attempts в Polling Options. Значения интервала ровно 1000 мс и числа попыток ровно 300 нода подменяет на 500 мс и 200 попыток, поэтому берите другие числа, например 2000 мс или 400 попыток. Общее ожидание равно интервалу, умноженному на число попыток (максимум 1000 попыток, интервал до 900000 мс). Но и тогда упрётесь в таймауты на стороне клиента, обратного прокси или балансировщика: пока клиент ждёт ответа, они могут оборвать соединение раньше, чем придёт расшифровка.

ОграничениеЧто произойдётКак обойти
Ожидание дольше лимита опроса (по умолчанию около 100 с)нода падает с ошибкой polling limitувеличить Polling Interval (Ms) и Max Poll Attempts
Таймаут прокси, балансировщика или клиентаклиент получает обрыв, расшифровка теряетсяотвечать сразу, а результат доставлять отдельно (см. ниже)
Размер запроса в n8nзапрос с тяжёлым файлом будет отклонёнподнять N8N_PAYLOAD_SIZE_MAX и N8N_FORMDATA_FILE_SIZE_MAX (значения по умолчанию смотрите в документации n8n)
Нет Header Authлюбой знающий адрес запускает расшифровку за ваш счётвключить Header Auth на ноде Webhook
Content-Type части multipart не совпадает с форматом файладокументация API требует совпаденияпередавать тип, который соответствует реальному формату

Лимиты размера в n8n задаются на уровне вашего развёртывания. Актуальные значения лимитов смотрите в документации вашей версии n8n. На странице документации Palatine Speech о поддерживаемых файлах максимальные длительность и размер файла не указаны.

Как доработать шаблон

Из коробки шаблон возвращает то, что отдала нода Palatine Speech: имя файла, название модели и текст. Нода кладёт это в поля task, source_file, model_used и transcription. Форму ответа проверьте на тестовом адресе до того, как писать клиент: нода Respond to Webhook в режиме All Incoming Items отправляет JSON-массив из элементов со входа, и при одном элементе ответ тоже массив из одного объекта: [{"task": "transcribe", ...}]. Клиенту нужно брать расшифровку из первого элемента массива. Если нужен объект, замените режим на First Incoming Item.

Ответ можно расширить метаданными, передать расшифровку в другое приложение или записать её в базу либо таблицу.

Модель тоже можно сменить, у ноды их две: palatine_small по умолчанию, быстрая и компактная, и palatine_large_highspeed, которая в описании ноды медленнее и точнее. Для субтитров подойдёт операция Diarize, умеющая отдавать SRT и VTT через параметр Response Format. Операции Summarize (сценарий meeting_summary или свой user_prompt) и Sentiment Analysis добавляют краткое содержание и оценку тона.

Для длинных записей эндпоинт надо переделать: поставьте Respond to Webhook перед нодой Palatine Speech, чтобы клиент сразу получал ответ «принято», а готовый текст уходил по другому каналу. Это можно сделать в таблицу, в чат или HTTP Request на адрес, который клиент сообщил вместе с файлом. Колбэк в этом случае отправляет ваш n8n, у самого Palatine Speech вебхуков нет. Готовые сценарии без собственных HTTP-запросов есть в соседних шаблонах: расшифровка голосовых Telegram и расшифровка записей из Google Диска.

Шаблон n8n или прямой API: что выбрать

Эндпоинт на n8n удобен, когда вызывающей стороне нужен один простой POST без опроса задач, а между ней и распознаванием нужны своя авторизация и пара дополнительных шагов, например запись результата в базу. Типичные клиенты: форма на сайте, внутренний сервис или no-code-платформа, которая умеет только отправить файл и получить ответ.

Если в продукте уже есть бэкенд и разработчик, n8n становится лишним звеном, и Speech-to-Text API надёжнее вызывать напрямую. У прямого вызова нет посредника, вы сами задаёте таймауты и работаете с асинхронной задачей. В API язык можно указать явно параметром language, а нода сейчас определяет его сама. Документация советует задавать язык, если все записи на одном языке: автоопределение смотрит на начало записи и может ошибаться, когда речи там мало. Если же нужно просто один раз получить текст из файла, хватит веб-кабинета.

ВариантКогда подходитГде ломаетсяЧто на выходе
Эндпоинт на n8nклиенту нужен один POST, а дальше свои шаги и авторизациясинхронное ожидание: лимит опроса и таймауты на путиJSON с расшифровкой
API Palatine Speech напрямуюсвой сервис, управление таймаутами и языкомнужен разработчик, опрос статуса задачи на вашей сторонеJSON, текст, SRT или VTT
Веб-кабинетразовые файлы без автоматизациив процесс не встроитьтекст в браузере

Сколько стоит и где обрабатываются данные

Шаблон бесплатный, а нода n8n-nodes-palatine-speech открыта под лицензией MIT. Платите только за распознанные минуты: от 0,29 ₽ за минуту, без подписки, неиспользованный баланс не сгорает. Тестовые минуты для проверки выдаём по запросу.

Запись идёт от клиента в ваш n8n и дальше в API Palatine Speech. Его серверы стоят в четырёх ЦОД уровня Tier III в России, трафик шифруется по TLS, обработка соответствует 152-ФЗ, обучения моделей на записях клиентов нет. Если и ваш n8n на сервере в РФ, запись не покидает российский контур. Но вызовы видны во вкладке Executions, учитывайте это для чувствительных записей.

Вызов эндпоинта /transcribe

Запрос к опубликованному воркфлоу и ответ: JSON-массив, в котором поля отдаёт нода Palatine Speech.

  1. Установите ноду и шаблон

    Community Nodes, затем импорт шаблона с n8n.io и ключ Palatine.

  2. Проверьте на тестовом адресе

    POST с файлом в поле data на /webhook-test/transcribe.

  3. Включите Header Auth и опубликуйте

    Затем вызывайте рабочий адрес /webhook/transcribe.

Запросbash
curl -X POST "https://n8n.example.com/webhook/transcribe" \
  -H "X-Api-Key: <ваш ключ Header Auth>" \
  -F "data=@meeting.mp3;type=audio/mpeg"
Ответjson
[
  {
    "task": "transcribe",
    "source_file": "meeting.mp3",
    "model_used": "palatine_large_highspeed",
    "transcription": "Коллеги, начинаем планёрку..."
  }
]
Стоимость
Шаблон и нода
бесплатно
Распознавание
от 0,29 ₽/мин
Документация

Заберите шаблон и поднимите свой эндпоинт

Шаблон добавляется в n8n со страницы на n8n.io, ключ API выдаётся в личном кабинете.

  • Тестовые минуты по запросу
  • Оплата картой МИР и через СБП

Ответы на вопросы

Не нашли ответ на свой вопрос? Напишите нам

Сколько стоит пользоваться шаблоном?

Сам шаблон и нода бесплатны (MIT). Деньги списываются только за распознанные минуты, от 0,29 ₽, а вызовы чужими людьми на открытом адресе тоже идут с вашего баланса, поэтому включите Header Auth.

Как отправить файл на эндпоинт?

POST-запросом в формате multipart/form-data, файл кладут в поле data. Адрес для проверки: https://<ваш n8n>/webhook-test/transcribe, пока в редакторе включено прослушивание тестового события. После публикации воркфлоу работает адрес https://<ваш n8n>/webhook/transcribe.

Как защитить эндпоинт?

Откройте ноду Webhook, выберите Authentication → Header Auth и задайте имя заголовка и секрет. Клиент передаёт этот заголовок в каждом запросе, без него n8n отвечает ошибкой.

Почему на длинных записях приходит ошибка?

Эндпоинт синхронный: клиент ждёт, пока нода опрашивает задачу. По умолчанию это 200 попыток с интервалом 500 мс, около 100 секунд, затем ошибка polling limit. Увеличьте Polling Interval (Ms) и Max Poll Attempts, а для совсем длинных записей отвечайте клиенту сразу и доставляйте текст другим путём.

Есть ли вебхук о готовности расшифровки?

Нет, у Palatine Speech вебхуков нет. Колбэк при необходимости отправляет ваш n8n через HTTP Request.

Какие файлы принимает распознавание?

Аудио и видео основных форматов (MP3, WAV, M4A, OGG, MP4 и другие), полный список в документации API. Content-Type части multipart должен соответствовать формату файла.

Можно ли задать язык записи?

Нода сейчас выбирает язык сама. Если у вас все записи на одном языке и важна точность, вызывайте API напрямую с параметром language.

Куда уходят записи?

Клиент отправляет файл в ваш n8n, оттуда он идёт в API Palatine Speech: четыре ЦОД Tier III в России, TLS, 152-ФЗ, обучения моделей на ваших записях нет.