最近我在一台阿里云轻量级服务器上成功部署了一个语音转文字(Speech-to-Text)的全栈 Demo,支持 Whisper 模型的语音转写,还可以选择 AI 自动纠错,并支持中文和英文语音测试。这篇文章将完整记录从环境配置、项目部署、模型下载到使用效果的全过程,帮助你快速上手。
本文承接上一篇文章,
开源音视频转文字工具:基于 Vosk 和 Whisper 的多语言语音识别项目
一、服务器与系统环境
- 云服务器:阿里云 99 元/年的轻量服务器
- 配置:2 核 CPU + 2G 内存 + 3Mbps 带宽
- 系统版本:Alibaba Cloud Linux 3 (OpenAnolis Edition) x86_64
- Python 环境:系统自带 Python 3.7.16,另安装 Python 3.10.14
- 可视化面板:宝塔面板(免费版 9.5.0)
二、项目部署步骤
1. 克隆代码仓库
打开宝塔面板 → 终端,进入你希望存放项目的目录(如 /www/wwwroot
):
cd /www/wwwroot
git clone https://gitee.com/phpervip/speech-to-text.git
cd speech-to-text
pip install -r requirements.txt
2. 使用宝塔添加 Python 项目
-
打开宝塔 → 网站 → Python 项目 → 添加新项目
-
选择 Python 版本为 3.10.14
-
启动命令填写:
streamlit run app.py --server.port 8501 --server.address 0.0.0.0
如图:
- 保存后,如果状态显示为「启动中」,可以进入【设置】查看实时输出或错误日志,定位启动失败原因。
启动成功后:
三、安装 ffmpeg 支持音视频格式转换
- 打开宝塔 → 软件商店 → 搜索
ffmpeg管理器
- 安装(我选择的是
ffmpeg-6.1
)
- 安装完成后在终端测试:
ffmpeg
如返回版本信息说明安装成功。
四、开放服务器端口 & 设置域名访问
1. 在阿里云控制台开放 8501 端口
- 控制台 → 安全组 → 添加入方向规则 → TCP → 端口范围:8501
2. 使用宝塔设置反向代理和 SSL
-
宝塔 → 网站 → 反向代理
- 添加代理规则指向:
http://127.0.0.1:8501
- 绑定域名如:
stt.xiuxinwenhua.com
- 添加代理规则指向:
-
添加 SSL(可使用 Let’s Encrypt 免费证书)
五、下载 Whisper 模型(重点)
系统默认从 Hugging Face 下载模型可能较慢,可以手动下载:
# 登录服务器终端
wget https://openaipublic.azureedge.net/main/whisper/models/ed3a0b6b1c0edf879ad9b11b1af5a0e6ab5db9205f891f668f8b0e6c6326e34e/base.pt -P ~/.cache/whisper/
wget https://openaipublic.azureedge.net/main/whisper/models/345ae4da62f9b3d59415adc60127b97c714f32e89e936602e85993674d08dcb1/medium.pt -P ~/.cache/whisper/
📌 路径默认是
~/.cache/whisper/
,也可以通过代码修改加载路径。
六、实际使用说明
虽然我的服务器配置有限,运行速度不算快,但还是能流畅处理几秒的语音测试文件。你可以根据需要选择:
- base 模型:转写速度快,准确率适中
- medium 模型:更高的准确率,但运行速度慢,对资源要求高。
推荐至少 8G 内存 或更高配置用于生产部署。
注:我在示例服务器只下载了whisper的base, medium 的多语言模型。vosk 就没有下载了。
所以没有vosk可选,whisper模型也只有base,medium.
你也可以下载vosk的模型,whisper的其他模型,再把选择项显示出来。
若使用vosk的其他语言时,还需要修改代码。
七、功能体验图示
✅ 无 AI 纠错,仅语音转写:
✅ 启用 AI 纠错(中文):
✅ 英文语音转写:
✅ 下载结果文件(ZIP 包):
⚠️ 提醒:由于页面是单页结构(Streamlit 单页面应用),点击下载后记得立即保存,否则页面刷新后需重新上传并转写!
遇错处理
在二次开发的情况下,本地增加新功能,安装了新的依赖,本地运行正常,却忘记更新requirements.txt,线上没有更新依赖,就会报类似错误,
原因:缺少模块
解决办法:增加模块
正确做法,把新增的依赖写入requirements.txt,线上也重新
pip install -r requirements.txt
八、部署建议与总结
- 本地局域网部署:如公司内部使用,可部署在内网机器,无需公网与 SSL 配置。
- 使用场景:语音会议摘要、教育课程录音整理、播客转写、客服记录等。
- 适配优化:可拓展支持
vosk
模型、多语言切换、转写历史保存功能等。
结语
这个项目是一次低成本、高实用性的小型 AI 应用部署实践,特别适合个人开发者和中小团队快速体验语音转文字技术。你可以自由扩展它的前后端功能,甚至对接微信、钉钉、飞书等做深度集成。
项目源码地址:Gitee - speech-to-text
欢迎交流、建议或二次开发反馈~