[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ibab--tensorflow-wavenet":3,"tool-ibab--tensorflow-wavenet":65},[4,23,32,40,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,2,"2026-04-05T10:45:23",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},4128,"GPT-SoVITS","RVC-Boss\u002FGPT-SoVITS","GPT-SoVITS 是一款强大的开源语音合成与声音克隆工具，旨在让用户仅需极少量的音频数据即可训练出高质量的个性化语音模型。它核心解决了传统语音合成技术依赖海量录音数据、门槛高且成本大的痛点，实现了“零样本”和“少样本”的快速建模：用户只需提供 5 秒参考音频即可即时生成语音，或使用 1 分钟数据进行微调，从而获得高度逼真且相似度极佳的声音效果。\n\n该工具特别适合内容创作者、独立开发者、研究人员以及希望为角色配音的普通用户使用。其内置的友好 WebUI 界面集成了人声伴奏分离、自动数据集切片、中文语音识别及文本标注等辅助功能，极大地降低了数据准备和模型训练的技术门槛，让非专业人士也能轻松上手。\n\n在技术亮点方面，GPT-SoVITS 不仅支持中、英、日、韩、粤语等多语言跨语种合成，还具备卓越的推理速度，在主流显卡上可实现实时甚至超实时的生成效率。无论是需要快速制作视频配音，还是进行多语言语音交互研究，GPT-SoVITS 都能以极低的数据成本提供专业级的语音合成体验。",56375,3,"2026-04-05T22:15:46",[21],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},2863,"TTS","coqui-ai\u002FTTS","🐸TTS 是一款功能强大的深度学习文本转语音（Text-to-Speech）开源库，旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点，让高质量的语音生成变得触手可及。\n\n无论是希望快速集成语音功能的开发者，还是致力于探索前沿算法的研究人员，亦或是需要定制专属声音的数据科学家，🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型，让用户能够即刻上手，还提供了完善的工具链，支持用户利用自有数据训练新模型或对现有模型进行微调，轻松实现特定风格的声音克隆。\n\n在技术亮点方面，🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言，并在整体性能上大幅提升，实现了低于 200 毫秒的超低延迟流式输出，极大提升了实时交互体验。此外，它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型，并支持调用上千个 Fairseq 模型，展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具，🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。",44971,"2026-04-03T14:47:02",[21,20,13],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":29,"last_commit_at":46,"category_tags":47,"status":22},2375,"LocalAI","mudler\u002FLocalAI","LocalAI 是一款开源的本地人工智能引擎，旨在让用户在任意硬件上轻松运行各类 AI 模型，包括大语言模型、图像生成、语音识别及视频处理等。它的核心优势在于彻底打破了高性能计算的门槛，无需昂贵的专用 GPU，仅凭普通 CPU 或常见的消费级显卡（如 NVIDIA、AMD、Intel 及 Apple Silicon）即可部署和运行复杂的 AI 任务。\n\n对于担心数据隐私的用户而言，LocalAI 提供了“隐私优先”的解决方案，确保所有数据处理均在本地基础设施内完成，无需上传至云端。同时，它完美兼容 OpenAI、Anthropic 等主流 API 接口，这意味着开发者可以无缝迁移现有应用，直接利用本地资源替代云服务，既降低了成本又提升了可控性。\n\nLocalAI 内置了超过 35 种后端支持（如 llama.cpp、vLLM、Whisper 等），并集成了自主 AI 代理、工具调用及检索增强生成（RAG）等高级功能，且具备多用户管理与权限控制能力。无论是希望保护敏感数据的企业开发者、进行算法实验的研究人员，还是想要在个人电脑上体验最新 AI 技术的极客玩家，都能通过 LocalAI 获",44782,"2026-04-02T22:14:26",[13,21,19,17,20,14,16],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":29,"last_commit_at":54,"category_tags":55,"status":22},3108,"bark","suno-ai\u002Fbark","Bark 是由 Suno 推出的开源生成式音频模型，能够根据文本提示创造出高度逼真的多语言语音、音乐、背景噪音及简单音效。与传统仅能朗读文字的语音合成工具不同，Bark 基于 Transformer 架构，不仅能模拟说话，还能生成笑声、叹息、哭泣等非语言声音，甚至能处理带有情感色彩和语气停顿的复杂文本，极大地丰富了音频表达的可能性。\n\n它主要解决了传统语音合成声音机械、缺乏情感以及无法生成非语音类音效的痛点，让创作者能通过简单的文字描述获得生动自然的音频素材。无论是需要为视频配音的内容创作者、探索多模态生成的研究人员，还是希望快速原型设计的开发者，都能从中受益。普通用户也可通过集成的演示页面轻松体验其神奇效果。\n\n技术亮点方面，Bark 支持商业使用（MIT 许可），并在近期更新中实现了显著的推理速度提升，同时提供了适配低显存 GPU 的版本，降低了使用门槛。此外，社区还建立了丰富的提示词库，帮助用户更好地驾驭模型生成特定风格的声音。只需几行 Python 代码，即可将创意文本转化为高质量音频，是连接文字与声音世界的强大桥梁。",39067,"2026-04-04T03:33:35",[21],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":62,"last_commit_at":63,"category_tags":64,"status":22},3788,"airi","moeru-ai\u002Fairi","airi 是一款开源的本地化 AI 伴侣项目，旨在将虚拟角色（如“二次元老婆”或赛博生命）带入用户的现实世界。它的核心目标是复刻并超越知名 AI 主播 Neuro-sama 的能力，让用户能够拥有完全自主掌控、可私有化部署的智能伙伴。\n\nairi 主要解决了用户对高度定制化、具备情感交互能力且数据隐私安全的 AI 角色的需求。不同于依赖云端服务的通用助手，airi 允许用户在本地运行，不仅保护了对话隐私，还赋予了用户定义角色性格与灵魂的自由。它支持实时语音聊天，甚至能直接参与《我的世界》（Minecraft）和《异星工厂》（Factorio）等游戏，实现了从单纯对话到共同娱乐的跨越。\n\n这款工具非常适合喜爱虚拟角色的普通用户、希望搭建个性化 AI 陪伴的技术爱好者，以及研究多模态交互的开发者。其独特的技术亮点在于跨平台支持（涵盖 Web、macOS 和 Windows）以及强大的游戏交互能力，让 AI 不仅能“说”，还能“玩”。通过容器化的灵魂设计，airi 为每个人创造专属数字生命提供了可能，让虚拟陪伴变得更加真实且触手可及。",37086,1,"2026-04-05T10:54:25",[19,21,17],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":79,"owner_location":80,"owner_email":81,"owner_twitter":79,"owner_website":82,"owner_url":83,"languages":84,"stars":93,"forks":94,"last_commit_at":95,"license":96,"difficulty_score":97,"env_os":98,"env_gpu":99,"env_ram":100,"env_deps":101,"category_tags":107,"github_topics":79,"view_count":10,"oss_zip_url":79,"oss_zip_packed_at":79,"status":22,"created_at":108,"updated_at":109,"faqs":110,"releases":139},4226,"ibab\u002Ftensorflow-wavenet","tensorflow-wavenet","A TensorFlow implementation of DeepMind's WaveNet paper","tensorflow-wavenet 是 DeepMind 著名 WaveNet 论文的 TensorFlow 开源实现，专注于高质量原始音频波形生成。它主要解决了传统方法难以合成自然、逼真语音及通用音频的难题，在文本转语音（TTS）和音乐生成领域表现卓越。\n\n该工具适合人工智能研究人员、音频算法开发者以及希望深入探索生成式模型的学生使用。由于涉及模型训练与参数配置，使用者需具备一定的 Python 编程基础和深度学习知识，普通用户若无技术背景可能较难直接上手。\n\n其核心技术亮点在于采用了“因果膨胀卷积”（causal dilated convolution）架构。这种设计让网络在预测下一个音频采样点时，仅依赖当前及过去的信息，从而有效捕捉音频信号中长距离的时间依赖关系。此外，tensorflow-wavenet 还支持“全局条件化”功能，允许用户在生成阶段指定说话人 ID 等参数，实现对特定音色或风格的精准模仿。作为一个经典的基准实现，它为理解和发展现代音频生成技术提供了宝贵的代码参考。","# A TensorFlow implementation of DeepMind's WaveNet paper\n\n[![Build Status](https:\u002F\u002Ftravis-ci.org\u002Fibab\u002Ftensorflow-wavenet.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002Fibab\u002Ftensorflow-wavenet)\n\nThis is a TensorFlow implementation of the [WaveNet generative neural\nnetwork architecture](https:\u002F\u002Fdeepmind.com\u002Fblog\u002Fwavenet-generative-model-raw-audio\u002F) for audio generation.\n\n\u003Ctable style=\"border-collapse: collapse\">\n\u003Ctr>\n\u003Ctd>\n\u003Cp>\nThe WaveNet neural network architecture directly generates a raw audio waveform,\nshowing excellent results in text-to-speech and general audio generation (see the\nDeepMind blog post and paper for details).\n\u003C\u002Fp>\n\u003Cp>\nThe network models the conditional probability to generate the next\nsample in the audio waveform, given all previous samples and possibly\nadditional parameters.\n\u003C\u002Fp>\n\u003Cp>\nAfter an audio preprocessing step, the input waveform is quantized to a fixed integer range.\nThe integer amplitudes are then one-hot encoded to produce a tensor of shape \u003Ccode>(num_samples, num_channels)\u003C\u002Fcode>.\n\u003C\u002Fp>\n\u003Cp>\nA convolutional layer that only accesses the current and previous inputs then reduces the channel dimension.\n\u003C\u002Fp>\n\u003Cp>\nThe core of the network is constructed as a stack of \u003Cem>causal dilated layers\u003C\u002Fem>, each of which is a\ndilated convolution (convolution with holes), which only accesses the current and past audio samples.\n\u003C\u002Fp>\n\u003Cp>\nThe outputs of all layers are combined and extended back to the original number\nof channels by a series of dense postprocessing layers, followed by a softmax\nfunction to transform the outputs into a categorical distribution.\n\u003C\u002Fp>\n\u003Cp>\nThe loss function is the cross-entropy between the output for each timestep and the input at the next timestep.\n\u003C\u002Fp>\n\u003Cp>\nIn this repository, the network implementation can be found in \u003Ca href=\".\u002Fwavenet\u002Fmodel.py\">model.py\u003C\u002Fa>.\n\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003Ctd width=\"300\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fibab_tensorflow-wavenet_readme_b7ac83920828.png\" width=\"300\">\u003C\u002Fimg>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## Requirements\n\nTensorFlow needs to be installed before running the training script.\nCode is tested on TensorFlow version 1.0.1 for Python 2.7 and Python 3.5.\n\nIn addition, [librosa](https:\u002F\u002Fgithub.com\u002Flibrosa\u002Flibrosa) must be installed for reading and writing audio.\n\nTo install the required python packages, run\n```bash\npip install -r requirements.txt\n```\n\nFor GPU support, use\n```bash\npip install -r requirements_gpu.txt\n```\n\n## Training the network\n\nYou can use any corpus containing `.wav` files.\nWe've mainly used the [VCTK corpus](http:\u002F\u002Fhomepages.inf.ed.ac.uk\u002Fjyamagis\u002Fpage3\u002Fpage58\u002Fpage58.html) (around 10.4GB, [Alternative host](http:\u002F\u002Fwww.udialogue.org\u002Fdownload\u002Fcstr-vctk-corpus.html)) so far.\n\nIn order to train the network, execute\n```bash\npython train.py --data_dir=corpus\n```\nto train the network, where `corpus` is a directory containing `.wav` files.\nThe script will recursively collect all `.wav` files in the directory.\n\nYou can see documentation on each of the training settings by running\n```bash\npython train.py --help\n```\n\nYou can find the configuration of the model parameters in [`wavenet_params.json`](.\u002Fwavenet_params.json).\nThese need to stay the same between training and generation.\n\n### Global Conditioning\nGlobal conditioning refers to modifying the model such that the id of a set of mutually-exclusive categories is specified during training and generation of .wav file.\nIn the case of the VCTK, this id is the integer id of the speaker, of which there are over a hundred.\nThis allows (indeed requires) that a speaker id be specified at time of generation to select which of the speakers it should mimic. For more details see the paper or source code.\n\n### Training with Global Conditioning\nThe instructions above for training refer to training without global conditioning. To train with global conditioning, specify command-line arguments as follows:\n```\npython train.py --data_dir=corpus --gc_channels=32\n```\nThe --gc_channels argument does two things:\n* It tells the train.py script that\nit should build a model that includes global conditioning.\n* It specifies the\nsize of the embedding vector that is looked up based on the id of the speaker.\n\nThe global conditioning logic in train.py and audio_reader.py is \"hard-wired\" to the VCTK corpus at the moment in that it expects to be able to determine the speaker id from the pattern of file naming used in VCTK, but can be easily be modified.\n\n## Generating audio\n\n[Example output](https:\u002F\u002Fsoundcloud.com\u002Fuser-731806733\u002Ftensorflow-wavenet-500-msec-88k-train-steps)\ngenerated by @jyegerlehner based on speaker 280 from the VCTK corpus.\n\nYou can use the `generate.py` script to generate audio using a previously trained model.\n\n### Generating without Global Conditioning\nRun\n```\npython generate.py --samples 16000 logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000\n```\nwhere `logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000` needs to be a path to previously saved model (without extension).\nThe `--samples` parameter specifies how many audio samples you would like to generate (16000 corresponds to 1 second by default).\n\nThe generated waveform can be played back using TensorBoard, or stored as a\n`.wav` file by using the `--wav_out_path` parameter:\n```\npython generate.py --wav_out_path=generated.wav --samples 16000 logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000\n```\n\nPassing `--save_every` in addition to `--wav_out_path` will save the in-progress wav file every n samples.\n```\npython generate.py --wav_out_path=generated.wav --save_every 2000 --samples 16000 logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000\n```\n\nFast generation is enabled by default.\nIt uses the implementation from the [Fast Wavenet](https:\u002F\u002Fgithub.com\u002Ftomlepaine\u002Ffast-wavenet) repository.\nYou can follow the link for an explanation of how it works.\nThis reduces the time needed to generate samples to a few minutes.\n\nTo disable fast generation:\n```\npython generate.py --samples 16000 logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000 --fast_generation=false\n```\n\n### Generating with Global Conditioning\nGenerate from a model incorporating global conditioning as follows:\n```\npython generate.py --samples 16000  --wav_out_path speaker311.wav --gc_channels=32 --gc_cardinality=377 --gc_id=311 logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000\n```\nWhere:\n\n`--gc_channels=32` specifies 32 is the size of the embedding vector, and\nmust match what was specified when training.\n\n`--gc_cardinality=377` is required\nas 376 is the largest id of a speaker in the VCTK corpus. If some other corpus\nis used, then this number should match what is automatically determined and\nprinted out by the train.py script at training time.\n\n`--gc_id=311` specifies the id of speaker, speaker 311, for which a sample is\nto be generated.\n\n## Running tests\n\nInstall the test requirements\n```\npip install -r requirements_test.txt\n```\n\nRun the test suite\n```\n.\u002Fci\u002Ftest.sh\n```\n\n## Missing features\n\nCurrently there is no local conditioning on extra information which would allow\ncontext stacks or controlling what speech is generated.\n\n\n## Related projects\n\n- [tex-wavenet](https:\u002F\u002Fgithub.com\u002FZeta36\u002Ftensorflow-tex-wavenet), a WaveNet for text generation.\n- [image-wavenet](https:\u002F\u002Fgithub.com\u002FZeta36\u002Ftensorflow-image-wavenet), a WaveNet for image generation.\n","# DeepMind WaveNet 论文的 TensorFlow 实现\n\n[![构建状态](https:\u002F\u002Ftravis-ci.org\u002Fibab\u002Ftensorflow-wavenet.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002Fibab\u002Ftensorflow-wavenet)\n\n这是一个用于音频生成的 [WaveNet 生成式神经网络架构](https:\u002F\u002Fdeepmind.com\u002Fblog\u002Fwavenet-generative-model-raw-audio\u002F) 的 TensorFlow 实现。\n\n\u003Ctable style=\"border-collapse: collapse\">\n\u003Ctr>\n\u003Ctd>\n\u003Cp>\nWaveNet 神经网络架构直接生成原始音频波形，在文本到语音和通用音频生成任务中表现出色（详情请参阅 DeepMind 博客文章和论文）。\n\u003C\u002Fp>\n\u003Cp>\n该网络通过建模条件概率来生成音频波形中的下一个样本，给定所有之前的样本以及可能的额外参数。\n\u003C\u002Fp>\n\u003Cp>\n在音频预处理步骤之后，输入波形会被量化到一个固定的整数范围内。然后将这些整数值幅度进行独热编码，从而得到形状为 \u003Ccode>(num_samples, num_channels)\u003C\u002Fcode> 的张量。\n\u003C\u002Fp>\n\u003Cp>\n随后，一个仅访问当前及之前输入的卷积层会减少通道维度。\n\u003C\u002Fp>\n\u003Cp>\n网络的核心由一系列\u003Cem>因果扩张层\u003C\u002Fem>堆叠而成，每一层都是扩张卷积（带孔卷积），它只访问当前及过去的音频样本。\n\u003C\u002Fp>\n\u003Cp>\n所有层的输出会被合并，并通过一系列密集的后处理层扩展回原始的通道数，最后使用 softmax 函数将输出转换为分类分布。\n\u003C\u002Fp>\n\u003Cp>\n损失函数是每个时间步的输出与下一个时间步输入之间的交叉熵。\n\u003C\u002Fp>\n\u003Cp>\n在这个仓库中，网络实现可以在 \u003Ca href=\".\u002Fwavenet\u002Fmodel.py\">model.py\u003C\u002Fa> 中找到。\n\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003Ctd width=\"300\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fibab_tensorflow-wavenet_readme_b7ac83920828.png\" width=\"300\">\u003C\u002Fimg>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## 需求\n\n在运行训练脚本之前，需要先安装 TensorFlow。代码已在 TensorFlow 1.0.1 版本上进行了测试，支持 Python 2.7 和 Python 3.5。\n\n此外，还需要安装 [librosa](https:\u002F\u002Fgithub.com\u002Flibrosa\u002Flibrosa) 库，以便读取和写入音频文件。\n\n要安装所需的 Python 包，可以运行以下命令：\n```bash\npip install -r requirements.txt\n```\n\n如果需要 GPU 支持，可以使用以下命令：\n```bash\npip install -r requirements_gpu.txt\n```\n\n## 训练网络\n\n你可以使用任何包含 `.wav` 文件的数据集。我们目前主要使用的是 [VCTK 数据集](http:\u002F\u002Fhomepages.inf.ed.ac.uk\u002Fjyamagis\u002Fpage3\u002Fpage58\u002Fpage58.html)（约 10.4GB，[替代下载地址](http:\u002F\u002Fwww.udialogue.org\u002Fdownload\u002Fcstr-vctk-corpus.html)）。\n\n为了训练网络，执行以下命令：\n```bash\npython train.py --data_dir=corpus\n```\n其中 `corpus` 是一个包含 `.wav` 文件的目录。脚本会递归地收集该目录下的所有 `.wav` 文件。\n\n可以通过运行以下命令查看每个训练设置的说明：\n```bash\npython train.py --help\n```\n\n模型参数的配置可以在 [`wavenet_params.json`](.\u002Fwavenet_params.json) 中找到。这些参数在训练和生成过程中必须保持一致。\n\n### 全局条件化\n全局条件化是指在训练和生成 `.wav` 文件时，指定一组互斥类别中的某个类别的标识符来调整模型。对于 VCTK 数据集而言，这个标识符就是说话者的整数 ID，总共有上百个不同的说话者。这使得在生成时必须指定一个说话者 ID，以选择模仿哪位说话者的声音。更多细节请参阅论文或源代码。\n\n### 使用全局条件化的训练\n上述训练说明适用于不使用全局条件化的场景。若要使用全局条件化进行训练，需按如下方式指定命令行参数：\n```bash\npython train.py --data_dir=corpus --gc_channels=32\n```\n`--gc_channels` 参数有两个作用：\n* 告诉 `train.py` 脚本构建一个包含全局条件化的模型。\n* 指定基于说话者 ID 查找的嵌入向量的大小。\n\n目前，`train.py` 和 `audio_reader.py` 中的全局条件化逻辑是针对 VCTK 数据集“硬编码”的，即假设能够从 VCTK 数据集中使用的文件命名模式中确定说话者 ID，但这一部分可以轻松修改。\n\n## 生成音频\n\n由 @jyegerlehner 基于 VCTK 数据集中的第 280 号说话者生成的[示例输出](https:\u002F\u002Fsoundcloud.com\u002Fuser-731806733\u002Ftensorflow-wavenet-500-msec-88k-train-steps)。\n\n你可以使用 `generate.py` 脚本，利用先前训练好的模型来生成音频。\n\n### 不使用全局条件化的生成\n运行以下命令：\n```bash\npython generate.py --samples 16000 logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000\n```\n其中 `logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000` 是之前保存的模型路径（不含扩展名）。`--samples` 参数指定了你希望生成的音频样本数量（默认情况下，16000 个样本对应 1 秒钟）。\n\n生成的波形可以使用 TensorBoard 播放，也可以通过 `--wav_out_path` 参数将其保存为 `.wav` 文件：\n```bash\npython generate.py --wav_out_path=generated.wav --samples 16000 logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000\n```\n\n如果同时传递 `--save_every` 参数，系统将会每隔 n 个样本保存一次正在生成的 `.wav` 文件：\n```bash\npython generate.py --wav_out_path=generated.wav --save_every 2000 --samples 16000 logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000\n```\n\n默认情况下启用了快速生成功能。它使用了来自 [Fast Wavenet](https:\u002F\u002Fgithub.com\u002Ftomlepaine\u002Ffast-wavenet) 仓库的实现。你可以通过链接了解其工作原理。这可以将生成样本所需的时间缩短至几分钟。\n\n若要禁用快速生成功能，可以运行：\n```bash\npython generate.py --samples 16000 logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000 --fast_generation=false\n```\n\n### 使用全局条件化的生成\n按照以下方式从包含全局条件化的模型中生成音频：\n```bash\npython generate.py --samples 16000  --wav_out_path speaker311.wav --gc_channels=32 --gc_cardinality=377 --gc_id=311 logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000\n```\n其中：\n\n`--gc_channels=32` 指定了嵌入向量的大小为 32，必须与训练时指定的值一致。\n\n`--gc_cardinality=377` 是必需的，因为 376 是 VCTK 数据集中最大的说话者 ID。如果使用其他数据集，则此值应与训练时由 `train.py` 脚本自动确定并打印出来的值一致。\n\n`--gc_id=311` 指定了要为其生成样本的说话者 ID，即第 311 号说话者。\n\n## 运行测试\n\n安装测试所需的依赖项：\n```bash\npip install -r requirements_test.txt\n```\n\n然后运行测试套件：\n```bash\n.\u002Fci\u002Ftest.sh\n```\n\n## 缺失的功能\n\n目前尚不支持对额外信息的局部条件化，因此无法实现上下文堆栈或控制生成的具体语音内容。\n\n## 相关项目\n\n- [tex-wavenet](https:\u002F\u002Fgithub.com\u002FZeta36\u002Ftensorflow-tex-wavenet)，用于文本生成的WaveNet。\n- [image-wavenet](https:\u002F\u002Fgithub.com\u002FZeta36\u002Ftensorflow-image-wavenet)，用于图像生成的WaveNet。","# tensorflow-wavenet 快速上手指南\n\n本指南基于 DeepMind 的 WaveNet 论文，提供使用 TensorFlow 实现原始音频生成的快速入门流程。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**：Linux \u002F macOS \u002F Windows\n*   **Python 版本**：推荐 Python 2.7 或 Python 3.5（代码已在这些版本上测试通过）\n*   **TensorFlow 版本**：需安装 TensorFlow 1.0.1 或兼容版本\n*   **音频处理库**：需要 `librosa` 用于读写音频文件\n*   **硬件建议**：如需加速训练，建议使用支持 CUDA 的 GPU\n\n## 安装步骤\n\n### 1. 安装依赖包\n\n克隆项目后，进入目录并安装所需的 Python 包。\n\n**CPU 版本：**\n```bash\npip install -r requirements.txt\n```\n\n**GPU 版本（推荐）：**\n如果您拥有 NVIDIA GPU 并希望加速训练，请使用以下命令：\n```bash\npip install -r requirements_gpu.txt\n```\n\n> **提示**：国内用户若下载缓慢，可指定清华或阿里镜像源安装，例如：\n> `pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n### 2. 准备数据集\n\n您可以使用任何包含 `.wav` 文件的音频语料库。官方示例主要使用 **VCTK 语料库**（约 10.4GB）。\n将解压后的 `.wav` 文件放入一个目录中（例如命名为 `corpus`），脚本会自动递归收集该目录下的所有音频文件。\n\n## 基本使用\n\n### 1. 训练模型\n\n使用以下命令开始训练。请将 `corpus` 替换为您存放 `.wav` 文件的实际目录路径。\n\n```bash\npython train.py --data_dir=corpus\n```\n\n*   **查看参数帮助**：运行 `python train.py --help` 可查看所有训练配置选项。\n*   **模型配置**：网络结构参数定义在 [`wavenet_params.json`](.\u002Fwavenet_params.json) 中，训练和生成时必须保持一致。\n\n*(可选) **带全局条件控制训练**（如区分不同说话人）：*\n```bash\npython train.py --data_dir=corpus --gc_channels=32\n```\n\n### 2. 生成音频\n\n训练完成后，使用保存的检查点文件生成新的音频样本。\n\n**基础生成命令：**\n```bash\npython generate.py --samples 16000 logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000\n```\n*   `--samples 16000`：指定生成的采样点数（默认采样率下约等于 1 秒音频）。\n*   末尾路径：替换为您实际训练生成的模型检查点路径（不含 `.index` 等后缀）。\n\n**保存为 WAV 文件：**\n添加 `--wav_out_path` 参数直接将结果保存为文件：\n```bash\npython generate.py --wav_out_path=generated.wav --samples 16000 logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000\n```\n\n**启用快速生成（默认开启）：**\n该模式大幅缩短生成时间至几分钟内。若需关闭：\n```bash\npython generate.py --samples 16000 logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000 --fast_generation=false\n```\n\n*(可选) **带全局条件控制生成**（指定说话人 ID）：*\n```bash\npython generate.py --samples 16000 --wav_out_path speaker311.wav --gc_channels=32 --gc_cardinality=377 --gc_id=311 logdir\u002Ftrain\u002F2017-02-13T16-45-34\u002Fmodel.ckpt-80000\n```\n*   `--gc_channels`：必须与训练时设置的嵌入向量大小一致。\n*   `--gc_cardinality`：类别总数（如 VCTK 中最大说话人 ID+1）。\n*   `--gc_id`：指定要模仿的说话人 ID。","某语音合成初创团队正致力于为视障用户开发一款能模仿亲人声音的个性化有声书阅读器，需要高质量的原始音频生成能力。\n\n### 没有 tensorflow-wavenet 时\n- **音质机械生硬**：传统参数合成或早期神经网络生成的语音缺乏细节，听起来像机器人，无法还原人类说话时的呼吸感和情感起伏。\n- **难以复刻特定音色**：若要模拟特定人物（如用户的家人），需要采集海量数据并重新训练整个声学模型，成本极高且周期长达数周。\n- **波形处理粗糙**：现有方案多基于梅尔频谱等中间特征转换，导致最终输出的波形存在伪影，听感不自然，长时间收听易产生疲劳。\n- **长依赖捕捉不足**：模型难以记住前文的语调模式，导致生成的长句在韵律和节奏上经常断裂，缺乏连贯性。\n\n### 使用 tensorflow-wavenet 后\n- **实现高保真原声生成**：利用其因果膨胀卷积结构直接生成原始音频波形，输出的语音包含细腻的齿音和呼吸声，逼真度达到人类难以分辨的水平。\n- **低成本个性化定制**：通过全局条件化（Global Conditioning）功能，仅需输入说话人 ID 和少量样本，即可在同一模型中灵活切换并模仿上百种不同音色。\n- **端到端波形建模**：省去了复杂的中间特征转换步骤，直接对量化后的音频振幅进行建模，彻底消除了转换过程中的音质损失和伪影。\n- **卓越的长程语境感知**：深层扩张感受野让模型能“记住”数秒前的音频信息，确保生成的长段落语音在语调和节奏上高度连贯自然。\n\ntensorflow-wavenet 通过将深度生成模型应用于原始音频流，以极低的算力成本实现了从“机械朗读”到“情感复现”的质的飞跃。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fibab_tensorflow-wavenet_1de6090d.png","ibab","Igor Babuschkin","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fibab_a51f2354.jpg",null,"San Francisco","igor@babuschk.in","http:\u002F\u002Fbabushk.in","https:\u002F\u002Fgithub.com\u002Fibab",[85,89],{"name":86,"color":87,"percentage":88},"Python","#3572A5",99.5,{"name":90,"color":91,"percentage":92},"Shell","#89e051",0.5,5435,1275,"2026-04-01T06:50:05","MIT",4,"","可选。若需 GPU 加速，需安装 requirements_gpu.txt 中指定的包（通常包含特定版本的 tensorflow-gpu），具体显卡型号、显存及 CUDA 版本未在文中说明。","未说明",{"notes":102,"python":103,"dependencies":104},"该工具基于较旧的 TensorFlow 1.0.1 版本，代码测试于 Python 2.7 和 3.5。训练数据需为 .wav 格式音频文件。默认启用快速生成模式以缩短推理时间。全局条件控制（Global Conditioning）功能目前硬编码适配 VCTK 语音数据集的文件命名规则，若使用其他数据集需修改源码。","2.7, 3.5",[105,106],"tensorflow==1.0.1","librosa",[21],"2026-03-27T02:49:30.150509","2026-04-06T14:03:48.446648",[111,116,121,125,130,134],{"id":112,"question_zh":113,"answer_zh":114,"source_url":115},19259,"训练时出现 'TypeError: __int__ returned non-int' 或 CUDA 相关错误怎么办？","这通常是因为缺少必要的系统库。请确保已安装 ffmpeg 库。在 Ubuntu\u002FDebian 上可以使用 apt-get 安装，在 macOS 上运行 `brew install ffmpeg`。此外，建议将 cuDNN 更新到版本 5 或更高，并确保使用 Python 2.7 环境（针对旧版 TensorFlow）。","https:\u002F\u002Fgithub.com\u002Fibab\u002Ftensorflow-wavenet\u002Fissues\u002F1",{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},19260,"遇到 'librosa.util.exceptions.ParameterError: Buffer is too short' 错误如何解决？","该错误发生在音频文件太短，无法进行静音修剪（silence trimming）时。解决方案是修改代码逻辑，跳过对过短文件的静音修剪处理，因为对这些文件进行修剪没有意义。一旦模型训练完成，生成脚本会直接创建 wav 文件，不需要中间的音频摘要。","https:\u002F\u002Fgithub.com\u002Fibab\u002Ftensorflow-wavenet\u002Fissues\u002F228",{"id":122,"question_zh":123,"answer_zh":124,"source_url":120},19261,"如何在中断后恢复训练（断点续训）？","恢复训练时应使用 `--logdir` 参数而不是 `--logdir_root`。`--logdir_root` 每次运行都会创建一个带有当前日期时间的新文件夹，而 `--logdir` 会加载指定文件夹中已有的模型并继续训练。如果需要从保存的模型开始并将后续迭代保存到另一个文件夹（分支训练），可以使用 `--restore_from` 参数。",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},19262,"运行 generate.py 生成样本时出现 'Output dimensions must be positive' 错误怎么办？","此问题通常由 cuDNN 版本过旧引起。请将 cuDNN 升级到 v5.1 或更高版本。此外，确保你的本地代码版本包含了修复生成脚本中窗口大小问题的提交（commit 6487cd1），该 bug 会导致窗口值减少为单个从而产生噪声。","https:\u002F\u002Fgithub.com\u002Fibab\u002Ftensorflow-wavenet\u002Fissues\u002F13",{"id":131,"question_zh":132,"answer_zh":133,"source_url":129},19263,"生成的音频只有噪声或效果不好，可能的原因是什么？","默认超参数只是猜测值，除非你调整它们并获得较低的 loss 值，否则不要期望效果很好。通常需要更多的层数来复现 DeepMind 的结果。建议尝试增加窗口大小（window size），例如从默认值增加到 8000，这样网络在生成时会考虑更多的过去样本。同时请确认已修复生成脚本中导致窗口值变为单一的 bug。",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},19264,"WaveNet 模型可以用于文本生成吗？","可以。基于此仓库的代码，可以将 WaveNet 模型应用于文本生成。方法是使用原始文本数据（字符级别）代替原始音频文件来喂养模型。训练完成后，利用找到的条件概率进行自回归生成。目前支持可打印的 ASCII 字符（十进制 0 到 255）。在足够的文本数据和训练步数下，模型能够学习字符排列的概率并生成相似的文本。","https:\u002F\u002Fgithub.com\u002Fibab\u002Ftensorflow-wavenet\u002Fissues\u002F117",[]]