使用Docker在Linux服务器本地部署PaddleSpeech Web服务
一、本地化部署开源模型库PaddleSpeech
1. 从官方Docker Hub拉取环境
```bash
# GPU版本
docker pull paddlecloud/paddlespeech:develop-gpu-cuda10.2-cudnn7-latest
# CPU版本
docker pull paddlecloud/paddlespeech:develop-cpu-latest
```
更多版本:https://hub.docker.com/r/paddlecloud/paddlespeech/tags
2. 启动容器并分派端口
```bash
# GPU推理
docker run -v $PWD:/mnt -p 8888:8888 --gpus all -it 镜像名:标签名 /bin/bash
# CPU推理
docker run -v $PWD:/mnt -p 8888:8888 -it 镜像名:标签名 /bin/bash
```
其中8888为docker分配映射的端口。
3. 自然语言处理工具库NLTK安装
方法一:使用nltk
自带的download()
下载,由于国内网络问题,大概率失败。
python # 进入python环境
import nltk # 引入nltk包
nltk.download()
方法二:从下载文件手动安装包。
链接:https://pan.baidu.com/s/1nQveCEAucFSNbuOAsrs6yw?pwd=yydh
提取码:yydh
从百度网盘下载nltk_data.zip
python # 进入python环境
import nltk
from nltk.book import *
你会得到这样的输出:
将文件夹中的nltk_data.zip放入以上任意一个路径后解压即可。
相关警告:
[nltk_data] Error loading averaged_perceptron_tagger: <urlopen error
[nltk_data] [Errno 99] Cannot assign requested address>
[nltk_data] Error loading cmudict: <urlopen error [Errno 99] Cannot
[nltk_data] assign requested address>
二、前后端环境部署
cd /home/PaddleSpeech/demos/speech_web
1. 后端环境安装
cd speech_server
pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
cd ..
2. 下载相关模型
只需手动下载语音指令所需模型即可,其他模型会自动下载。
cd speech_server
mkdir -p source/model
cd source/model
# 下载IE模型
wget https://bj.bcebos.com/paddlenlp/applications/speech-cmd-analysis/finetune/model_state.pdparams
cd ../../../
3. 更新paddlepaddle版本
# CPU版本
pip uninstall paddlepaddle
pip install paddlepaddle
# GPU版本
pip uninstall paddlepaddle-gpu
pip install paddlepaddle-gpu
4. 启动后端服务
cd speech_server
# 端口与启动容器时建立映射的端口一致
python main.py --port 8888
5. 通过nvm安装node.js
a. 安装nvm
git clone https://github.com/nvm-sh/nvm.git
bash install.sh
nvm
# 此时若显示版本号,则安装成功,若显示Command 'nvm' not found,则关闭当前shell,重新连接即可。
sudo vi ~/.bashrc # 修改环境变量
# 在最后添加淘宝镜像
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/
export NVM_IOJS_ORG_MIRROR=http://npm.taobao.org/mirrors/iojs
source ~/.profile # 让配置生效
b. 安装node
nvm install stable # 安装最新稳定版node
6. 前端环境安装(在你要启动前端服务的设备上安装)
推荐在Windows系统使用Vscode安装
# 拉取客户端代码,不会用git可以点进这个连接手动下载
git clone https://github.com/PaddlePaddle/PaddleSpeech/demos/speech_web/web_client.git
cd web_client # 进入前端目录(若在另一台设备上开启前端服务,只需要web_client文件夹)
npm install -g yarn # 使用yarn安装前端依赖
yarn install
7. 修改前端的后端配置文件(若在服务器本机运行前端则不需要)
a. 修改第一个文件./web_client/vite.config.js
server: {
host: "0.0.0.0",
proxy: {
"/api": {
target: "http://localhost:8010", // 这里改成后端所在接口
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ""),
},
},
}
b. 修改第二个文件./web_client/src/api/API.js
// websocket (这里改成后端所在的接口)
CHAT_SOCKET_RECORD: 'ws://localhost:8010/ws/asr/offlineStream', // ChatBot websocket 接口
ASR_SOCKET_RECORD: 'ws://localhost:8010/ws/asr/onlineStream', // Stream ASR 接口
TTS_SOCKET_RECORD: 'ws://localhost:8010/ws/tts/online', // Stream TTS 接口
8. 启动前端服务
cd web_client
yarn dev –port 8011
#自此可以访问前端网页服务