{"id":13455286,"url":"https://github.com/jianchang512/stt","last_synced_at":"2025-05-14T00:08:23.208Z","repository":{"id":214510054,"uuid":"736697367","full_name":"jianchang512/stt","owner":"jianchang512","description":"Voice Recognition to Text Tool / 一个离线运行的本地音视频转字幕工具，输出json、srt字幕、纯文字格式","archived":false,"fork":false,"pushed_at":"2024-12-05T08:45:50.000Z","size":135461,"stargazers_count":3255,"open_issues_count":77,"forks_count":350,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-04-10T22:17:37.664Z","etag":null,"topics":["speech","speech-recognition","speech-to-text","stt"],"latest_commit_sha":null,"homepage":"https://pyvideotrans.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jianchang512.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-28T16:02:55.000Z","updated_at":"2025-04-10T13:42:36.000Z","dependencies_parsed_at":"2024-12-05T09:38:22.649Z","dependency_job_id":null,"html_url":"https://github.com/jianchang512/stt","commit_stats":null,"previous_names":["jianchang512/sts","jianchang512/stt"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jianchang512%2Fstt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jianchang512%2Fstt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jianchang512%2Fstt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jianchang512%2Fstt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jianchang512","download_url":"https://codeload.github.com/jianchang512/stt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254043987,"owners_count":22005048,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["speech","speech-recognition","speech-to-text","stt"],"created_at":"2024-07-31T08:01:03.416Z","updated_at":"2025-05-14T00:08:18.199Z","avatar_url":"https://github.com/jianchang512.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n**中文简体** | [English](./docs/en/README_EN.md) | [Português (Brasil)](./docs/pt/README_pt-BR.md)\n\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n[👑 捐助本项目](https://github.com/jianchang512/pyvideotrans/blob/main/docs/about.md) | [Discord邀请](https://discord.gg/SyT6GEwkJS)\n\n\u003c/div\u003e\n\n---\n\n\n# 语音识别转文字工具\n\n这是一个离线运行的本地语音识别转文字工具，基于 fast-whipser 开源模型，可将视频/音频中的人类声音识别并转为文字，可输出json格式、srt字幕带时间戳格式、纯文字格式。可用于自行部署后替代 openai 的语音识别接口或百度语音识别等，准确率基本等同openai官方api接口。\n\n\nfast-whisper 开源模型有 tiny/base/small/medium/large-v3, 内置 tiny 模型，tiny-\u003elarge-v3识别效果越来越好，但所需计算机资源也更多，根据需要可自行下载后解压到 models 目录下即可。\n\n\u003e **[赞助商]**\n\u003e \n\u003e [![](https://github.com/user-attachments/assets/5348c86e-2d5f-44c7-bc1b-3cc5f077e710)](https://gpt302.saaslink.net/teRK8Y)\n\u003e  [302.AI](https://gpt302.saaslink.net/teRK8Y)是一个按需付费的一站式AI应用平台，开放平台，开源生态, [302.AI开源地址](https://github.com/302ai)\n\u003e \n\u003e 集合了最新最全的AI模型和品牌/按需付费零月费/管理和使用分离/所有AI能力均提供API/每周推出2-3个新应用\n\n\n\n# 视频演示\n\n\nhttps://github.com/jianchang512/stt/assets/3378335/d716acb6-c20c-4174-9620-f574a7ff095d\n\n\n![image](https://github.com/jianchang512/stt/assets/3378335/0f724ff1-21b3-4960-b6ba-5aa994ea414c)\n\n\n\n\n# 预编译Win版使用方法/Linux和Mac源码部署\n\n1. [点击此处打开Releases页面下载](https://github.com/jianchang512/stt/releases)预编译文件\n\n2. 下载后解压到某处，比如 E:/stt\n\n3. 双击 start.exe ，等待自动打开浏览器窗口即可\n\n4. 点击页面中的上传区域，在弹窗中找到想识别的音频或视频文件，或直接拖拽音频视频文件到上传区域，然后选择发生语言、文本输出格式、所用模型，点击“立即开始识别”，稍等片刻，底部文本框中会以所选格式显示识别结果\n\n5. 如果机器拥有英伟达GPU，并正确配置了CUDA环境，将自动使用CUDA加速\n\n\n# 源码部署(Linux/Mac/Window)\n\n0. 要求 python 3.9-\u003e3.11\n\n1. 创建空目录，比如 E:/stt, 在这个目录下打开 cmd 窗口，方法是地址栏中输入 `cmd`, 然后回车。\n\n\t使用git拉取源码到当前目录 ` git clone git@github.com:jianchang512/stt.git . `\n\n2. 创建虚拟环境 `python -m venv venv`\n\n3. 激活环境，win下命令 `%cd%/venv/scripts/activate`，linux和Mac下命令 `source ./venv/bin/activate`\n\n4. 安装依赖: `pip install -r requirements.txt`,如果报版本冲突错误，请执行 `pip install -r requirements.txt --no-deps` ,如果希望支持cuda加速，继续执行代码 `pip uninstall -y torch`, `pip install torch --index-url https://download.pytorch.org/whl/cu121`\n\n5. win下解压 ffmpeg.7z，将其中的`ffmpeg.exe`和`ffprobe.exe`放在项目目录下, linux和mac 自行搜索 如何安装ffmpeg\n\n6. [下载模型压缩包](https://github.com/jianchang512/stt/releases/tag/0.0)，根据需要下载模型，下载后将压缩包里的文件夹放到项目根目录的 models 文件夹内\n\n7. 执行  `python  start.py `，等待自动打开本地浏览器窗口。\n\n\n# Api接口\n\n接口地址: http://127.0.0.1:9977/api\n\n请求方法: POST\n\n请求参数:\n\n    language: 语言代码:可选如下\n\n    \u003e\n    \u003e 中文：zh\n    \u003e 英语：en\n    \u003e 法语：fr\n    \u003e 德语：de\n    \u003e 日语：ja\n    \u003e 韩语：ko\n    \u003e 俄语：ru\n    \u003e 西班牙语：es\n    \u003e 泰国语：th\n    \u003e 意大利语：it\n    \u003e 葡萄牙语：pt\n    \u003e 越南语：vi\n    \u003e 阿拉伯语：ar\n    \u003e 土耳其语：tr\n    \u003e\n\n    model: 模型名称，可选如下\n    \u003e\n    \u003e base 对应于 models/models--Systran--faster-whisper-base\n    \u003e small 对应于 models/models--Systran--faster-whisper-small\n    \u003e medium 对应于 models/models--Systran--faster-whisper-medium\n    \u003e large-v3 对应于 models/models--Systran--faster-whisper-large-v3\n    \u003e\n\n    response_format: 返回的字幕格式，可选 text|json|srt\n\n    file: 音视频文件，二进制上传\n\nApi 请求示例\n\n```python\n    import requests\n    # 请求地址\n    url = \"http://127.0.0.1:9977/api\"\n    # 请求参数  file:音视频文件，language：语言代码，model：模型，response_format:text|json|srt\n    # 返回 code==0 成功，其他失败，msg==成功为ok，其他失败原因，data=识别后返回文字\n    files = {\"file\": open(\"C:/Users/c1/Videos/2.wav\", \"rb\")}\n    data={\"language\":\"zh\",\"model\":\"base\",\"response_format\":\"json\"}\n    response = requests.request(\"POST\", url, timeout=600, data=data,files=files)\n    print(response.json())\n```\n\n\n\n# CUDA 加速支持\n\n**安装CUDA工具** [详细安装方法](https://juejin.cn/post/7318704408727519270)\n\n如果你的电脑拥有 Nvidia 显卡，先升级显卡驱动到最新，然后去安装对应的 \n   [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads)  和  [cudnn for CUDA11.X](https://developer.nvidia.com/rdp/cudnn-archive)。\n   \n   安装完成成，按`Win + R`,输入 `cmd`然后回车，在弹出的窗口中输入`nvcc --version`,确认有版本信息显示，类似该图\n   ![image](https://github.com/jianchang512/pyvideotrans/assets/3378335/e68de07f-4bb1-4fc9-bccd-8f841825915a)\n\n   然后继续输入`nvidia-smi`,确认有输出信息，并且能看到cuda版本号，类似该图\n   ![image](https://github.com/jianchang512/pyvideotrans/assets/3378335/71f1d7d3-07f9-4579-b310-39284734006b)\n\n    然后执行 `python testcuda.py`，如果提示成功，说明安装正确，否则请仔细检查重新安装\n    \n    默认使用 cpu 运算，如果确定使用英伟达显卡，并且配置好了cuda环境，请修改 set.ini 中 `devtype=cpu`为 `devtype=cuda`,并重新启动，可使用cuda加速\n\n# 注意事项\n\n0. 如果没有英伟达显卡或未配置好CUDA环境，不要使用 large/large-v3 模型，可能导致内存耗尽死机\n1. 中文在某些情况下会输出繁体字\n2. 有时会遇到“cublasxx.dll不存在”的错误，此时需要下载 cuBLAS，然后将dll文件复制到系统目录下，[点击下载 cuBLAS](https://github.com/jianchang512/stt/releases/download/0.0/cuBLAS_win.7z)，解压后将里面的dll文件复制到 C:/Windows/System32下\n3. 如果控制台出现\"[W:onnxruntime:Default, onnxruntime_pybind_state.cc:1983 onnxruntime::python::CreateInferencePybindStateModule] Init provider bridge failed.\", 可忽略，不影响使用\n4. 默认使用 cpu 运算，如果确定使用英伟达显卡，并且配置好了cuda环境，请修改 set.ini 中 `devtype=cpu`为 `devtype=cuda`,并重新启动，可使用cuda加速\n\n\n\n5. 尚未执行完毕就闪退\n\n如果启用了cuda并且电脑已安装好了cuda环境，但没有手动安装配置过cudnn，那么会出现该问题，去安装和cuda匹配的cudnn。比如你安装了cuda12.3，那么就需要下载cudnn for cuda12.x压缩包，然后解压后里面的3个文件夹复制到cuda安装目录下。具体教程参考 https://juejin.cn/post/7318704408727519270\n\n如果cudnn按照教程安装好了仍闪退，那么极大概率是GPU显存不足，可以改为使用 medium模型，显存不足8G时，尽量避免使用largev-3模型，尤其是视频大于20M时，否则可能显存不足而崩溃\n\n# 相关联项目\n\n[视频翻译配音工具:翻译字幕并配音](https://github.com/jianchang512/pyvideotrans)\n\n[声音克隆工具:用任意音色合成语音](https://github.com/jianchang512/clone-voice)\n\n[人声背景乐分离:极简的人声和背景音乐分离工具，本地化网页操作](https://github.com/jianchang512/vocal-separate)\n\n# 致谢\n\n本项目主要依赖的其他项目\n\n1. https://github.com/SYSTRAN/faster-whisper\n2. https://github.com/pallets/flask\n3. https://ffmpeg.org/\n4. https://layui.dev\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjianchang512%2Fstt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjianchang512%2Fstt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjianchang512%2Fstt/lists"}