[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-jishengpeng--WavTokenizer":3,"tool-jishengpeng--WavTokenizer":65},[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},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 真正成长为懂上",159636,2,"2026-04-17T23:33:34",[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},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,3,"2026-04-06T11:19:32",[15,26,14,13],"图像",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":10,"last_commit_at":33,"category_tags":34,"status":16},8553,"spec-kit","github\u002Fspec-kit","Spec Kit 是一款专为提升软件开发效率而设计的开源工具包，旨在帮助团队快速落地“规格驱动开发”（Spec-Driven Development）模式。传统开发中，需求文档往往与代码实现脱节，导致沟通成本高且结果不可控；而 Spec Kit 通过将规格说明书转化为可执行的指令，让 AI 直接依据明确的业务场景生成高质量代码，从而减少从零开始的随意编码，确保产出结果的可预测性。\n\n该工具特别适合希望利用 AI 辅助编程的开发者、技术负责人及初创团队。无论是启动全新项目还是在现有工程中引入规范化流程，用户只需通过简单的命令行操作，即可初始化项目并集成主流的 AI 编程助手。其核心技术亮点在于“规格即代码”的理念，支持社区扩展与预设模板，允许用户根据特定技术栈定制开发流程。此外，Spec Kit 强调官方维护的安全性，提供稳定的版本管理，帮助开发者在享受 AI 红利的同时，依然牢牢掌握架构设计的主动权，真正实现从“凭感觉写代码”到“按规格建系统”的转变。",88749,"2026-04-17T09:48:14",[15,26,14,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"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,15],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":10,"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 将是理想的起点。",85092,"2026-04-10T11:13:16",[26,51,52,53,14,54,15,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":62,"last_commit_at":63,"category_tags":64,"status":16},5784,"funNLP","fighting41love\u002FfunNLP","funNLP 是一个专为中文自然语言处理（NLP）打造的超级资源库，被誉为\"NLP 民工的乐园”。它并非单一的软件工具，而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。\n\n面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点，funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具，还独特地收录了丰富的垂直领域资源，如法律、医疗、金融行业的专用词库与数据集，甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性，从基础的字典词典到前沿的 BERT、GPT-2 模型代码，再到高质量的标注数据和竞赛方案，应有尽有。\n\n无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师，还是从事人工智能研究的学者，都能在这里找到急需的“武器弹药”。对于开发者而言，它能大幅减少寻找数据和复现模型的时间；对于研究者，它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神，极大地降低了中文自然语言处理的开发与研究成本，是中文 AI 社区不可或缺的宝藏仓库。",79857,1,"2026-04-08T20:11:31",[15,51,54],{"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":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":80,"owner_twitter":80,"owner_website":80,"owner_url":81,"languages":82,"stars":87,"forks":88,"last_commit_at":89,"license":90,"difficulty_score":10,"env_os":91,"env_gpu":92,"env_ram":91,"env_deps":93,"category_tags":101,"github_topics":102,"view_count":10,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":115,"updated_at":116,"faqs":117,"releases":147},8678,"jishengpeng\u002FWavTokenizer","WavTokenizer","[ICLR 2025] SOTA discrete acoustic codec models with 40\u002F75 tokens per second for audio language modeling ","WavTokenizer 是一款专为音频语言模型设计的最先进（SOTA）离散声学编解码器，已入选 ICLR 2025。它的核心功能是将语音、音乐及各类音频信号高效压缩为极少量的离散令牌（tokens），最低仅需每秒 40 个令牌即可高质量还原原始声音。\n\n传统音频处理模型往往面临数据量大、计算成本高或重建音质受损的难题。WavTokenizer 通过创新的架构，在大幅降低数据维度的同时，依然保留了丰富的语义信息并实现了卓越的音频重建效果。这种“高压缩、高保真”的特性，使其成为构建类似 GPT-4o 等下一代多模态音频大模型的理想基石，能有效降低训练与推理的资源门槛。\n\n该工具主要面向人工智能研究人员、音频算法开发者以及大模型架构师。对于希望探索高效音频表征学习、开发语音生成应用或优化现有音频流水线的技术团队而言，WavTokenizer 提供了开箱即用的预训练模型（涵盖 Medium 和 Large 版本）及便捷的 Python 接口，支持从音频编码、离散码本生成到解码还原的全流程操作，是连接底层音频信号与上层语言模型的高效桥梁。","# WavTokenizer\nSOTA Discrete Codec Models With Forty Tokens Per Second for Audio Language Modeling \n\n\n\n[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-Paper-\u003CCOLOR>.svg)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2408.16532)\n[![demo](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWanTokenizer-Demo-red)](https:\u002F\u002Fwavtokenizer.github.io\u002F)\n[![model](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20WavTokenizer-Models-blue)](https:\u002F\u002Fhuggingface.co\u002Fnovateur\u002FWavTokenizer)\n\n\n\n### 🎉🎉 with WavTokenizer, you can represent speech, music, and audio with only 40 tokens per second!\n### 🎉🎉 with WavTokenizer, You can get strong reconstruction results.\n### 🎉🎉 WavTokenizer owns rich semantic information and is build for audio language models such as GPT-4o.\n\n\u003C!--\n# Tips\nWe have noticed that several works (approximately exceed ten recent months) have incorrectly cited WavTokenizer. Below is the correct citation format. We sincerely appreciate the community's attention and interest.\n```\n@article{ji2024wavtokenizer,\n  title={Wavtokenizer: an efficient acoustic discrete codec tokenizer for audio language modeling},\n  author={Ji, Shengpeng and Jiang, Ziyue and Wang, Wen and Chen, Yifu and Fang, Minghui and Zuo, Jialong and Yang, Qian and Cheng, Xize and Wang, Zehan and Li, Ruiqi and others},\n  journal={arXiv preprint arXiv:2408.16532},\n  year={2024}\n}\n```\n-->\n\n# 🔥 News\n- *2025.02.25*: We update WavTokenizer camera ready version for ICLR 2025 and update WavTokenizer-large-v2 checkpoint on [huggingface](https:\u002F\u002Fhuggingface.co\u002Fnovateur\u002FWavTokenizer-large-speech-75token). \n- *2024.10.22*: We update WavTokenizer on arxiv and release WavTokenizer-Large checkpoint.\n- *2024.09.09*: We release WavTokenizer-medium checkpoint on [huggingface](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fnovateur\u002Fwavtokenizer-medium-large-66de94b6fd7d68a2933e4fc0).\n- *2024.08.31*: We release WavTokenizer on arxiv.\n\n![result](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjishengpeng_WavTokenizer_readme_3bb555c61b19.png)\n\n\n## Installation\n\nTo use WavTokenizer, install it using:\n\n```bash\nconda create -n wavtokenizer python=3.9\nconda activate wavtokenizer\npip install -r requirements.txt\n```\n\n## Infer\n\n### Part1: Reconstruct audio from raw wav\n\n```python\n\nfrom encoder.utils import convert_audio\nimport torchaudio\nimport torch\nfrom decoder.pretrained import WavTokenizer\n\n\ndevice=torch.device('cpu')\n\nconfig_path = \".\u002Fconfigs\u002Fxxx.yaml\"\nmodel_path = \".\u002Fxxx.ckpt\"\naudio_outpath = \"xxx\"\n\nwavtokenizer = WavTokenizer.from_pretrained0802(config_path, model_path)\nwavtokenizer = wavtokenizer.to(device)\n\n\nwav, sr = torchaudio.load(audio_path)\nwav = convert_audio(wav, sr, 24000, 1) \nbandwidth_id = torch.tensor([0])\nwav=wav.to(device)\nfeatures,discrete_code= wavtokenizer.encode_infer(wav, bandwidth_id=bandwidth_id)\naudio_out = wavtokenizer.decode(features, bandwidth_id=bandwidth_id) \ntorchaudio.save(audio_outpath, audio_out, sample_rate=24000, encoding='PCM_S', bits_per_sample=16)\n```\n\n\n### Part2: Generating discrete codecs\n```python\n\nfrom encoder.utils import convert_audio\nimport torchaudio\nimport torch\nfrom decoder.pretrained import WavTokenizer\n\ndevice=torch.device('cpu')\n\nconfig_path = \".\u002Fconfigs\u002Fxxx.yaml\"\nmodel_path = \".\u002Fxxx.ckpt\"\n\nwavtokenizer = WavTokenizer.from_pretrained0802(config_path, model_path)\nwavtokenizer = wavtokenizer.to(device)\n\nwav, sr = torchaudio.load(audio_path)\nwav = convert_audio(wav, sr, 24000, 1) \nbandwidth_id = torch.tensor([0])\nwav=wav.to(device)\n_,discrete_code= wavtokenizer.encode_infer(wav, bandwidth_id=bandwidth_id)\nprint(discrete_code)\n```\n\n\n\n### Part3: Audio reconstruction through codecs\n```python\n# audio_tokens [n_q,1,t]\u002F[n_q,t]\nfeatures = wavtokenizer.codes_to_features(audio_tokens)\nbandwidth_id = torch.tensor([0])  \naudio_out = wavtokenizer.decode(features, bandwidth_id=bandwidth_id)\n```\n\n## Available models\n🤗 links to the Huggingface model hub.\n\n| Model name                                                          |                                                                                                            HuggingFace                                                                                                             |  Corpus  |  Token\u002Fs  | Domain | Open-Source |\n|:--------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:--------:|:---------:|:----------:|:------:|\n| WavTokenizer-small-600-24k-4096             |             [🤗](https:\u002F\u002Fhuggingface.co\u002Fnovateur\u002FWavTokenizer\u002Fblob\u002Fmain\u002FWavTokenizer_small_600_24k_4096.ckpt)    | LibriTTS  | 40  |  Speech  | √ |\n| WavTokenizer-small-320-24k-4096             |             [🤗](https:\u002F\u002Fhuggingface.co\u002Fnovateur\u002FWavTokenizer\u002Fblob\u002Fmain\u002FWavTokenizer_small_320_24k_4096.ckpt)     | LibriTTS  | 75 |  Speech  | √|\n| WavTokenizer-medium-320-24k-4096                 |               [🤗](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fnovateur\u002Fwavtokenizer-medium-large-66de94b6fd7d68a2933e4fc0)         | 10000 Hours | 75 |  Speech, Audio, Music  | √ |\n| WavTokenizer-large-600-24k-4096 | [🤗](https:\u002F\u002Fhuggingface.co\u002Fnovateur\u002FWavTokenizer-large-unify-40token) | 80000 Hours | 40 |   Speech, Audio, Music   | √|\n| WavTokenizer-large-320-24k-4096   | [🤗](https:\u002F\u002Fhuggingface.co\u002Fnovateur\u002FWavTokenizer-large-speech-75token) | 80000 Hours | 75 |   Speech, Audio, Music   | √ |\n\n      \n\n## Training\n\n### Step1: Prepare train dataset\n```python\n# Process the data into a form similar to .\u002Fdata\u002Fdemo.txt\n```\n\n### Step2: Modifying configuration files\n```python\n# .\u002Fconfigs\u002Fxxx.yaml\n# Modify the values of parameters such as batch_size, filelist_path, save_dir, device\n```\n\n### Step3: Start training process\nRefer to [Pytorch Lightning documentation](https:\u002F\u002Flightning.ai\u002Fdocs\u002Fpytorch\u002Fstable\u002F) for details about customizing the\ntraining pipeline.\n\n```bash\ncd .\u002FWavTokenizer\npython train.py fit --config .\u002Fconfigs\u002Fxxx.yaml\n```\n\n\n## Citation\n\nIf this code contributes to your research, please cite our work, Language-Codec and WavTokenizer:\n\n```\n@article{ji2024wavtokenizer,\n  title={Wavtokenizer: an efficient acoustic discrete codec tokenizer for audio language modeling},\n  author={Ji, Shengpeng and Jiang, Ziyue and Wang, Wen and Chen, Yifu and Fang, Minghui and Zuo, Jialong and Yang, Qian and Cheng, Xize and Wang, Zehan and Li, Ruiqi and others},\n  journal={arXiv preprint arXiv:2408.16532},\n  year={2024}\n}\n\n@article{ji2024language,\n  title={Language-codec: Reducing the gaps between discrete codec representation and speech language models},\n  author={Ji, Shengpeng and Fang, Minghui and Jiang, Ziyue and Huang, Rongjie and Zuo, Jialung and Wang, Shulei and Zhao, Zhou},\n  journal={arXiv preprint arXiv:2402.12208},\n  year={2024}\n}\n```\n\n","# WavTokenizer\n用于音频语言建模的每秒四十个标记的最先进离散编解码器模型\n\n\n\n[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-Paper-\u003CCOLOR>.svg)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2408.16532)\n[![demo](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWanTokenizer-Demo-red)](https:\u002F\u002Fwavtokenizer.github.io\u002F)\n[![model](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20WavTokenizer-Models-blue)](https:\u002F\u002Fhuggingface.co\u002Fnovateur\u002FWavTokenizer)\n\n\n\n### 🎉🎉 使用 WavTokenizer，你只需每秒40个标记就能表示语音、音乐和音频！\n### 🎉🎉 使用 WavTokenizer，你可以获得强大的重建效果。\n### 🎉🎉 WavTokenizer 拥有丰富的语义信息，专为 GPT-4o 等音频语言模型而设计。\n\n\u003C!--\n# 提示\n我们注意到，在最近的十个月里，有几篇论文错误地引用了 WavTokenizer。以下是正确的引用格式。我们衷心感谢社区的关注与兴趣。\n```\n@article{ji2024wavtokenizer,\n  title={Wavtokenizer: an efficient acoustic discrete codec tokenizer for audio language modeling},\n  author={Ji, Shengpeng and Jiang, Ziyue and Wang, Wen and Chen, Yifu and Fang, Minghui and Zuo, Jialong and Yang, Qian and Cheng, Xize and Wang, Zehan and Li, Ruiqi and others},\n  journal={arXiv preprint arXiv:2408.16532},\n  year={2024}\n}\n```\n-->\n\n# 🔥 新闻\n- *2025年2月25日*: 我们更新了 WavTokenizer 的 ICLR 2025 准备版本，并在 [huggingface](https:\u002F\u002Fhuggingface.co\u002Fnovateur\u002FWavTokenizer-large-speech-75token) 上发布了 WavTokenizer-large-v2 检查点。\n- *2024年10月22日*: 我们在 arXiv 上更新了 WavTokenizer，并发布了 WavTokenizer-Large 检查点。\n- *2024年9月9日*: 我们在 [huggingface](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fnovateur\u002Fwavtokenizer-medium-large-66de94b6fd7d68a2933e4fc0) 上发布了 WavTokenizer-medium 检查点。\n- *2024年8月31日*: 我们在 arXiv 上发布了 WavTokenizer。\n\n![result](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjishengpeng_WavTokenizer_readme_3bb555c61b19.png)\n\n\n## 安装\n\n要使用 WavTokenizer，可以按照以下步骤安装：\n\n```bash\nconda create -n wavtokenizer python=3.9\nconda activate wavtokenizer\npip install -r requirements.txt\n```\n\n## 推理\n\n### 第一部分：从原始 WAV 文件重建音频\n\n```python\n\nfrom encoder.utils import convert_audio\nimport torchaudio\nimport torch\nfrom decoder.pretrained import WavTokenizer\n\n\ndevice=torch.device('cpu')\n\nconfig_path = \".\u002Fconfigs\u002Fxxx.yaml\"\nmodel_path = \".\u002Fxxx.ckpt\"\naudio_outpath = \"xxx\"\n\nwavtokenizer = WavTokenizer.from_pretrained0802(config_path, model_path)\nwavtokenizer = wavtokenizer.to(device)\n\n\nwav, sr = torchaudio.load(audio_path)\nwav = convert_audio(wav, sr, 24000, 1) \nbandwidth_id = torch.tensor([0])\nwav=wav.to(device)\nfeatures,discrete_code= wavtokenizer.encode_infer(wav, bandwidth_id=bandwidth_id)\naudio_out = wavtokenizer.decode(features, bandwidth_id=bandwidth_id) \ntorchaudio.save(audio_outpath, audio_out, sample_rate=24000, encoding='PCM_S', bits_per_sample=16)\n```\n\n\n### 第二部分：生成离散编解码器代码\n```python\n\nfrom encoder.utils import convert_audio\nimport torchaudio\nimport torch\nfrom decoder.pretrained import WavTokenizer\n\ndevice=torch.device('cpu')\n\nconfig_path = \".\u002Fconfigs\u002Fxxx.yaml\"\nmodel_path = \".\u002Fxxx.ckpt\"\n\nwavtokenizer = WavTokenizer.from_pretrained0802(config_path, model_path)\nwavtokenizer = wavtokenizer.to(device)\n\nwav, sr = torchaudio.load(audio_path)\nwav = convert_audio(wav, sr, 24000, 1) \nbandwidth_id = torch.tensor([0])\nwav=wav.to(device)\n_,discrete_code= wavtokenizer.encode_infer(wav, bandwidth_id=bandwidth_id)\nprint(discrete_code)\n```\n\n\n\n### 第三部分：通过编解码器重建音频\n```python\n# audio_tokens [n_q,1,t]\u002F[n_q,t]\nfeatures = wavtokenizer.codes_to_features(audio_tokens)\nbandwidth_id = torch.tensor([0])  \naudio_out = wavtokenizer.decode(features, bandwidth_id=bandwidth_id)\n```\n\n## 可用模型\n🤗 Huggingface 模型库链接。\n\n| 模型名称                                                          |                                                                                                            HuggingFace                                                                                                             |  数据集  |  标记\u002F秒  | 领域 | 开源 |\n|:--------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:--------:|:---------:|:----------:|:------:|\n| WavTokenizer-small-600-24k-4096             |             [🤗](https:\u002F\u002Fhuggingface.co\u002Fnovateur\u002FWavTokenizer\u002Fblob\u002Fmain\u002FWavTokenizer_small_600_24k_4096.ckpt)    | LibriTTS  | 40  |  语音  | √ |\n| WavTokenizer-small-320-24k-4096             |             [🤗](https:\u002F\u002Fhuggingface.co\u002Fnovateur\u002FWavTokenizer\u002Fblob\u002Fmain\u002FWavTokenizer_small_320_24k_4096.ckpt)     | LibriTTS  | 75 |  语音  | √|\n| WavTokenizer-medium-320-24k-4096                 |               [🤗](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fnovateur\u002Fwavtokenizer-medium-large-66de94b6fd7d68a2933e4fc0)         | 10000 小时 | 75 |  语音、音频、音乐  | √ |\n| WavTokenizer-large-600-24k-4096 | [🤗](https:\u002F\u002Fhuggingface.co\u002Fnovateur\u002FWavTokenizer-large-unify-40token) | 80000 小时 | 40 |   语音、音频、音乐   | √|\n| WavTokenizer-large-320-24k-4096   | [🤗](https:\u002F\u002Fhuggingface.co\u002Fnovateur\u002FWavTokenizer-large-speech-75token) | 80000 小时 | 75 |   语音、音频、音乐   | √ |\n\n      \n\n## 训练\n\n### 第一步：准备训练数据集\n```python\n# 将数据处理成类似 .\u002Fdata\u002Fdemo.txt 的格式\n```\n\n### 第二步：修改配置文件\n```python\n# .\u002Fconfigs\u002Fxxx.yaml\n# 修改 batch_size、filelist_path、save_dir、device 等参数的值\n```\n\n### 第三步：开始训练过程\n有关自定义训练流程的详细信息，请参阅 [Pytorch Lightning 文档](https:\u002F\u002Flightning.ai\u002Fdocs\u002Fpytorch\u002Fstable\u002F)。\n\n```bash\ncd .\u002FWavTokenizer\npython train.py fit --config .\u002Fconfigs\u002Fxxx.yaml\n```\n\n\n## 引用\n\n如果这段代码对您的研究有所帮助，请引用我们的工作——Language-Codec 和 WavTokenizer：\n\n```\n@article{ji2024wavtokenizer,\n  title={Wavtokenizer: an efficient acoustic discrete codec tokenizer for audio language modeling},\n  author={Ji, Shengpeng and Jiang, Ziyue and Wang, Wen and Chen, Yifu and Fang, Minghui and Zuo, Jialong and Yang, Qian and Cheng, Xize and Wang, Zehan and Li, Ruiqi and others},\n  journal={arXiv preprint arXiv:2408.16532},\n  year={2024}\n}\n\n@article{ji2024language,\n  title={Language-codec: Reducing the gaps between discrete codec representation and speech language models},\n  author={Ji, Shengpeng and Fang, Minghui and Jiang, Ziyue and Huang, Rongjie and Zuo, Jialung and Wang, Shulei and Zhao, Zhou},\n  journal={arXiv preprint arXiv:2402.12208},\n  year={2024}\n}\n```","# WavTokenizer 快速上手指南\n\nWavTokenizer 是一款先进的离散编解码器（Discrete Codec）模型，专为音频语言模型设计。它能够以每秒仅 40 个 token 的高效速率表示语音、音乐和音频，同时保持强大的重建能力和丰富的语义信息，是构建类似 GPT-4o 音频模型的理想工具。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux, macOS 或 Windows\n*   **Python 版本**: 推荐 Python 3.9\n*   **依赖管理**: 推荐使用 `conda` 进行环境隔离\n*   **硬件**: 支持 CPU 推理；若需训练或加速推理，建议使用 NVIDIA GPU 并安装对应的 CUDA 版本\n\n## 安装步骤\n\n建议使用国内镜像源加速依赖下载。以下是完整的安装流程：\n\n1.  **创建并激活虚拟环境**\n    ```bash\n    conda create -n wavtokenizer python=3.9\n    conda activate wavtokenizer\n    ```\n\n2.  **安装依赖**\n    克隆项目代码后，使用 pip 安装所需库（已配置国内源加速）：\n    ```bash\n    pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    ```\n\n3.  **获取模型文件**\n    从 Hugging Face 下载所需的模型检查点（`.ckpt`）和配置文件（`.yaml`）。\n    *   模型仓库地址：[novateur\u002FWavTokenizer](https:\u002F\u002Fhuggingface.co\u002Fnovateur\u002FWavTokenizer)\n    *   推荐模型：`WavTokenizer-large-unify-40token` (40 tokens\u002Fs, 通用领域) 或 `WavTokenizer-large-speech-75token` (75 tokens\u002Fs, 语音优化)。\n\n## 基本使用\n\n以下示例展示如何加载预训练模型并将原始音频转换为离散 Token，再还原为音频。\n\n### 1. 音频重建与编码示例\n\n将以下代码保存为 `infer_demo.py`，并确保 `config_path` 和 `model_path` 指向你下载的实际文件路径。\n\n```python\nfrom encoder.utils import convert_audio\nimport torchaudio\nimport torch\nfrom decoder.pretrained import WavTokenizer\n\n# 设置设备 (cpu 或 cuda)\ndevice = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n\n# 配置路径 (请替换为实际下载的路径)\nconfig_path = \".\u002Fconfigs\u002Fxxx.yaml\"\nmodel_path = \".\u002Fxxx.ckpt\"\naudio_path = \".\u002Finput.wav\"       # 输入音频路径\naudio_outpath = \".\u002Foutput.wav\"   # 输出音频路径\n\n# 加载预训练模型\nwavtokenizer = WavTokenizer.from_pretrained0802(config_path, model_path)\nwavtokenizer = wavtokenizer.to(device)\n\n# 加载并预处理音频\nwav, sr = torchaudio.load(audio_path)\n# 转换为单声道 24kHz\nwav = convert_audio(wav, sr, 24000, 1) \nbandwidth_id = torch.tensor([0])\nwav = wav.to(device)\n\n# --- 核心功能 A: 编码并重建音频 ---\nfeatures, discrete_code = wavtokenizer.encode_infer(wav, bandwidth_id=bandwidth_id)\naudio_out = wavtokenizer.decode(features, bandwidth_id=bandwidth_id) \ntorchaudio.save(audio_outpath, audio_out, sample_rate=24000, encoding='PCM_S', bits_per_sample=16)\nprint(f\"音频已重建并保存至：{audio_outpath}\")\n\n# --- 核心功能 B: 仅获取离散 Token (用于语言模型输入) ---\n_, discrete_code = wavtokenizer.encode_infer(wav, bandwidth_id=bandwidth_id)\nprint(\"生成的离散 Token 序列:\")\nprint(discrete_code)\n```\n\n### 2. 从 Token 还原音频\n\n如果你已经拥有离散 Token 序列（例如来自大语言模型的输出），可以使用以下代码将其还原为音频：\n\n```python\n# 假设 audio_tokens 形状为 [n_q, 1, t] 或 [n_q, t]\n# features = wavtokenizer.codes_to_features(audio_tokens)\n# bandwidth_id = torch.tensor([0])  \n# audio_out = wavtokenizer.decode(features, bandwidth_id=bandwidth_id)\n```\n\n### 可用模型速查\n\n| 模型名称 | Token 速率 | 适用领域 | 特点 |\n| :--- | :---: | :--- | :--- |\n| **WavTokenizer-large-600-24k-4096** | 40 | 语音、音频、音乐 | 最高效，适合长上下文语言模型 |\n| **WavTokenizer-large-320-24k-4096** | 75 | 语音、音频、音乐 | 平衡性能与效率 |\n| **WavTokenizer-medium-320-24k-4096** | 75 | 语音、音频、音乐 | 中等规模，训练数据 1 万小时 |\n| **WavTokenizer-small-320-24k-4096** | 75 | 语音 | 轻量级，仅限语音 |\n\n> **提示**: 对于大多数音频语言建模任务，推荐使用 **40 tokens\u002Fs** 的 Large 版本以获得最佳的压缩率和语义保留效果。","某语音大模型初创团队正在构建类似 GPT-4o 的多模态助手，需要处理海量的演讲录音与背景音乐数据以训练音频语言模型。\n\n### 没有 WavTokenizer 时\n- **算力成本高昂**：传统声学编码器每秒需生成数百个 token，导致序列过长，训练显存占用极大，难以在有限预算下扩展数据集规模。\n- **语义信息丢失**：现有压缩方案往往过度牺牲音质或忽略深层语义，使得模型难以理解音频中的复杂指令或情感色彩。\n- **重建效果失真**：在低码率下还原音频时，人声和音乐经常出现机械感或噪点，严重影响最终产品的听感体验。\n- **多场景适配困难**：缺乏统一的高效接口，针对语音、音乐等不同音频类型需维护多套预处理流程，开发效率低下。\n\n### 使用 WavTokenizer 后\n- **训练效率倍增**：凭借每秒仅 40 个 token 的极致压缩率，WavTokenizer 将输入序列长度缩减至原来的几分之一，显著降低显存需求并加速模型收敛。\n- **语义理解增强**：生成的离散编码富含深层语义信息，让大模型能更精准地捕捉音频中的逻辑意图，提升对话交互的智能度。\n- **高保真还原**：即使在极低码率下，WavTokenizer 仍能实现高质量的音频重建，确保输出的人声清晰自然、音乐细节丰富。\n- **统一处理流程**：一套模型即可完美覆盖语音、音乐及通用音频场景，简化了数据流水线，让团队能专注于核心算法迭代。\n\nWavTokenizer 通过极致的压缩效率与卓越的语义保持能力，为音频大模型的规模化落地扫清了数据与算力的双重障碍。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjishengpeng_WavTokenizer_3bb555c6.png","jishengpeng","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fjishengpeng_74ab3dea.png","LLM, Speech","zhejiang university",null,"https:\u002F\u002Fgithub.com\u002Fjishengpeng",[83],{"name":84,"color":85,"percentage":86},"Python","#3572A5",100,1285,111,"2026-04-16T13:04:16","MIT","未说明","未说明 (代码示例默认使用 CPU，但作为深度学习音频模型，训练或高性能推理通常建议配备 NVIDIA GPU)",{"notes":94,"python":95,"dependencies":96},"1. 建议使用 conda 创建名为 'wavtokenizer' 的虚拟环境。2. 模型输入音频需重采样至 24kHz 并转换为单声道。3. 提供多种预训练模型（small\u002Fmedium\u002Flarge），分别针对语音或通用音频（含音乐），令牌率有 40 tokens\u002Fs 和 75 tokens\u002Fs 两种规格。4. 训练部分依赖 PyTorch Lightning 框架。5. 具体依赖版本需参考项目中的 requirements.txt 文件，README 中未列出确切版本号。","3.9",[97,98,99,100],"torch","torchaudio","pytorch-lightning","yaml",[55,15],[103,104,105,106,107,108,109,110,111,112,113,114],"acoustic","audio-representation","codec","gpt4o","music-representation-learning","semantic","speech-representation","text-to-speech","speech-language-model","dac","encodec","soundstream","2026-03-27T02:49:30.150509","2026-04-18T09:19:19.585601",[118,123,128,133,138,143],{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},38872,"LibriTTS 数据集的验证集是如何划分的？训练时使用了哪些数据拆分？","验证集通常是从训练集中按比例划分生成的，而非直接使用原始数据中的 `test-clean` 拆分。关于训练数据，模型是在所有 3 个训练拆分（training splits）上进行训练的，而不是仅使用子集。","https:\u002F\u002Fgithub.com\u002Fjishengpeng\u002FWavTokenizer\u002Fissues\u002F62",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},38873,"是否建议扩大码本空间或使用更先进的量化策略（如 SimVQ）？损失系数衰减对训练有何影响？","扩大码本空间和采用更先进的向量量化策略（如 SimVQ）确实可以在 WavTokenizer 框架上进一步提升性能。但由于项目旨在平衡重建和生成任务，不建议过度扩大码本空间。关于损失权重衰减，目前的设计和使用衰减方法都是合理的。在某些稳定版本中，显著增加配置文件中 mel_loss 的权重（例如从 45 增加）也是一种有效的调整手段。此外，目前尚未对膨胀率（dilation）参数进行专门调优。","https:\u002F\u002Fgithub.com\u002Fjishengpeng\u002FWavTokenizer\u002Fissues\u002F74",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},38874,"配置项 `pretrain_mel_steps` 设为 0（即从一开始就使用 GAN 目标）对训练稳定性重要吗？混合数据（音乐 + 语音 + 音频）训练需要不同的配置文件吗？","`pretrain_mel_steps` 设置为 0 并不是非常关键，对训练稳定性的影响不大。对于混合数据（音乐 + 语音 + 音频）的训练，使用的配置文件与仅使用语音数据的配置文件是相同的，无需特殊更改。","https:\u002F\u002Fgithub.com\u002Fjishengpeng\u002FWavTokenizer\u002Fissues\u002F73",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},38875,"在 16kHz 采样率下训练时遇到张量形状不一致（shape inconsistent）的错误，如何解决？","该错误通常是因为下采样因子（downsampling factors）的乘积不能整除采样率。解决方法是调整下采样因子，使其乘积能整除采样率。例如，将 `downsamples` 改为 `[8, 5, 4, 2]`，此时 token 数量为 16000\u002F(8*5*4*2)=50。同时需要相应调整 hop_length 和 n_fft（例如 hop_length=320, n_fft=1280），以确保配置合理且形状匹配。核心原则是：下采样因子必须是采样率的约数。","https:\u002F\u002Fgithub.com\u002Fjishengpeng\u002FWavTokenizer\u002Fissues\u002F19",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},38876,"使用预训练模型进行编码和解码后，重建音频的开头或结尾出现异常声音（如点击声），原因是什么？","这是用户报告的一个已知现象，表现为重建音频的首尾出现原始音频中没有的异常声音或点击声。这种情况在使用预训练的小模型时可能不明显，但在针对特定说话人微调模型后可能会出现。目前社区正在讨论此问题，可能与边界处理或微调过程中的损失函数收敛特性有关。如果遇到此问题，建议对比原始预训练模型和微调模型的输出差异，并检查音频截断或填充策略。","https:\u002F\u002Fgithub.com\u002Fjishengpeng\u002FWavTokenizer\u002Fissues\u002F4",{"id":144,"question_zh":145,"answer_zh":146,"source_url":137},38877,"如何修改配置以支持自定义数据集的 16kHz 音频训练？","需要在配置文件中修改以下参数：将 `sampling_rate` 设为 16000，`num_samples` 设为对应的样本数（如 64000），并将模型部分的 `sample_rate` 也设为 16000。同时，特征提取器部分需指定 `encodec_model: encodec_16khz`。最关键的是要调整 `dowmsamples` 参数（注意原拼写为 dowmsamples），确保其乘积能整除 16000（例如 [8, 5, 4, 2]），以避免形状不匹配的错误。",[]]