使用Whisper模型和FastAPI构建容器化的转录API

🌟目录

  • 引言
  • 构建API服务的需求
  • 使用whisper进行语音转文本
  • 使用Docker容器化API服务
  • 安装Docker
  • 创建Dockerfile
  • 构建Docker镜像
  • 运行API服务
  • 测试API服务
  • 总结

🌞引言

大家好,欢迎来到AI anytime频道。在本视频中,我们将构建一个语音转文本的API服务。我们将使用whisper作为SOA模型进行转录,该模型是由OpenAI开发的。原本whisper被开源为一个模型,但现在也可以通过API来使用。在本视频中,我们将把whisper模型打包成一个运行在Docker容器中的API服务。Docker是一种容器技术,可以帮助我们方便地交付软件,无需担心依赖关系、版本和冲突等问题。它利用Docker引擎来运行容器。让我们开始构建吧!

🌞构建API服务的需求

我们的重点是构建一个运行在Docker容器中的API服务。为此,我们需要完成以下几个步骤:

  • 安装Docker
  • 创建Dockerfile
  • 构建Docker镜像
  • 运行API服务

在这个过程中,我们将使用Python作为编程语言,并使用FastAPI作为后端框架。此外,我们还将使用whisper模型进行语音转文本。

🌞使用whisper进行语音转文本

我们将使用whisper模型来进行语音转文本。whisper库提供了一个load_model函数,可以加载模型。通过传入模型名称,我们可以选择不同的模型大小。在本项目中,我们将使用base模型,这是一个在CPU性能较好的机器上运行的模型。对于具有更好计算性能的机器,例如大型服务器,我们也可以使用其他的模型大小。

🌞使用Docker容器化API服务

为了将API服务容器化,我们需要使用Docker。Docker是一种容器技术,它可以将我们的应用程序和所有依赖项打包到一个独立的容器中。这样一来,我们可以轻松地在不同的环境中部署和运行我们的应用程序,而无需担心环境差异和依赖冲突。

为了开始构建Docker容器,我们首先需要安装Docker引擎。在安装完成后,我们可以通过创建一个名为Dockerfile的文件来定义如何构建容器。Dockerfile中包含一系列指令,用于定义容器的基础镜像、安装依赖项、配置环境变量和运行应用程序等。完成Dockerfile后,我们可以使用Docker引擎来构建镜像,并将镜像运行在容器中。

🌞安装Docker

在开始之前,我们需要先安装Docker。Docker提供了适用于不同操作系统的安装程序。您可以根据您的操作系统选择相应的安装程序进行安装。安装完成后,您可以使用以下命令验证是否成功安装了Docker:

docker --version

如果成功安装了Docker,您应该看到Docker的版本号。

🌞创建Dockerfile

Dockerfile是用来构建Docker镜像的文件。我们将在其中定义构建镜像的步骤。下面是一个示例Dockerfile的内容:

# 定义基础镜像
FROM python:3.10-slim

# 创建工作目录
WORKDIR /app

# 拷贝requirements.txt文件到工作目录
COPY requirements.txt /app

# 安装依赖项
RUN pip install -r requirements.txt

# 将应用程序代码复制到工作目录
COPY app.py /app

# 暴露端口
EXPOSE 8000

# 运行应用程序
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]

在Dockerfile中,我们首先指定了基础镜像,使用了Python 3.10版本的slim镜像。然后,我们创建一个名为/app的工作目录,并将requirements.txt文件复制到工作目录中。接下来,我们安装了requirements.txt中定义的依赖项。然后,我们将app.py文件复制到工作目录中。最后,我们使用EXPOSE指令指定了应用程序将要监听的端口,并使用CMD指令定义了运行应用程序的命令。

🌞构建Docker镜像

在完成Dockerfile的编写后,我们可以使用Docker引擎来构建镜像。打开终端或命令提示符,进入Dockerfile所在的目录,然后执行以下命令:

docker build -t my-api-image .

这个命令将会根据Dockerfile中的指令构建一个镜像,并将其命名为my-api-image。构建过程可能需要一些时间,具体的时间取决于您的网络速度和计算机性能。完成后,您可以使用以下命令查看已构建的镜像:

docker images

您应该能够看到名为my-api-image的镜像。

🌞运行API服务

在构建镜像之后,我们就可以将镜像运行在容器中,以启动我们的API服务。使用以下命令来启动容器:

docker run -d -p 8000:8000 my-api-image

这个命令将会在后台运行一个容器,并将容器内的8000端口映射到主机的8000端口。这样一来,我们就可以通过访问http://localhost:8000来访问我们的API服务了。

🌞测试API服务

现在,我们可以使用任何API客户端来测试我们的API服务。您可以使用Postman、curl或任何其他工具来发送POST请求,并将音频文件上传到我们的API服务。API服务将会返回音频的转文本结果。

我们可以使用以下命令来测试API服务:

curl -X POST -F "file=@audio.mp3" http://localhost:8000/whisper

这个命令将会向API服务发送一个POST请求,上传名为audio.mp3的音频文件。API服务将会返回该音频的转文本结果。

🌞总结

在本视频中,我们使用了whisper模型和Docker容器来构建一个语音转文本的API服务。我们首先安装了Docker,并创建了一个Dockerfile来定义如何构建镜像。然后,我们使用Docker引擎来构建镜像,并将镜像运行在容器中。最后,我们使用API客户端来测试API服务。通过使用Docker容器进行部署,我们可以方便地在不同的环境中运行我们的应用程序,而无需担心环境差异和依赖冲突。

如果您有任何问题或反馈,请随时在评论区留言。如果您对本视频有所收获,请不要忘记点赞和分享。感谢您的观看,我们下期再见!

资源:

  • whisper模型的GitHub仓库
  • Docker官方网站
  • FastAPI官方网站
  • Postman官方网站