Qwen3-ASR-Toolkit: как убрать ограничение 3 минут/10 МБ и транскрибировать часы аудио

Что умеет Qwen3-ASR-Toolkit

Qwen3-ASR-Toolkit — это CLI-инструмент на Python с лицензией MIT, который делает Qwen3-ASR-Flash удобным для работы с длинными записями. Официальный API накладывает ограничение одной запроса в 3 минуты или 10 МБ — это подходит для интерактивных вызовов, но неудобно для часов аудио или пакетной обработки. Набор автоматизирует лучшие практики: сегментацию на паузах (VAD), нормализацию через FFmpeg, параллельную отправку запросов и постобработку текста, создавая стабильный конвейер для больших файлов.

Основные возможности

Как это работает внутри

Пайплайн реализован детерминировано:

  1. Загрузка локального файла или URL.
  2. VAD для поиска границ тишины и естественных точек разреза.
  3. Формирование кусочков, которые укладываются в лимиты 3 минуты/10 МБ.
  4. Пересэмплинг и нормализация до 16 kHz моно через FFmpeg.
  5. Параллельная отправка кусочков на DashScope/Qwen3-ASR.
  6. Аггрегация сегментов в порядке исходного материала.
  7. Постобработка текста: дедупликация, удаление повторов.
  8. Выдача .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.

Рекомендации для продакшена

Где смотреть код и примеры

Ссылка на GitHub содержит исходники, учебники и ноутбуки с примерами. Подписывайтесь на обновления проекта и сообщества, чтобы следить за улучшениями и примерами использования.