Ubuntu 20.04服务器部署SenseVoice-Small语音识别模型全流程详解
Ubuntu 20.04服务器部署SenseVoice-Small语音识别模型全流程详解最近有不少朋友在问有没有一个开箱即用、效果又不错的语音识别模型可以部署在自己的服务器上。我试了几个发现SenseVoice-Small这个模型挺有意思的它来自一个知名的开源社区在中文识别上表现不错而且对硬件要求相对友好。今天我就手把手带你走一遍如何在Ubuntu 20.04的服务器上从零开始把SenseVoice-Small模型跑起来。整个过程就像搭积木我们一步一步来确保你跟着做就能成功。无论你是想做个语音转文字的demo还是为后续的应用开发打基础这篇教程都能帮到你。1. 部署前准备理清思路与环境检查在开始敲命令之前我们先花几分钟搞清楚要做什么。整个部署流程可以概括为四个主要步骤准备系统环境、安装必要的驱动和工具、拉取并运行模型镜像、最后做一些优化设置让服务更稳定。首先你得有一台运行Ubuntu 20.04 LTS的服务器。我强烈建议使用带NVIDIA GPU的机器因为用GPU来跑语音识别模型速度会比CPU快上几十倍体验完全不一样。当然如果你只有CPU模型也能跑只是需要多一点耐心。登录你的服务器打开终端我们这就开始。2. 第一步打好基础——系统更新与依赖安装万事开头难但第一步往往最简单。我们先确保系统是最新的并且安装一些后续步骤必需的软件包。运行下面的命令来更新软件包列表并升级已有的包sudo apt update sudo apt upgrade -y这个命令可能会花点时间取决于你的系统有多少更新。完成后我们安装一些基础工具比如用于管理软件仓库的apt-transport-https以及后续可能会用到的工具sudo apt install -y apt-transport-https ca-certificates curl software-properties-common这些工具就像你的“瑞士军刀”在配置Docker等环节时会用到。3. 第二步解锁GPU能力——安装驱动与CUDA如果你有NVIDIA GPU这一步至关重要。它能让你的模型“飞起来”。我们分两个小步走先装驱动再装CUDA。3.1 安装NVIDIA显卡驱动首先添加NVIDIA的官方驱动仓库sudo add-apt-repository ppa:graphics-drivers/ppa -y sudo apt update接着安装适合你显卡的推荐版本驱动。你可以使用以下命令自动安装sudo apt install -y nvidia-driver-535这里的535是一个比较新且稳定的版本号。安装完成后一定要重启服务器让驱动生效。sudo reboot重启后重新登录运行nvidia-smi命令。如果能看到你的GPU信息表格那就恭喜你驱动安装成功了3.2 安装CUDA工具包CUDA是NVIDIA推出的并行计算平台很多AI模型都依赖它。我们安装CUDA 11.8这个相对兼容性较好的版本。访问NVIDIA官网找到对应版本的安装命令或者直接使用以下步骤wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub sudo add-apt-repository deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ / sudo apt update sudo apt install -y cuda-11-8安装完成后将CUDA添加到系统路径中。编辑你的~/.bashrc文件echo export PATH/usr/local/cuda-11.8/bin${PATH::${PATH}} ~/.bashrc echo export LD_LIBRARY_PATH/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH::${LD_LIBRARY_PATH}} ~/.bashrc source ~/.bashrc现在运行nvcc --version如果显示CUDA 11.8的版本信息说明安装正确。4. 第三步搭建容器环境——安装Docker与NVIDIA容器工具现在我们来安装Docker它可以帮助我们轻松地打包和运行应用。同时为了让Docker容器能使用GPU我们还需要安装NVIDIA Container Toolkit。4.1 安装Docker首先添加Docker的官方GPG密钥和软件源curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null sudo apt update然后安装Docker引擎sudo apt install -y docker-ce docker-ce-cli containerd.io安装完成后启动Docker服务并设置开机自启sudo systemctl start docker sudo systemctl enable docker为了不用每次都加sudo来运行docker命令可以将当前用户加入docker组sudo usermod -aG docker $USER注意执行此命令后你需要退出当前终端会话并重新登录这个改动才会生效。4.2 安装NVIDIA Container Toolkit这个工具是连接Docker和NVIDIA驱动的桥梁。按照官方步骤安装distribution$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt update sudo apt install -y nvidia-container-toolkit sudo systemctl restart docker现在你可以运行一个测试命令看看Docker能否调用GPUsudo docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu20.04 nvidia-smi如果这个命令能成功输出和直接在主机上运行nvidia-smi一样的GPU信息那么恭喜你的Docker GPU环境就配置好了。5. 第四步启动模型服务——拉取与运行镜像环境终于准备好了现在主角登场。我们将从一个公共的镜像平台拉取已经打包好SenseVoice-Small模型的Docker镜像并运行它。假设我们已经获取到了一个可用的镜像地址例如registry.example.com/sensevoice-small:latest请注意这是一个示例地址实际操作中请使用你从可靠平台获取的真实镜像地址。使用docker pull命令拉取镜像sudo docker pull registry.example.com/sensevoice-small:latest拉取完成后我们就可以运行这个镜像启动一个语音识别服务。通常这类模型会提供一个HTTP API接口。我们运行容器时需要将容器内的端口比如9000映射到宿主机的某个端口比如8080。sudo docker run -d \ --name sensevoice \ --gpus all \ -p 8080:9000 \ -v /path/to/your/audio_data:/app/audio_data \ registry.example.com/sensevoice-small:latest我来解释一下这条命令-d让容器在后台运行。--name sensevoice给容器起个名字方便管理。--gpus all将宿主机的所有GPU分配给容器使用。-p 8080:9000端口映射。将容器内的9000端口映射到宿主机的8080端口这样我们通过访问服务器的8080端口就能连接到服务。-v /path/to/your/audio_data:/app/audio_data数据卷挂载。将服务器上的一个目录挂载到容器内方便你上传待识别的音频文件或者容器输出识别结果。请将/path/to/your/audio_data替换成你服务器上的真实路径。最后是镜像名。运行后使用sudo docker ps查看容器状态显示Up就说明服务启动成功了。6. 第五步让服务更可靠——基础配置与优化服务跑起来了但我们还得做点收尾工作让它更稳定、更安全。6.1 配置防火墙如果启用如果你的服务器开启了防火墙如UFW需要放行我们映射的端口例如8080sudo ufw allow 8080/tcp sudo ufw reload6.2 设置容器开机自启我们希望服务器重启后这个语音识别服务能自动恢复。Docker本身提供了这个功能sudo docker update --restartalways sensevoice这样无论服务器因何重启这个名叫sensevoice的容器都会自动重新启动。6.3 进行简单的服务测试一切就绪后我们来做个快速测试确保API服务是活的。你可以使用curl命令curl http://localhost:8080/health或者如果服务有提供简单的测试接口curl http://localhost:8080/如果返回一些欢迎信息或状态信息比如{status: ok}那就说明服务部署成功正在等待你的调用了。具体的API调用方式如何上传音频、获取识别结果需要参考该镜像的详细文档。7. 写在最后跟着上面这些步骤走下来你应该已经在Ubuntu 20.04上成功部署了SenseVoice-Small语音识别模型。整个过程从系统准备到最终服务上线虽然步骤不少但每一步都有明确的目标。最关键的是GPU驱动、CUDA和Docker GPU环境的配置这几步通了后面就水到渠成。部署完成后你可以试着找一段中文音频文件按照该模型提供的API文档去调用一下听听识别效果。在实际使用中你可能会遇到音频格式、采样率或者网络调用方面的小问题这时候多查查文档和日志通常都能解决。这种基于Docker的部署方式非常清爽环境隔离得好以后想升级模型版本直接拉取新镜像、替换旧容器就行基本不会影响服务器上的其他服务。希望这个详细的流程能帮你省去一些摸索的时间。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。