Skip to content

语音识别转文字工具

语音识别转文字工具开源地址

这是一个离线运行的本地语音识别转文字工具,基于 openai-whipser 开源模型,可将视频/音频中的人类声音识别并转为文字,可输出json格式、srt字幕带时间戳格式、纯文字格式。可用于自行部署后替代 openai 的语音识别接口或百度语音识别等,准确率基本等同openai官方api接口。

部署或下载后,双击 start.exe 自动调用本地浏览器打开本地网页。

拖拽或点击选择要识别的音频视频文件,然后选择发声语言、输出文字格式、所用模型(已内置base模型),点击开始识别,识别完成后以所选格式输出在当前网页。

全过程无需联网,完全本地运行,可部署于内网

openai-whisper 开源模型有 base/small/medium/large/large-v3, 内置base模型,base->large-v3识别效果越来越好,但所需计算机资源也更多,根据需要可自行下载后放到 models 目录下即可。

全部模型下载地址

预编译Win版使用方法/Linux和Mac源码部署

  1. 点击此处打开Releases页面下载预编译文件

  2. 下载后解压到某处,比如 E:/stt

  3. 双击 start.exe ,等待自动打开浏览器窗口即可

  4. 点击页面中的上传区域,在弹窗中找到想识别的音频或视频文件,或直接拖拽音频视频文件到上传区域,然后选择发生语言、文本输出格式、所用模型,点击“立即开始识别”,稍等片刻,底部文本框中会以所选格式显示识别结果

  5. 如果机器拥有英伟达GPU,并正确配置了CUDA环境,将自动使用CUDA加速

源码部署(Linux/Mac/Window)

  1. 要求 python 3.9->3.11

  2. 创建空目录,比如 E:/stt, 在这个目录下打开 cmd 窗口,方法是地址栏中输入 cmd, 然后回车。

    使用git拉取源码到当前目录 git clone git@github.com:jianchang512/stt.git .

  3. 创建虚拟环境 python -m venv venv

  4. 激活环境,win下命令 %cd%/venv/scripts/activate,linux和Mac下命令 source ./venv/bin/activate

  5. 安装依赖: pip install -r requirements.txt,如果报版本冲突错误,请执行 pip install -r requirements.txt --no-deps

  6. win下解压 ffmpeg.7z,将其中的ffmpeg.exeffprobe.exe放在项目目录下, linux和mac 到 ffmpeg官网下载对应版本ffmpeg,解压其中的ffmpegffprobe二进制程序放到项目根目录下

  7. 下载模型压缩包,根据需要下载模型,下载后将压缩包里的 xx.pt 文件放到项目根目录的 models 文件夹内

  8. 执行 python start.py ,等待自动打开本地浏览器窗口。

api接口

接口地址: http://127.0.0.1:9977/api

请求方法: POST

请求参数:

language: 语言代码:可选如下

>
> 中文:zh
> 英语:en
> 法语:fr
> 德语:de
> 日语:ja
> 韩语:ko
> 俄语:ru
> 西班牙语:es
> 泰国语:th
> 意大利语:it
> 葡萄牙语:pt
> 越南语:vi
> 阿拉伯语:ar
> 土耳其语:tr
>

model: 模型名称,可选如下
>
> base 对应于 models/base.pt
> small 对应于 models/small.pt
> medium 对应于 models/medium.pt
> large 对应于 models/large.pt
> large-v3 对应于 models/large-v3.pt
>

response_format: 返回的字幕格式,可选 text|json|srt

file: 音视频文件,二进制上传

Api 请求示例

python
    import requests
    # 请求地址
    url = "http://127.0.0.1:9977/api"
    # 请求参数  file:音视频文件,language:语言代码,model:模型,response_format:text|json|srt
    # 返回 code==0 成功,其他失败,msg==成功为ok,其他失败原因,data=识别后返回文字
    files = {"file": open("C:\\Users\\c1\\Videos\\2.wav", "rb")}
    data={"language":"zh","model":"base","response_format":"json"}
    response = requests.request("POST", url, timeout=600, data=data,files=files)
    print(response.json())

CUDA 加速支持

安装CUDA工具详细安装方法

注意事项

  1. 如果没有英伟达显卡或未配置好CUDA环境,不要使用 large/large-v3 模型,可能导致内存耗尽死机
  2. 中文在某些情况下会输出繁体字

github.com/jianchang512