[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-xiph--rnnoise":3,"tool-xiph--rnnoise":62},[4,18,26,36,46,54],{"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 真正成长为懂上",160411,2,"2026-04-18T23:33:24",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":77,"owner_twitter":77,"owner_website":78,"owner_url":79,"languages":80,"stars":99,"forks":100,"last_commit_at":101,"license":102,"difficulty_score":103,"env_os":104,"env_gpu":105,"env_ram":106,"env_deps":107,"category_tags":115,"github_topics":118,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":123,"updated_at":124,"faqs":125,"releases":155},9436,"xiph\u002Frnnoise","rnnoise","Recurrent neural network for audio noise reduction","RNNoise 是一款基于循环神经网络（RNN）的开源音频降噪库，专为实时全频段语音增强设计。它主要解决在嘈杂环境中录音或通话时背景噪音干扰清晰度的问题，能有效分离人声与各类环境噪声。\n\n该工具特别适合开发者集成到通信软件、会议系统或录音应用中，同时也为研究人员提供了复现和训练深度学习音频模型的完整流程。虽然 RNNoise 核心定位为代码库，但其提供的命令行示例也让具备一定技术基础的用户能直接处理原始音频文件。\n\n其独特亮点在于采用了混合数字信号处理（DSP）与深度学习的架构，既保留了传统算法的低延迟特性，又利用神经网络提升了降噪精度。项目支持 AVX2 等指令集加速，确保在普通硬件上也能流畅运行。此外，RNNoise 公开了详细的训练方法，允许用户利用自定义的语音和噪声数据集重新训练模型，以适应特定的应用场景，展现了极高的灵活性与可定制性。","RNNoise is a noise suppression library based on a recurrent neural network.\nA description of the algorithm is provided in the following paper:\n\nJ.-M. Valin, A Hybrid DSP\u002FDeep Learning Approach to Real-Time Full-Band Speech\nEnhancement, Proceedings of IEEE Multimedia Signal Processing (MMSP) Workshop,\narXiv:1709.08243, 2018.\nhttps:\u002F\u002Farxiv.org\u002Fpdf\u002F1709.08243.pdf\n\nAn interactive demo of version 0.1 is available at: https:\u002F\u002Fjmvalin.ca\u002Fdemo\u002Frnnoise\u002F\n\nTo compile, just type:\n% .\u002Fautogen.sh\n% .\u002Fconfigure\n% make\n\nOptionally:\n% make install\n\nIt is recommended to either set -march= in the CFLAGS to an architecture\nwith AVX2 support or to add --enable-x86-rtcd to the configure script\nso that AVX2 (or SSE4.1) can at least be used as an option.\nNote that the autogen.sh script will automatically download the model files\nfrom the Xiph.Org servers, since those are too large to put in Git.\n\nWhile it is meant to be used as a library, a simple command-line tool is\nprovided as an example. It operates on RAW 16-bit (machine endian) mono\nPCM files sampled at 48 kHz. It can be used as:\n\n% .\u002Fexamples\u002Frnnoise_demo \u003Cnoisy speech> \u003Coutput denoised>\n\nThe output is also a 16-bit raw PCM file.\nNOTE AGAIN, THE INPUT and OUTPUT ARE IN RAW FORMAT, NOT WAV.\n\nThe latest version of the source is available from\nhttps:\u002F\u002Fgitlab.xiph.org\u002Fxiph\u002Frnnoise .  The GitHub repository\nis a convenience copy.\n\n== Training ==\n\nThe models distributed with RNNoise are now trained using only the publicly\navailable datasets listed below and using the training precedure described\nhere. Exact results will still depend on the the exact mix of data used,\non how long the training is performed and on the various random seeds involved.\n\nTo train an RNNoise model, you need both clean speech data, and noise data.\nBoth need to be sampled at 48 kHz, in 16-bit PCM format (machine endian).\nClean speech data can be obtained from the datasets listed in the datasets.txt\nfile, or by downloaded the already-concatenation of those files in\nhttps:\u002F\u002Fmedia.xiph.org\u002Frnnoise\u002Fdata\u002Ftts_speech_48k.sw\nFor noise data, we suggest the background_noise.sw and foreground_noise.sw\n(or later versions) noise files from https:\u002F\u002Fmedia.xiph.org\u002Frnnoise\u002Fdata\u002F\nThe foreground_noise.sw file contains noise signals that are meant to be added\nto the background noise (e.g. keyboard sounds). Optionally, the foreground noise\nfile can even be denoised with a traditional denoiser (e.g. libspeexdsp) to\nkeep only the transient components. For background noise, the data from the\noriginal RNNoise noise collection have now been sufficiently filtered to\nprovide good results -- either alone or in combination with the\nbackground_noise.sw file. The dataset can be downloaded (updated Jan 30th 2025)\nfrom: https:\u002F\u002Fmedia.xiph.org\u002Frnnoise\u002Frnnoise_contributions.tar.gz\n\nThe first step is to take the speech and noise, and mix them in a variety of\nways to simulate real life conditions (including pauses, filtering and more).\nAssuming the files are called speech.pcm and noise.pcm, start by generating\nthe training feature data with:\n\n% .\u002Fdump_features speech.pcm background_noise.pcm foreground_noise.pcm features.f32 \u003Ccount>\nwhere \u003Ccount> is the number of sequences to process. The number of sequences\nshould be at least 10000, but the more the better (200000 or more is\nrecommended).\n\nOptionally, training can also simulate reverberation, in which case room impulse\nresponses (RIR) are also needed. Limited RIR data is available at:\nhttps:\u002F\u002Fmedia.xiph.org\u002Frnnoise\u002Fdata\u002Fmeasured_rirs-v2.tar.gz\nThe format for those is raw 32-bit floating-point (files are little endian).\nAssuming a list of all the RIR files is contained in a rir_list.txt file,\nthe training feature data can be generated with:\n\n% .\u002Fdump_features -rir_list rir_list.txt speech.pcm background_noise.pcm foreground_noise.pcm features.f32 \u003Ccount>\n\nTo make the feature generation faster, you can use the script provided in\nscript\u002Fdump_features_parallel.sh (you will need to modify the script if you\nwant to add RIR augmentation).\n\nTo use it:\n% script\u002Fdump_features_parallel.sh .\u002Fdump_features speech.pcm background_noise.pcm foreground_noise.pcm features.f32 \u003Ccount> rir_list.txt\nwhich will run nb_processes processes, each for count sequences, and\nconcatenate the output to a single file.\n\nOnce the feature file is computed, you can start the training with:\n% python3 train_rnnoise.py features.f32 output_directory\n\nChoose a number of epochs (using --epochs) that leads to about 75000 weight\nupdates. The training will produce .pth files, e.g. rnnoise_50.pth .\nThe next step is to convert the model to C files using:\n\n% python3 dump_rnnoise_weights.py --quantize rnnoise_50.pth rnnoise_c\n\nwhich will produce the rnnoise_data.c and rnnoise_data.h files in the\nrnnoise_c directory.\n\nCopy these files to src\u002F and then build RNNoise using the instructions above.\n\nFor slightly better results, a trained model can be used to remove any noise\nfrom the \"clean\" training speech, before restaring the denoising process\nagain (no need to do that more than once).\n\n== Loadable Models ==\n\nThe model format has changed since v0.1.1. Models now use a binary\n\"machine endian\" format. To output a model in that format, build RNNoise\nwith that model and use the dump_weights_blob executable to output a\nweights_blob.bin binary file. That file can then be used with the\nrnnoise_model_from_file() API call. Note that the model object MUST NOT\nbe deleted while the RNNoise state is active and the file MUST NOT\nbe closed.\n\nTo avoid including the default model in the build (e.g. to reduce download\nsize) and rely only on model loading, add -DUSE_WEIGHTS_FILE to the CFLAGS.\nTo be able to load different models, the model size (and header file) needs\nto patch the size use during build. Otherwise the model will not load\nWe provide a \"little\" model with half as an alternative. To use the smaller\nmodel, rename rnnoise_data_little.c to rnnoise_data.c. It is possible\nto build both the regular and little binary weights and load any of them\nat run time since the little model has the same size as the regular one\n(except for the increased sparsity).\n","RNNoise 是一个基于循环神经网络的噪声抑制库。\n该算法的详细描述见以下论文：\n\nJ.-M. Valin, 一种混合 DSP\u002F深度学习方法用于实时全频带语音增强，IEEE 多媒体信号处理 (MMSP) 研讨会论文集，arXiv:1709.08243，2018 年。\nhttps:\u002F\u002Farxiv.org\u002Fpdf\u002F1709.08243.pdf\n\n版本 0.1 的交互式演示可在以下网址查看：https:\u002F\u002Fjmvalin.ca\u002Fdemo\u002Frnnoise\u002F\n\n编译时，只需执行：\n% .\u002Fautogen.sh\n% .\u002Fconfigure\n% make\n\n可选步骤：\n% make install\n\n建议在 CFLAGS 中设置 -march= 参数，指定支持 AVX2 指令集的架构，或者在 configure 脚本中添加 --enable-x86-rtcd 选项，以便至少可以将 AVX2（或 SSE4.1）作为可选优化启用。\n请注意，autogen.sh 脚本会自动从 Xiph.Org 服务器下载模型文件，因为这些文件体积过大，不适合放入 Git 仓库。\n\n尽管 RNNoise 主要作为一个库来使用，但也提供了一个简单的命令行工具作为示例。该工具处理采样率为 48 kHz、16 位机器字节序的单声道 PCM 原始文件。使用方法如下：\n\n% .\u002Fexamples\u002Frnnoise_demo \u003C含噪语音> \u003C去噪后输出>\n\n输出同样是 16 位原始 PCM 文件。\n再次强调，输入和输出均为原始格式，而非 WAV 格式。\n\n最新版本的源代码可在以下地址获取：\nhttps:\u002F\u002Fgitlab.xiph.org\u002Fxiph\u002Frnnoise 。GitHub 仓库仅为方便起见而设立的镜像。\n\n== 训练 ==\n\n目前随 RNNoise 发布的模型仅使用以下公开数据集，并按照此处描述的训练流程进行训练。具体的训练效果仍将取决于所使用的数据组合、训练时长以及随机种子等因素。\n\n要训练 RNNoise 模型，需要同时准备干净的语音数据和噪声数据。两者均需以 48 kHz 采样率、16 位 PCM 格式（机器字节序）存储。干净的语音数据可以从 datasets.txt 文件中列出的数据集中获取，也可以直接下载已合并好的文件：https:\u002F\u002Fmedia.xiph.org\u002Frnnoise\u002Fdata\u002Ftts_speech_48k.sw。对于噪声数据，我们推荐使用 https:\u002F\u002Fmedia.xiph.org\u002Frnnoise\u002Fdata\u002F 下载的 background_noise.sw 和 foreground_noise.sw（或更新版本）。foreground_noise.sw 文件包含旨在叠加到背景噪声上的信号（例如键盘声）。可选地，还可以先用传统降噪器（如 libspeexdsp）对前景噪声进行预处理，仅保留瞬态成分。至于背景噪声，原始 RNNoise 噪声数据集经过充分过滤后，单独使用或与 background_noise.sw 结合使用，都能获得良好的效果。该数据集可于 2025 年 1 月 30 日更新后下载：https:\u002F\u002Fmedia.xiph.org\u002Frnnoise\u002Frnnoise_contributions.tar.gz。\n\n第一步是将语音和噪声以多种方式混合，以模拟真实场景（包括静音、滤波等）。假设语音文件名为 speech.pcm，噪声文件名为 noise.pcm，则可通过以下命令生成训练特征数据：\n\n% .\u002Fdump_features speech.pcm background_noise.pcm foreground_noise.pcm features.f32 \u003C数量>\n其中 \u003C数量> 表示要处理的序列数。序列数量应至少为 10,000，但越多越好（建议 200,000 或以上）。\n\n此外，训练过程中还可模拟混响效果，此时需要房间脉冲响应（RIR）数据。有限的 RIR 数据可在以下链接获取：https:\u002F\u002Fmedia.xiph.org\u002Frnnoise\u002Fdata\u002Fmeasured_rirs-v2.tar.gz。这些数据采用 32 位浮点格式（小端字节序）。若所有 RIR 文件的列表存储在 rir_list.txt 文件中，则可通过以下命令生成训练特征数据：\n\n% .\u002Fdump_features -rir_list rir_list.txt speech.pcm background_noise.pcm foreground_noise.pcm features.f32 \u003C数量>\n\n为加快特征生成速度，可使用 script\u002Fdump_features_parallel.sh 提供的并行脚本（若需加入 RIR 增强，则需对该脚本进行相应修改）。\n\n使用方法如下：\n% script\u002Fdump_features_parallel.sh .\u002Fdump_features speech.pcm background_noise.pcm foreground_noise.pcm features.f32 \u003C数量> rir_list.txt\n该脚本将启动 nb_processes 个进程，每个进程处理 count 个序列，并将结果合并到一个文件中。\n\n特征文件计算完成后，即可开始训练：\n% python3 train_rnnoise.py features.f32 output_directory\n\n请设置适当的 epoch 数量（通过 --epochs 参数），使权重更新次数达到约 75,000 次。训练完成后会生成 .pth 文件，例如 rnnoise_50.pth。\n\n下一步是将模型转换为 C 语言代码：\n\n% python3 dump_rnnoise_weights.py --quantize rnnoise_50.pth rnnoise_c\n\n这将生成 rnnoise_c 目录下的 rnnoise_data.c 和 rnnoise_data.h 文件。\n\n将这些文件复制到 src\u002F 目录下，然后按照上述说明构建 RNNoise。\n\n为了获得更好的效果，可以在重新开始降噪过程之前，先用训练好的模型去除“干净”训练语音中的任何残留噪声（无需重复此步骤）。\n\n== 可加载模型 ==\n\n自 v0.1.1 以来，模型格式已发生变化。现在模型采用二进制“机器字节序”格式。要输出这种格式的模型，需使用该模型构建 RNNoise，然后利用 dump_weights_blob 可执行文件导出 weights_blob.bin 二进制文件。随后，可通过 rnnoise_model_from_file() API 调用加载该模型。需要注意的是，在 RNNoise 状态处于活动时，不得删除模型对象，且不得关闭该文件。\n\n为避免在构建过程中包含默认模型（例如减小下载大小），而仅依赖模型加载功能，可在 CFLAGS 中添加 -DUSE_WEIGHTS_FILE 选项。为了能够加载不同模型，必须调整构建时使用的模型尺寸和头文件定义；否则模型将无法正确加载。我们还提供了一种尺寸减半的“小型”模型作为替代方案。要使用小型模型，只需将 rnnoise_data_little.c 重命名为 rnnoise_data.c。由于小型模型与常规模型具有相同的文件大小（仅稀疏度更高），因此可以同时构建常规和小型两种二进制权重，并在运行时根据需要加载任意一种。","# RNNoise 快速上手指南\n\nRNNoise 是一个基于循环神经网络（RNN）的噪声抑制库，专为实时全频段语音增强设计。它既可作为库集成到项目中，也提供简单的命令行工具用于处理原始音频文件。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**：Linux \u002F macOS \u002F Windows (需配合 WSL 或 MinGW)\n- **编译器**：支持 C99 标准的编译器 (GCC, Clang 等)\n- **构建工具**：`autoconf`, `automake`, `libtool`, `make`\n- **Python**：如需重新训练模型，需安装 Python 3 及 PyTorch 等相关依赖\n\n### 性能优化建议\n为了获得最佳性能，建议编译时启用 AVX2 或 SSE4.1 指令集优化：\n- 方法一：在 `CFLAGS` 中设置 `-march=native` 或指定具体架构（如 `-march=haswell`）。\n- 方法二：在配置脚本中添加 `--enable-x86-rtcd` 参数。\n\n> **注意**：首次运行构建脚本时，会自动从 Xiph.Org 服务器下载模型文件（因文件过大未存入 Git）。国内用户若下载缓慢，可尝试配置网络代理。\n\n## 安装步骤\n\n1. **获取源码**\n   从官方 GitLab 仓库克隆最新代码（GitHub 为镜像副本）：\n   ```bash\n   git clone https:\u002F\u002Fgitlab.xiph.org\u002Fxiph\u002Frnnoise.git\n   cd rnnoise\n   ```\n\n2. **编译构建**\n   执行以下命令生成构建系统并编译：\n   ```bash\n   .\u002Fautogen.sh\n   .\u002Fconfigure --enable-x86-rtcd\n   make\n   ```\n   *(可选) 安装到系统目录：*\n   ```bash\n   sudo make install\n   ```\n\n   > **提示**：`.\u002Fautogen.sh` 会自动下载默认的模型文件。如果希望减小构建体积仅使用外部加载模型，可在 `CFLAGS` 中添加 `-DUSE_WEIGHTS_FILE`。\n\n## 基本使用\n\nRNNoise 自带的命令行示例工具专门用于处理 **RAW 格式** 的音频文件。\n\n### 输入输出格式要求\n- **格式**：RAW PCM (非 WAV 头)\n- **位深**：16-bit\n- **字节序**：机器原生字节序 (Machine Endian)\n- **声道**：单声道 (Mono)\n- **采样率**：48 kHz\n\n### 运行示例\n假设你有一个名为 `noisy_speech.pcm` 的噪声语音文件，执行以下命令生成去噪后的文件：\n\n```bash\n.\u002Fexamples\u002Frnnoise_demo noisy_speech.pcm denoised_output.pcm\n```\n\n- `noisy_speech.pcm`：输入的含噪语音文件。\n- `denoised_output.pcm`：输出的去噪语音文件（同样为 16-bit RAW PCM 格式）。\n\n> **重要提醒**：输入和输出文件必须是纯 RAW 数据，**不能**包含 WAV 文件头。如果手头是 WAV 文件，请先使用 `ffmpeg` 或其他工具转换为符合上述规格的 RAW 文件：\n> ```bash\n> ffmpeg -i input.wav -f s16le -acodec pcm_s16le -ar 48000 -ac 1 output.pcm\n> ```","一位远程办公的客服代表需要在嘈杂的开放式办公室中，通过 VoIP 系统与客户进行清晰的语音沟通。\n\n### 没有 rnnoise 时\n- 背景中的键盘敲击声、同事交谈声和空调噪音被麦克风完整收录，严重干扰通话质量。\n- 传统降噪算法往往采用固定阈值，容易误切人声高频部分，导致语音听起来沉闷或带有机械失真。\n- 客户因听不清关键信息而频繁要求重复，不仅降低了沟通效率，还影响了服务专业度评分。\n- 后期若需对录音进行质检或语音转文字（ASR），高噪环境会导致识别准确率大幅下降，增加人工复核成本。\n\n### 使用 rnnoise 后\n- rnnoise 基于循环神经网络（RNN）实时分离人声与噪声，有效滤除键盘声和环境杂音，仅保留清晰的人声。\n- 得益于深度学习模型对人声特征的精准理解，rnnoise 在降噪的同时完美保留了语音的自然度和高频细节，无明显伪影。\n- 客户能清晰听到每一个字，沟通流畅度显著提升，一次性解决率（FCR）随之提高，改善了用户体验。\n- 纯净的音频流使得后续的自动语音识别系统准确率大幅提升，质检流程自动化成为可能，减少了人工干预。\n\nrnnoise 通过将先进的深度学习算法嵌入实时音频流，以极低的计算成本实现了广播级的人声增强效果。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxiph_rnnoise_15808e1a.png","xiph","Xiph.Org Foundation","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fxiph_4553f86a.png","We develop free and open media codecs",null,"https:\u002F\u002Fxiph.org\u002F","https:\u002F\u002Fgithub.com\u002Fxiph",[81,85,89,92,96],{"name":82,"color":83,"percentage":84},"C","#555555",69.7,{"name":86,"color":87,"percentage":88},"Python","#3572A5",24.1,{"name":90,"color":77,"percentage":91},"M4",3.9,{"name":93,"color":94,"percentage":95},"Makefile","#427819",1.3,{"name":97,"color":98,"percentage":42},"Shell","#89e051",5512,1048,"2026-04-18T16:44:01","BSD-3-Clause",4,"Linux, macOS","不需要 GPU。训练和推理均基于 CPU 运行，编译时建议使用支持 AVX2 或 SSE4.1 指令集的 CPU 以优化性能。","未说明（训练过程需处理大量音频序列，建议根据数据量配置充足内存）",{"notes":108,"python":109,"dependencies":110},"1. 编译时建议设置 CFLAGS 包含 -march= 对应支持 AVX2 的架构，或在 configure 时添加 --enable-x86-rtcd 以启用 SIMD 加速。\n2. 首次运行 autogen.sh 脚本会自动从 Xiph.Org 服务器下载模型文件（因文件过大未放入 Git）。\n3. 命令行工具仅支持原始格式（RAW）的 16 位、48kHz 单声道 PCM 文件，不支持 WAV 格式。\n4. 若需重新训练模型，需准备 48kHz 采样率的纯净语音和噪声数据；可选支持房间脉冲响应（RIR）数据进行混响模拟训练。\n5. 支持加载外部二进制模型文件，若需减小编译体积可定义 -DUSE_WEIGHTS_FILE 宏排除默认模型。","3.x (README 中命令示例为 python3)",[111,112,113,114],"autotools (autoconf, automake, libtool)","C 编译器 (gcc\u002Fclang)","numpy (隐含，用于 Python 训练脚本)","torch (隐含，用于生成 .pth 模型文件)",[45,16,15,13,35,116,117,14],"音频","其他",[119,120,121,122],"rnn","noise-reduction","audio","c","2026-03-27T02:49:30.150509","2026-04-19T09:17:44.737696",[126,131,136,141,146,151],{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},42344,"为什么 RNNoise 处理后输出音频与输入完全一样，没有任何降噪效果？","这是因为输入数据的数值范围不正确。RNNoise 期望输入的 float 样本值范围对应于有符号 16 位整数（即 -32768 到 32767）。如果你传入的是归一化的 float 数据（范围在 -1.0 到 1.0 之间），RNNoise 会将其误判为静音，从而保持所有增益开启，导致输出等于输入。\n\n解决方案：在调用 `rnnoise_process_frame` 之前，将你的 float 样本乘以 32768.0f。例如：`data_to_proc = f32_sample * 32768.0f`。不要先转换为 short int 再转回 float，直接缩放即可。","https:\u002F\u002Fgithub.com\u002Fxiph\u002Frnnoise\u002Fissues\u002F184",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},42345,"如何在 Windows 上编译或运行 RNNoise？","Windows 用户需要注意文件 I\u002FO 模式问题。在 `rnnoise_demo.c` 中未指定二进制模式可能导致问题（已在相关 PR #130 中解决）。\n\n此外，确保正确处理数据类型：传递给 `rnnoise_process_frame()` 的参数虽然是以 float 数组形式接收，但其数值应代表 S16 格式的 PCM 数据（范围 -32768 到 32767），而不是标准的 -1.0 到 1.0 的浮点 PCM 数据。\n\n你可以参考社区维护的 Windows 版本实现，例如：https:\u002F\u002Fgithub.com\u002Fjagger2048\u002Frnnoise-windows","https:\u002F\u002Fgithub.com\u002Fxiph\u002Frnnoise\u002Fissues\u002F34",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},42346,"如何处理实时音频流（如麦克风输入）以避免声音失真或变成机器人音？","出现机器人音或无降噪效果通常是因为采样率设置错误。RNNoise 默认设计用于 48kHz 采样率。\n\n解决方案：\n1. 确保将 `sampling_rate` 设置为 `48000`。\n2. 检查代码中所有硬编码的 `16000` 引用，并将其更改为 `48000`（如果涉及帧大小计算等）。\n3. 确保输入数据格式正确（float 范围需映射到 -32768~32767，见其他 FAQ）。\n\n如果是 WebRTC 场景，确保在 AEC（回声消除）之后接入 RNNoise 模块。","https:\u002F\u002Fgithub.com\u002Fxiph\u002Frnnoise\u002Fissues\u002F46",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},42347,"如何在 MS-SNSD 数据集上重新训练 RNNoise 模型？","如果在 MS-SNSD 数据集上训练后模型无法有效去噪，可以参考以下步骤进行环境搭建和数据准备：\n\n1. **安装依赖**:\n   ```bash\n   sudo apt-get install autoconf\n   sudo apt-get install libtool\n   sudo apt install ffmpeg\n   ```\n\n2. **训练步骤**:\n   - 克隆包装器项目：`git clone https:\u002F\u002Fgithub.com\u002FDesklop\u002FRNNoise_Wrapper.git`\n   - 编译：`bash .\u002Fcompile_rnnoise.sh`\n   - 解压主程序包并放入数据。\n   - 安装 Python 依赖：`pip install -r req_train.txt`\n   - 准备数据集：\n     ```bash\n     python3 training_utils\u002Fprepare_dataset_for_training.py -cf datasets\u002Ftraining_set\u002Fclean\u002F -nf datasets\u002Ftraining_set\u002Fnoise\u002F -bca datasets\u002Ftraining_set\u002Fall_clean.raw -bna datasets\u002Ftraining_set\u002Fall_noise.raw\n     ```\n   - 生成训练二进制文件：\n     ```bash\n     rnnoise-master\u002Fsrc\u002Fdenoise_training datasets\u002Ftraining_set\u002Fall_clean.raw datasets\u002Ftraining_set\u002Fall_noise.raw 5000000 > train_logs\u002FMS_SNSD\u002Ftraining_5000k.f32\n     ```\n   - 转换为 HDF5 格式：\n     ```bash\n     python3 rnnoise-master\u002Ftraining\u002Fbin2hdf5.py train_logs\u002FMS_SNSD\u002Ftraining_5000k.f32 5000000 87 train_logs\u002FMS_SNSD\u002Ftraining_5000k.h5\n     ```\n   - 运行训练脚本：`python rnn_train_mod.py`","https:\u002F\u002Fgithub.com\u002Fxiph\u002Frnnoise\u002Fissues\u002F189",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},42348,"能否将 RNNoise 集成到 WebRTC 中以替代原有的噪声抑制模块？","可以集成，但需要注意处理顺序。直接在 WebRTC AEC3 之后替换原有 NS 模块可能会导致语音损坏。\n\n推荐的集成方式是：将 RNNoise 模块放置在 AEC（回声消除）模块之后进行处理。有用户反馈表明 \"put the rnn after aec, works\"（将 RNN 放在 AEC 之后是可行的）。\n\n建议参考现有的集成项目（如 janus-gateway 的相关 PR 或 werman\u002Fnoise-suppression-for-voice 项目）来了解具体的数据流对接方式。","https:\u002F\u002Fgithub.com\u002Fxiph\u002Frnnoise\u002Fissues\u002F143",{"id":152,"question_zh":153,"answer_zh":154,"source_url":135},42349,"在插件中处理实时麦克风流时，是否需要将 float32 样本转换为 short int？","不需要转换为 short int 类型。你应该直接将 float32 的 PCM 样本缩放到 RNNoise 所需的数据格式。\n\n具体做法是将 float 样本乘以 32768.0f：\n`data_to_proc = f32_sample * 32768.0f`\n\n直接进行类型转换（float 转 short 再转 float）往往会导致输出失真。保持 float 类型但调整数值范围即可。",[156],{"id":157,"version":158,"summary_zh":159,"released_at":160},334445,"v0.2","本次新版本带来了多项改进，包括训练性能的提升、SSE4.1和AVX2指令集优化，以及运行时CPU检测（RTCD）功能。\n\n目前，这些分布式模型仅使用公开可用的数据集进行训练。","2024-04-15T02:45:47"]