[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Rayhane-mamah--Tacotron-2":3,"tool-Rayhane-mamah--Tacotron-2":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},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",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":79,"owner_twitter":79,"owner_website":81,"owner_url":82,"languages":83,"stars":96,"forks":97,"last_commit_at":98,"license":99,"difficulty_score":100,"env_os":101,"env_gpu":102,"env_ram":103,"env_deps":104,"category_tags":115,"github_topics":116,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":123,"updated_at":124,"faqs":125,"releases":155},3581,"Rayhane-mamah\u002FTacotron-2","Tacotron-2","DeepMind's Tacotron-2 Tensorflow implementation","Tacotron-2 是一个基于 TensorFlow 实现的开源深度学习项目，旨在复现并优化 DeepMind 提出的自然语音合成架构。它主要解决了如何让机器生成接近真人般自然、流畅且富有情感语音的难题。\n\n该工具的核心工作原理分为两步：首先利用深度神经网络根据输入文本预测梅尔频谱图（Spectrogram），随后结合 WaveNet 声码器将这些频谱图转换为高质量的音频波形。相比传统方法，Tacotron-2 无需复杂的手工特征工程，即可端到端地合成高保真语音。项目中不仅提供了严格还原论文结果的超参数配置，还包含了经过验证能进一步提升效果的改进版设置，兼顾了学术复现的严谨性与实际应用的性能。\n\n由于需要配置数据集、进行预处理以及分阶段训练模型，Tacotron-2 更适合具备一定深度学习基础的开发者、语音技术研究人员或算法工程师使用。普通用户若直接使用可能需要较高的技术门槛。对于希望深入探索文本转语音（TTS）底层逻辑、进行模型微调或构建自定义语音库的专业人士来说，这是一个极具参考价值的起点。","# Tacotron-2:\nTensorflow implementation of DeepMind's Tacotron-2. A deep neural network architecture described in this paper: [Natural TTS synthesis by conditioning Wavenet on MEL spectogram predictions](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1712.05884.pdf)\n\nThis Repository contains additional improvements and attempts over the paper, we thus propose **paper_hparams.py** file which holds the exact hyperparameters to reproduce the paper results without any additional extras.\n\nSuggested **hparams.py** file which is default in use, contains the hyperparameters with extras that proved to provide better results in most cases. Feel free to toy with the parameters as needed.\n\nDIFFERENCES WILL BE HIGHLIGHTED IN DOCUMENTATION SHORTLY.\n\n\n# Repository Structure:\n\tTacotron-2\n\t├── datasets\n\t├── en_UK\t\t(0)\n\t│   └── by_book\n\t│       └── female\n\t├── en_US\t\t(0)\n\t│   └── by_book\n\t│       ├── female\n\t│       └── male\n\t├── LJSpeech-1.1\t(0)\n\t│   └── wavs\n\t├── logs-Tacotron\t(2)\n\t│   ├── eval_-dir\n\t│   │ \t├── plots\n\t│ \t│ \t└── wavs\n\t│   ├── mel-spectrograms\n\t│   ├── plots\n\t│   ├── taco_pretrained\n\t│   ├── metas\n\t│   └── wavs\n\t├── logs-Wavenet\t(4)\n\t│   ├── eval-dir\n\t│   │ \t├── plots\n\t│ \t│ \t└── wavs\n\t│   ├── plots\n\t│   ├── wave_pretrained\n\t│   ├── metas\n\t│   └── wavs\n\t├── logs-Tacotron-2\t( * )\n\t│   ├── eval-dir\n\t│   │ \t├── plots\n\t│ \t│ \t└── wavs\n\t│   ├── plots\n\t│   ├── taco_pretrained\n\t│   ├── wave_pretrained\n\t│   ├── metas\n\t│   └── wavs\n\t├── papers\n\t├── tacotron\n\t│   ├── models\n\t│   └── utils\n\t├── tacotron_output\t(3)\n\t│   ├── eval\n\t│   ├── gta\n\t│   ├── logs-eval\n\t│   │   ├── plots\n\t│   │   └── wavs\n\t│   └── natural\n\t├── wavenet_output\t(5)\n\t│   ├── plots\n\t│   └── wavs\n\t├── training_data\t(1)\n\t│   ├── audio\n\t│   ├── linear\n\t│\t└── mels\n\t└── wavenet_vocoder\n\t\t└── models\n\n\nThe previous tree shows the current state of the repository (separate training, one step at a time).\n\n- Step **(0)**: Get your dataset, here I have set the examples of **Ljspeech**, **en_US** and **en_UK** (from **M-AILABS**).\n- Step **(1)**: Preprocess your data. This will give you the **training_data** folder.\n- Step **(2)**: Train your Tacotron model. Yields the **logs-Tacotron** folder.\n- Step **(3)**: Synthesize\u002FEvaluate the Tacotron model. Gives the **tacotron_output** folder.\n- Step **(4)**: Train your Wavenet model. Yield the **logs-Wavenet** folder.\n- Step **(5)**: Synthesize audio using the Wavenet model. Gives the **wavenet_output** folder.\n\n- Note: Steps 2, 3, and 4 can be made with a simple run for both Tacotron and WaveNet (Tacotron-2, step ( * )).\n\n\nNote:\n- **Our preprocessing only supports Ljspeech and Ljspeech-like datasets (M-AILABS speech data)!** If running on datasets stored differently, you will probably need to make your own preprocessing script.\n- In the previous tree, files **were not represented** and **max depth was set to 3** for simplicity.\n- If you run training of both **models at the same time**, repository structure will be different.\n\n# Pretrained model and Samples:\nPre-trained models and audio samples will be added at a later date. You can however check some primary insights of the model performance (at early stages of training) [here](https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fissues\u002F4#issuecomment-378741465). THIS IS VERY OUTDATED, I WILL UPDATE THIS SOON\n\n# Model Architecture:\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRayhane-mamah_Tacotron-2_readme_dc878dc2bfa7.png\"\u002F>\n\u003C\u002Fp>\n\nThe model described by the authors can be divided in two parts:\n- Spectrogram prediction network\n- Wavenet vocoder\n\nTo have an in-depth exploration of the model architecture, training procedure and preprocessing logic, refer to [our wiki](https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fwiki)\n\n# Current state:\n\nTo have an overview of our advance on this project, please refer to [this discussion](https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fissues\u002F4)\n\nsince the two parts of the global model are trained separately, we can start by training the feature prediction model to use his predictions later during the wavenet training.\n\n# How to start\n- **Machine Setup:**\n\nFirst, you need to have python 3 installed along with [Tensorflow](https:\u002F\u002Fwww.tensorflow.org\u002Finstall\u002F).\n\nNext, you need to install some Linux dependencies to ensure audio libraries work properly:\n\n> apt-get install -y libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 ffmpeg libav-tools\n\nFinally, you can install the requirements. If you are an Anaconda user: (else replace **pip** with **pip3** and **python** with **python3**)\n\n> pip install -r requirements.txt\n\n- **Docker:**\n\nAlternatively, one can build the **docker image** to ensure everything is setup automatically and use the project inside the docker containers.\n**Dockerfile is insider \"docker\" folder**\n\ndocker image can be built with:\n\n> docker build -t tacotron-2_image docker\u002F\n\nThen containers are runnable with:\n\n> docker run -i --name new_container tacotron-2_image\n\nPlease report any issues with the Docker usage with our models, I'll get to it. Thanks!\n\n# Dataset:\nWe tested the code above on the [ljspeech dataset](https:\u002F\u002Fkeithito.com\u002FLJ-Speech-Dataset\u002F), which has almost 24 hours of labeled single actress voice recording. (further info on the dataset are available in the README file when you download it)\n\nWe are also running current tests on the [new M-AILABS speech dataset](http:\u002F\u002Fwww.m-ailabs.bayern\u002Fen\u002Fthe-mailabs-speech-dataset\u002F) which contains more than 700h of speech (more than 80 Gb of data) for more than 10 languages.\n\nAfter **downloading** the dataset, **extract** the compressed file, and **place the folder inside the cloned repository.**\n\n# Hparams setting:\nBefore proceeding, you must pick the hyperparameters that suit best your needs. While it is possible to change the hyper parameters from command line during preprocessing\u002Ftraining, I still recommend making the changes once and for all on the **hparams.py** file directly.\n\nTo pick optimal fft parameters, I have made a **griffin_lim_synthesis_tool** notebook that you can use to invert real extracted mel\u002Flinear spectrograms and choose how good your preprocessing is. All other options are well explained in the **hparams.py** and have meaningful names so that you can try multiple things with them.\n\nAWAIT DOCUMENTATION ON HPARAMS SHORTLY!!\n\n# Preprocessing\nBefore running the following steps, please make sure you are inside **Tacotron-2 folder**\n\n> cd Tacotron-2\n\nPreprocessing can then be started using: \n\n> python preprocess.py\n\ndataset can be chosen using the **--dataset** argument. If using M-AILABS dataset, you need to provide the **language, voice, reader, merge_books and book arguments** for your custom need. Default is **Ljspeech**.\n\nExample M-AILABS:\n\n> python preprocess.py --dataset='M-AILABS' --language='en_US' --voice='female' --reader='mary_ann' --merge_books=False --book='northandsouth'\n\nor if you want to use all books for a single speaker:\n\n> python preprocess.py --dataset='M-AILABS' --language='en_US' --voice='female' --reader='mary_ann' --merge_books=True\n\nThis should take no longer than a **few minutes.**\n\n# Training:\nTo **train both models** sequentially (one after the other):\n\n> python train.py --model='Tacotron-2'\n\n\nFeature prediction model can **separately** be **trained** using:\n\n> python train.py --model='Tacotron'\n\ncheckpoints will be made each **5000 steps** and stored under **logs-Tacotron folder.**\n\nNaturally, **training the wavenet separately** is done by:\n\n> python train.py --model='WaveNet'\n\nlogs will be stored inside **logs-Wavenet**.\n\n**Note:**\n- If model argument is not provided, training will default to Tacotron-2 model training. (both models)\n- Please refer to train arguments under [train.py](https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fblob\u002Fmaster\u002Ftrain.py) for a set of options you can use.\n- It is now possible to make wavenet preprocessing alone using **wavenet_proprocess.py**.\n\n# Synthesis\nTo **synthesize audio** in an **End-to-End** (text to audio) manner (both models at work):\n\n> python synthesize.py --model='Tacotron-2'\n\nFor the spectrogram prediction network (separately), there are **three types** of mel spectrograms synthesis:\n\n- **Evaluation** (synthesis on custom sentences). This is what we'll usually use after having a full end to end model.\n\n> python synthesize.py --model='Tacotron'\n\n- **Natural synthesis** (let the model make predictions alone by feeding last decoder output to the next time step).\n\n> python synthesize.py --model='Tacotron' --mode='synthesis' --GTA=False\n\n\n- **Ground Truth Aligned synthesis** (DEFAULT: the model is assisted by true labels in a teacher forcing manner). This synthesis method is used when predicting mel spectrograms used to train the wavenet vocoder. (yields better results as stated in the paper)\n\n> python synthesize.py --model='Tacotron' --mode='synthesis' --GTA=True\n\nSynthesizing the **waveforms** conditionned on previously synthesized Mel-spectrograms (separately) can be done with:\n\n> python synthesize.py --model='WaveNet'\n\n**Note:**\n- If model argument is not provided, synthesis will default to Tacotron-2 model synthesis. (End-to-End TTS)\n- Please refer to synthesis arguments under [synthesize.py](https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fblob\u002Fmaster\u002Fsynthesize.py) for a set of options you can use.\n\n\n# References and Resources:\n- [Natural TTS synthesis by conditioning Wavenet on MEL spectogram predictions](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1712.05884.pdf)\n- [Original tacotron paper](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1703.10135.pdf)\n- [Attention-Based Models for Speech Recognition](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1506.07503.pdf)\n- [Wavenet: A generative model for raw audio](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1609.03499.pdf)\n- [Fast Wavenet](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1611.09482.pdf)\n- [r9y9\u002Fwavenet_vocoder](https:\u002F\u002Fgithub.com\u002Fr9y9\u002Fwavenet_vocoder)\n- [keithito\u002Ftacotron](https:\u002F\u002Fgithub.com\u002Fkeithito\u002Ftacotron)\n\n","# Tacotron-2:\nDeepMind的Tacotron-2的TensorFlow实现。该深度神经网络架构在论文《通过基于梅尔频谱图预测来调节WaveNet实现自然的TTS合成》中有所描述：[Natural TTS synthesis by conditioning Wavenet on MEL spectogram predictions](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1712.05884.pdf)\n\n本仓库包含了对原论文的额外改进和尝试，因此我们提出了**paper_hparams.py**文件，其中保存了完全相同的超参数，以便在没有任何额外改动的情况下复现论文结果。\n\n建议使用的默认**hparams.py**文件包含了一些经过验证在大多数情况下能带来更好效果的附加超参数。您可以根据需要自由调整这些参数。\n\n相关差异将在文档中尽快标注出来。\n\n\n# 仓库结构：\n\tTacotron-2\n\t├── datasets\n\t├── en_UK\t\t(0)\n\t│   └── by_book\n\t│       └── female\n\t├── en_US\t\t(0)\n\t│   └── by_book\n\t│       ├── female\n\t│       └── male\n\t├── LJSpeech-1.1\t(0)\n\t│   └── wavs\n\t├── logs-Tacotron\t(2)\n\t│   ├── eval_-dir\n\t│   │ \t├── plots\n\t│ \t│ \t└── wavs\n\t│   ├── mel-spectrograms\n\t│   ├── plots\n\t│   ├── taco_pretrained\n\t│   ├── metas\n\t│   └── wavs\n\t├── logs-Wavenet\t(4)\n\t│   ├── eval-dir\n\t│   │ \t├── plots\n\t│ \t│ \t└── wavs\n\t│   ├── plots\n\t│   ├── wave_pretrained\n\t│   ├── metas\n\t│   └── wavs\n\t├── logs-Tacotron-2\t( * )\n\t│   ├── eval-dir\n\t│   │ \t├── plots\n\t│ \t│ \t└── wavs\n\t│   ├── plots\n\t│   ├── taco_pretrained\n\t│   ├── wave_pretrained\n\t│   ├── metas\n\t│   └── wavs\n\t├── papers\n\t├── tacotron\n\t│   ├── models\n\t│   └── utils\n\t├── tacotron_output\t(3)\n\t│   ├── eval\n\t│   ├── gta\n\t│   ├── logs-eval\n\t│   │   ├── plots\n\t│   │   └── wavs\n\t│   └── natural\n\t├── wavenet_output\t(5)\n\t│   ├── plots\n\t│   └── wavs\n\t├── training_data\t(1)\n\t│   ├── audio\n\t│   ├── linear\n\t│\t└── mels\n\t└── wavenet_vocoder\n\t\t└── models\n\n\n上述目录树展示了当前仓库的状态（分步训练，一次完成一步）。\n\n- 步骤 **(0)**：获取您的数据集，这里我提供了**Ljspeech**、**en_US**和**en_UK**（来自**M-AILABS**）的示例。\n- 步骤 **(1)**：预处理您的数据。这将生成**training_data**文件夹。\n- 步骤 **(2)**：训练您的Tacotron模型。这将产生**logs-Tacotron**文件夹。\n- 步骤 **(3)**：合成\u002F评估Tacotron模型。这将生成**tacotron_output**文件夹。\n- 步骤 **(4)**：训练您的Wavenet模型。这将产生**logs-Wavenet**文件夹。\n- 步骤 **(5)**：使用Wavenet模型合成音频。这将生成**wavenet_output**文件夹。\n\n- 注意：步骤2、3和4都可以通过简单的运行同时完成Tacotron和WaveNet的训练（Tacotron-2，步骤( *)）。\n\n\n注意：\n- **我们的预处理仅支持Ljspeech及类似Ljspeech的数据集（M-AILABS语音数据）！** 如果您使用的是以不同方式存储的数据集，可能需要自行编写预处理脚本。\n- 在上述目录树中，为了简化起见，**未展示所有文件**，并且**最大深度设置为3**。\n- 如果您同时训练**两个模型**，仓库的结构将会有所不同。\n\n# 预训练模型与样本：\n预训练模型和音频样本将在稍后添加。不过，您可以在[这里](https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fissues\u002F4#issuecomment-378741465)查看模型性能的一些初步见解（处于训练初期阶段）。请注意，这些内容已经非常过时，我将很快更新。\n\n# 模型架构：\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRayhane-mamah_Tacotron-2_readme_dc878dc2bfa7.png\"\u002F>\n\u003C\u002Fp>\n\n作者描述的模型可以分为两部分：\n- 频谱图预测网络\n- WaveNet声码器\n\n如需深入了解模型架构、训练流程和预处理逻辑，请参阅[我们的维基页面](https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fwiki)。\n\n# 当前状态：\n\n如需了解我们在该项目上的进展，请参阅[此讨论](https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fissues\u002F4)。\n\n由于整个模型的两部分是分别训练的，我们可以先训练特征预测模型，以便在后续的WaveNet训练中使用其预测结果。\n\n# 如何开始\n- **机器环境配置：**\n\n首先，您需要安装Python 3以及[TensorFlow](https:\u002F\u002Fwww.tensorflow.org\u002Finstall\u002F)。\n\n接下来，您需要安装一些Linux依赖项，以确保音频库正常工作：\n\n> apt-get install -y libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 ffmpeg libav-tools\n\n最后，您可以安装项目所需的依赖包。如果您使用Anaconda：（否则请将**pip**替换为**pip3**，**python**替换为**python3**）\n\n> pip install -r requirements.txt\n\n- **Docker：**\n\n或者，您也可以构建**Docker镜像**，以确保所有环境自动配置完毕，并在Docker容器内运行该项目。\n**Dockerfile位于“docker”文件夹内**\n\n可以通过以下命令构建Docker镜像：\n\n> docker build -t tacotron-2_image docker\u002F\n\n然后可以使用以下命令运行容器：\n\n> docker run -i --name new_container tacotron-2_image\n\n如果您在使用Docker运行我们的模型时遇到任何问题，请随时向我们反馈，我会尽快处理。谢谢！\n\n# 数据集：\n我们已在[ ljspeech数据集](https:\u002F\u002Fkeithito.com\u002FLJ-Speech-Dataset\u002F)上测试了上述代码，该数据集包含近24小时由一位女演员录制的带标签语音。（下载数据集时，README文件中提供了更多关于该数据集的信息）\n\n我们目前还在对[新的M-AILABS语音数据集](http:\u002F\u002Fwww.m-ailabs.bayern\u002Fen\u002Fthe-mailabs-speech-dataset\u002F)进行测试，该数据集包含超过700小时的语音（超过80GB的数据），覆盖10多种语言。\n\n在**下载**数据集后，请**解压缩**文件，并将文件夹**放置到克隆的仓库目录中**。\n\n# 超参数设置：\n在继续之前，您必须选择最适合您需求的超参数。虽然在预处理或训练过程中可以通过命令行更改超参数，但我仍然建议您直接在**hparams.py**文件中一次性完成所有修改。\n\n为了选择最佳的FFT参数，我制作了一个**griffin_lim_synthesis_tool**笔记本，您可以使用它来反演实际提取的梅尔频谱图\u002F线性频谱图，从而判断您的预处理效果如何。其他选项在**hparams.py**中都有详细说明，并且命名清晰，方便您尝试不同的设置。\n\n关于超参数的详细文档即将发布！！\n\n# 预处理\n在运行以下步骤之前，请确保您位于 **Tacotron-2 文件夹** 内。\n\n> cd Tacotron-2\n\n然后可以使用以下命令开始预处理：\n\n> python preprocess.py\n\n可以通过 **--dataset** 参数选择数据集。如果使用 M-AILABS 数据集，您需要根据自己的需求提供 **language、voice、reader、merge_books 和 book 参数**。默认值为 **Ljspeech**。\n\nM-AILABS 示例：\n\n> python preprocess.py --dataset='M-AILABS' --language='en_US' --voice='female' --reader='mary_ann' --merge_books=False --book='northandsouth'\n\n或者，如果您希望将一位说话人的所有书籍合并为一个数据集：\n\n> python preprocess.py --dataset='M-AILABS' --language='en_US' --voice='female' --reader='mary_ann' --merge_books=True\n\n这通常不会超过 **几分钟**。\n\n# 训练：\n要依次训练 **两个模型**（一个接一个）：\n\n> python train.py --model='Tacotron-2'\n\n特征预测模型可以 **单独** 训练，使用以下命令：\n\n> python train.py --model='Tacotron'\n\n检查点将每 **5000 步** 保存一次，并存储在 **logs-Tacotron 文件夹** 中。\n\n当然，也可以单独训练 **WaveNet 模型**，使用以下命令：\n\n> python train.py --model='WaveNet'\n\n日志文件将存储在 **logs-Wavenet 文件夹** 中。\n\n**注意：**\n- 如果未提供 model 参数，则默认训练 Tacotron-2 模型（即同时训练两个模型）。\n- 请参阅 [train.py](https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fblob\u002Fmaster\u002Ftrain.py) 中的训练参数，以获取可用选项。\n- 现在也可以仅使用 **wavenet_preprocess.py** 进行 WaveNet 的预处理。\n\n# 合成\n要以 **端到端** 方式（文本到音频）合成音频（两个模型协同工作）：\n\n> python synthesize.py --model='Tacotron-2'\n\n对于频谱图预测网络（单独使用），有 **三种** 不同的梅尔频谱图合成方式：\n\n- **评估合成**（对自定义句子进行合成）。这通常是在拥有完整的端到端模型后使用的模式。\n\n> python synthesize.py --model='Tacotron'\n\n- **自然合成**（让模型通过将前一时刻的解码器输出作为下一时刻的输入来独立进行预测）。\n\n> python synthesize.py --model='Tacotron' --mode='synthesis' --GTA=False\n\n- **真值对齐合成**（默认：模型在教师强制机制下借助真实标签进行辅助）。这种合成方法用于生成用于训练 WaveNet 声码器的梅尔频谱图。（如论文所述，这种方法效果更好）\n\n> python synthesize.py --model='Tacotron' --mode='synthesis' --GTA=True\n\n基于先前合成的梅尔频谱图单独合成 **波形**，可以使用以下命令：\n\n> python synthesize.py --model='WaveNet'\n\n**注意：**\n- 如果未提供 model 参数，则默认合成 Tacotron-2 模型的音频（端到端 TTS）。\n- 请参阅 [synthesize.py](https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fblob\u002Fmaster\u002Fsynthesize.py) 中的合成参数，以获取可用选项。\n\n# 参考文献与资源：\n- [通过将 WaveNet 条件化于梅尔频谱图预测进行自然 TTS 合成](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1712.05884.pdf)\n- [原始 Tacotron 论文](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1703.10135.pdf)\n- [基于注意力机制的语音识别模型](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1506.07503.pdf)\n- [WaveNet：一种用于原始音频的生成模型](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1609.03499.pdf)\n- [快速 WaveNet](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1611.09482.pdf)\n- [r9y9\u002Fwavenet_vocoder](https:\u002F\u002Fgithub.com\u002Fr9y9\u002Fwavenet_vocoder)\n- [keithito\u002Ftacotron](https:\u002F\u002Fgithub.com\u002Fkeithito\u002Ftacotron)","# Tacotron-2 快速上手指南\n\nTacotron-2 是一个基于 TensorFlow 实现的端到端文本转语音（TTS）深度学习架构。它包含两个主要部分：梅尔频谱预测网络（Tacotron）和 WaveNet 声码器。本指南将帮助你快速搭建环境并运行模型。\n\n## 环境准备\n\n在开始之前，请确保你的系统满足以下要求：\n\n*   **操作系统**: 推荐 Linux (Ubuntu)，Windows 可能需要额外配置音频依赖。\n*   **Python**: Python 3.x\n*   **深度学习框架**: TensorFlow (CPU 或 GPU 版本)\n*   **系统依赖库**: 需要安装音频处理相关的开发库。\n\n**安装系统依赖 (Ubuntu\u002FDebian):**\n```bash\napt-get install -y libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 ffmpeg libav-tools\n```\n\n**安装 Python 依赖:**\n如果你使用 Anaconda，请在激活环境后运行：\n```bash\npip install -r requirements.txt\n```\n若未使用 Anaconda，请将 `pip` 替换为 `pip3`，`python` 替换为 `python3`。\n\n> **提示**: 国内用户建议使用清华源或阿里源加速 pip 安装：\n> `pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n**Docker 方案 (可选):**\n项目提供了 Dockerfile 以自动配置环境。\n```bash\ndocker build -t tacotron-2_image docker\u002F\ndocker run -i --name new_container tacotron-2_image\n```\n\n## 安装与数据准备\n\n### 1. 获取数据集\n本项目主要支持 **LJSpeech** 数据集或与其结构相似的 **M-AILABS** 数据集。\n*   下载 LJSpeech 数据集：[LJ-Speech-Dataset](https:\u002F\u002Fkeithito.com\u002FLJ-Speech-Dataset\u002F)\n*   解压后将文件夹放入克隆后的仓库根目录中。\n\n### 2. 配置超参数\n在运行前，建议检查 `hparams.py` 文件。\n*   `paper_hparams.py`: 包含复现原论文结果的精确参数。\n*   `hparams.py` (默认): 包含经过优化、通常能产生更好效果的额外参数。\n*   如需调整 FFT 参数，可使用项目提供的 `griffin_lim_synthesis_tool` notebook 进行测试。\n\n### 3. 数据预处理\n进入项目目录并执行预处理脚本。默认处理 LJSpeech 数据集：\n\n```bash\ncd Tacotron-2\npython preprocess.py\n```\n\n如果使用 M-AILABS 数据集，需指定语言、说话人等参数：\n```bash\npython preprocess.py --dataset='M-AILABS' --language='en_US' --voice='female' --reader='mary_ann' --merge_books=True\n```\n预处理过程通常只需几分钟，完成后会生成 `training_data` 文件夹。\n\n## 基本使用\n\n### 1. 训练模型\n\n**方式 A：端到端训练 (推荐)**\n依次训练 Tacotron 和 WaveNet 两个模型：\n```bash\npython train.py --model='Tacotron-2'\n```\n*注：如果不提供 `--model` 参数，默认也会执行此操作。*\n\n**方式 B：分步训练**\n仅训练频谱预测模型 (Tacotron)：\n```bash\npython train.py --model='Tacotron'\n```\n仅训练声码器模型 (WaveNet)：\n```bash\npython train.py --model='WaveNet'\n```\n检查点每 5000 步保存一次，分别存储在 `logs-Tacotron` 或 `logs-Wavenet` 目录中。\n\n### 2. 语音合成\n\n**方式 A：端到端合成 (文本直接转音频)**\n使用训练好的完整模型生成语音：\n```bash\npython synthesize.py --model='Tacotron-2'\n```\n*注：如果不提供 `--model` 参数，默认执行此操作。*\n\n**方式 B：分步合成**\n仅生成梅尔频谱 (Tacotron 部分)：\n```bash\n# 评估模式 (自定义句子)\npython synthesize.py --model='Tacotron'\n\n# 自然合成模式\npython synthesize.py --model='Tacotron' --mode='synthesis' --GTA=False\n\n# GTA 模式 (用于训练 WaveNet，效果更佳)\npython synthesize.py --model='Tacotron' --mode='synthesis' --GTA=True\n```\n\n仅基于已生成的梅尔频谱合成波形 (WaveNet 部分)：\n```bash\npython synthesize.py --model='WaveNet'\n```\n\n合成结果将保存在 `tacotron_output` 或 `wavenet_output` 目录中。","一家专注于有声书制作的初创公司，希望将大量公版英文小说快速转化为高质量的真人朗读音频，以降低成本并缩短上线周期。\n\n### 没有 Tacotron-2 时\n- **录音成本高昂**：必须聘请专业配音演员并按小时付费，录制长篇巨著需要数周时间和巨额预算。\n- **修改极其困难**：若发现文本有误或需要调整语气，必须重新预约录音棚和人员，流程繁琐且耗时。\n- **声音表现机械**：早期传统的 TTS（文本转语音）技术生成的音频语调平淡、缺乏情感，听起来像机器人，无法用于商业出版。\n- **多角色演绎受限**：单一配音员难以完美演绎书中所有不同性别、年龄的角色，导致听众体验单一。\n\n### 使用 Tacotron-2 后\n- **大幅降低制作门槛**：利用 Tacotron-2 强大的梅尔频谱预测能力，仅需输入文本即可生成接近真人音质的音频，无需昂贵的人工录音。\n- **即时编辑与迭代**：修改文本后几分钟内即可重新合成对应片段，支持快速纠错和风格微调，极大提升了生产效率。\n- **自然度显著提升**：得益于其结合 WaveNet 声码器的架构，生成的语音在韵律、停顿和情感表达上极度自然，几乎无法与真人区分。\n- **灵活的角色定制**：通过切换训练数据集（如 README 中提到的 en_US 男声\u002F女声数据），可轻松为不同角色分配独特的声音特质，丰富听觉层次。\n\nTacotron-2 通过将深度学习引入语音合成，让中小团队也能以极低成本生产出广播剧级别的有声内容，彻底改变了音频内容的生产模式。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRayhane-mamah_Tacotron-2_8b2a7399.png","Rayhane-mamah","Rayhane Mama","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FRayhane-mamah_e00f4abc.jpg","- If it seems impossible, then it's worth doing.",null,"Toronto, ON, Canada","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Frayhane-mama\u002F","https:\u002F\u002Fgithub.com\u002FRayhane-mamah",[84,88,92],{"name":85,"color":86,"percentage":87},"Python","#3572A5",99.1,{"name":89,"color":90,"percentage":91},"Jupyter Notebook","#DA5B0B",0.8,{"name":93,"color":94,"percentage":95},"Dockerfile","#384d54",0.1,2318,905,"2026-04-03T11:29:55","MIT",4,"Linux","未明确说明具体型号，但作为深度学习音频合成模型（Tacotron-2 + WaveNet），强烈建议使用支持 CUDA 的 NVIDIA GPU。README 提到需安装音频库依赖，通常此类训练在 Linux GPU 环境下进行。","未说明（建议 16GB+ 以处理大型音频数据集和模型训练）",{"notes":105,"python":106,"dependencies":107},"1. 该工具主要基于 TensorFlow 实现，而非 PyTorch。\n2. 仅官方支持 LJSpeech 和类 LJSpeech 格式的数据集（如 M-AILABS），其他数据集需自行编写预处理脚本。\n3. 提供了 Docker 镜像构建方案以简化环境配置。\n4. 训练分为两个阶段：先训练 Tacotron 频谱预测模型，再训练 WaveNet 声码器，也可端到端联合训练。\n5. Linux 下需手动安装音频开发库（如 libasound-dev, ffmpeg 等）以确保音频处理功能正常。","3.x (README 明确指出需要 Python 3)",[108,109,110,111,112,113,114],"tensorflow","libasound-dev","portaudio19-dev","libportaudio2","libportaudiocpp0","ffmpeg","libav-tools",[55,13],[117,108,118,119,120,121,122],"tacotron","paper","python","speech-synthesis","text-to-speech","wavenet","2026-03-27T02:49:30.150509","2026-04-06T07:15:11.219465",[126,131,136,141,146,151],{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},16396,"这个项目还在维护吗？有预训练模型可用吗？","该仓库目前已不再活跃且有些过时。语音合成（TTS）是一个研究和使用都非常活跃的领域，建议使用更现代的替代方案，例如 NVIDIA 的 NeMo (https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNeMo\u002Ftree\u002Fmain\u002Fexamples\u002Ftts)。","https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fissues\u002F4",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},16397,"WaveNet 训练过程中损失下降不稳定，或者生成的音频有噪音怎么办？","这通常是因为未正确配置参数量化通道数。请检查并修改 `hparams.py` 文件中的 `quantize_channels` 值。如果使用的是 'mulaw' 编码但生成了带有噪音的坏文件，很可能是因为该参数设置不当。调整该参数后，模型损失通常会正常下降。","https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fissues\u002F57",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},16398,"如何使用 World Vocoder 替代 Griffin-Lim 或 WaveNet 来提高合成速度和音质？","可以将 Tacotron 模型与 World Vocoder 合并使用。World Vocoder 是开源的，其重合成质量优于 Griffin-Lim，因为它包含相位信息（lf0, mgc, ap 特征），且不需要 Tacotron 的后处理网络（Postnet）。这使得训练速度可降至每步 0.7 秒，且推理速度快到足以在 CPU 上运行。相关代码分支和 Python 包装器可在社区贡献的仓库中找到（注意部分链接可能已失效，需参考 World Vocoder 官方 README 寻找替代品）。","https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fissues\u002F304",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},16399,"训练中文普通话数据集时，stop_token_loss 在评估阶段上升且合成音频异常长（如固定 37 秒）怎么办？","这通常表明模型未能正确预测停止令牌（stop token），导致解码器无法在适当位置停止。虽然对齐（alignment）在早期步骤（如 10000 步）看起来很好，但合成效果差且长度异常。建议检查数据预处理是否正确，或者尝试调整停止令牌相关的超参数。此外，对于长句子，可以尝试根据停顿点将其拆分为两个短句再进行合成，以避免生成过长的音频。","https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fissues\u002F377",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},16400,"如何在非英语数据集（如日语 JSUT 或中文普通话）上训练模型？","项目原生主要支持英语，但社区已成功扩展至其他语言。对于日语 JSUT 数据集，原仓库不支持直接预处理，用户曾尝试借用 DeepVoice3 的预处理模块准备数据，然后放入 `training_data` 文件夹进行训练（需注意可能出现的维度匹配错误）。对于中文普通话，已有用户分享了专门的分支（如 mandarin 分支）和评估结果，可以直接参考这些修改后的代码库进行训练。","https:\u002F\u002Fgithub.com\u002FRayhane-mamah\u002FTacotron-2\u002Fissues\u002F18",{"id":152,"question_zh":153,"answer_zh":154,"source_url":150},16401,"Tacotron 推理时间突然变短（如从几秒变为 200ms）且生成结果异常是什么原因？","当 Tacotron 推理时间异常缩短（例如从正常的 1-3 秒变为 200ms）并伴随生成错误时，通常是模型内部状态或停止预测出现了问题。这可能是由于输入文本过长或模型在某些特定句子上的收敛问题导致的。建议尝试将长句子根据停顿点拆分为多个短句分别进行合成，这通常能解决该问题。",[]]