Windows下基于 SenseVoice模型的本地语音转文字工具
Windows下基于 SenseVoice模型的本地语音转文字工具
前言:
现在很流行Vibe Coding但是指挥大模型写代码其实也是一件非常累的事情,经常需要输入大段的文字去描述问题的现象以及具体的解决方案。刚好看到有一些博主通过本地部署语音大模型实现了语音转文字的功能,然后用语音转文字去指导大模型干活,这确实很方便。
所以自己也去研究了一下可以本地部署的语音识别大模型,通过本地部署这个大模型然后再实现一个客户端程序去与语音识别模型对接,然后全局的通过一个按钮触发语音识别再把识别到的信息输入到窗口。这样可以大大的降低人工体能的消耗非常 nice,后续还可以做一些大模型的联动或许可以做一个自己电脑上的智能体,跟它在电脑的任何使用场景进行一些聊天。
注意:本人是在 windows 环境下部署的其他环境没有测试过。
一、本地部署SenseVoice
-
Anaconda安装 Anaconda Installers and Packages
-
找个目录clone代码,git clone --recursive https://github.com/FunAudioLLM/SenseVoice.git
-
创建并激活虚拟环境安装依赖项
#(请注意这里一定要使用 python3.8版本不然的话运行后面会有很多错误,本人已经踩过坑了)
conda create -n sensevoice python=3.8
conda activate sensevoice#到SenseVoice目录执行,安装依赖(这里如果不是python3.8环境就会出错了)
pip install -r requirements.txt
- 检验是否安装成功:
#还是在SenseVoice目录执行
python webui.py#运行后在 http://127.0.0.1:7860页面可以看到官方提供的哪个测试页面(可以录音,但是他提供的音频样例我这里点击好像是失败的)
#如果运行提示缺什么就按照错误安装就可以了,这里我好像确实安装了一个东西才能运行起来展示,但是有点忘了,翻了很多篇文章才看到有提的。
二、语音识别客户端程序
这里我花了两天让 Claude Code 帮我实现了一个简单的客户端程序,还是很效率的,如果自己开发可能要挺多天了。其实原理也比较简单就是软件运行的时候挂一个钩子捕获全局的按钮,如果是录音按钮就进行语音录制然后再存储成文件发给语音识别模型的API就可以了。主要的问题是这里我不太熟悉 python,不知道语音识别模型的API是怎么开放的但是他在帮我看了Git文件夹之后他就给我了一个方案。这里我比较熟悉C++、C#,所以我选择了WPF作为客户端程序的框架。
1.环境准备
- VS2022 + .Net 9.0
2.源码
效果附图:按F4即可以在任意一个地方唤起语音识别,非常方便。这是我写这个文档的时候截的效果图。
私聊,有偿10元 分享源码!东西不贵,只想向女朋友证明敲代码能挣钱!
3.其他说明
(1)这里附一个脚本,能够快速运行后端环境。需要注意修改文件夹路径。
这里与语音识别模型连接就是通过 fastapi run --port 50000 的方式启用后端API,这里还需要安装一些依赖,根据错误提示安装即可。
@echo off
REM 设置Anaconda的安装路径
set CONDA_PATH=D:\Software\AnacondaREM 完全禁用所有代理环境变量
set HTTP_PROXY=
set HTTPS_PROXY=
set http_proxy=
set https_proxy=
set ALL_PROXY=
set all_proxy=
set NO_PROXY=
set no_proxy=REM 初始化conda
call "%CONDA_PATH%\Scripts\activate.bat" "%CONDA_PATH%"REM 激活sensevoice环境
call conda activate sensevoiceREM 检查环境是否激活成功
if %errorlevel% neq 0 (echo 错误:无法激活sensevoice环境echo 请确保sensevoice环境已经创建pauseexit /b 1
)echo 已激活sensevoice环境
echo 正在启动FastAPI服务...REM 确保Python也不使用代理
python -c "import os; os.environ.pop('HTTP_PROXY', None); os.environ.pop('HTTPS_PROXY', None); os.environ.pop('http_proxy', None); os.environ.pop('https_proxy', None)"REM 运行FastAPI
fastapi run --port 50000REM 如果需要在运行结束后保持窗口打开,取消下面这行的注释
REM pause
(2)SenseVoice里面可以设置本地大模型的目录,就在api.py