OpenaiのWhisper Large V3を使用してオーディオを転写するAPI!搭載 ?トランス、最適&フラッシュアット
特徴:
めちゃくちゃ速いWhisper CLIプロジェクトに基づいています。このプロジェクトをローカルに設定するか、めちゃくちゃ速いウィスパーの背景を理解したい場合は、それをチェックしてください。
このプロジェクトは、スケーラブルな生産ユースケースのために、GPUを使用してクラウドインフラストラクチャ上のDockerを使用して、展開可能な燃えるような高速ウィスパーAPIを提供することに焦点を当てています。
fly.io最近のGPUサービスの起動により、フライマシンに簡単に展開するようにFly Configファイルを設定しました!ただし、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/非常に速いウィスパーAPI
fly.tomlのapp名の名前を変更してくださいimage = 'yoeven/insanely-fast-whisper-api:latest' 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はありません。
画像が巨大なので、初めて展開すると時間がかかります。後続の展開ははるかに高速になります。
スピーカーダイアリゼーションまたは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として利用可能です。ここに無料でサインアップしてください!
ADMIN_KEY Environment Secretをセットアップした場合。以前に設定したキーの値で、ヘッダーにx-admin-api-key渡す必要があります。
フライに展開された場合、ベースURLは次のようになります。
https://{app_name}.fly.dev/{path}
展開するクラウドプロバイダーに応じて、ベースURLは異なります。
/オーディオをテキストに転写または翻訳します
| 名前 | 価値 |
|---|---|
| URL(必須) | オーディオのURL |
| タスク | transcribe 、 translateデフォルト: transcribe |
| 言語 | None 、 en 、その他の言語デフォルト: None自動文字を検出言語を検出します |
| batch_size | 計算する並列バッチの数。 OOMSに直面した場合は減らします。デフォルト: 64 |
| タイムスタンプ | chunk 、 wordデフォルト: chunk |
| diarise_audio | スピーカーによるオーディオクリップをdiarise。 hf_tokenを設定する必要があります。デフォルト: false |
| webhook | webhookは、完了またはエラーの呼び出しをPOST 。デフォルト: None |
| webhook.url | Webhookを送信するURL |
| webhook.header | Webhookで送信するヘッダー |
| is_async | バックグラウンドでタスクを実行し、結果をWebHook URLに送信します。 true 、 falseデフォルト: false |
| managed_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フライマシンは2番目に充電され、自己停止する前に最大15分のアイドリングがかかる場合があります。 APIが完了したら、コストを節約するためにマシンをシャットダウンできます。これを行うには、次のエンドポイントにPOSTリクエストを送信できます。
https://api.machines.dev/v1/apps/<app_name>/machines/<machine_id>/stop
承認ヘッダー:
Authorization Bearer <fly_token>
ここでもっとリアーしてください
このプロジェクトは、JigsawStackの一部です。これは、コストを抑えながら、さまざまなユースケース向けの強力で開発者に優しいAPIのスイートです。ここに無料でサインアップしてください!