[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-pndurette--gTTS":3,"similar-pndurette--gTTS":176},{"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":17,"owner_website":17,"owner_url":19,"languages":20,"stars":25,"forks":26,"last_commit_at":27,"license":28,"difficulty_score":29,"env_os":30,"env_gpu":31,"env_ram":31,"env_deps":32,"category_tags":38,"github_topics":41,"view_count":51,"oss_zip_url":17,"oss_zip_packed_at":17,"status":52,"created_at":53,"updated_at":54,"faqs":55,"releases":85},3844,"pndurette\u002FgTTS","gTTS","Python library and CLI tool to interface with Google Translate's text-to-speech API","gTTS（Google Text-to-Speech）是一款基于 Python 的开源库与命令行工具，旨在让开发者轻松调用谷歌翻译的语音合成能力。它能够将任意长度的文本转换为自然流畅的语音，并直接保存为 MP3 文件、输出到标准流或作为字节流供后续处理，极大简化了“文字转语音”的开发流程。\n\n对于需要快速为应用添加朗读功能、制作有声内容或进行语音数据预处理的用户而言，gTTS 提供了一个零门槛的解决方案。它特别适合 Python 开发者、原型设计者以及希望低成本实现语音交互的研究人员。普通用户也可通过简单的命令行指令，瞬间将文本段落转化为音频文件，无需配置复杂的本地环境。\n\ngTTS 的技术亮点在于其内置的智能句子分词器，能够处理超长文本并保持语调的自然连贯，同时准确识别缩写、小数等特殊格式。此外，它还支持自定义文本预处理，方便用户对发音进行微调。需要注意的是，gTTS 通过非官方接口利用谷歌翻译的免费语音服务，并非谷歌云官方付费产品，因此适用于个人项目或对稳定性要求不极端的场景，使用时需留意上游服务可能的变动。","# gTTS\n\n**gTTS** (*Google Text-to-Speech*), a Python library and CLI tool to interface with Google Translate's text-to-speech API. \nWrite spoken `mp3` data to a file, a file-like object (bytestring) for further audio manipulation, or `stdout`.\n\u003Chttps:\u002F\u002Fgtts.readthedocs.io\u002F>\n\n[![PyPI version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002FgTTS.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002FgTTS\u002F)\n[![Python versions](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002FgTTS.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002FgTTS\u002F)\n[![Tests workflow](https:\u002F\u002Fgithub.com\u002Fpndurette\u002Fgtts\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Factions)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fpndurette\u002FgTTS\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fpndurette\u002FgTTS)\n[![Commits Since](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcommits-since\u002Fpndurette\u002FgTTS\u002Flatest.svg)](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommits\u002F)\n[![PyPi Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpndurette_gTTS_readme_b4e8cfe3ed12.png)](http:\u002F\u002Fpepy.tech\u002Fproject\u002Fgtts)\n[![Buy me a Coffee](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuy%20me%20a-coffee-orange)](https:\u002F\u002Fwww.buymeacoffee.com\u002Fpndurette)\n\n## Features\n\n-   Customizable speech-specific sentence tokenizer that allows for unlimited lengths of text to be read, all while keeping proper intonation, abbreviations, decimals and more;\n-   Customizable text pre-processors which can, for example, provide pronunciation corrections;\n\n### Installation\n\n    $ pip install gTTS\n\n### Quickstart\n\nCommand Line:\n\n    $ gtts-cli 'hello' --output hello.mp3\n\nModule:\n\n    >>> from gtts import gTTS\n    >>> tts = gTTS('hello')\n    >>> tts.save('hello.mp3')\n\nSee \u003Chttps:\u002F\u002Fgtts.readthedocs.io\u002F> for documentation and examples.\n\n### Disclaimer\n\nThis project is *not* affiliated with Google or Google Cloud. Breaking upstream changes *can* occur without notice. This project is leveraging the undocumented [Google Translate](https:\u002F\u002Ftranslate.google.com) speech functionality and is *different* from [Google Cloud Text-to-Speech](https:\u002F\u002Fcloud.google.com\u002Ftext-to-speech\u002F).\n\n### Project\n\n-   [Questions & community](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fdiscussions)\n-   [Changelog](CHANGELOG.md)\n-   [Contributing](CONTRIBUTING.rst)\n\n### Licence\n\n[The MIT License (MIT)](LICENSE) Copyright © 2014-2024 Pierre Nicolas Durette & [Contributors](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fgraphs\u002Fcontributors)\n","# gTTS\n\n**gTTS**（*Google Text-to-Speech*），是一个用于与 Google 翻译文本转语音 API 交互的 Python 库和命令行工具。\n可以将语音 `mp3` 数据写入文件、文件类对象（字节串）以供进一步音频处理，或直接输出到 `stdout`。\n\u003Chttps:\u002F\u002Fgtts.readthedocs.io\u002F>\n\n[![PyPI 版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002FgTTS.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002FgTTS\u002F)\n[![Python 版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002FgTTS.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002FgTTS\u002F)\n[![测试工作流](https:\u002F\u002Fgithub.com\u002Fpndurette\u002Fgtts\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Factions)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fpndurette\u002FgTTS\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fpndurette\u002FgTTS)\n[![自最新版本以来的提交数](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcommits-since\u002Fpndurette\u002FgTTS\u002Flatest.svg)](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommits\u002F)\n[![PyPi 下载量](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpndurette_gTTS_readme_b4e8cfe3ed12.png)](http:\u002F\u002Fpepy.tech\u002Fproject\u002Fgtts)\n[![请我喝杯咖啡](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuy%20me%20a-coffee-orange)](https:\u002F\u002Fwww.buymeacoffee.com\u002Fpndurette)\n\n## 功能特性\n\n-   可自定义的、针对语音特性的句子分隔器，允许读取任意长度的文本，同时保持正确的语调、缩写、小数等；\n-   可自定义的文本预处理器，例如可以提供发音修正等功能；\n\n### 安装\n\n    $ pip install gTTS\n\n### 快速入门\n\n命令行：\n\n    $ gtts-cli 'hello' --output hello.mp3\n\n模块：\n\n    >>> from gtts import gTTS\n    >>> tts = gTTS('hello')\n    >>> tts.save('hello.mp3')\n\n更多文档和示例请参阅 \u003Chttps:\u002F\u002Fgtts.readthedocs.io\u002F>。\n\n### 免责声明\n\n本项目 *并非* 与 Google 或 Google Cloud 有关联。上游变更可能会在未事先通知的情况下发生。本项目利用了未公开的 [Google 翻译](https:\u002F\u002Ftranslate.google.com) 语音功能，与 [Google Cloud 文本转语音](https:\u002F\u002Fcloud.google.com\u002Ftext-to-speech\u002F) *不同*。\n\n### 项目信息\n\n-   [问题与社区](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fdiscussions)\n-   [更新日志](CHANGELOG.md)\n-   [贡献指南](CONTRIBUTING.rst)\n\n### 许可证\n\n[MIT 许可证 (MIT)](LICENSE) 版权所有 © 2014–2024 Pierre Nicolas Durette 及 [贡献者](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fgraphs\u002Fcontributors)","# gTTS 快速上手指南\n\ngTTS (Google Text-to-Speech) 是一个 Python 库和命令行工具，用于调用 Google 翻译的文本转语音 API。它可以将文本转换为 MP3 音频文件、字节流或标准输出。\n\n## 环境准备\n\n- **操作系统**：Windows、macOS 或 Linux\n- **Python 版本**：支持 Python 3.7 及以上版本\n- **前置依赖**：需安装 `pip` 包管理工具\n- **网络要求**：由于调用 Google 服务，请确保网络环境可访问 Google Translate（国内用户可能需要配置代理）\n\n## 安装步骤\n\n使用 pip 直接安装：\n\n```bash\npip install gTTS\n```\n\n> **提示**：国内用户若下载缓慢，可使用国内镜像源加速安装：\n> ```bash\n> pip install gTTS -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 基本使用\n\n### 方式一：命令行使用\n\n在终端中直接运行以下命令，将文本 \"hello\" 转换为音频并保存为 `hello.mp3`：\n\n```bash\ngtts-cli 'hello' --output hello.mp3\n```\n\n### 方式二：Python 模块调用\n\n在 Python 脚本或交互式环境中使用：\n\n```python\n>>> from gtts import gTTS\n>>> tts = gTTS('hello')\n>>> tts.save('hello.mp3')\n```\n\n执行后，当前目录下将生成 `hello.mp3` 文件，可直接播放收听。\n\n更多高级用法（如多语言支持、语速调整、自定义分词等）请参阅官方文档：https:\u002F\u002Fgtts.readthedocs.io\u002F","一位独立开发者正在为视障用户构建一个实时新闻朗读助手，需要将抓取到的长篇中文资讯快速转换为自然的语音文件。\n\n### 没有 gTTS 时\n- **开发门槛高**：必须自行搭建复杂的深度学习语音合成模型或申请昂贵的商业云 API 密钥，初期投入成本巨大。\n- **长文本处理难**：直接调用基础接口时，长文章常被截断，且缺乏智能分句逻辑，导致朗读时语调生硬、停顿错乱。\n- **集成流程繁琐**：需要编写大量额外代码来处理音频流的下载、拼接及本地 MP3 文件保存，调试耗时费力。\n- **多语言支持弱**：若需扩展支持英文或其他语种，往往需要对接不同的服务商，维护多套认证和调用逻辑。\n\n### 使用 gTTS 后\n- **零成本快速启动**：仅需一行 `pip install` 即可调用谷歌成熟的翻译语音引擎，无需训练模型或配置复杂凭证。\n- **智能分句与语调**：利用内置的可定制分句器，自动将长新闻拆解为合理段落，确保数字、缩写及整篇内容的语调自然流畅。\n- **极简代码集成**：通过简单的 Python 模块或 CLI 命令，直接将文本转化为本地 MP3 文件或字节流，大幅缩减开发周期。\n- **全球语言无缝切换**：只需修改语言参数代码，即可在同一架构下支持数十种语言的新闻播报，扩展性极强。\n\ngTTS 让开发者能以极低的成本和代码量，将静态文本瞬间转化为高质量的自然语音，极大地降低了无障碍应用的构建门槛。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpndurette_gTTS_00161bc2.png","pndurette","Pierre Nicolas Durette","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fpndurette_cebf7412.jpg",null,"Montréal, QC, Canada","https:\u002F\u002Fgithub.com\u002Fpndurette",[21],{"name":22,"color":23,"percentage":24},"Python","#3572A5",100,2600,383,"2026-04-02T17:42:58","MIT",1,"Linux, macOS, Windows","未说明",{"notes":33,"python":34,"dependencies":35},"该工具通过调用 Google 翻译的在线 API 生成语音，无需本地模型文件，因此对硬件（GPU\u002F内存）无特殊要求。运行时必须保持网络连接。注意：该项目非 Google 官方产品，依赖未公开的 API 接口，可能因上游变更而失效。","3.7+",[36,37],"requests","click",[39,40],"插件","音频",[42,43,44,45,46,47,48,49,50],"speech","python","tts","text-to-speech","gtts","speech-api","cli","python-library","pypi",2,"ready","2026-03-27T02:49:30.150509","2026-04-06T08:40:09.493305",[56,61,66,71,76,80],{"id":57,"question_zh":58,"answer_zh":59,"source_url":60},17599,"遇到 'ValueError: Unable to find token seed!' 或 'NoneType' object has no attribute 'group' 错误怎么办？","这通常是因为 Google Translate 更新了页面结构，导致旧的 token 解析失效。最常见的解决方法是卸载并重新安装相关库以获取最新修复：\n1. 运行命令：pip uninstall gtts_token\n2. 运行命令：pip install --upgrade gTTS\n如果问题依旧，可能是库版本过旧，请确保升级到最新版本。部分用户反馈仅重装 gtts_token 即可解决问题。","https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F232",{"id":62,"question_zh":63,"answer_zh":64,"source_url":65},17600,"如何直接播放 gTTS 生成的音频而不保存到文件？","可以使用 tempfile 创建临时文件并结合 playsound 库直接播放，无需手动保存 MP3 文件。示例代码如下：\n\nfrom gtts import gTTS\nfrom tempfile import NamedTemporaryFile\nfrom playsound import playsound\n\ndef speak(txt, lang='en'):\n    with NamedTemporaryFile(delete=False) as fp:\n        gTTS(text=txt, lang=lang).write_to_fp(fp)\n        fp_name = fp.name\n    playsound(fp_name)\n    # 临时文件可根据需要删除或保留由系统清理\n\n注意：需要预先安装 playsound 库 (pip install playsound)。","https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F26",{"id":67,"question_zh":68,"answer_zh":69,"source_url":70},17601,"使用命令行工具 (gtts-cli) 时出现正则表达式匹配失败或 token 错误如何解决？","这是由于 Google Translate 更改了网页源码中的 token 格式。除了升级库之外，高级用户可以通过“猴子补丁”（Monkey Patch）方式临时修复代码中的解析逻辑。以下是一个可行的补丁示例：\n\nimport re, requests, calendar, time, math\nfrom gtts_token.gtts_token import Token\n\ndef _patched_get_token_key(self):\n    if self.token_key is not None:\n        return self.token_key\n    timestamp = calendar.timegm(time.gmtime())\n    hours = int(math.floor(timestamp \u002F 3600))\n    results = requests.get(\"https:\u002F\u002Ftranslate.google.com\u002F\")\n    tkk_expr = re.search(r\"(tkk:*?'\\d{2,}.\\d{3,}')\", results.text).group(1)\n    tkk = re.search(r\"(\\d{5,}.\\d{6,})\", tkk_expr).group(1)\n    a, b = tkk.split('.')\n    result = str(hours) + \".\" + str(int(a) + int(b))\n    self.token_key = result\n    return result\n\nToken._get_token_key = _patched_get_token_key\n\n应用此补丁后，即可正常调用 gTTS 功能。","https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F137",{"id":72,"question_zh":73,"answer_zh":74,"source_url":75},17602,"为什么重装后仍然报错，或者不同 Python 版本下行为不一致？","这种情况通常是因为环境中残留了旧版本的 gtts_token 或 gTTS 库，导致冲突。请严格执行以下步骤：\n1. 完全卸载：pip uninstall gTTS gtts_token\n2. 确认卸载干净（可检查 site-packages 目录）\n3. 重新安装最新版：pip install gTTS\n此外，确保你的 Python 环境（如虚拟环境）是干净的，避免全局包与局部包冲突。Windows 和 Linux 用户均报告过此类问题，统一通过彻底重装解决。","https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F60",{"id":77,"question_zh":78,"answer_zh":79,"source_url":60},17603,"发送少量请求后突然报错，是否是被 Google 限制了 IP？","通常不是因为 IP 被封锁。根据官方配额限制，每分钟 300 次请求和每次 5000 字符的限制远高于普通用法。出现 'Unable to find token seed' 错误绝大多数情况是因为 Google 前端代码变更导致解析失败，而非网络限制。建议优先尝试升级库或重装，而不是更换 IP。如果频繁发生，请检查是否使用了过时的 gTTS 版本。",{"id":81,"question_zh":82,"answer_zh":83,"source_url":84},17604,"文本超过一定长度（如 200 字符）时转换失败是怎么回事？","gTTS 内部会将长文本自动分割成多个片段进行请求。如果某一分片处理失败（通常伴随 token 错误），整个流程会中断。这本质上还是 token 解析问题或网络波动导致的。解决方案同上：确保安装最新的 gTTS 和 gtts_token 库。如果问题持续，可以尝试手动将长文本切分为较短的段落分别生成音频，再合并处理。","https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F252",[86,91,96,101,106,111,116,121,126,131,136,140,144,148,152,156,160,164,168,172],{"id":87,"version":88,"summary_zh":89,"released_at":90},107896,"v2.5.4","## [2.5.4](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcompare\u002Fv2.5.3...v2.5.4) (2024-11-10)\n\n\n### 错误修复\n\n* **langs:** 新增语言：`fr-CA`（法语（加拿大））（[#490](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F490)）（[defc400](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002Fdefc4000304f5745b1dfec40ef76eb584fb4a058)）","2024-11-10T21:57:42",{"id":92,"version":93,"summary_zh":94,"released_at":95},107897,"v2.5.3","## [2.5.3](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcompare\u002Fv2.5.2...v2.5.3) (2024-08-13)\n\n\n### 错误修复\n\n* **langs:** 新增语言：`pt-PT`（葡萄牙语（葡萄牙））、`yue`（粤语）；修改语言：`pa`（旁遮普语（古木基文））、`pt`（葡萄牙语（巴西））([72a7e57](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F72a7e57c0bfa2a6f1f81fc4ce485d9f920ae845c))","2024-08-13T16:26:02",{"id":97,"version":98,"summary_zh":99,"released_at":100},107898,"v2.5.2","## [2.5.2](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcompare\u002Fv2.5.1...v2.5.2) (2024-07-20)\n\n\n### 错误修复\n\n* **langs:** 新增语言：`am`（阿姆哈拉语）、`cy`（威尔士语）、`eu`（巴斯克语）、`gl`（加利西亚语）、`ha`（豪萨语）、`lt`（立陶宛语）、`pa`（旁遮普语）（[#477](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F477)）（[b04d6d1](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002Fb04d6d1ccfdd5dbb468ddd680e7d63435e3dea2c)）","2024-07-20T01:09:21",{"id":102,"version":103,"summary_zh":104,"released_at":105},107899,"v2.5.1","## [2.5.1](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcompare\u002Fv2.5.0...v2.5.1) (2024-01-29)\n\n\n### 错误修复\n\n* 保存文件后刷新缓冲区 ([#448](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F448)) ([262c532](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F262c5328981454ebeac07ed0e6f053b0e4e1daa7))","2024-01-29T03:09:08",{"id":107,"version":108,"summary_zh":109,"released_at":110},107900,"v2.5.0","## [2.5.0](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcompare\u002Fv2.4.0...v2.5.0) (2023-12-20)\n\n\n### 功能\n\n* 为 `gTTS` 添加一个可选的 `timeout` 参数，该参数会传递给底层的 HTTPS 请求（[#440](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F440)）（[bcdb79d](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002Fbcdb79df41e76c5c1e4fea6388d0eeb3f0c009f6)）","2023-12-20T04:16:40",{"id":112,"version":113,"summary_zh":114,"released_at":115},107901,"v2.4.0","## [2.4.0](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcompare\u002Fv2.3.2...v2.4.0) (2023-10-03)\n\n\n### 功能\n\n* 添加对 Python 3.12 的支持  ([75294b2](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F75294b227f5c428436215abaf6cddc9f3d10f4de))\n* 移除对 Python 3.7 的支持（已停止维护）([75294b2](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F75294b227f5c428436215abaf6cddc9f3d10f4de))","2023-10-03T16:51:14",{"id":117,"version":118,"summary_zh":119,"released_at":120},107902,"v2.3.2","## [2.3.2](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcompare\u002Fv2.3.2...v2.3.2) (2023-04-29)\n\n### 错误修复\n\n* 添加新的错误处理程序，用于在使用自定义（非 `.com`）顶级域名时出现 404 错误的情况 ([5a860ed](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F5a860edd27a6772d7facc384927e3b87439e2ccd))\n* **命令行工具：** 为命令行工具添加已弃用的语言回退支持 ([5a860ed](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F5a860edd27a6772d7facc384927e3b87439e2ccd))\n\n\n### 文档\n\n* **命令行工具：** 修复旧的无效示例 ([5a860ed](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F5a860edd27a6772d7facc384927e3b87439e2ccd))","2023-04-29T06:20:43",{"id":122,"version":123,"summary_zh":124,"released_at":125},107903,"v2.3.1","## [2.3.1](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcompare\u002Fv2.3.0...v2.3.1)（2023-01-16）\n\n\n### 错误修复\n\n* **测试：** 在发布包中包含缺失的必需 `*.txt` 测试文件（[#395](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F395)）（[63f10ff](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F63f10ff6aec877103c3459fc6d3c261d469b6770)）\n* 放宽对 `click` 和 `requests` 的依赖版本约束，移除对 `six` 的依赖（[#394](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F394)）（[a4ce0c9](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002Fa4ce0c9a26778c079fd49c7e2d89ab03bbc22cc3)）\n* **测试：** 未在启用网络功能的测试上添加 `@pytest.mark.net` 标记（[#391](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F391)）（[3667f06](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F3667f06d16152961df2ff8067384f11be9b327c0)）\n* **测试：** 移除对 `mock` 包的测试依赖（[#390](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F390)）（[9b54fc1](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F9b54fc12b7839d3ab3ee0e948df45dfd840061c5)）","2023-01-16T07:40:19",{"id":127,"version":128,"summary_zh":129,"released_at":130},107904,"v2.3.0","## [2.3.0](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcompare\u002Fv2.2.4...v2.3.0) (2022-11-21)\n\n\n### 功能\n\n* 将项目元数据和配置集中到一个 `pyproject.toml` 文件中 ([25d3c1c](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F25d3c1c9ee16da81d1b766b9ee6649831a8a1719))\n* 停止对 Python 2.7（早已该停止）和 Python 3.6（已结束生命周期）的支持 ([25d3c1c](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F25d3c1c9ee16da81d1b766b9ee6649831a8a1719))\n* 现代化包配置及构建\u002F发布流程 ([25d3c1c](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F25d3c1c9ee16da81d1b766b9ee6649831a8a1719))\n* 简化语言生成器 ([5dbdf10](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F5dbdf105b9ca4639577d8904001581434741fe34))\n\n\n### 错误修复\n\n* 新增语言：`zh-CN`（简体中文）、`zh-TW`（繁体中文） ([5dbdf10](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F5dbdf105b9ca4639577d8904001581434741fe34))\n* 移除语言：`cy`（威尔士语）、`eo`（世界语）、`mk`（马其顿语）、`ms`（马来语）、`zh-CN`（中文） ([5dbdf10](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcommit\u002F5dbdf105b9ca4639577d8904001581434741fe34))","2022-11-21T03:14:12",{"id":132,"version":133,"summary_zh":134,"released_at":135},107905,"v2.2.4","## 功能特性\n\n- 增加了马来语支持 ([#316](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F316))\n- 增加了希伯来语支持 ([#324](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F324))\n- 新增了 ``gTTS.stream()`` 方法，用于流式传输字节数据 ([#319](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fissues\u002F319))\n\n**完整更新日志**: https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fcompare\u002Fv2.2.3...v2.2.4 \u002F [`CHANGELOG.rst`](https:\u002F\u002Fgithub.com\u002Fpndurette\u002FgTTS\u002Fblob\u002Fmaster\u002FCHANGELOG.rst)","2022-03-15T05:17:43",{"id":137,"version":138,"summary_zh":17,"released_at":139},107906,"v2.2.3","2021-06-18T03:31:16",{"id":141,"version":142,"summary_zh":17,"released_at":143},107907,"v2.2.2","2021-02-04T04:11:20",{"id":145,"version":146,"summary_zh":17,"released_at":147},107908,"v2.2.1","2020-11-15T18:35:24",{"id":149,"version":150,"summary_zh":17,"released_at":151},107909,"v2.2.0","2020-11-15T02:43:34",{"id":153,"version":154,"summary_zh":17,"released_at":155},107910,"v2.1.2","2020-11-11T20:22:00",{"id":157,"version":158,"summary_zh":17,"released_at":159},107911,"v2.1.1","2020-01-26T03:25:11",{"id":161,"version":162,"summary_zh":17,"released_at":163},107912,"v2.1.0","2020-01-01T07:06:58",{"id":165,"version":166,"summary_zh":17,"released_at":167},107913,"v2.0.4","2019-08-30T01:03:38",{"id":169,"version":170,"summary_zh":17,"released_at":171},107914,"v2.0.3","2018-12-15T06:56:40",{"id":173,"version":174,"summary_zh":17,"released_at":175},107915,"v2.0.2","2018-12-09T07:03:48",[177,192,201,209,217,225],{"id":178,"name":179,"github_repo":180,"description_zh":181,"stars":182,"difficulty_score":51,"last_commit_at":183,"category_tags":184,"status":52},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[185,186,187,39,188,189,190,191,40],"图像","数据工具","视频","Agent","其他","语言模型","开发框架",{"id":193,"name":194,"github_repo":195,"description_zh":196,"stars":197,"difficulty_score":198,"last_commit_at":199,"category_tags":200,"status":52},2181,"OpenHands","OpenHands\u002FOpenHands","OpenHands 是一个专注于 AI 驱动开发的开源平台，旨在让智能体（Agent）像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点，通过自动化流程显著提升开发速度。\n\n无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员，还是需要快速原型验证的技术团队，都能从中受益。OpenHands 提供了灵活多样的使用方式：既可以通过命令行（CLI）或本地图形界面在个人电脑上轻松上手，体验类似 Devin 的流畅交互；也能利用其强大的 Python SDK 自定义智能体逻辑，甚至在云端大规模部署上千个智能体并行工作。\n\n其核心技术亮点在于模块化的软件智能体 SDK，这不仅构成了平台的引擎，还支持高度可组合的开发模式。此外，OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩，证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能，支持与 Slack、Jira 等工具集成，并提供细粒度的权限管理，适合从个人开发者到大型企业的各类用户场景。",70626,3,"2026-04-05T22:51:36",[190,188,191,39],{"id":202,"name":203,"github_repo":204,"description_zh":205,"stars":206,"difficulty_score":51,"last_commit_at":207,"category_tags":208,"status":52},3074,"gpt4free","xtekky\u002Fgpt4free","gpt4free 是一个由社区驱动的开源项目，旨在聚合多种可访问的大型语言模型（LLM）和媒体生成接口，让用户能更灵活、便捷地使用前沿 AI 能力。它解决了直接调用各类模型时面临的接口分散、门槛高或成本昂贵等痛点，通过统一的标准将不同提供商的资源整合在一起。\n\n无论是希望快速集成 AI 功能的开发者、需要多模型对比测试的研究人员，还是想免费体验最新技术的普通用户，都能从中受益。gpt4free 提供了丰富的使用方式：既包含易于上手的 Python 和 JavaScript 客户端库，也支持部署本地图形界面（GUI），更提供了兼容 OpenAI 标准的 REST API，方便无缝替换现有应用后端。\n\n其技术亮点在于强大的多提供商支持架构，能够动态调度包括 Opus、Gemini、DeepSeek 等多种主流模型资源，并支持 Docker 一键部署及本地推理。项目秉持社区优先原则，在降低使用门槛的同时，也为贡献者提供了扩展新接口的便利框架，是探索和利用多样化 AI 资源的实用工具。",65970,"2026-04-04T01:02:03",[39,190,188],{"id":210,"name":211,"github_repo":212,"description_zh":213,"stars":214,"difficulty_score":51,"last_commit_at":215,"category_tags":216,"status":52},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 不仅是一套工具集，更是一种现代化的软件工厂实践，让单人开发者也能拥有严谨的工程流程。",64604,"2026-04-05T23:10:16",[188,39],{"id":218,"name":219,"github_repo":220,"description_zh":221,"stars":222,"difficulty_score":51,"last_commit_at":223,"category_tags":224,"status":52},193,"meilisearch","meilisearch\u002Fmeilisearch","Meilisearch 是一个开源的极速搜索服务，专为现代应用和网站打造，开箱即用。它能帮助开发者快速集成高质量的搜索功能，无需复杂的配置或额外的数据预处理。传统搜索方案往往需要大量调优才能实现准确结果，而 Meilisearch 内置了拼写容错、同义词识别、即时响应等实用特性，并支持 AI 驱动的混合搜索（结合关键词与语义理解），显著提升用户查找信息的体验。\n\nMeilisearch 特别适合 Web 开发者、产品团队或初创公司使用，尤其适用于需要快速上线搜索功能的场景，如电商网站、内容平台或 SaaS 应用。它提供简洁的 RESTful API 和多种语言 SDK，部署简单，资源占用低，本地开发或生产环境均可轻松运行。对于希望在不依赖大型云服务的前提下，为用户提供流畅、智能搜索体验的团队来说，Meilisearch 是一个高效且友好的选择。",56972,"2026-04-05T22:34:33",[185,188,186,191,39,189],{"id":226,"name":227,"github_repo":228,"description_zh":229,"stars":230,"difficulty_score":198,"last_commit_at":231,"category_tags":232,"status":52},4128,"GPT-SoVITS","RVC-Boss\u002FGPT-SoVITS","GPT-SoVITS 是一款强大的开源语音合成与声音克隆工具，旨在让用户仅需极少量的音频数据即可训练出高质量的个性化语音模型。它核心解决了传统语音合成技术依赖海量录音数据、门槛高且成本大的痛点，实现了“零样本”和“少样本”的快速建模：用户只需提供 5 秒参考音频即可即时生成语音，或使用 1 分钟数据进行微调，从而获得高度逼真且相似度极佳的声音效果。\n\n该工具特别适合内容创作者、独立开发者、研究人员以及希望为角色配音的普通用户使用。其内置的友好 WebUI 界面集成了人声伴奏分离、自动数据集切片、中文语音识别及文本标注等辅助功能，极大地降低了数据准备和模型训练的技术门槛，让非专业人士也能轻松上手。\n\n在技术亮点方面，GPT-SoVITS 不仅支持中、英、日、韩、粤语等多语言跨语种合成，还具备卓越的推理速度，在主流显卡上可实现实时甚至超实时的生成效率。无论是需要快速制作视频配音，还是进行多语言语音交互研究，GPT-SoVITS 都能以极低的数据成本提供专业级的语音合成体验。",56375,"2026-04-05T22:15:46",[40]]