Транскрибация аудио и видео в n8n бесплатно: Полное руководство
Транскрибация — процесс преобразования речи из аудио- или видеофайлов в текстовый формат — является критически важной задачей для анализа контента, создания субтитров, ведения документации и автоматизации рабочих процессов. n8n, платформа с открытым исходным кодом для автоматизации рабочих процессов, предоставляет мощные инструменты для создания бесплатных систем транскрибации. В этой статье детально рассмотрены методы, инструменты и пошаговые инструкции по настройке автоматизированных пайплайнов транскрибации в n8n без прямых финансовых затрат на специализированные сервисы.
Архитектура решения для транскрибации в n8n
Бесплатная транскрибация в n8n строится на комбинации узлов (нод), которые выполняют различные функции: получение медиафайлов, их обработка, отправка на сервис распознавания речи, обработка ответа и сохранение или отправка результата. Ключевым элементом является использование бесплатных API или локальных движков распознавания речи. Основные компоненты архитектуры:
- Триггер: Узел, запускающий рабочий процесс (например, по расписанию, при поступлении файла в облачное хранилище или через вебхук).
- Обработчик медиа: Узлы для загрузки и конвертации аудио в подходящий для API формат (часто WAV или FLAC).
- Движок распознавания речи (ASR): Ядро системы. Используется бесплатный облачный API (с лимитами) или локальная модель (например, Vosk).
- Обработчик вывода: Узлы для форматирования текста, добавления меток времени, исправления ошибок.
- Действие: Узлы для сохранения транскрипта (в файл, базу данных, Google Docs, Notion) или отправки уведомления.
- Method: POST
- URL: https://api.openai.com/v1/audio/transcriptions
- Authentication: «Generic Credential» в типе «Header Auth». В поле «Name» укажите
Authorization, в поле «Value» —Bearer YOUR_OPENAI_API_KEY. - Send Body: Yes
- Body Content Type: «Multipart/Form-Data»
- Parameters: Добавьте два параметра:
- name: file, value: {{ $json.binary.data }} (бинарные данные файла).
- name: model, value: whisper-1
- name: response_format, value: json (или text, srt, vtt для субтитров).
- name: language, value: ru (если язык известен, для повышения точности).
- Установите Python и pip на сервер, где работает n8n (или на отдельной машине в той же сети).
- Установите vosk и дополнительные зависимости:
pip install vosk flask waitress. - Скачайте модель для нужного языка (например, русскую модель «vosk-model-ru-0.42») с официального сайта Vosk.
- Создайте простой Flask-сервер (файл
vosk_server.py), который принимает POST-запросы с аудиофайлом и возвращает текст. - Запустите сервер:
python vosk_server.py. Он будет доступен по адресу, например,http://localhost:5000/transcribe. - Расстановка пунктуации и капитализация: Используйте узел Code с простыми правилами или вызовом дополнительного бесплатного NLP-сервиса.
- Разделение на абзацы по паузам: Анализ временных меток (если API их возвращает, как Whisper с response_format=’verbose_json’) и разбивка текста.
- Замена ключевых терминов: Используйте узел Replace для исправления частых ошибок распознавания специфических слов.
- Перевод: Добавьте узел для вызова бесплатного API перевода (например, LibreTranslate) для создания субтитров на другом языке.
Выбор бесплатного движка распознавания речи (ASR)
Выбор ASR определяет точность, ограничения и сложность настройки рабочего процесса. В таблице представлены основные бесплатные варианты, интегрируемые с n8n.
| Сервис/Инструмент | Метод интеграции в n8n | Бесплатные лимиты и возможности | Требования |
|---|---|---|---|
| OpenAI Whisper API | Узел HTTP Request или неофициальный кастомный узел | Бесплатные лимиты зависят от общей политики OpenAI. Модель Whisper обеспечивает высокую точность, поддержку множества языков, включая русский, и распознавание речи с пунктуацией. | API ключ от OpenAI. Файл должен быть загружен напрямую или предоставлена публичная ссылка. Рекомендуемый формат: MP3, WAV. |
| Vosk (оффлайн-модель) | Запуск локального сервера Vosk-API и обращение к нему через узел HTTP Request в n8n. | Полностью бесплатно и без ограничений по объему. Работает оффлайн. Доступны модели разных размеров (от compact до large) для различных языков. | Установка Python, Vosk, и запуск локального сервера на машине с n8n. Требует вычислительных ресурсов CPU. |
| Google Speech-to-Text | Узел Google Cloud или HTTP Request к REST API. | Бесплатно 60 минут аудио в месяц (постоянно, не только первый год). Высокая точность, особенно для английского. | Аккаунт Google Cloud Platform, создание проекта, включение API и получение JSON-ключа. |
| AssemblyAI (бесплатный уровень) | Узел HTTP Request. | Бесплатно 3 часа транскрибации в месяц с ограниченной функциональностью. Поддержка пунктуации, распознавание говорящих. | Регистрация на сайте и получение API ключа. |
| Hugging Face Inference API (модели Whisper) | Узел HTTP Request к API моделей, размещенных на Hugging Face (например, openai/whisper-large-v3). | Бесплатно, но с ограничениями по количеству запросов в день/минуту. Не требует собственной инфраструктуры. | Токен доступа Hugging Face. Необходимость обработки бинарных данных аудио в запросе. |
Пошаговая настройка рабочего процесса (Workflow) с использованием OpenAI Whisper API
Рассмотрим создание пайплайна, который по расписанию проверяет папку в Google Drive, забирает новые аудиофайлы, транскрибирует их через Whisper API и сохраняет результат обратно в виде текстового файла.
Шаг 1: Настройка триггера
Используйте узел Schedule Trigger для периодического запуска (например, каждый час) или узел Google Drive Trigger для реакции на появление нового файла в конкретной папке. Настройте узел с указанием пути к папке и типов файлов (например, .mp3, .m4a).
Шаг 2: Загрузка и подготовка аудиофайла
Используйте узел Google Drive (в режиме «Download») для получения бинарных данных файла. Важно: Whisper API принимает файлы напрямую в multipart/form-data запросе. В n8n можно передать бинарные данные из предыдущего узла. При необходимости конвертации формата используйте внешний сервис (например, вызвав FFmpeg через узел Execute Command) или облачный конвертер, но для Whisper это редко требуется.
Шаг 3: Отправка запроса к Whisper API
Добавьте узел HTTP Request. Настройте его следующим образом:
Шаг 4: Обработка и сохранение результата
Узел HTTP Request вернет JSON-объект с полем «text», содержащим транскрипт. Используйте узел Set для извлечения этого текста в отдельное поле. Затем создайте текстовый файл с помощью узла Code (чтобы сформировать содержимое) и загрузите его в Google Drive или другую файловую систему с помощью соответствующего узла (например, Google Drive > Upload). Имя файла можно сгенерировать на основе исходного, добавив суффикс «_transcript.txt».
Альтернатива: Создание локального сервера транскрибации на Vosk
Для полной независимости от облачных API и отсутствия лимитов разверните локальный сервер Vosk.
Установка и запуск сервера Vosk:
Настройка узла HTTP Request в n8n для Vosk:
Вместо OpenAI API укажите URL вашего локального сервера. Метод — POST, Body Content Type — «Multipart/Form-Data» или «Form-Urlencoded», передайте бинарные данные аудиофайла. Обработка ответа будет аналогичной, но структура JSON может отличаться (обычно путь $.text).
Оптимизация и постобработка транскрипта
Сырой транскрипт часто требует улучшения. В n8n можно добавить этапы постобработки:
Типовые рабочие процессы (Use Cases)
| Задача | Ключевые узлы n8n | Особенности |
|---|---|---|
| Автоматическое создание субтитров для видео на YouTube | YouTube Trigger → HTTP Request (Whisper) → Code (конвертация в SRT) → Google Drive Upload | Необходимо сначала извлечь аудиодорожку из видео. Можно использовать сервис типа yt-dlp через Execute Command или облачный конвертер. |
| Транскрибация звонков из CRM | CRM Webhook → HTTP Request (Vosk) → Set (извлечение текста) → Code (анализ тональности) → CRM Update | Требуется интеграция с CRM (HubSpot, Pipedrive) для получения записей разговоров. Добавлен этап анализа текста. |
| Ежедневная обработка подкастов | RSS Feed Read (подкаст) → HTTP Request (скачивание MP3) → HTTP Request (AssemblyAI) → Notion Create Page | Полная автоматизация: новая серия подкаста появляется в RSS, автоматически транскрибируется и публикуется в базе знаний Notion. |
Ответы на часто задаваемые вопросы (FAQ)
Вопрос 1: Какой метод транскрибации в n8n самый точный для русского языка?
Наиболее точными на сегодня являются модели семейства Whisper (от OpenAI). Их можно использовать через официальный API (есть бесплатные лимиты) или развернуть локально аналог (например, Whisper.cpp через HTTP-сервер). Vosk также предоставляет качественные модели для русского языка, особенно модель «vosk-model-ru-0.42», и является полностью бесплатным оффлайн-решением.
Вопрос 2: Можно ли транскрибировать длинные файлы (более 1 часа) бесплатно?
Да, но с оговорками. Бесплатные облачные API (Google, AssemblyAI) имеют месячные лимиты. Для длинных файлов предпочтительнее использовать локальный движок Vosk, который не имеет ограничений по длине, но требует достаточных вычислительных ресурсов и оперативной памяти, особенно для больших моделей. Whisper API имеет ограничение на размер файла (25 МБ), поэтому длинные записи необходимо разделять на сегменты перед отправкой.
Вопрос 3: Как в n8n обрабатывать видеофайлы для извлечения аудио?
n8n не имеет встроенных узлов для извлечения аудио из видео. Решение: использовать внешний инструмент. Самый надежный способ — настроить узел Execute Command для вызова FFmpeg (должен быть установлен на сервере n8n). Команда может выглядеть так: ffmpeg -i input.mp4 -q:a 0 -map a output.mp3. Альтернатива — использовать облачный сервис конвертации с API, но это может повлечь расходы.
Вопрос 4: Как добавить распознавание разных говорящих (diarization) в бесплатном решении?
Бесплатные API, такие как стандартный Whisper или Google STT на бесплатном тарифе, не всегда предоставляют эту функцию. AssemblyAI на бесплатном уровне предлагает распознавание говорящих. В локальном решении можно использовать комбинацию Vosk (для транскрибации) и отдельной модели для диаризации (например, pyannote.audio), но это значительно усложняет пайплайн и требует глубоких технических знаний для интеграции в n8n.
Вопрос 5: Где хранить API ключи и другие секреты в n8n?
Никогда не вставляйте ключи напрямую в конфигурацию узлов. Используйте встроенную систему Credentials n8n. При настройке узла (например, HTTP Request) выберите соответствующий тип аутентификации (Header Auth, Query Auth и т.д.) и создайте новые или выберите существующие учетные данные. Данные будут зашифрованы и защищены. Для переменных окружения (например, при запуске через Docker) используйте механизм ${…} в полях для подстановки значений из .env файла или настроек среды исполнения.
Заключение
n8n представляет собой гибкую и мощную платформу для построения полностью автоматизированных, бесплатных или условно-бесплатных систем транскрибации. Выбор между облачными API с лимитами и локальными оффлайн-движками зависит от требований к объему, конфиденциальности, точности и бюджету. Комбинируя различные узлы n8n, можно создавать сложные рабочие процессы, которые не только преобразуют речь в текст, но и осуществляют последующую обработку, анализ и интеграцию результатов в существующие бизнес-процессы. Ключ к успеху — тщательное проектирование пайплайна, правильная подготовка аудиоданных и выбор оптимального движка ASR под конкретную задачу.
Комментарии