Qwen3-ASR-Toolkit: как убрать ограничение 3 минут/10 МБ и транскрибировать часы аудио
Что умеет Qwen3-ASR-Toolkit
Qwen3-ASR-Toolkit — это CLI-инструмент на Python с лицензией MIT, который делает Qwen3-ASR-Flash удобным для работы с длинными записями. Официальный API накладывает ограничение одной запроса в 3 минуты или 10 МБ — это подходит для интерактивных вызовов, но неудобно для часов аудио или пакетной обработки. Набор автоматизирует лучшие практики: сегментацию на паузах (VAD), нормализацию через FFmpeg, параллельную отправку запросов и постобработку текста, создавая стабильный конвейер для больших файлов.
Основные возможности
- Обработка длинных записей: входной файл разбивается по естественным паузам с помощью VAD. Каждый кусок удерживается ниже лимитов API, затем результаты объединяются в исходном порядке.
- Параллелизм: пул потоков отправляет несколько частей одновременно к DashScope-эндпоинтам, что сокращает общее время обработки для часовых материалов. Количество потоков настраивается через -j/–num-threads.
- Нормализация формата и частоты: распространённые контейнеры (MP4, MOV, MKV, MP3, WAV, M4A и т.д.) конвертируются в моно 16 kHz — требуемый формат API — с помощью FFmpeg. FFmpeg должен быть доступен в PATH.
- Очистка текста и контекст: постобработка уменьшает повторы и галлюцинации. Поддерживается подача контекста для повышения точности по доменным терминам; API также предлагает переключатели для определения языка (LID) и обратной нормализации текста (ITN).
Как это работает внутри
Пайплайн реализован детерминировано:
- Загрузка локального файла или URL.
- VAD для поиска границ тишины и естественных точек разреза.
- Формирование кусочков, которые укладываются в лимиты 3 минуты/10 МБ.
- Пересэмплинг и нормализация до 16 kHz моно через FFmpeg.
- Параллельная отправка кусочков на DashScope/Qwen3-ASR.
- Аггрегация сегментов в порядке исходного материала.
- Постобработка текста: дедупликация, удаление повторов.
- Выдача .txt транскрипта с именем исходного файла.
Такой подход позволяет обрабатывать большие архивы или длинные захваты без написания собственной оркестрации.
Быстрый старт
Требования: Python 3.8+ и FFmpeg в PATH. Установка пакета:
pip install qwen3-asr-toolkit
Установка FFmpeg при необходимости:
# System: FFmpeg must be available
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt update && sudo apt install -y ffmpeg
Установка CLI (как в документации):
pip install qwen3-asr-toolkit
Настройка ключа:
# International endpoint key
export DASHSCOPE_API_KEY="sk-..."
Запуск утилиты:
# Basic: local video, default 4 threads
qwen3-asr -i "/path/to/lecture.mp4"
# Faster: raise parallelism and pass key explicitly (optional if env var set)
qwen3-asr -i "/path/to/podcast.wav" -j 8 -key "sk-..."
# Improve domain accuracy with context
qwen3-asr -i "/path/to/earnings_call.m4a" \
-c "tickers, CFO name, product names, Q3 revenue guidance"
Результат печатается в консоль и сохраняется как <input_basename>.txt. Полезные аргументы: -i/–input-file (путь к файлу или URL), -j/–num-threads, -c/–context, -key/–dashscope-api-key, -t/–tmp-dir, -s/–silence.
Рекомендации для продакшена
- Зафиксируйте версию пакета в зависимостях.
- Убедитесь, что используете правильный региональный эндпоинт и соответствующий ключ.
- Подбирайте число потоков (-j) в соответствии с пропускной способностью сети и допустимым QPS, чтобы избежать троттлинга.
- Применяйте подачу контекста для снижения ошибок в доменной лексике и переключатели LID/ITN для управления языком и форматированием.
Где смотреть код и примеры
Ссылка на GitHub содержит исходники, учебники и ноутбуки с примерами. Подписывайтесь на обновления проекта и сообщества, чтобы следить за улучшениями и примерами использования.