API для транскрибирования звука с Whisper's Whisper's Whisper V3! Питаться от ? Трансформаторы, Оптимальный и Флэш-Аттн
Функции:
Основываясь на безумно быстром проекте Whisper CLI. Проверьте это, если вы хотите настроить этот проект локально или понять фон безумно-ухоженных.
Этот проект ориентирован на предоставление развертываемого быстрого шепота API с Docker на облачной инфраструктуре с графическими процессорами для масштабируемых вариантов использования производства.
С недавним запуском сервиса GPU Fly.io я настроил файл конфигурации Fly для легкого развертывания на Fly Machines! Тем не менее, вы можете развернуть это в любой другой среде виртуальной машины, которая поддерживает GPU и Docker.
Вот несколько тестов, которые мы бежали на NVIDIA A100 - 80 ГБ и Fly.io GPU Infra?
Тип оптимизации | Время транскрибировать (150 минут звука) |
---|---|
Большой V3 (трансформаторы) ( fp16 + batching [24] + Flash Attention 2 ) | ~ 2 ( 1 мин 38 с ) |
Большой V3 (трансформаторы) ( fp16 + batching [24] + Flash Attention 2 + diarization ) | ~ 2 ( 3 мин 16 с ) |
Большой-V3 (трансформаторы) ( fp16 + batching [24] + Flash Attention 2 + fly machine startup ) | ~ 2 ( 1 мин 58 с ) |
Большой V3 (трансформаторы) ( fp16 + batching [24] + Flash Attention 2 + diarization + fly machine startup ) | ~ 2 ( 3 мин 36 с ) |
Расчетное время запуска для машины Fly с графическим процессором и загрузкой модели составляет около ~ 20 секунд. Остальное время тратится на фактические вычисления.
yoeven/insanely-fast-whisper-api:latest
Docker Hub: yoeven/безумно-фаст-то-апи
app
в fly.toml
если хотитеimage = 'yoeven/insanely-fast-whisper-api:latest'
в fly.toml
только если вы хотите восстановить изображение из Dockerfile
Установите Fly CLI, если его еще нет
Нужно запустить это только при первом запуске нового приложения Fly Fly
fly launch
Fly Will Prism: Would you like to copy its configuration to the new app? (y/N)
. Да ( y
), чтобы скопировать конфигурацию из репо.
Fly будет предпринять: Do you want to tweak these settings before proceeding
если вам нечего приспособиться. Большинство необходимых настроек уже настроены в файле fly.toml
. Нет n
чтобы продолжить и развернуть.
При первом развертывании это займет некоторое время, так как изображение огромно. Последующие развертывания будут намного быстрее.
Запустите следующее, если вы хотите настроить дневник динамика или токен Auth, чтобы обеспечить ваш API:
fly secrets set ADMIN_KEY= < your_token > HF_TOKEN= < your_hf_key >
Запустите fly secrets list
, чтобы проверить, существуют ли секреты.
Чтобы получить токен для обнимающегося лица для дневника динамика, вам нужно сделать следующее:
pyannote/segmentation-3.0
Условия пользователяpyannote/speaker-diarization-3.1
Условия пользователяhf.co/settings/tokens
.Ваш API должен выглядеть примерно так:
https://insanely-fast-whisper-api.fly.dev
Запустите fly logs -a insanely-fast-whisper-api
чтобы просмотреть журналы в реальном времени вашего муха.
Поскольку это приложение Dockerized, вы можете развернуть его для любого облачного провайдера, который поддерживает Docker и GPU с несколькими настройками конфигурации.
JigsawStack предоставляет кучу мощных API для различных вариантов использования, сохраняя при этом затраты низкими. Этот проект доступен в качестве полностью управляемого API здесь с повышенной масштабируемостью облака для эффективности затрат и высокой работой. Зарегистрируйтесь здесь бесплатно!
Если вы установили секрет Environment ADMIN_KEY
. Вам нужно будет пройти x-admin-api-key
в заголовке со значением ключа, который вы ранее установили.
При развертывании на Fly базовый URL должен выглядеть примерно так:
https://{app_name}.fly.dev/{path}
В зависимости от поставщика облачного, для которого вы развертываете, базовый URL будет другим.
/
Транскрибировать или перевести звук в текст
Имя | ценить |
---|---|
URL (требуется) | URL аудио |
задача | transcribe , translate по умолчанию: transcribe |
язык | None , en , другие языки по умолчанию: None . |
batch_size | Количество параллельных партий, которые вы хотите вычислить. Уменьшите, если вы столкнетесь с Opoms. По умолчанию: 64 |
временная метка | chunk , word по умолчанию: chunk |
Diarise_Audio | Дневник аудиоклипов от динамика. Вам нужно будет установить hf_token. по умолчанию: false |
Webhook | POST -вызов Webhook по завершению или ошибке. по умолчанию: None |
webhook.url | URL отправить веб -крюк |
webhook.header | Заголовки, чтобы отправить с веб -крючком |
is_async | Запустите задачу в фоновом режиме и отправляет результаты на URL -адрес Webhook. true , false по умолчанию: false |
Managed_task_id | Пользовательский идентификатор задачи, используемый для ссылки на постоянную задачу. по умолчанию: uuid() v4 will be generated for each transcription task |
/tasks
Получите все активные задачи транскрипции, как асинхронные фоновые задачи, так и текущие задачи
/status/{task_id}
Получите статус задачи, выполненные задачи будут удалены из списка, который может бросить ошибку
/cancel/{task_id}
Отменить асинхронизированную фоновую задачу. Только задания по транскрипции, созданные с помощью is_async
, установленного в true
могут быть отменены.
# clone the repo
$ git clone https://github.com/jigsawstack/insanely-fast-whisper-api.git
# change the working directory
$ cd insanely-fast-whisper-api
# install torch
$ pip3 install torch torchvision torchaudio
# upgrade wheel and install required packages for FlashAttention
$ pip3 install -U wheel && pip install ninja packaging
# install FlashAttention
$ pip3 install flash-attn --no-build-isolation
# generate updated requirements.txt if you want to use other management tools (Optional)
$ poetry export --output requirements.txt
# get the path of python
$ which python3
# setup virtual environment
$ poetry env use /full/path/to/python
# install the requirements
$ poetry install
# run the app
$ uvicorn app.app:app --reload
Машины мух заряжаются вторым и могут занять до 15 минут холостого хода, прежде чем он решит закрыть себя. Вы можете закрыть машину, когда закончите с API, чтобы сэкономить расходы. Вы можете сделать это, отправив запрос POST
в следующую конечную точку:
https://api.machines.dev/v1/apps/<app_name>/machines/<machine_id>/stop
Заголовок авторизации:
Authorization Bearer <fly_token>
Ури больше здесь
Этот проект является частью JigsawStack - набора мощных и дружелюбных API -интерфейсов для разработчиков для различных вариантов использования при сохранении низких затрат. Зарегистрируйтесь здесь бесплатно!