[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-keithito--tacotron":3,"tool-keithito--tacotron":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",143909,2,"2026-04-07T11:33:18",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},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",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":84,"forks":85,"last_commit_at":86,"license":87,"difficulty_score":10,"env_os":88,"env_gpu":89,"env_ram":90,"env_deps":91,"category_tags":97,"github_topics":99,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":105,"updated_at":106,"faqs":107,"releases":145},5157,"keithito\u002Ftacotron","tacotron","A TensorFlow implementation of Google's Tacotron speech synthesis with pre-trained model (unofficial)","Tacotron 是一个基于 TensorFlow 实现的开源语音合成项目，旨在复现谷歌提出的端到端神经网络语音合成模型。它解决了传统语音合成系统依赖复杂人工规则和繁琐特征工程的痛点，能够直接从“文本 - 音频”配对数据中学习，将输入文字自动转换为自然流畅的语音。\n\n虽然这是社区维护的非官方版本，但其核心价值在于填补了谷歌原始论文未公开代码和训练数据的空白，让学术界和开发者得以深入探索前沿技术。项目支持使用预训练模型快速搭建演示服务，也提供了完整的训练流程，兼容 LJ Speech 等主流数据集。其技术亮点包括可调节的超参数配置、对 Dropout 机制的修复，以及社区贡献的融合 Tacotron 2 特性（如位置敏感注意力机制），显著降低了训练所需的数据量。\n\nTacotron 非常适合人工智能研究人员、语音技术开发者以及对深度学习感兴趣的学生使用。对于希望定制专属语音音色或研究序列到序列模型的专业人士，它提供了一个透明、可扩展的实验平台；普通用户也可通过预训练模型体验文字转语音的乐趣。尽管生成质量仍在持续优化中，但它无疑是进入端到端语音合成领域的重要入门工具。","# Tacotron\n\nAn implementation of Tacotron speech synthesis in TensorFlow.\n\n\n### Audio Samples\n\n  * **[Audio Samples](https:\u002F\u002Fkeithito.github.io\u002Faudio-samples\u002F)** from models trained using this repo.\n    * The first set was trained for 441K steps on the [LJ Speech Dataset](https:\u002F\u002Fkeithito.com\u002FLJ-Speech-Dataset\u002F)\n      * Speech started to become intelligible around 20K steps.\n    * The second set was trained by [@MXGray](https:\u002F\u002Fgithub.com\u002FMXGray) for 140K steps on the [Nancy Corpus](http:\u002F\u002Fwww.cstr.ed.ac.uk\u002Fprojects\u002Fblizzard\u002F2011\u002Flessac_blizzard2011\u002F).\n\n\n### Recent Updates\n\n1. @npuichigo [fixed](https:\u002F\u002Fgithub.com\u002Fkeithito\u002Ftacotron\u002Fpull\u002F205) a bug where dropout was not being applied in the prenet.\n\n2. @begeekmyfriend created a [fork](https:\u002F\u002Fgithub.com\u002Fbegeekmyfriend\u002Ftacotron) that adds location-sensitive attention and the stop token from the [Tacotron 2](https:\u002F\u002Farxiv.org\u002Fabs\u002F1712.05884) paper. This can greatly reduce the amount of data required to train a model.\n\n\n## Background\n\nIn April 2017, Google published a paper, [Tacotron: Towards End-to-End Speech Synthesis](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1703.10135.pdf),\nwhere they present a neural text-to-speech model that learns to synthesize speech directly from\n(text, audio) pairs. However, they didn't release their source code or training data. This is an\nindependent attempt to provide an open-source implementation of the model described in their paper.\n\nThe quality isn't as good as Google's demo yet, but hopefully it will get there someday :-).\nPull requests are welcome!\n\n\n\n## Quick Start\n\n### Installing dependencies\n\n1. Install Python 3.\n\n2. Install the latest version of [TensorFlow](https:\u002F\u002Fwww.tensorflow.org\u002Finstall\u002F) for your platform. For better\n   performance, install with GPU support if it's available. This code works with TensorFlow 1.3 and later.\n\n3. Install requirements:\n   ```\n   pip install -r requirements.txt\n   ```\n\n\n### Using a pre-trained model\n\n1. **Download and unpack a model**:\n   ```\n   curl https:\u002F\u002Fdata.keithito.com\u002Fdata\u002Fspeech\u002Ftacotron-20180906.tar.gz | tar xzC \u002Ftmp\n   ```\n\n2. **Run the demo server**:\n   ```\n   python3 demo_server.py --checkpoint \u002Ftmp\u002Ftacotron-20180906\u002Fmodel.ckpt\n   ```\n\n3. **Point your browser at localhost:9000**\n   * Type what you want to synthesize\n\n\n\n### Training\n\n*Note: you need at least 40GB of free disk space to train a model.*\n\n1. **Download a speech dataset.**\n\n   The following are supported out of the box:\n    * [LJ Speech](https:\u002F\u002Fkeithito.com\u002FLJ-Speech-Dataset\u002F) (Public Domain)\n    * [Blizzard 2012](http:\u002F\u002Fwww.cstr.ed.ac.uk\u002Fprojects\u002Fblizzard\u002F2012\u002Fphase_one) (Creative Commons Attribution Share-Alike)\n\n   You can use other datasets if you convert them to the right format. See [TRAINING_DATA.md](TRAINING_DATA.md) for more info.\n\n\n2. **Unpack the dataset into `~\u002Ftacotron`**\n\n   After unpacking, your tree should look like this for LJ Speech:\n   ```\n   tacotron\n     |- LJSpeech-1.1\n         |- metadata.csv\n         |- wavs\n   ```\n\n   or like this for Blizzard 2012:\n   ```\n   tacotron\n     |- Blizzard2012\n         |- ATrampAbroad\n         |   |- sentence_index.txt\n         |   |- lab\n         |   |- wav\n         |- TheManThatCorruptedHadleyburg\n             |- sentence_index.txt\n             |- lab\n             |- wav\n   ```\n\n3. **Preprocess the data**\n   ```\n   python3 preprocess.py --dataset ljspeech\n   ```\n     * Use `--dataset blizzard` for Blizzard data\n\n4. **Train a model**\n   ```\n   python3 train.py\n   ```\n\n   Tunable hyperparameters are found in [hparams.py](hparams.py). You can adjust these at the command\n   line using the `--hparams` flag, for example `--hparams=\"batch_size=16,outputs_per_step=2\"`.\n   Hyperparameters should generally be set to the same values at both training and eval time.\n   The default hyperparameters are recommended for LJ Speech and other English-language data.\n   See [TRAINING_DATA.md](TRAINING_DATA.md) for other languages.\n\n\n5. **Monitor with Tensorboard** (optional)\n   ```\n   tensorboard --logdir ~\u002Ftacotron\u002Flogs-tacotron\n   ```\n\n   The trainer dumps audio and alignments every 1000 steps. You can find these in\n   `~\u002Ftacotron\u002Flogs-tacotron`.\n\n6. **Synthesize from a checkpoint**\n   ```\n   python3 demo_server.py --checkpoint ~\u002Ftacotron\u002Flogs-tacotron\u002Fmodel.ckpt-185000\n   ```\n   Replace \"185000\" with the checkpoint number that you want to use, then open a browser\n   to `localhost:9000` and type what you want to speak. Alternately, you can\n   run [eval.py](eval.py) at the command line:\n   ```\n   python3 eval.py --checkpoint ~\u002Ftacotron\u002Flogs-tacotron\u002Fmodel.ckpt-185000\n   ```\n   If you set the `--hparams` flag when training, set the same value here.\n\n\n## Notes and Common Issues\n\n  * [TCMalloc](http:\u002F\u002Fgoog-perftools.sourceforge.net\u002Fdoc\u002Ftcmalloc.html) seems to improve\n    training speed and avoids occasional slowdowns seen with the default allocator. You\n    can enable it by installing it and setting `LD_PRELOAD=\u002Fusr\u002Flib\u002Flibtcmalloc.so`. With TCMalloc,\n    you can get around 1.1 sec\u002Fstep on a GTX 1080Ti.\n\n  * You can train with [CMUDict](http:\u002F\u002Fwww.speech.cs.cmu.edu\u002Fcgi-bin\u002Fcmudict) by downloading the\n    dictionary to ~\u002Ftacotron\u002Ftraining and then passing the flag `--hparams=\"use_cmudict=True\"` to\n    train.py. This will allow you to pass ARPAbet phonemes enclosed in curly braces at eval\n    time to force a particular pronunciation, e.g. `Turn left on {HH AW1 S S T AH0 N} Street.`\n\n  * If you pass a Slack incoming webhook URL as the `--slack_url` flag to train.py, it will send\n    you progress updates every 1000 steps.\n\n  * Occasionally, you may see a spike in loss and the model will forget how to attend (the\n    alignments will no longer make sense). Although it will recover eventually, it may\n    save time to restart at a checkpoint prior to the spike by passing the\n    `--restore_step=150000` flag to train.py (replacing 150000 with a step number prior to the\n    spike). **Update**: a recent [fix](https:\u002F\u002Fgithub.com\u002Fkeithito\u002Ftacotron\u002Fpull\u002F7) to gradient\n    clipping by @candlewill may have fixed this.\n    \n  * During eval and training, audio length is limited to `max_iters * outputs_per_step * frame_shift_ms`\n    milliseconds. With the defaults (max_iters=200, outputs_per_step=5, frame_shift_ms=12.5), this is\n    12.5 seconds.\n    \n    If your training examples are longer, you will see an error like this:\n    `Incompatible shapes: [32,1340,80] vs. [32,1000,80]`\n    \n    To fix this, you can set a larger value of `max_iters` by passing `--hparams=\"max_iters=300\"` to\n    train.py (replace \"300\" with a value based on how long your audio is and the formula above).\n    \n  * Here is the expected loss curve when training on LJ Speech with the default hyperparameters:\n    ![Loss curve](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkeithito_tacotron_readme_638c2875ac20.png)\n\n\n## Other Implementations\n  * By Alex Barron: https:\u002F\u002Fgithub.com\u002Fbarronalex\u002FTacotron\n  * By Kyubyong Park: https:\u002F\u002Fgithub.com\u002FKyubyong\u002Ftacotron\n","# Tacotron\n\n在 TensorFlow 中实现的 Tacotron 语音合成模型。\n\n\n### 音频样本\n\n  * **[音频样本](https:\u002F\u002Fkeithito.github.io\u002Faudio-samples\u002F)** 来自使用本仓库训练的模型。\n    * 第一组在 [LJ Speech 数据集](https:\u002F\u002Fkeithito.com\u002FLJ-Speech-Dataset\u002F) 上训练了 441K 步。\n      * 大约在 20K 步时，语音开始变得可懂。\n    * 第二组由 [@MXGray](https:\u002F\u002Fgithub.com\u002FMXGray) 在 [Nancy 语料库](http:\u002F\u002Fwww.cstr.ed.ac.uk\u002Fprojects\u002Fblizzard\u002F2011\u002Flessac_blizzard2011\u002F) 上训练了 140K 步。\n\n\n### 最新更新\n\n1. @npuichigo [修复](https:\u002F\u002Fgithub.com\u002Fkeithito\u002Ftacotron\u002Fpull\u002F205) 了一个 bug，即 Prenet 中未应用 Dropout。\n\n2. @begeekmyfriend 创建了一个 [分支](https:\u002F\u002Fgithub.com\u002Fbegeekmyfriend\u002Ftacotron)，添加了来自 [Tacotron 2](https:\u002F\u002Farxiv.org\u002Fabs\u002F1712.05884) 论文中的位置敏感注意力机制和停止标记。这可以大大减少训练模型所需的数据量。\n\n\n## 背景\n\n2017 年 4 月，Google 发表了一篇论文《Tacotron：迈向端到端语音合成》，其中他们提出了一种神经网络文本转语音模型，可以直接从 (文本, 音频) 对中学习合成语音。然而，他们并未公开源代码或训练数据。本项目是对此论文中描述模型的开源实现尝试。\n\n目前的质量还不如 Google 的演示效果，但希望未来能够达到那个水平 :-)。欢迎提交 Pull Request！\n\n\n## 快速入门\n\n### 安装依赖\n\n1. 安装 Python 3。\n\n2. 根据你的平台安装最新版本的 [TensorFlow](https:\u002F\u002Fwww.tensorflow.org\u002Finstall\u002F)。为了获得更好的性能，如果硬件支持 GPU，请安装带有 GPU 支持的版本。此代码适用于 TensorFlow 1.3 及以上版本。\n\n3. 安装所需的依赖：\n   ```\n   pip install -r requirements.txt\n   ```\n\n\n### 使用预训练模型\n\n1. **下载并解压模型**：\n   ```\n   curl https:\u002F\u002Fdata.keithito.com\u002Fdata\u002Fspeech\u002Ftacotron-20180906.tar.gz | tar xzC \u002Ftmp\n   ```\n\n2. **运行演示服务器**：\n   ```\n   python3 demo_server.py --checkpoint \u002Ftmp\u002Ftacotron-20180906\u002Fmodel.ckpt\n   ```\n\n3. **在浏览器中访问 localhost:9000**\n   * 输入你想要合成的内容\n\n\n\n### 训练\n\n*注意：训练模型至少需要 40GB 的可用磁盘空间。*\n\n1. **下载语音数据集。**\n\n   默认支持以下数据集：\n    * [LJ Speech](https:\u002F\u002Fkeithito.com\u002FLJ-Speech-Dataset\u002F)（公共领域）\n    * [Blizzard 2012](http:\u002F\u002Fwww.cstr.ed.ac.uk\u002Fprojects\u002Fblizzard\u002F2012\u002Fphase_one)（知识共享署名-相同方式共享许可）\n\n   如果你能将其他数据集转换为正确格式，也可以使用。更多信息请参阅 [TRAINING_DATA.md](TRAINING_DATA.md)。\n\n\n2. **将数据集解压到 `~\u002Ftacotron` 目录下**\n\n   解压后，对于 LJ Speech，目录结构应如下所示：\n   ```\n   tacotron\n     |- LJSpeech-1.1\n         |- metadata.csv\n         |- wavs\n   ```\n\n   或者对于 Blizzard 2012：\n   ```\n   tacotron\n     |- Blizzard2012\n         |- ATrampAbroad\n         |   |- sentence_index.txt\n         |   |- lab\n         |   |- wav\n         |- TheManThatCorruptedHadleyburg\n             |- sentence_index.txt\n             |- lab\n             |- wav\n   ```\n\n3. **预处理数据**\n   ```\n   python3 preprocess.py --dataset ljspeech\n   ```\n     * 对于 Blizzard 数据，使用 `--dataset blizzard`。\n\n4. **训练模型**\n   ```\n   python3 train.py\n   ```\n\n   可调超参数位于 [hparams.py](hparams.py) 中。你可以在命令行中使用 `--hparams` 标志来调整这些参数，例如 `--hparams=\"batch_size=16,outputs_per_step=2\"`。通常情况下，训练和评估时的超参数应设置为相同的值。默认超参数推荐用于 LJ Speech 和其他英语数据集。有关其他语言的信息，请参阅 [TRAINING_DATA.md](TRAINING_DATA.md)。\n\n\n5. **使用 TensorBoard 监控训练过程**（可选）\n   ```\n   tensorboard --logdir ~\u002Ftacotron\u002Flogs-tacotron\n   ```\n\n   训练器会每 1000 步输出一次音频和对齐信息。这些文件可以在 `~\u002Ftacotron\u002Flogs-tacotron` 目录下找到。\n\n6. **从检查点合成语音**\n   ```\n   python3 demo_server.py --checkpoint ~\u002Ftacotron\u002Flogs-tacotron\u002Fmodel.ckpt-185000\n   ```\n   将“185000”替换为你想要使用的检查点编号，然后打开浏览器访问 `localhost:9000`，输入你想要朗读的内容。或者，你也可以在命令行中运行 [eval.py](eval.py)：\n   ```\n   python3 eval.py --checkpoint ~\u002Ftacotron\u002Flogs-tacotron\u002Fmodel.ckpt-185000\n   ```\n   如果你在训练时设置了 `--hparams` 标志，这里也应使用相同的值。\n\n\n## 注意事项及常见问题\n\n  * [TCMalloc](http:\u002F\u002Fgoog-perftools.sourceforge.net\u002Fdoc\u002Ftcmalloc.html) 似乎能提高训练速度，并避免使用默认分配器时偶尔出现的减速现象。你可以通过安装它并设置 `LD_PRELOAD=\u002Fusr\u002Flib\u002Flibtcmalloc.so` 来启用。使用 TCMalloc 后，在 GTX 1080Ti 上大约可以达到 1.1 秒\u002F步的速度。\n\n  * 你可以使用 [CMUDict](http:\u002F\u002Fwww.speech.cs.cmu.edu\u002Fcgi-bin\u002Fcmudict) 进行训练，只需将词典下载到 `~\u002Ftacotron\u002Ftraining` 目录下，然后在 `train.py` 中传递 `--hparams=\"use_cmudict=True\"` 参数即可。这样，在评估时，你可以用花括号括起来的 ARPAbet 音素来强制特定的发音，例如 `Turn left on {HH AW1 S S T AH0 N} Street.`。\n\n  * 如果你在 `train.py` 中通过 `--slack_url` 参数传入 Slack 入站 Webhook URL，程序会在每 1000 步发送一次进度更新。\n\n  * 有时，损失会出现激增，模型可能会忘记如何进行注意力机制计算（对齐信息不再合理）。虽然最终会恢复，但为了避免浪费时间，你可以在激增之前的一个检查点重新启动训练，方法是在 `train.py` 中添加 `--restore_step=150000` 参数（将 150000 替换为激增前的步骤编号）。**更新**：最近由 @candlewill 提出的关于梯度裁剪的 [修复](https:\u002F\u002Fgithub.com\u002Fkeithito\u002Ftacotron\u002Fpull\u002F7) 可能已经解决了这个问题。\n    \n  * 在评估和训练过程中，音频长度受限于 `max_iters * outputs_per_step * frame_shift_ms` 毫秒。使用默认值（max_iters=200, outputs_per_step=5, frame_shift_ms=12.5），最大长度为 12.5 秒。\n    \n    如果你的训练示例更长，你可能会看到类似如下的错误：\n    `形状不匹配：[32,1340,80] vs. [32,1000,80]`\n    \n    要解决这个问题，你可以通过在 `train.py` 中传递 `--hparams=\"max_iters=300\"` 来增加 `max_iters` 的值（将 300 替换为你根据音频长度和上述公式计算出的合适数值）。\n    \n  * 以下是使用默认超参数在 LJ Speech 数据集上训练时预期的损失曲线：\n    ![Loss curve](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkeithito_tacotron_readme_638c2875ac20.png)\n\n\n## 其他实现\n  * Alex Barron 的实现：https:\u002F\u002Fgithub.com\u002Fbarronalex\u002FTacotron\n  * Kyubyong Park 的实现：https:\u002F\u002Fgithub.com\u002FKyubyong\u002Ftacotron","# Tacotron 快速上手指南\n\nTacotron 是一个基于 TensorFlow 实现的端到端语音合成（Text-to-Speech）开源项目，能够直接从文本 - 音频对中學習合成语音。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**：Linux 或 macOS（Windows 需通过 WSL 或 Docker 运行）。\n*   **Python 版本**：Python 3.6+。\n*   **深度学习框架**：TensorFlow 1.3 或更高版本。\n    *   **推荐**：若拥有 NVIDIA GPU，请安装支持 CUDA 的 `tensorflow-gpu` 版本以获得最佳训练性能。\n*   **磁盘空间**：\n    *   仅使用预训练模型演示：至少 1GB。\n    *   从头训练模型：至少 40GB 可用空间（用于存放数据集和检查点）。\n\n## 安装步骤\n\n### 1. 安装 Python 依赖\n克隆仓库或直接进入项目目录后，使用 pip 安装所需库。国内用户建议使用清华或阿里镜像源加速安装：\n\n```bash\npip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 2. 获取预训练模型（可选，用于快速体验）\n如果您不想从头训练，可以直接下载官方提供的预训练模型：\n\n```bash\ncurl https:\u002F\u002Fdata.keithito.com\u002Fdata\u002Fspeech\u002Ftacotron-20180906.tar.gz | tar xzC \u002Ftmp\n```\n\n## 基本使用\n\n### 方案 A：使用预训练模型快速演示\n这是最简单的体验方式，无需下载大型数据集即可测试语音合成效果。\n\n1.  **启动演示服务器**\n    运行以下命令加载刚才下载的模型检查点：\n    ```bash\n    python3 demo_server.py --checkpoint \u002Ftmp\u002Ftacotron-20180906\u002Fmodel.ckpt\n    ```\n\n2.  **进行语音合成**\n    打开浏览器访问 `http:\u002F\u002Flocalhost:9000`，在输入框中输入英文文本，即可听到合成的语音。\n\n---\n\n### 方案 B：从头训练模型\n如果您希望用自己的数据训练模型，请按以下步骤操作：\n\n1.  **准备数据集**\n    下载支持的 dataset（如 LJ Speech），并将其解压到 `~\u002Ftacotron` 目录下。\n    目录结构应如下所示：\n    ```text\n    tacotron\n      |- LJSpeech-1.1\n          |- metadata.csv\n          |- wavs\n    ```\n\n2.  **数据预处理**\n    运行预处理脚本将音频和文本转换为模型可接受的格式：\n    ```bash\n    python3 preprocess.py --dataset ljspeech\n    ```\n    *(注：若使用 Blizzard 数据集，请将 `--dataset` 参数改为 `blizzard`)*\n\n3.  **开始训练**\n    启动训练进程：\n    ```bash\n    python3 train.py\n    ```\n    *   **监控训练**：可在另一个终端运行 `tensorboard --logdir ~\u002Ftacotron\u002Flogs-tacotron` 查看损失曲线和音频样本。\n    *   **显存优化**：若遇到内存不足，可通过 `--hparams` 调整批次大小，例如：`python3 train.py --hparams=\"batch_size=8\"`。\n\n4.  **使用训练好的模型合成**\n    当训练生成检查点（例如步数为 185000）后，运行：\n    ```bash\n    python3 demo_server.py --checkpoint ~\u002Ftacotron\u002Flogs-tacotron\u002Fmodel.ckpt-185000\n    ```\n    随后访问 `http:\u002F\u002Flocalhost:9000` 即可使用您训练的模型。","一家小型有声书初创团队希望将大量公版领域小说快速转化为音频内容，但受限于预算无法聘请专业配音演员或购买昂贵的商业 TTS 服务。\n\n### 没有 tacotron 时\n- **成本高昂且扩展难**：依赖真人录音导致单本书制作成本极高，无法大规模扩充书库。\n- **声音表现机械僵硬**：使用传统拼接式合成技术，生成的语音语调平淡，缺乏自然的情感起伏和呼吸感。\n- **定制周期漫长**：若想为不同角色定制独特声线，需重新录制大量样本，耗时数周甚至数月。\n- **部署门槛高**：缺乏端到端的训练流程，调整发音错误或优化音质需要深厚的信号处理专家介入。\n\n### 使用 tacotron 后\n- **零成本批量生产**：利用预训练模型和本地 GPU，团队可免费下载 LJ Speech 等数据集，无限生成高质量音频。\n- **拟真度显著提升**：tacotron 直接学习文本到音频的映射，生成的语音在约 2 万步训练后即清晰可懂，具备自然的韵律。\n- **快速适配新声线**：只需准备几小时的目标说话人数据（如 Nancy Corpus），即可微调模型创造出专属的角色声音。\n- **开源灵活可控**：基于 TensorFlow 的实现允许开发者通过 Tensorboard 实时监控训练状态，并自由调整超参数以优化特定场景效果。\n\ntacotron 让中小团队也能以极低的算力成本，构建出媲美大厂水准的定制化语音合成流水线。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkeithito_tacotron_4ec17a63.png","keithito","Keith Ito","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fkeithito_65ad39ce.png",null,"keeeto","https:\u002F\u002Fkeithito.com","https:\u002F\u002Fgithub.com\u002Fkeithito",[80],{"name":81,"color":82,"percentage":83},"Python","#3572A5",100,2988,944,"2026-04-06T09:40:31","MIT","Linux, macOS","非必需但推荐（为了更好性能），需支持 TensorFlow GPU 版本的 NVIDIA 显卡。文中提及在 GTX 1080Ti 上表现良好，未明确具体显存和 CUDA 版本要求。","未说明（训练过程建议预留充足内存，但未给出具体数值）",{"notes":92,"python":93,"dependencies":94},"训练模型至少需要 40GB 空闲磁盘空间。建议使用 TCMalloc 库以提升训练速度并避免偶尔的卡顿。默认配置下生成的音频长度限制为 12.5 秒，若训练数据更长需调整超参数。","Python 3",[95,96],"tensorflow>=1.3","requirements.txt 中列出的其他依赖",[98,14],"音频",[64,100,101,102,103,104],"tensorflow","speech-synthesis","python","machine-learning","tts","2026-03-27T02:49:30.150509","2026-04-08T01:59:00.016877",[108,113,117,122,127,131,136,141],{"id":109,"question_zh":110,"answer_zh":111,"source_url":112},23393,"如何使用 Tacotron 训练中文普通话（Mandarin）模型？","可以使用拼音（pinyin）作为音素符号。由于汉字数量巨大，建议使用 `pypinyin` 库将文本转换为有限的英文符号加上数字 `12345` 来表示声调。在 `text\u002Fsymbols.py` 中定义拼音符号，并在评估输入中使用拼音句子。已有用户在 THCHS30 数据集上通过此方法在 90k 步时取得了良好效果。注意：如果数据集包含多说话人，可能会偶尔出现静音问题，建议寻找单说话人的高质量数据集。","https:\u002F\u002Fgithub.com\u002Fkeithito\u002Ftacotron\u002Fissues\u002F118",{"id":114,"question_zh":115,"answer_zh":116,"source_url":112},23394,"训练过程中遇到 'Incompatible shapes' 维度不一致错误如何解决？","该错误通常发生在计算 mel 损失时（`self.mel_loss = tf.reduce_mean(tf.abs(self.mel_targets - self.mel_outputs))`），原因是目标 mel 谱和输出 mel 谱的时间步长维度不一致（例如 [32,1545,80] vs [32,1500,80]）。这通常是因为数据集中音频长度差异大且未正确对齐或截断。检查数据预处理步骤，确保 `.trn` 文件格式正确（第一行文本，第二行拼音），并确认所有音频文件与文本标签严格对应。如果是自定义数据集，需确保格式与 THCHS30 完全一致。",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},23395,"Tacotron 能否实现实时语音合成？","原生 Tacotron 模型通常无法达到实时合成速度（即合成 1 秒音频耗时少于 1 秒）。但在声码器（Vocoder）阶段，使用 LPCNET 可以实现实时甚至更快的推理（约 0.8 秒生成 1 秒音频）。对于频谱图反转部分，可以尝试优化 Griffin-Lim 算法或使用单次反转（Single Pass Inversion）技术来加速，但整体端到端实时性仍取决于硬件和优化程度。","https:\u002F\u002Fgithub.com\u002Fkeithito\u002Ftacotron\u002Fissues\u002F15",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},23396,"超参数 'use_cmudict' 的作用是什么？","`use_cmudict` 用于控制是否使用 CMU 发音词典将输入单词转换为音素（phonemes）。如果启用，模型将基于音素序列进行训练和推理，这通常能提高发音准确性，特别是对于英语等多音字较多的语言。对于中文等非拉丁语系语言，通常需要自定义符号集（如拼音）并关闭此选项或使用替代方案。","https:\u002F\u002Fgithub.com\u002Fkeithito\u002Ftacotron\u002Fissues\u002F10",{"id":128,"question_zh":129,"answer_zh":130,"source_url":126},23397,"如何进行迁移学习（Transfer Learning）或微调（Fine-tuning）？","进行迁移学习时，最简单的做法是直接加载预训练模型作为检查点（checkpoint），然后在新数据集上继续训练。不需要冻结特定层或大幅修改学习率，除非新数据集非常小。对于图像领域的迁移学习通常需要大量同类标签数据，而在 TTS 中，这意味着最好准备由同一说话人朗读的多种不同文本的数据集，或者如果目标是多说话人模型，则需准备同一文本由多人朗读的数据。直接从预训练权重开始训练通常就能获得不错的效果。",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},23398,"合成的音频在每句结尾出现回声（Echo）怎么办？","这是一个已知问题，通常发生在训练步数较多（如 120k 步）时。回声可能是由于模型过度拟合了训练数据中的尾部噪声，或者注意力机制在句子结束时未能正确停止。解决方案包括：检查数据集末尾是否有静音片段未被裁剪；尝试调整注意力机制的相关参数；或者在推理阶段对生成的音频进行后处理裁剪。目前社区中尚无统一的配置修复方案，通常需要通过实验调整数据预处理或模型结构来解决。","https:\u002F\u002Fgithub.com\u002Fkeithito\u002Ftacotron\u002Fissues\u002F133",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},23399,"是否可以将 Tacotron 与 World Vocoder 结合使用以提升音质？","是的，可以将 Tacotron 与 World Vocoder 合并。World Vocoder 利用 lf0（基频）、mgc（频谱包络）和 ap（非周期成分）三个特征，不仅包含幅度谱还包含相位信息，因此重合成音质优于 Griffin-Lim。此外，由于特征深度较低，Tacotron 模型可能不再需要 Postnet，训练速度可提升至每步 0.7 秒，且推理可在 CPU 上快速运行。但需注意，F0 特征的预测精度较难把控，部分开发者后来转向了 WaveRNN 等其他声码器方案。","https:\u002F\u002Fgithub.com\u002Fkeithito\u002Ftacotron\u002Fissues\u002F241",{"id":142,"question_zh":143,"answer_zh":144,"source_url":112},23400,"预处理时 metadata 为 None 导致数据读不进去是什么原因？","这通常是因为数据文件夹结构不符合预期或 `.trn`\u002F.wav 文件配对失败。请确保目录结构如下：`tacotron\u002Fdata_thchs30`，其中包含正确命名的音频文件和对应的转录文件。`.trn` 文件应包含两行：第一行是原始文本，第二行是拼音（如果使用拼音训练）。检查文件路径、命名规则以及编码格式是否正确，确保预处理脚本能正确解析这些文件并生成 metadata 列表。",[146,151],{"id":147,"version":148,"summary_zh":149,"released_at":150},144915,"v0.2.0","- PR https:\u002F\u002Fgithub.com\u002Fkeithito\u002Ftacotron\u002Fpull\u002F41 添加了 Griffin-Lim 的 TensorFlow 实现。\n  - 在 GTX 1080Ti 上，音频生成速度可达实时的 7.5 倍。\n- PR https:\u002F\u002Fgithub.com\u002Fkeithito\u002Ftacotron\u002Fpull\u002F40 使文本处理流水线更加可配置。\n  - 这使得在非英语数据上进行训练变得更加容易。\n  - 详情请参阅 [TRAINING_DATA.md](https:\u002F\u002Fgithub.com\u002Fkeithito\u002Ftacotron\u002Fblob\u002Fmaster\u002FTRAINING_DATA.md)。\n- 现在需要 TensorFlow 1.3。","2017-09-13T04:09:08",{"id":152,"version":153,"summary_zh":75,"released_at":154},144916,"v0.1.0","2017-09-05T04:47:32"]