目标:使用开源模型本地离线部署语音识别工具
本次部署用到的环境:
- IDE:Pycharm
- Git
- 环境管理工具:Conda(使用Conda创建一个python3.10的虚拟环境,开发时虚拟环境的Python库按需安装有利于控制虚拟环境文件保持一个较小的体积,便于后续环境的迁移部署,推荐使用Miniconda,体积小,捆绑少)
- 操作系统:Windows10
模型选择:
SenseVoiceSmall、FSMN
用到的网站:
Github、Modelscope
一、环境准备与模型下载
(一)安装Git、Pycharm、Miniconda
- 在系统上成功安装并配置好环境变量后进入命令行创建python3.10虚拟环境。
conda create -n python310 python=3.10
- 安装ffmpeg
解压下载的ffmpeg压缩包,将你解压的ffmpeg中的bin 文件夹路径添加到系统环境变量Path中。
(二)下载模型
准备一个空文件夹(建议使用英文路径),在此处打开Git命令行(安装Git后右键菜单会有“Git Bash Here”,直接在该文件夹下单击即可打开)
git clone https://gitclone.com/github.com/FunAudioLLM/SenseVoice.git
git clone https://www.modelscope.cn/iic/SenseVoiceSmall.git
3、下载FSMN语音端点检测模型(用于检测长语音片段中有效语音的起止时间点)
git clone https://www.modelscope.cn/iic/speech_fsmn_vad_zh-cn-16k-common-pytorch.git
二、依赖安装和代码修改
模型下载成功后应如下图所示:
命令行进入SenseVoice文件夹找到 requirements.txt 这个文件,里面大致是如下内容:
torch<=2.3
torchaudio
modelscope
huggingface
huggingface_hub
funasr>=1.1.3
numpy<=1.26.4
gradio
fastapi>=0.111.1
命令行在该文件所在文件夹下运行如下命令:
conda activate python310
pip install -r requirements.txt
在该文件夹下找到 webui.py ,使用记事本打开:
修改图中红框圈出的部分,修改model和vad_model文件所在的路径为本地路径(注释掉的为该文件原本代码),添加一句disable_update=True
关掉代码执行时自动检查更新,修改后保存文件。
在该目录下进入命令行运行python webui.py
启动Web端服务,也可在你创建好的Pycharm工程项目中编写如下脚本远程一键启动:
# 调用CMD执行脚本
# encoding:utf-8
import os
# 获取绝对路径
path = 'D:\SpeechRecognize\SenseVoice'
path = path.replace("/", "\\") # 修改路径为命令行可正确识别的路径,replace要用双引号,否则会报错
os.system(f"cd {path} && python ./webui.py")
启动成功后出现如下信息:
进入 http://127.0.0.1:7860 出现如下页面:
至此可进行简单的使用与开发 OWO
文中提到的SenseVoice语音识别模型文件我已打包成资源,其中webui.py的代码改动与文中一致,需要的可自行下载解压 ≥w≤
注:资源包中的代码内容来源于文中提到的Git拉取源码的三个网址,开源代码仅做收集整理,请勿用于违法用途;如果你更倾向于在线下载,可只Git拉取上面提到的SenseVoice模型,下载后文件夹大小为13M,运行 webui.py 时找不到model.pt文件(SenseVoiceSmall模型)和 vad模型会自动联网下载,但容易因网络问题出现下载失败的情况,因此强烈建议先单独下载好模型再手动配置文件路径。