用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,用于各种用例,同时保持成本较低。在这里免费注册!