用Openai的Whisper大V3轉錄音頻的API!供電 ?變形金剛,最佳和閃光燈
特徵:
基於瘋狂的快速耳語CLI項目。如果您想在本地設置此項目,或者了解瘋狂狂歡的背景,請檢查一下。
該項目的重點是為雲基礎架構提供可部署的燃燒快速耳語API,用於雲基礎架構,用於可擴展生產用例。
隨著Fly.io最近的GPU服務發布,我已經設置了Fly配置文件,可以輕鬆在飛行機上部署!但是,您可以在支持GPU和Docker的任何其他VM環境中進行部署。
這是我們在NVIDIA A100-80GB上運行的一些基準,並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秒) |
使用GPU和加載模型的飛行機的估計啟動時間約為20秒。其餘時間用於實際計算。
yoeven/insanely-fast-whisper-api:latest
Docker Hub:Yoeven/Mantanely-Fast-Whisper-Api
fly.toml中重命名app名稱image = 'yoeven/insanely-fast-whisper-api:latest' in fly.toml ,僅當您想從Dockerfile重建圖像時如果還沒有安裝Fly CLI
您只需要在您第一次啟動新的飛行應用程序時運行此操作
fly launch Fly會提示: 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可以進行和部署。
您第一次部署它將需要一些時間,因為圖像很大。隨後的部署將更快。
如果要設置揚聲器診斷或驗證令牌以保護您的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提供,具有增強的雲可擴展性,可提高成本效率和高正常運行時間。在這裡免費註冊!
如果您已經設置了ADMIN_KEY環境秘密。您需要在標題中傳遞x-admin-api-key並具有先前設置的密鑰的值。
如果部署在飛行中,則基本URL應該看起來像這樣:
https://{app_name}.fly.dev/{path}
根據您部署到的雲提供商的不同,基本URL將有所不同。
/將音頻轉錄或翻譯成文本
| 姓名 | 價值 |
|---|---|
| URL(必需) | 音頻的URL |
| 任務 | transcribe , translate默認: transcribe |
| 語言 | None , en ,其他語言默認: None自動檢測語言 |
| batch_size | 您要計算的並行批次數量。如果您面對OOM,請減少。默認值: 64 |
| 時間戳 | chunk , word默認: chunk |
| diarise_audio | 通過揚聲器透露音頻剪輯。您需要設置HF_Token。默認值: false |
| Webhook | Webhook POST有關完成或錯誤的電話。默認值: None |
| webhook.url | url發送webhook |
| webhook.header | 與Webhook一起發送的標題 |
| IS_ASYNC | 在後台運行任務,並將結果發送到Webhook URL。 true , false默認值: false |
| MANSED_TASK_ID | 自定義任務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,用於各種用例,同時保持成本較低。在這裡免費註冊!