[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-absadiki--subsai":3,"similar-absadiki--subsai":96},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":8,"readme_en":9,"readme_zh":10,"quickstart_zh":11,"use_case_zh":12,"hero_image_url":13,"owner_login":14,"owner_name":15,"owner_avatar_url":16,"owner_bio":17,"owner_company":17,"owner_location":18,"owner_email":17,"owner_twitter":14,"owner_website":17,"owner_url":19,"languages":20,"stars":29,"forks":30,"last_commit_at":31,"license":32,"difficulty_score":33,"env_os":34,"env_gpu":35,"env_ram":36,"env_deps":37,"category_tags":51,"github_topics":54,"view_count":61,"oss_zip_url":17,"oss_zip_packed_at":17,"status":62,"created_at":63,"updated_at":64,"faqs":65,"releases":95},8849,"absadiki\u002Fsubsai","subsai","🎞️ Subtitles generation tool (Web-UI + CLI + Python package) powered by OpenAI's Whisper and its variants 🎞️","Subs AI 是一款功能强大的字幕生成工具，旨在帮助用户轻松为视频添加精准字幕。它基于 OpenAI 的 Whisper 及其多个高效变体构建，有效解决了传统字幕制作耗时费力、多语言支持不足以及时间轴对齐不准等痛点。\n\n无论是需要批量处理视频内容的创作者，还是希望本地化部署的开发者，Subs AI 都能满足需求。它提供了三种灵活的使用方式：直观易用的 Web 界面适合普通用户和设计师快速上手；命令行工具（CLI）方便技术人员集成到工作流中；Python 包则赋予研究人员和开发者深度定制的能力。\n\n该工具的核心亮点在于其广泛的模型兼容性，不仅支持原版 Whisper，还集成了 faster-whisper、whisperX 等优化版本，能在保证高准确率的同时显著提升推理速度并降低资源消耗。此外，Subs AI 强调隐私与离线可用，内置了基于 NLLB 和 M2M100 等模型的翻译功能，支持多语言字幕生成与修正。凭借其轻量级设计和跨平台特性，Subs AI 让高质量的字幕制作变得简单高效。","# ️🎞️ Subs AI 🎞️\n Subtitles generation tool (Web-UI + CLI + Python package) powered by OpenAI's Whisper and its variants \n\u003Cbr\u002F>\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fabsadiki_subsai_readme_eb595f873097.gif\">\n\u003C\u002Fp>\n\n\u003C!-- TOC -->\n* [Subs AI](#subs-ai)\n* [Features](#features)\n* [Installation](#installation)\n* [Usage](#usage)\n    * [Web-UI](#web-ui)\n    * [CLI](#cli)\n    * [From Python](#from-python)\n    * [Examples](#examples)\n* [Docker](#docker)\n* [Notes](#notes)\n* [Contributing](#contributing)\n* [License](#license)\n\u003C!-- TOC -->\n\n# Features\n* Supported Models\n  * [x] [openai\u002Fwhisper](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper)\n    * > Whisper is a general-purpose speech recognition model. It is trained on a large dataset of diverse audio and is also a multi-task model that can perform multilingual speech recognition as well as speech translation and language identification.\n  * [x] [linto-ai\u002Fwhisper-timestamped](https:\u002F\u002Fgithub.com\u002Flinto-ai\u002Fwhisper-timestamped)\n    * > Multilingual Automatic Speech Recognition with word-level timestamps and confidence\n  * [x] [ggerganov\u002Fwhisper.cpp](https:\u002F\u002Fgithub.com\u002Fggerganov\u002Fwhisper.cpp) (using [ absadiki\u002Fpywhispercpp](https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fpywhispercpp))\n    * > High-performance inference of OpenAI's Whisper automatic speech recognition (ASR) model\n      > * Plain C\u002FC++ implementation without dependencies\n      > * Runs on the CPU\n  * [x] [guillaumekln\u002Ffaster-whisper](https:\u002F\u002Fgithub.com\u002Fguillaumekln\u002Ffaster-whisper)\n    * > faster-whisper is a reimplementation of OpenAI's Whisper model using [CTranslate2](https:\u002F\u002Fgithub.com\u002FOpenNMT\u002FCTranslate2\u002F), which is a fast inference engine for Transformer models.\n      >\n      > This implementation is up to 4 times faster than [openai\u002Fwhisper](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper) for the same accuracy while using less memory. The efficiency can be further improved with 8-bit quantization on both CPU and GPU.\n  * [x] [m-bain\u002FwhisperX](https:\u002F\u002Fgithub.com\u002Fm-bain\u002FwhisperX)\n    * >fast automatic speech recognition (70x realtime with large-v2) with word-level timestamps and speaker diarization.\n      >  - ⚡️ Batched inference for 70x realtime transcription using whisper large-v2\n      >  - 🪶 [faster-whisper](https:\u002F\u002Fgithub.com\u002Fguillaumekln\u002Ffaster-whisper) backend, requires \u003C8GB gpu memory for large-v2 with beam_size=5\n      >  - 🎯 Accurate word-level timestamps using wav2vec2 alignment\n      >  - 👯‍♂️ Multispeaker ASR using speaker diarization from [pyannote-audio](https:\u002F\u002Fgithub.com\u002Fpyannote\u002Fpyannote-audio) (speaker ID labels) \n      >  - 🗣️ VAD preprocessing, reduces hallucination & batching with no WER degradation.\n  * [x] [jianfch\u002Fstable-ts](https:\u002F\u002Fgithub.com\u002Fjianfch\u002Fstable-ts)\n    * >**Stabilizing Timestamps for Whisper**: This library modifies [Whisper](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper) to produce more reliable timestamps and extends its functionality.\n  * [x] [Hugging Face Transformers](https:\u002F\u002Fhuggingface.co\u002Ftasks\u002Fautomatic-speech-recognition)\n    * > Hugging Face implementation of Whisper.  Any speech recognition pretrained model from the Hugging Face hub can be used as well.\n  * [x] [API\u002Fopenai\u002Fwhisper](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fspeech-to-text)\n    * > OpenAI Whisper via their API. Or any other openai-like API for whisper (e.g. [speaches.ai](https:\u002F\u002Fgithub.com\u002Fspeaches-ai\u002Fspeaches))\n\n* Web UI\n  * Fully offline, no third party services \n  * Works on Linux, Mac and Windows\n  * Lightweight and easy to use\n  * Supports subtitle modification\n  * Integrated tools:\n    * Translation using [xhluca\u002Fdl-translate](https:\u002F\u002Fgithub.com\u002Fxhluca\u002Fdl-translate):\n      * Supported models:\n        * [x] [facebook\u002Fnllb-200-distilled-600M](https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fnllb-200-distilled-600M) \n        * [x] [facebook\u002Fm2m100_418M](https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fm2m100_418M)\n        * [x] [facebook\u002Fm2m100_1.2B](https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fm2m100_1.2B)\n        * [x] [facebook\u002Fmbart-large-50-many-to-many-mmt](https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fmbart-large-50-many-to-many-mmt)\n    * Auto-sync using [smacke\u002Fffsubsync](https:\u002F\u002Fgithub.com\u002Fsmacke\u002Fffsubsync)\n    * Merge subtitles into the video\n* Command Line Interface\n  * For simple or batch processing\n* Python package\n  * In case you want to develop your own scripts\n* Supports different subtitle formats thanks to [tkarabela\u002Fpysubs2](https:\u002F\u002Fgithub.com\u002Ftkarabela\u002Fpysubs2\u002F)\n  * [x] SubRip\n  * [x] WebVTT\n  * [x] substation alpha\n  * [x] MicroDVD\n  * [x] MPL2\n  * [x] TMP\n* Supports audio and video files\n\n# Installation \n* Install [ffmpeg](https:\u002F\u002Fffmpeg.org\u002F)\n\n_Quoted from the official openai\u002Fwhisper installation_\n> It requires the command-line tool [`ffmpeg`](https:\u002F\u002Fffmpeg.org\u002F) to be installed on your system, which is available from most package managers:\n> ```bash\n> # on Ubuntu or Debian\n> sudo apt update && sudo apt install ffmpeg\n>\n> # on Arch Linux\n>sudo pacman -S ffmpeg\n>\n> # on MacOS using Homebrew (https:\u002F\u002Fbrew.sh\u002F)\n> brew install ffmpeg\n>\n> # on Windows using Chocolatey (https:\u002F\u002Fchocolatey.org\u002F)\n> choco install ffmpeg\n>\n> # on Windows using Scoop (https:\u002F\u002Fscoop.sh\u002F)\n> scoop install ffmpeg\n>```\n>You may need [`rust`](http:\u002F\u002Frust-lang.org) installed as well, in case [tokenizers](https:\u002F\u002Fpypi.org\u002Fproject\u002Ftokenizers\u002F) does not provide a pre-built wheel for your platform. If you see installation errors during the `pip install` command above, please follow the [Getting started page](https:\u002F\u002Fwww.rust-lang.org\u002Flearn\u002Fget-started) to install Rust development environment. Additionally, you may need to configure the `PATH` environment variable, e.g. `export PATH=\"$HOME\u002F.cargo\u002Fbin:$PATH\"`. If the installation fails with `No module named 'setuptools_rust'`, you need to install `setuptools_rust`, e.g. by running:\n>```bash\n>pip install setuptools-rust\n>``` \n\n* Once ffmpeg is installed, install `subsai`\n\n```shell\npip install git+https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\n```\n> [!NOTE]\n> * It is recommended to use Python 3.10 or 3.11. Versions 3.12 or later may have compatibility issues.\n> * If torch is unable to detect your GPU devices during your usage of subsai, assuming you have a supported GPU device, there is a chance that `pip` installed the CPU version of torch. You can install a torch version with CUDA support by following the [get started locally guide](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F) on pytorch.\n> For more information, see https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Fissues\u002F162.\n\n# Usage\n### Web-UI\n\nTo use the web-UI, run the following command on the terminal\n```shell\nsubsai-webui\n```\nAnd a web page will open on your default browser, otherwise navigate to the links provided by the command\n\nYou can also run the Web-UI using [Docker](#docker).\n\n### CLI\n\n```shell\nusage: subsai [-h] [--version] [-m MODEL] [-mc MODEL_CONFIGS] [-f FORMAT] [-df DESTINATION_FOLDER] [-tm TRANSLATION_MODEL]\n              [-tc TRANSLATION_CONFIGS] [-tsl TRANSLATION_SOURCE_LANG] [-ttl TRANSLATION_TARGET_LANG]\n              media_file [media_file ...]\n\npositional arguments:\n  media_file            The path of the media file, a list of files, or a text file containing paths for batch processing.\n\noptions:\n  -h, --help            show this help message and exit\n  --version             show program's version number and exit\n  -m MODEL, --model MODEL\n                        The transcription AI models. Available models: ['openai\u002Fwhisper', 'linto-ai\u002Fwhisper-timestamped']\n  -mc MODEL_CONFIGS, --model-configs MODEL_CONFIGS\n                        JSON configuration (path to a json file or a direct string)\n  -f FORMAT, --format FORMAT, --subtitles-format FORMAT\n                        Output subtitles format, available formats ['.srt', '.ass', '.ssa', '.sub', '.json', '.txt', '.vtt']\n  -df DESTINATION_FOLDER, --destination-folder DESTINATION_FOLDER\n                        The directory where the subtitles will be stored, default to the same folder where the media file(s) is stored.\n  -tm TRANSLATION_MODEL, --translation-model TRANSLATION_MODEL\n                        Translate subtitles using AI models, available models: ['facebook\u002Fm2m100_418M', 'facebook\u002Fm2m100_1.2B',\n                        'facebook\u002Fmbart-large-50-many-to-many-mmt']\n  -tc TRANSLATION_CONFIGS, --translation-configs TRANSLATION_CONFIGS\n                        JSON configuration (path to a json file or a direct string)\n  -tsl TRANSLATION_SOURCE_LANG, --translation-source-lang TRANSLATION_SOURCE_LANG\n                        Source language of the subtitles\n  -ttl TRANSLATION_TARGET_LANG, --translation-target-lang TRANSLATION_TARGET_LANG\n                        Target language of the subtitles\n\n\n```\n\nExample of a simple usage\n```shell\nsubsai .\u002Fassets\u002Ftest1.mp4 --model openai\u002Fwhisper --model-configs '{\"model_type\": \"small\"}' --format srt\n```\n> Note: **For Windows CMD**, You will need to use the following :\n> `subsai .\u002Fassets\u002Ftest1.mp4 --model openai\u002Fwhisper --model-configs \"{\\\"model_type\\\": \\\"small\\\"}\" --format srt`\n\nYou can also provide a simple text file for batch processing \n_(Every line should contain the absolute path to a single media file)_\n\n```shell\nsubsai media.txt --model openai\u002Fwhisper --format srt\n```\n\n### From Python\n\nTo install:\n1. `git clone https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai`\n2. `cd subsai`\n3. `uv pip install -e .`\n\n*Note: For minimal installs or if having issues installing dependencies, you can comment the dependencies for backends you won't use in the file `requirements.txt`.*\n\n```python\nfrom subsai import SubsAI\n\nfile = '.\u002Fassets\u002Ftest1.mp4'\nsubs_ai = SubsAI()\nmodel = subs_ai.create_model('openai\u002Fwhisper', {'model_type': 'base'})\nsubs = subs_ai.transcribe(file, model)\nsubs.save('test1.srt')\n```\nFor more advanced usage, read [the documentation](https:\u002F\u002Fabsadiki.github.io\u002Fsubsai\u002F).\n\n### Examples \nSimple examples can be found in the [examples](https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Ftree\u002Fmain\u002Fexamples) folder\n\n* [VAD example](https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Fblob\u002Fmain\u002Fexamples\u002Fsubsai_vad.ipynb): process long audio files using [silero-vad](https:\u002F\u002Fgithub.com\u002Fsnakers4\u002Fsilero-vad). \u003Ca target=\"_blank\" href=\"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fabsadiki\u002Fsubsai\u002Fblob\u002Fmain\u002Fexamples\u002Fsubsai_vad.ipynb\">\n  \u003Cimg src=\"https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg\" alt=\"Open In Colab\"\u002F>\n\u003C\u002Fa>\n\n* [Translation example](https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Fblob\u002Fmain\u002Fexamples\u002Fsubsai_translation.ipynb): translate an already existing subtitles file. \u003Ca target=\"_blank\" href=\"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fabsadiki\u002Fsubsai\u002Fblob\u002Fmain\u002Fexamples\u002Fsubsai_translation.ipynb\">\n  \u003Cimg src=\"https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg\" alt=\"Open In Colab\"\u002F>\n\u003C\u002Fa>\n\n# Docker\n* Make sure that you have `docker` installed.\n* Prebuilt image\n  1. ```docker pull absadiki\u002Fsubsai:main```\n  2. ```docker run --gpus=all -p 8501:8501 -v \u002Fpath\u002Fto\u002Fyour\u002Fmedia_files\u002Ffolder:\u002Fmedia_files absadiki\u002Fsubsai:main```\n* Build the image locally \n  1. Clone and `cd` to the repository\n  2. ```docker compose build```\n  3. ```docker compose run -p 8501:8501 -v \u002Fpath\u002Fto\u002Fyour\u002Fmedia_files\u002Ffolder:\u002Fmedia_files subsai-webui # subsai-webui-cpu for cpu only```\n\n* You can access your media files through the mounted `media_files` folder.\n\n# Notes\n* If you have an NVIDIA graphics card, you may need to install [cuda](https:\u002F\u002Fdocs.nvidia.com\u002Fcuda\u002F#installation-guides) to use the GPU capabilities.\n* AMD GPUs compatible with Pytorch should be working as well. [#67](https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Fissues\u002F67) \n* Transcription time is shown on the terminal, keep an eye on it while running the web UI. \n* If you didn't like Dark mode web UI, you can switch to Light mode from `settings > Theme > Light`.\n\n# Contributing\nIf you find a bug, have a suggestion or feedback, please open an issue for discussion.\n\n# License\n\nThis project is licensed under the GNU General Licence version 3 or later. You can modify or redistribute it under the conditions\nof these licences (See [LICENSE](.\u002FLICENSE) for more information).\n","# ️🎞️ Subs AI 🎞️\n 基于 OpenAI 的 Whisper 及其变体的字幕生成工具（Web 界面 + CLI + Python 包）\n\u003Cbr\u002F>\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fabsadiki_subsai_readme_eb595f873097.gif\">\n\u003C\u002Fp>\n\n\u003C!-- 目录 -->\n* [Subs AI](#subs-ai)\n* [功能](#features)\n* [安装](#installation)\n* [使用](#usage)\n    * [Web 界面](#web-ui)\n    * [命令行界面](#cli)\n    * [通过 Python 使用](#from-python)\n    * [示例](#examples)\n* [Docker](#docker)\n* [注意事项](#notes)\n* [贡献](#contributing)\n* [许可证](#license)\n\u003C!-- 目录 -->\n\n# 功能\n* 支持的模型\n  * [x] [openai\u002Fwhisper](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper)\n    * > Whisper 是一个通用的语音识别模型。它基于大量多样化的音频数据进行训练，同时也是一个多任务模型，能够执行多语言语音识别、语音翻译以及语言识别。\n  * [x] [linto-ai\u002Fwhisper-timestamped](https:\u002F\u002Fgithub.com\u002Flinto-ai\u002Fwhisper-timestamped)\n    * > 多语言自动语音识别，提供词级时间戳和置信度。\n  * [x] [ggerganov\u002Fwhisper.cpp](https:\u002F\u002Fgithub.com\u002Fggerganov\u002Fwhisper.cpp)（使用 [absadiki\u002Fpywhispercpp](https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fpywhispercpp)）\n    * > 高性能的 OpenAI Whisper 自动语音识别（ASR）模型推理。\n      > * 纯 C\u002FC++ 实现，无依赖。\n      > * 在 CPU 上运行。\n  * [x] [guillaumekln\u002Ffaster-whisper](https:\u002F\u002Fgithub.com\u002Fguillaumekln\u002Ffaster-whisper)\n    * > faster-whisper 是使用 [CTranslate2](https:\u002F\u002Fgithub.com\u002FOpenNMT\u002FCTranslate2\u002F) 重新实现的 OpenAI Whisper 模型，CTranslate2 是一个用于 Transformer 模型的快速推理引擎。\n      >\n      > 在相同精度下，该实现比 [openai\u002Fwhisper](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper) 快高达 4 倍，且占用更少的内存。通过在 CPU 和 GPU 上进行 8 位量化，效率还可以进一步提升。\n  * [x] [m-bain\u002FwhisperX](https:\u002F\u002Fgithub.com\u002Fm-bain\u002FwhisperX)\n    * > 快速自动语音识别（使用 large-v2 可达 70 倍实时速度），具备词级时间戳和说话人分离功能。\n      >  - ⚡️ 使用 whisper large-v2 进行批处理推理，实现 70 倍实时转录。\n      >  - 🪶 后端采用 [faster-whisper](https:\u002F\u002Fgithub.com\u002Fguillaumekln\u002Ffaster-whisper)，large-v2 模型在 beam_size=5 的情况下仅需不到 8GB 显存。\n      >  - 🎯 利用 wav2vec2 对齐技术，获得精确的词级时间戳。\n      >  - 👯‍♂️ 使用来自 [pyannote-audio](https:\u002F\u002Fgithub.com\u002Fpyannote\u002Fpyannote-audio) 的说话人分离技术进行多说话人 ASR（提供说话人 ID 标签）。\n      >  - 🗣️ VAD 预处理，减少幻觉现象，并在不降低 WER 的情况下进行批处理。\n  * [x] [jianfch\u002Fstable-ts](https:\u002F\u002Fgithub.com\u002Fjianfch\u002Fstable-ts)\n    * > **为 Whisper 稳定时间戳**：该库修改了 [Whisper](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper)，以生成更可靠的时间戳，并扩展其功能。\n  * [x] [Hugging Face Transformers](https:\u002F\u002Fhuggingface.co\u002Ftasks\u002Fautomatic-speech-recognition)\n    * > Hugging Face 实现的 Whisper。也可以使用 Hugging Face 中心仓库中的任何预训练语音识别模型。\n  * [x] [API\u002Fopenai\u002Fwhisper](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fspeech-to-text)\n    * > OpenAI Whisper 通过其 API 调用。或者任何其他类似 OpenAI 的 Whisper API（例如 [speaches.ai](https:\u002F\u002Fgithub.com\u002Fspeaches-ai\u002Fspeaches)）。\n\n* Web 界面\n  * 完全离线，无需第三方服务。\n  * 支持 Linux、Mac 和 Windows。\n  * 轻量级，易于使用。\n  * 支持字幕编辑。\n  * 集成工具：\n    * 使用 [xhluca\u002Fdl-translate](https:\u002F\u002Fgithub.com\u002Fxhluca\u002Fdl-translate) 进行翻译：\n      * 支持的模型：\n        * [x] [facebook\u002Fnllb-200-distilled-600M](https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fnllb-200-distilled-600M)\n        * [x] [facebook\u002Fm2m100_418M](https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fm2m100_418M)\n        * [x] [facebook\u002Fm2m100_1.2B](https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fm2m100_1.2B)\n        * [x] [facebook\u002Fmbart-large-50-many-to-many-mmt](https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fmbart-large-50-many-to-many-mmt)\n    * 使用 [smacke\u002Fffsubsync](https:\u002F\u002Fgithub.com\u002Fsmacke\u002Fffsubsync) 自动同步。\n    * 将字幕合并到视频中。\n* 命令行界面\n  * 适用于简单或批量处理。\n* Python 包\n  * 如果您想开发自己的脚本。\n* 由于 [tkarabela\u002Fpysubs2](https:\u002F\u002Fgithub.com\u002Ftkarabela\u002Fpysubs2) 的支持，支持多种字幕格式。\n  * [x] SubRip\n  * [x] WebVTT\n  * [x] substation alpha\n  * [x] MicroDVD\n  * [x] MPL2\n  * [x] TMP\n* 支持音频和视频文件。\n\n# 安装\n* 安装 [ffmpeg](https:\u002F\u002Fffmpeg.org\u002F)\n\n_摘自官方 openai\u002Fwhisper 安装说明_\n> 您的系统需要安装命令行工具 [`ffmpeg`](https:\u002F\u002Fffmpeg.org\u002F)，大多数包管理器都可以获取：\n> ```bash\n> # 在 Ubuntu 或 Debian 上\n> sudo apt update && sudo apt install ffmpeg\n>\n> # 在 Arch Linux 上\n> sudo pacman -S ffmpeg\n>\n> # 在 MacOS 上使用 Homebrew (https:\u002F\u002Fbrew.sh\u002F)\n> brew install ffmpeg\n>\n> # 在 Windows 上使用 Chocolatey (https:\u002F\u002Fchocolatey.org\u002F)\n> choco install ffmpeg\n>\n> # 在 Windows 上使用 Scoop (https:\u002F\u002Fscoop.sh\u002F)\n> scoop install ffmpeg\n>```\n> 您可能还需要安装 [`rust`](http:\u002F\u002Frust-lang.org)，如果 [tokenizers](https:\u002F\u002Fpypi.org\u002Fproject\u002Ftokenizers\u002F) 没有为您的平台提供预编译的 wheel 文件。如果您在执行上述 `pip install` 命令时遇到安装错误，请参考 [入门页面](https:\u002F\u002Fwww.rust-lang.org\u002Flearn\u002Fget-started) 来安装 Rust 开发环境。此外，您可能还需要配置 `PATH` 环境变量，例如 `export PATH=\"$HOME\u002F.cargo\u002Fbin:$PATH\"`。如果安装失败并提示“没有名为 'setuptools_rust' 的模块”，则需要安装 `setuptools_rust`，例如：\n>```bash\n> pip install setuptools-rust\n>```\n\n* 安装完 ffmpeg 后，安装 `subsai`。\n\n```shell\npip install git+https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\n```\n> [!注意]\n> * 建议使用 Python 3.10 或 3.11。3.12 或更高版本可能存在兼容性问题。\n> * 如果在使用 subsai 时，torch 无法检测到您的 GPU 设备，而您确实拥有受支持的 GPU，则可能是 `pip` 安装了 CPU 版本的 torch。您可以按照 PyTorch 的[本地入门指南](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F)安装支持 CUDA 的 PyTorch 版本。\n> 更多信息请参阅 https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Fissues\u002F162。\n\n# 使用\n### Web 界面\n\n要使用 Web 界面，在终端中运行以下命令：\n```shell\nsubsai-webui\n```\n随后将在您的默认浏览器中打开网页，否则请访问命令输出提供的链接。\n\n您也可以使用 [Docker](#docker) 运行 Web 界面。\n\n### 命令行界面\n\n```shell\n用法: subsai [-h] [--version] [-m MODEL] [-mc MODEL_CONFIGS] [-f FORMAT] [-df DESTINATION_FOLDER] [-tm TRANSLATION_MODEL]\n              [-tc TRANSLATION_CONFIGS] [-tsl TRANSLATION_SOURCE_LANG] [-ttl TRANSLATION_TARGET_LANG]\n              media_file [media_file ...]\n\n位置参数:\n  media_file            媒体文件的路径、文件列表，或包含路径的文本文件，用于批量处理。\n\n选项:\n  -h, --help            显示此帮助信息并退出\n  --version             显示程序版本号并退出\n  -m MODEL, --model MODEL\n                        转录 AI 模型。可用模型：['openai\u002Fwhisper', 'linto-ai\u002Fwhisper-timestamped']\n  -mc MODEL_CONFIGS, --model-configs MODEL_CONFIGS\n                        JSON 配置（JSON 文件路径或直接字符串）\n  -f FORMAT, --format FORMAT, --subtitles-format FORMAT\n                        输出字幕格式，可用格式：['.srt', '.ass', '.ssa', '.sub', '.json', '.txt', '.vtt']\n  -df DESTINATION_FOLDER, --destination-folder DESTINATION_FOLDER\n                        字幕将被存储的目录，默认与媒体文件所在的目录相同。\n  -tm TRANSLATION_MODEL, --translation-model TRANSLATION_MODEL\n                        使用 AI 模型翻译字幕，可用模型：['facebook\u002Fm2m100_418M', 'facebook\u002Fm2m100_1.2B',\n                        'facebook\u002Fmbart-large-50-many-to-many-mmt']\n  -tc TRANSLATION_CONFIGS, --translation-configs TRANSLATION_CONFIGS\n                        JSON 配置（JSON 文件路径或直接字符串）\n  -tsl TRANSLATION_SOURCE_LANG, --translation-source-lang TRANSLATION_SOURCE_LANG\n                        字幕的源语言\n  -ttl TRANSLATION_TARGET_LANG, --translation-target-lang TRANSLATION_TARGET_LANG\n                        字幕的目标语言\n\n\n```\n\n简单使用示例\n```shell\nsubsai .\u002Fassets\u002Ftest1.mp4 --model openai\u002Fwhisper --model-configs '{\"model_type\": \"small\"}' --format srt\n```\n> 注意：**对于 Windows CMD**，您需要使用以下命令：\n> `subsai .\u002Fassets\u002Ftest1.mp4 --model openai\u002Fwhisper --model-configs \"{\\\"model_type\\\": \\\"small\\\"}\" --format srt`\n\n您也可以提供一个简单的文本文件来进行批量处理\n_(每行应包含单个媒体文件的绝对路径)_\n\n```shell\nsubsai media.txt --model openai\u002Fwhisper --format srt\n```\n\n### 从 Python 中调用\n\n安装步骤：\n1. `git clone https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai`\n2. `cd subsai`\n3. `uv pip install -e .`\n\n*注意：若只需最小化安装或在安装依赖时遇到问题，可在 `requirements.txt` 文件中注释掉您不会使用的后端依赖项。*\n\n```python\nfrom subsai import SubsAI\n\nfile = '.\u002Fassets\u002Ftest1.mp4'\nsubs_ai = SubsAI()\nmodel = subs_ai.create_model('openai\u002Fwhisper', {'model_type': 'base'})\nsubs = subs_ai.transcribe(file, model)\nsubs.save('test1.srt')\n```\n\n如需更高级的用法，请参阅[文档](https:\u002F\u002Fabsadiki.github.io\u002Fsubsai\u002F)。\n\n### 示例\n简单的示例可在 [examples](https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Ftree\u002Fmain\u002Fexamples) 文件夹中找到。\n\n* [VAD 示例](https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Fblob\u002Fmain\u002Fexamples\u002Fsubsai_vad.ipynb)：使用 [silero-vad](https:\u002F\u002Fgithub.com\u002Fsnakers4\u002Fsilero-vad) 处理长音频文件。\u003Ca target=\"_blank\" href=\"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fabsadiki\u002Fsubsai\u002Fblob\u002Fmain\u002Fexamples\u002Fsubsai_vad.ipynb\">\n  \u003Cimg src=\"https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg\" alt=\"在 Colab 中打开\"\u002F>\n\u003C\u002Fa>\n\n* [翻译示例](https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Fblob\u002Fmain\u002Fexamples\u002Fsubsai_translation.ipynb)：翻译已有的字幕文件。\u003Ca target=\"_blank\" href=\"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fabsadiki\u002Fsubsai\u002Fblob\u002Fmain\u002Fexamples\u002Fsubsai_translation.ipynb\">\n  \u003Cimg src=\"https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg\" alt=\"在 Colab 中打开\"\u002F>\n\u003C\u002Fa>\n\n# Docker\n* 请确保已安装 `docker`。\n* 预构建镜像\n  1. ```docker pull absadiki\u002Fsubsai:main```\n  2. ```docker run --gpus=all -p 8501:8501 -v \u002Fpath\u002Fto\u002Fyour\u002Fmedia_files\u002Ffolder:\u002Fmedia_files absadiki\u002Fsubsai:main```\n* 在本地构建镜像\n  1. 克隆仓库并进入目录\n  2. ```docker compose build```\n  3. ```docker compose run -p 8501:8501 -v \u002Fpath\u002Fto\u002Fyour\u002Fmedia_files\u002Ffolder:\u002Fmedia_files subsai-webui # subsai-webui-cpu 仅限 CPU```\n\n* 您可以通过挂载的 `media_files` 文件夹访问您的媒体文件。\n\n# 注意事项\n* 如果您拥有 NVIDIA 显卡，可能需要安装 [CUDA](https:\u002F\u002Fdocs.nvidia.com\u002Fcuda\u002F#installation-guides) 才能使用 GPU 功能。\n* 支持 PyTorch 的 AMD 显卡也应能正常工作。[#67](https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Fissues\u002F67)\n* 终端会显示转录时间，请在运行 Web UI 时留意。\n* 如果不喜欢深色模式的 Web UI，可以在“设置 > 主题 > 浅色”中切换为浅色模式。\n\n# 贡献\n如果您发现任何错误、建议或反馈，请提交一个问题进行讨论。\n\n# 许可证\n\n本项目采用 GNU 通用公共许可证第 3 版或更高版本授权。您可以在这些许可条件下修改或重新分发本项目（更多信息请参阅 [LICENSE](.\u002FLICENSE)）。","# Subs AI 快速上手指南\n\nSubs AI 是一款基于 OpenAI Whisper 及其变体的字幕生成工具，提供 Web 界面、命令行（CLI）和 Python 包三种使用方式，支持离线运行、多模型选择及字幕翻译功能。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**：Linux、macOS 或 Windows\n- **Python 版本**：推荐 **Python 3.10** 或 **3.11**（3.12 及以上版本可能存在兼容性问题）\n- **硬件加速**（可选）：\n  - NVIDIA 显卡：需安装 [CUDA](https:\u002F\u002Fdocs.nvidia.com\u002Fcuda\u002F#installation-guides) 以启用 GPU 加速。\n  - AMD 显卡：兼容 PyTorch 的 AMD GPU 亦可使用。\n\n### 前置依赖\n必须安装 **FFmpeg** 命令行工具。\n\n**安装命令：**\n```bash\n# Ubuntu \u002F Debian\nsudo apt update && sudo apt install ffmpeg\n\n# Arch Linux\nsudo pacman -S ffmpeg\n\n# macOS (使用 Homebrew)\nbrew install ffmpeg\n\n# Windows (使用 Chocolatey)\nchoco install ffmpeg\n\n# Windows (使用 Scoop)\nscoop install ffmpeg\n```\n\n> **注意**：若安装过程中出现 `setuptools_rust` 相关错误，请先安装 Rust 环境或执行 `pip install setuptools-rust`。若检测到 GPU 但无法使用，可能是安装了 CPU 版 PyTorch，请参考 [PyTorch 官网](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F) 重新安装带 CUDA 支持的版本。\n\n## 安装步骤\n\n推荐使用 pip 直接从 GitHub 安装最新版：\n\n```shell\npip install git+https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\n```\n\n> **国内加速建议**：若下载速度较慢，可配置国内镜像源（如清华源）：\n> ```shell\n> pip install git+https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 基本使用\n\nSubs AI 支持三种主要使用方式，您可根据需求选择。\n\n### 1. Web 界面 (最简单直观)\n\n启动本地 Web 服务，通过浏览器操作：\n\n```shell\nsubsai-webui\n```\n\n运行后会自动在默认浏览器打开页面（或访问终端显示的链接）。支持上传音视频文件、选择模型、生成字幕、翻译及调整时间轴，完全离线运行。\n\n### 2. 命令行 (CLI)\n\n适合批量处理或脚本集成。\n\n**基础示例**（生成 SRT 字幕）：\n```shell\nsubsai .\u002Fassets\u002Ftest1.mp4 --model openai\u002Fwhisper --model-configs '{\"model_type\": \"small\"}' --format srt\n```\n\n> **Windows CMD 用户注意**：双引号需要转义：\n> ```shell\n> subsai .\u002Fassets\u002Ftest1.mp4 --model openai\u002Fwhisper --model-configs \"{\\\"model_type\\\": \\\"small\\\"}\" --format srt\n> ```\n\n**批量处理**（读取包含文件路径的文本文件）：\n```shell\nsubsai media.txt --model openai\u002Fwhisper --format srt\n```\n\n### 3. Python 开发调用\n\n适合嵌入自定义工作流。\n\n**安装开发版：**\n```shell\ngit clone https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\ncd subsai\nuv pip install -e .\n```\n\n**代码示例：**\n```python\nfrom subsai import SubsAI\n\nfile = '.\u002Fassets\u002Ftest1.mp4'\nsubs_ai = SubsAI()\n# 创建模型，可选择 'openai\u002Fwhisper', 'faster-whisper', 'whisperX' 等\nmodel = subs_ai.create_model('openai\u002Fwhisper', {'model_type': 'base'})\n# 转录音频\nsubs = subs_ai.transcribe(file, model)\n# 保存字幕\nsubs.save('test1.srt')\n```\n\n### 支持的功能亮点\n- **多模型支持**：包括 `openai\u002Fwhisper`, `faster-whisper` (速度快), `whisperX` (带说话人区分), `whisper-timestamped` 等。\n- **字幕格式**：支持 `.srt`, `.vtt`, `.ass`, `.json` 等多种格式。\n- **内置翻译**：集成 NLLB 和 M2M100 模型，可直接将字幕翻译为目标语言。\n- **Docker 支持**：可通过 Docker 一键部署 Web UI。","一位独立视频创作者需要为每周更新的英文技术教程快速生成精准的中英双语字幕，以拓展海外观众群体。\n\n### 没有 subsai 时\n- 手动听写逐字稿耗时极长，处理一小时视频往往需要数天，严重拖慢发布节奏。\n- 缺乏专业的说话人区分功能，多人访谈视频中字幕无法标记不同发言者，导致观众阅读混乱。\n- 时间轴对齐困难，手动调整字幕出现和消失的时间点繁琐且容易出错，影响观看体验。\n- 翻译流程割裂，需先将英文字幕导出再送入其他翻译工具，反复格式转换极易丢失时间戳信息。\n- 本地部署开源模型门槛高，依赖配置复杂，非技术人员难以在个人电脑上离线运行高质量识别。\n\n### 使用 subsai 后\n- 利用内置的 faster-whisper 或 whisperX 模型，一键实现本地离线高速转录，将数天的工作量压缩至几分钟。\n- 自动启用说话人日志（Speaker Diarization）功能，精准识别并标记不同演讲者 ID，让对话类视频字幕清晰易读。\n- 基于 word-level 的时间戳算法自动生成毫秒级精准时间轴，无需人工微调即可直接用于专业剪辑软件。\n- 集成 NLLB 等翻译模型，在生成字幕的同时直接输出目标语言版本，保持时间轴与原文完美同步。\n- 提供轻量级 Web UI 界面，无需编写代码或配置复杂环境，创作者在 Windows 或 Mac 上即可开箱即用。\n\nsubsai 通过整合顶尖语音识别与翻译模型，将原本繁琐的字幕制作流程转化为本地一键完成的自动化操作，极大提升了视频内容的全球化生产效率。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fabsadiki_subsai_eb595f87.gif","absadiki","AbSadiki","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fabsadiki_d3c2f94b.jpg",null,"Earth","https:\u002F\u002Fgithub.com\u002Fabsadiki",[21,25],{"name":22,"color":23,"percentage":24},"Python","#3572A5",99.6,{"name":26,"color":27,"percentage":28},"Dockerfile","#384d54",0.4,1648,140,"2026-04-16T00:41:36","GPL-3.0",3,"Linux, macOS, Windows","非必需（支持 CPU 运行）。若使用 GPU 加速：推荐 NVIDIA 显卡（需安装 CUDA），部分模型（如 whisperX large-v2）需显存 \u003C8GB；兼容 PyTorch 的 AMD 显卡也可用。","未说明（取决于所选模型大小，大型模型建议充足内存）",{"notes":38,"python":39,"dependencies":40},"必须预先安装 ffmpeg 命令行工具；若 pip 安装报错可能需要安装 Rust 环境及 setuptools-rust；若自动检测不到 GPU，需手动安装带 CUDA 支持的 torch 版本；Web UI 完全离线运行；支持多种字幕格式和视频\u002F音频文件。","3.10, 3.11 (3.12+ 可能存在兼容性问题)",[41,42,43,44,45,46,47,48,49,50],"ffmpeg","torch","openai\u002Fwhisper","faster-whisper","whisperX","transformers","pysubs2","dl-translate","ffsubsync","setuptools-rust",[52,53],"音频","插件",[55,56,57,58,59,60],"cli","webui","whisper","whisper-ai","subtitles","subtitles-generator",2,"ready","2026-03-27T02:49:30.150509","2026-04-18T14:32:34.093788",[66,71,76,81,86,91],{"id":67,"question_zh":68,"answer_zh":69,"source_url":70},39696,"如何在 Windows 上运行 SubsAI？遇到 torchaudio 警告或安装失败怎么办？","Windows 上可能存在底层兼容性问题。如果直接安装失败或卡在警告处，建议尝试以下方案：1. 使用 WSL (Windows Subsystem for Linux) 运行，这是目前在 Windows 机器上成功运行的主要途径；2. 如果 WSL 也不行，建议使用 Docker 运行，命令为 `docker compose run -p 8501:8501 subsai-webui`（需指定端口）；3. 若上述方法均无效，建议在原生 Linux 环境下使用。","https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Fissues\u002F150",{"id":72,"question_zh":73,"answer_zh":74,"source_url":75},39697,"如何在 Google Colab 中解决依赖冲突（如 numpy 版本不兼容）并运行 SubsAI？","在 Colab 中运行时，常遇到 `numpy` 版本与 `numba` 等库冲突的问题。解决方法是确保安装正确的依赖版本。根据用户反馈，重新安装或调整环境后通常可以解决。如果问题持续，建议检查是否安装了 `dl_translate` 和 `pywhispercpp`，并确保它们与当前的 Python 环境兼容。维护者确认修复后环境可正常工作。","https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Fissues\u002F5",{"id":77,"question_zh":78,"answer_zh":79,"source_url":80},39698,"如何突破 200MB 的文件大小限制以处理更大的音频文件？","可以通过创建或修改 `config.toml` 配置文件来绕过 200MB 的限制。但请注意，处理大文件（如 1GB 以上）会显著增加内存消耗，可能导致机器卡顿。对于大文件，官方强烈建议使用命令行界面 (CLI) 而不是 Web UI 进行处理，因为 CLI 对资源的管理更高效。","https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Fissues\u002F54",{"id":82,"question_zh":83,"answer_zh":84,"source_url":85},39699,"在 Windows 上使用 pip 安装时遇到 'torch>=2.0.0' 找不到或 'subsai-webui' 命令无法识别的错误怎么办？","这是由于 Windows 环境下依赖包（特别是 torch）的预编译 wheel 缺失或路径问题导致的。最推荐的解决方案是使用 Docker，所有依赖都已包含在镜像中。运行命令：`docker compose run -p 8501:8501 subsai-webui`。如果必须使用 pip 安装，请确保 Python 版本兼容，并可能需要手动安装特定版本的 torch，但 Docker 是最稳定的选择。","https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Fissues\u002F105",{"id":87,"question_zh":88,"answer_zh":89,"source_url":90},39700,"安装时遇到 'RuntimeError: This package is a placeholder package' (openai 包) 错误如何解决？","该错误通常是因为 pip 解析到了错误的 openai 占位符包。如果在本地环境中反复遇到此问题且难以解决，建议直接使用 Docker 镜像进行部署。维护者确认 Docker 镜像中已包含所有正确版本的依赖，可以避免此类包元数据生成失败的问题。","https:\u002F\u002Fgithub.com\u002Fabsadiki\u002Fsubsai\u002Fissues\u002F140",{"id":92,"question_zh":93,"answer_zh":94,"source_url":80},39701,"处理大文件时内存占用过高导致机器卡死，有什么优化建议？","Web UI 在处理大文件上传后会立即占用大量内存。如果机器内存有限（如 8-16GB），建议不要通过 Web UI 处理超大文件。请使用 CLI (命令行) 模式进行转录，这样可以更有效地管理内存资源，避免浏览器或 Web 服务层带来的额外开销。",[],[97,107,117,125,137,145],{"id":98,"name":99,"github_repo":100,"description_zh":101,"stars":102,"difficulty_score":103,"last_commit_at":104,"category_tags":105,"status":62},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[106,53],"Agent",{"id":108,"name":109,"github_repo":110,"description_zh":111,"stars":112,"difficulty_score":61,"last_commit_at":113,"category_tags":114,"status":62},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[53,106,115,116],"图像","开发框架",{"id":118,"name":119,"github_repo":120,"description_zh":121,"stars":122,"difficulty_score":61,"last_commit_at":123,"category_tags":124,"status":62},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[53,116],{"id":126,"name":127,"github_repo":128,"description_zh":129,"stars":130,"difficulty_score":61,"last_commit_at":131,"category_tags":132,"status":62},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85092,"2026-04-10T11:13:16",[115,133,134,53,106,135,136,116,52],"数据工具","视频","其他","语言模型",{"id":138,"name":139,"github_repo":140,"description_zh":141,"stars":142,"difficulty_score":103,"last_commit_at":143,"category_tags":144,"status":62},7525,"codex","openai\u002Fcodex","Codex 是 OpenAI 推出的一款轻量级编程智能体，专为在终端环境中高效运行而设计。它允许开发者直接在命令行界面与 AI 交互，完成代码生成、调试、重构及项目维护等任务，无需频繁切换至浏览器或集成开发环境，从而显著提升了编码流程的连贯性与专注度。\n\n这款工具主要解决了传统 AI 辅助编程中上下文割裂的问题。通过将智能体本地化运行，Codex 能够更紧密地结合当前工作目录的文件结构，提供更具针对性的代码建议，同时支持以自然语言指令驱动复杂的开发操作，让“对话即编码”成为现实。\n\nCodex 非常适合习惯使用命令行的软件工程师、全栈开发者以及技术研究人员。对于追求极致效率、偏好键盘操作胜过图形界面的极客用户而言，它更是理想的结对编程伙伴。\n\n其独特亮点在于灵活的部署方式：既可作为全局命令行工具通过 npm 或 Homebrew 一键安装，也能无缝对接现有的 ChatGPT 订阅计划（如 Plus 或 Pro），直接复用账户权益。此外，它还提供了从纯文本终端到桌面应用的多形态体验，并支持基于 API 密钥的深度定制，充分满足不同场景下的开发需求。",75220,"2026-04-14T14:40:34",[136,106,53],{"id":146,"name":147,"github_repo":148,"description_zh":149,"stars":150,"difficulty_score":61,"last_commit_at":151,"category_tags":152,"status":62},51,"gstack","garrytan\u002Fgstack","gstack 是 Y Combinator CEO Garry Tan 亲自开源的一套 AI 工程化配置，旨在将 Claude Code 升级为你的虚拟工程团队。面对单人开发难以兼顾产品战略、架构设计、代码审查及质量测试的挑战，gstack 提供了一套标准化解决方案，帮助开发者实现堪比二十人团队的高效产出。\n\n这套配置特别适合希望提升交付效率的创始人、技术负责人，以及初次尝试 Claude Code 的开发者。gstack 的核心亮点在于内置了 15 个具有明确职责的 AI 角色工具，涵盖 CEO、设计师、工程经理、QA 等职能。用户只需通过简单的斜杠命令（如 `\u002Freview` 进行代码审查、`\u002Fqa` 执行测试、`\u002Fplan-ceo-review` 规划功能），即可自动化处理从需求分析到部署上线的全链路任务。\n\n所有操作基于 Markdown 和斜杠命令，无需复杂配置，完全免费且遵循 MIT 协议。gstack 不仅是一套工具集，更是一种现代化的软件工厂实践，让单人开发者也能拥有严谨的工程流程。",74909,"2026-04-17T23:08:54",[106,53]]