OpenAI Whisper 教程:在 Docker 容器中创建 OpenAI Whisper API
什么是耳语?
Whisper 是 OpenAI 的一种自动最先进的语音识别系统,它已经接受了 680,000 小时的多语言和多任务监督数据的培训,这些数据是从网络上收集的。这个庞大而多样化的数据集提高了对口音、背景噪音和技术语言的鲁棒性。此外,它还支持多种语言的转录,以及将这些语言翻译成英语。OpenAI 发布了模型和代码,作为构建利用语音识别的有用应用程序的基础。
如何开始使用 Docker
首先,如果您计划在本地机器上运行容器,则需要安装 Docker。您可以在此处找到安装说明。为我们的文件创建一个文件夹,我们称之为创建一个名为 requirements.txt 的文件并添加whisper-api
flask给它创建一个名为 Dockerfile 的文件
在 Dockerfile 中,我们将添加以下行:
FROM python:3.10-slimWORKDIR /python-dockerCOPY requirements.txt requirements.txtRUN apt-get update && apt-get install git -yRUN pip3 install -r requirements.txtRUN pip3 install "git+https://github.com/openai/whisper.git" RUN apt-get install -y ffmpegCOPY . .EXPOSE 5000CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]
那么 Dockerfile 中到底发生了什么?
选择 python 3.10 slim 图像作为我们的基础图像。创建一个名为的工作目录将python-docker
我们的 requirements.txt 文件复制到工作目录更新 apt 包管理器并安装 git 从 requirements.txt 文件安装需求从 github 安装 whisper 包。安装 ffmpeg 并公开端口 5000 并运行烧瓶服务器。
如何创建我们的路线
创建一个名为 app.py 的文件,我们在其中导入所有必需的包并初始化 flask app 和 whisper。将以下行添加到文件中:
from flask import Flask, abort, requestfrom tempfile import NamedTemporaryFileimport whisperimport torch# Check if NVIDIA GPU is availabletorch.cuda.is_available()DEVICE = "cuda" if torch.cuda.is_available() else "cpu"# Load the Whisper model:model = whisper.load_model("base", device=DEVICE)app = Flask(__name__)
现在我们需要创建一个路由,该路由将接受一个带有文件的发布请求。将以下行添加到 app.py 文件中:
@app.route("/")def hello(): return "Whisper Hello World!"@app.route('/whisper', methods=['POST'])def handler(): if not request.files: # If the user didn't submit any files, return a 400 (Bad Request) error. abort(400) # For each file, let's store the results in a list of dictionaries. results = [] # Loop over every file that the user submitted. for filename, handle in request.files.items(): # Create a temporary file. # The location of the temporary file is available in `temp.name`. temp = NamedTemporaryFile() # Write the user's uploaded file to the temporary file. # The file will get deleted when it drops out of scope. handle.save(temp) # Let's get the transcript of the temporary file. result = model.transcribe(temp.name) # Now we can store the result object for this file. results.append({ 'filename': filename, 'transcript': result['text'], }) # This will be automatically converted to JSON. return {'results': results}
如何运行容器?
打开终端并导航到您创建文件的文件夹。运行以下命令来构建容器:
docker build -t whisper-api .
运行以下命令以运行容器:
docker run -p 5000:5000 whisper-api
如何测试API?
http://localhost:5000/whisper
您可以通过向其中包含文件的路由发送 POST 请求来测试 API 。Body 应为 form-data。您可以使用以下 curl 命令测试 API:
curl -F "file=@/path/to/file" http://localhost:5000/whisper
结果你应该得到一个 JSON 对象,里面有文字记录。
如何部署API?
这个 API 可以部署在任何可以使用 Docker 的地方。请记住,此设置当前使用 CPU 处理音频文件。如果您想使用 GPU,则需要更改 Dockerfile 并共享 GPU。我不会深入介绍,因为这是一个介绍。Docker GPU
你可以在这里找到整个代码
谢谢你!– AI未来百科 ; 探索AI的边界与未来! 懂您的AI未来站