[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-csteinmetz1--auraloss":3,"tool-csteinmetz1--auraloss":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",160411,2,"2026-04-18T23:33:24",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},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",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":72,"owner_website":79,"owner_url":80,"languages":81,"stars":86,"forks":87,"last_commit_at":88,"license":89,"difficulty_score":90,"env_os":91,"env_gpu":92,"env_ram":91,"env_deps":93,"category_tags":99,"github_topics":101,"view_count":32,"oss_zip_url":105,"oss_zip_packed_at":105,"status":17,"created_at":106,"updated_at":107,"faqs":108,"releases":144},9504,"csteinmetz1\u002Fauraloss","auraloss","Collection of audio-focused loss functions in PyTorch","auraloss 是一个专为 PyTorch 打造的音频损失函数库，旨在解决深度学习模型在音频生成、修复或转换任务中“听起来不对”的难题。传统的通用损失函数往往难以捕捉人耳对声音的细腻感知，导致模型训练效果不佳，而 auraloss 提供了一系列针对音频特性优化的评估指标，帮助模型更精准地学习声音特征。\n\n这款工具非常适合从事音频算法开发的工程师、学术研究人员以及需要构建高质量音频模型的开发者使用。其核心亮点在于不仅涵盖了时域（如信噪比 SNR、误差信号比 ESR）的经典计算方法，更提供了强大的频域解决方案。特别是多分辨率短时傅里叶变换（Multi-resolution STFT）损失函数，能够同时捕捉声音的细节纹理与整体结构；此外，它还支持基于梅尔频谱的感知加权，让机器的评估标准更贴近人耳的真实听感。通过简单的几行代码，用户即可将这些专业级的损失函数集成到训练流程中，显著提升音频模型的输出质量。","\u003Cdiv  align=\"center\">\n\n# auraloss\n\n\u003Cimg width=\"200px\" src=\"docs\u002Fauraloss-logo.svg\">\n\nA collection of audio-focused loss functions in PyTorch. \n\n[[PDF](https:\u002F\u002Fwww.christiansteinmetz.com\u002Fs\u002FDMRN15__auraloss__Audio_focused_loss_functions_in_PyTorch.pdf)]\n\n\u003C\u002Fdiv>\n\n## Setup\n\n```\npip install auraloss\n```\n\nIf you want to use `MelSTFTLoss()` or `FIRFilter()` you will need to specify the extra install (librosa and scipy).\n\n```\npip install auraloss[all]\n```\n\n## Usage\n\n```python\nimport torch\nimport auraloss\n\nmrstft = auraloss.freq.MultiResolutionSTFTLoss()\n\ninput = torch.rand(8,1,44100)\ntarget = torch.rand(8,1,44100)\n\nloss = mrstft(input, target)\n```\n\n**NEW**: Perceptual weighting with mel scaled spectrograms.\n\n```python\n\nbs = 8\nchs = 1\nseq_len = 131072\nsample_rate = 44100\n\n# some audio you want to compare\ntarget = torch.rand(bs, chs, seq_len)\npred = torch.rand(bs, chs, seq_len)\n\n# define the loss function\nloss_fn = auraloss.freq.MultiResolutionSTFTLoss(\n    fft_sizes=[1024, 2048, 8192],\n    hop_sizes=[256, 512, 2048],\n    win_lengths=[1024, 2048, 8192],\n    scale=\"mel\",\n    n_bins=128,\n    sample_rate=sample_rate,\n    perceptual_weighting=True,\n)\n\n# compute\nloss = loss_fn(pred, target)\n\n```\n\n## Citation\nIf you use this code in your work please consider citing us.\n```bibtex\n@inproceedings{steinmetz2020auraloss,\n    title={auraloss: {A}udio focused loss functions in {PyTorch}},\n    author={Steinmetz, Christian J. and Reiss, Joshua D.},\n    booktitle={Digital Music Research Network One-day Workshop (DMRN+15)},\n    year={2020}\n}\n```\n\n\n# Loss functions\n\nWe categorize the loss functions as either time-domain or frequency-domain approaches. \nAdditionally, we include perceptual transforms.\n\n\u003Ctable>\n    \u003Ctr>\n        \u003Cth>Loss function\u003C\u002Fth>\n        \u003Cth>Interface\u003C\u002Fth>\n        \u003Cth>Reference\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd colspan=\"3\" align=\"center\">\u003Cb>Time domain\u003C\u002Fb>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>Error-to-signal ratio (ESR)\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.time.ESRLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F1911.08922>Wright & Välimäki, 2019\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>DC error (DC)\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.time.DCLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F1911.08922>Wright & Välimäki, 2019\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>Log hyperbolic cosine (Log-cosh)\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.time.LogCoshLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Fopenreview.net\u002Fforum?id=rkglvsC9Ym>Chen et al., 2019\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>Signal-to-noise ratio (SNR)\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.time.SNRLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>Scale-invariant signal-to-distortion \u003Cbr>  ratio (SI-SDR)\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.time.SISDRLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F1811.02508>Le Roux et al., 2018\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>Scale-dependent signal-to-distortion \u003Cbr>  ratio (SD-SDR)\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.time.SDSDRLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F1811.02508>Le Roux et al., 2018\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd colspan=\"3\" align=\"center\">\u003Cb>Frequency domain\u003C\u002Fb>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>Aggregate STFT\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.freq.STFTLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F1808.06719>Arik et al., 2018\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>Aggregate Mel-scaled STFT\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.freq.MelSTFTLoss(sample_rate)\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>Multi-resolution STFT\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.freq.MultiResolutionSTFTLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F1910.11480>Yamamoto et al., 2019*\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>Random-resolution STFT\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.freq.RandomResolutionSTFTLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Fwww.christiansteinmetz.com\u002Fs\u002FDMRN15__auraloss__Audio_focused_loss_functions_in_PyTorch.pdf>Steinmetz & Reiss, 2020\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>Sum and difference STFT loss\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.freq.SumAndDifferenceSTFTLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F2010.10291>Steinmetz et al., 2020\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd colspan=\"3\" align=\"center\">\u003Cb>Perceptual transforms\u003C\u002Fb>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>Sum and difference signal transform\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.perceptual.SumAndDifference()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=#>\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>FIR pre-emphasis filters\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.perceptual.FIRFilter()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F1911.08922>Wright & Välimäki, 2019\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\\* [Wang et al., 2019](https:\u002F\u002Farxiv.org\u002Fabs\u002F1904.12088) also propose a multi-resolution spectral loss (that [Engel et al., 2020](https:\u002F\u002Farxiv.org\u002Fabs\u002F2001.04643) follow), \nbut they do not include both the log magnitude (L1 distance) and spectral convergence terms, introduced in [Arik et al., 2018](https:\u002F\u002Farxiv.org\u002Fabs\u002F1808.0671), and then extended for the multi-resolution case in [Yamamoto et al., 2019](https:\u002F\u002Farxiv.org\u002Fabs\u002F1910.11480).\n\n## Examples\n\nCurrently we include an example using a set of the loss functions to train a TCN for modeling an analog dynamic range compressor. \nFor details please refer to the details in [`examples\u002Fcompressor`](examples\u002Fcompressor). \nWe provide pre-trained models, evaluation scripts to compute the metrics in the [paper](https:\u002F\u002Fwww.christiansteinmetz.com\u002Fs\u002FDMRN15__auraloss__Audio_focused_loss_functions_in_PyTorch.pdf), as well as scripts to retrain models. \n\nThere are some more advanced things you can do based upon the `STFTLoss` class. \nFor example, you can compute both linear and log scaled STFT errors as in [Engel et al., 2020](https:\u002F\u002Farxiv.org\u002Fabs\u002F2001.04643).\nIn this case we do not include the spectral convergence term. \n```python\nstft_loss = auraloss.freq.STFTLoss(\n    w_log_mag=1.0, \n    w_lin_mag=1.0, \n    w_sc=0.0,\n)\n```\n\nThere is also a Mel-scaled STFT loss, which has some special requirements. \nThis loss requires you set the sample rate as well as specify the correct device. \n```python\nsample_rate = 44100\nmelstft_loss = auraloss.freq.MelSTFTLoss(sample_rate, device=\"cuda\")\n```\n\nYou can also build a multi-resolution Mel-scaled STFT loss with 64 bins easily. \nMake sure you pass the correct device where the tensors you are comparing will be. \n```python\nloss_fn = auraloss.freq.MultiResolutionSTFTLoss(\n    scale=\"mel\", \n    n_bins=64,\n    sample_rate=sample_rate,\n    device=\"cuda\"\n)\n```\n\nIf you are computing a loss on stereo audio you may want to consider the sum and difference (mid\u002Fside) loss. \nBelow we have shown an example of using this loss function with the perceptual weighting and mel scaling for \nfurther perceptual relevance. \n\n```python\n\ntarget = torch.rand(8, 2, 44100)\npred = torch.rand(8, 2, 44100)\n\nloss_fn = auraloss.freq.SumAndDifferenceSTFTLoss(\n    fft_sizes=[1024, 2048, 8192],\n    hop_sizes=[256, 512, 2048],\n    win_lengths=[1024, 2048, 8192],\n    perceptual_weighting=True,\n    sample_rate=44100,\n    scale=\"mel\",\n    n_bins=128,\n)\n\nloss = loss_fn(pred, target)\n```\n\n# Development\n\nRun tests locally with pytest. \n\n```python -m pytest```\n","\u003Cdiv  align=\"center\">\n\n# auraloss\n\n\u003Cimg width=\"200px\" src=\"docs\u002Fauraloss-logo.svg\">\n\n一个基于 PyTorch 的音频专用损失函数库。\n\n[[PDF](https:\u002F\u002Fwww.christiansteinmetz.com\u002Fs\u002FDMRN15__auraloss__Audio_focused_loss_functions_in_PyTorch.pdf)]\n\n\u003C\u002Fdiv>\n\n## 安装\n\n```\npip install auraloss\n```\n\n如果您想使用 `MelSTFTLoss()` 或 `FIRFilter()`，则需要安装额外的依赖项（librosa 和 scipy）。\n\n```\npip install auraloss[all]\n```\n\n## 使用方法\n\n```python\nimport torch\nimport auraloss\n\nmrstft = auraloss.freq.MultiResolutionSTFTLoss()\n\ninput = torch.rand(8,1,44100)\ntarget = torch.rand(8,1,44100)\n\nloss = mrstft(input, target)\n```\n\n**新增**：基于梅尔尺度谱图的感知加权功能。\n\n```python\n\nbs = 8\nchs = 1\nseq_len = 131072\nsample_rate = 44100\n\n# 您想要比较的一些音频数据\ntarget = torch.rand(bs, chs, seq_len)\npred = torch.rand(bs, chs, seq_len)\n\n# 定义损失函数\nloss_fn = auraloss.freq.MultiResolutionSTFTLoss(\n    fft_sizes=[1024, 2048, 8192],\n    hop_sizes=[256, 512, 2048],\n    win_lengths=[1024, 2048, 8192],\n    scale=\"mel\",\n    n_bins=128,\n    sample_rate=sample_rate,\n    perceptual_weighting=True,\n)\n\n# 计算损失\nloss = loss_fn(pred, target)\n\n```\n\n## 引用\n如果您在工作中使用了本代码，请考虑引用我们。\n```bibtex\n@inproceedings{steinmetz2020auraloss,\n    title={auraloss: {A}udio focused loss functions in {PyTorch}},\n    author={Steinmetz, Christian J. and Reiss, Joshua D.},\n    booktitle={Digital Music Research Network One-day Workshop (DMRN+15)},\n    year={2020}\n}\n```\n\n\n# 损失函数\n\n我们将损失函数分为时域和频域两类。此外，还包含了感知变换相关的损失函数。\n\n\u003Ctable>\n    \u003Ctr>\n        \u003Cth>损失函数\u003C\u002Fth>\n        \u003Cth>接口\u003C\u002Fth>\n        \u003Cth>参考文献\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd colspan=\"3\" align=\"center\">\u003Cb>时域\u003C\u002Fb>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>误差与信号比（ESR）\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.time.ESRLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F1911.08922>Wright & Välimäki, 2019\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>直流误差（DC）\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.time.DCLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F1911.08922>Wright & Välimäki, 2019\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>双曲余弦对数（Log-cosh）\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.time.LogCoshLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Fopenreview.net\u002Fforum?id=rkglvsC9Ym>Chen et al., 2019\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>信噪比（SNR）\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.time.SNRLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>尺度不变信干比（SI-SDR）\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.time.SISDRLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F1811.02508>Le Roux et al., 2018\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>尺度相关信干比（SD-SDR）\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.time.SDSDRLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F1811.02508>Le Roux et al., 2018\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd colspan=\"3\" align=\"center\">\u003Cb>频域\u003C\u002Fb>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>聚合 STFT\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.freq.STFTLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F1808.06719>Arik et al., 2018\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>聚合梅尔尺度 STFT\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.freq.MelSTFTLoss(sample_rate)\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>多分辨率 STFT\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.freq.MultiResolutionSTFTLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F1910.11480>Yamamoto et al., 2019*\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>随机分辨率 STFT\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.freq.RandomResolutionSTFTLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Fwww.christiansteinmetz.com\u002Fs\u002FDMRN15__auraloss__Audio_focused_loss_functions_in_PyTorch.pdf>Steinmetz & Reiss, 2020\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>和差 STFT 损失\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.freq.SumAndDifferenceSTFTLoss()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F2010.10291>Steinmetz et al., 2020\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd colspan=\"3\" align=\"center\">\u003Cb>感知变换\u003C\u002Fb>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>和差信号变换\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.perceptual.SumAndDifference()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=#>\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>FIR 预加重滤波器\u003C\u002Ftd>\n        \u003Ctd>\u003Ccode>auraloss.perceptual.FIRFilter()\u003C\u002Fcode>\u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=https:\u002F\u002Farxiv.org\u002Fabs\u002F1911.08922>Wright & Välimäki, 2019\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\\* [Wang 等人，2019 年](https:\u002F\u002Farxiv.org\u002Fabs\u002F1904.12088)也提出了一种多分辨率频谱损失（该方法被 [Engel 等人，2020 年](https:\u002F\u002Farxiv.org\u002Fabs\u002F2001.04643)沿用），但他们并未包含由 [Arik 等人，2018 年](https:\u002F\u002Farxiv.org\u002Fabs\u002F1808.0671)首次提出的对数幅度（L1 距离）和频谱收敛项，而这些内容后来在 [Yamamoto 等人，2019 年](https:\u002F\u002Farxiv.org\u002Fabs\u002F1910.11480)的多分辨率版本中得到了扩展。\n\n## 示例\n\n目前我们提供了一个使用一组损失函数来训练 TCN 模型以模拟模拟动态范围压缩器的示例。\n有关详细信息，请参阅 [`examples\u002Fcompressor`](examples\u002Fcompressor) 中的说明。\n\n我们提供了预训练模型、用于计算论文中指标的评估脚本（论文链接：[DMRN15__auraloss__Audio_focused_loss_functions_in_PyTorch.pdf](https:\u002F\u002Fwww.christiansteinmetz.com\u002Fs\u002FDMRN15__auraloss__Audio_focused_loss_functions_in_PyTorch.pdf)），以及用于重新训练模型的脚本。\n\n基于 `STFTLoss` 类，您还可以进行一些更高级的操作。例如，您可以像 [Engel 等人, 2020](https:\u002F\u002Farxiv.org\u002Fabs\u002F2001.04643) 那样同时计算线性和对数尺度的 STFT 误差。在这种情况下，我们不包含频谱收敛项：\n\n```python\nstft_loss = auraloss.freq.STFTLoss(\n    w_log_mag=1.0, \n    w_lin_mag=1.0, \n    w_sc=0.0,\n)\n```\n\n此外，还有一种梅尔尺度的 STFT 损失，它有一些特殊的要求。这种损失需要您设置采样率，并指定正确的设备：\n\n```python\nsample_rate = 44100\nmelstft_loss = auraloss.freq.MelSTFTLoss(sample_rate, device=\"cuda\")\n```\n\n您也可以轻松构建一个具有 64 个频带的多分辨率梅尔尺度 STFT 损失。请确保将要比较的张量放置在正确的设备上：\n\n```python\nloss_fn = auraloss.freq.MultiResolutionSTFTLoss(\n    scale=\"mel\", \n    n_bins=64,\n    sample_rate=sample_rate,\n    device=\"cuda\"\n)\n```\n\n如果您正在处理立体声音频的损失计算，可以考虑使用和差（中\u002F侧）损失。下面展示了如何结合感知加权和梅尔尺度来进一步提升感知相关性：\n\n```python\ntarget = torch.rand(8, 2, 44100)\npred = torch.rand(8, 2, 44100)\n\nloss_fn = auraloss.freq.SumAndDifferenceSTFTLoss(\n    fft_sizes=[1024, 2048, 8192],\n    hop_sizes=[256, 512, 2048],\n    win_lengths=[1024, 2048, 8192],\n    perceptual_weighting=True,\n    sample_rate=44100,\n    scale=\"mel\",\n    n_bins=128,\n)\n\nloss = loss_fn(pred, target)\n```\n\n# 开发\n\n您可以在本地使用 pytest 运行测试：\n\n```python -m pytest```","# auraloss 快速上手指南\n\n`auraloss` 是一个基于 PyTorch 的音频专用损失函数集合，广泛应用于音频生成、语音合成及音乐处理任务中。它提供了时域、频域及感知变换等多种损失计算方式。\n\n## 环境准备\n\n- **操作系统**：Linux, macOS, Windows\n- **Python 版本**：建议 Python 3.7+\n- **核心依赖**：\n  - `torch` (PyTorch)\n- **可选依赖**（若需使用 `MelSTFTLoss` 或 `FIRFilter`）：\n  - `librosa`\n  - `scipy`\n\n## 安装步骤\n\n### 基础安装\n仅安装核心功能（时域和部分频域损失函数）：\n\n```bash\npip install auraloss\n```\n\n> **国内加速建议**：如遇下载缓慢，可使用清华或阿里镜像源：\n> ```bash\n> pip install auraloss -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n### 完整安装\n若需使用梅尔频谱（Mel-scaled）相关功能或 FIR 滤波器，请安装包含额外依赖的版本：\n\n```bash\npip install auraloss[all]\n```\n\n> **国内加速建议**：\n> ```bash\n> pip install \"auraloss[all]\" -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 基本使用\n\n以下示例演示如何导入库并使用最常用的 **多分辨率短时傅里叶变换损失 (MultiResolutionSTFTLoss)** 来计算预测音频与目标音频之间的差异。\n\n```python\nimport torch\nimport auraloss\n\n# 初始化损失函数\nmrstft = auraloss.freq.MultiResolutionSTFTLoss()\n\n# 创建模拟输入数据 (Batch=8, Channel=1, Length=44100)\ninput = torch.rand(8, 1, 44100)\ntarget = torch.rand(8, 1, 44100)\n\n# 计算损失值\nloss = mrstft(input, target)\n\nprint(f\"Loss value: {loss.item()}\")\n```\n\n### 进阶：带感知加权的梅尔频谱损失\n如果需要更符合人耳听觉特性的损失计算（支持梅尔刻度及感知加权），可按以下方式配置：\n\n```python\nbs = 8\nchs = 1\nseq_len = 131072\nsample_rate = 44100\n\n# 模拟音频数据\ntarget = torch.rand(bs, chs, seq_len)\npred = torch.rand(bs, chs, seq_len)\n\n# 定义带有感知加权和梅尔刻度的多分辨率损失函数\nloss_fn = auraloss.freq.MultiResolutionSTFTLoss(\n    fft_sizes=[1024, 2048, 8192],\n    hop_sizes=[256, 512, 2048],\n    win_lengths=[1024, 2048, 8192],\n    scale=\"mel\",\n    n_bins=128,\n    sample_rate=sample_rate,\n    perceptual_weighting=True,\n)\n\n# 计算损失\nloss = loss_fn(pred, target)\n```","某音频算法团队正在开发一款基于深度学习的实时人声增强模型，旨在去除录音中的背景噪音并保留人声细节。\n\n### 没有 auraloss 时\n- 仅依赖传统的均方误差（MSE）作为损失函数，导致生成的音频虽然数值误差小，但听感上依然模糊、缺乏高频细节。\n- 难以平衡时域波形对齐与频域频谱特征，模型往往顾此失彼，要么波形相位错乱，要么音色失真严重。\n- 需要手动编写复杂的短时傅里叶变换（STFT）和多分辨率分析代码，不仅开发效率低，还极易引入数学实现错误。\n- 缺乏针对人耳听觉特性的感知加权机制，优化方向与人类主观听感不一致，导致模型收敛缓慢且效果不佳。\n\n### 使用 auraloss 后\n- 直接调用 `MultiResolutionSTFTLoss`，通过多分辨率频谱约束，显著提升了生成音频的清晰度和自然度，高频细节丰富。\n- 利用内置的时域（如 SISDR）与频域损失组合，轻松实现波形与频谱的双重优化，确保相位准确且音色保真。\n- 无需重复造轮子，几行代码即可集成经过学术界验证的专业音频损失函数，将原本数天的算法调试时间缩短至几小时。\n- 开启 `perceptual_weighting` 参数并配合梅尔刻度谱，使模型优化目标更贴近人耳听觉特性，大幅加速收敛并提升主观听感评分。\n\nauraloss 通过将专业的音频信号处理知识封装为易用的 PyTorch 模块，让开发者能专注于模型架构创新，而非底层数学实现的繁琐细节。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcsteinmetz1_auraloss_ff1ccc2b.png","csteinmetz1","Christian J. Steinmetz","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fcsteinmetz1_f8c52a95.jpg","AI for music. Research Scientist @ Suno","@suno-ai","Cambridge, MA","c.j.steinmetz@qmul.ac.uk","christiansteinmetz.com","https:\u002F\u002Fgithub.com\u002Fcsteinmetz1",[82],{"name":83,"color":84,"percentage":85},"Python","#3572A5",100,860,77,"2026-04-14T20:22:56","Apache-2.0",1,"未说明","非必需。支持 CPU 运行；若使用 GPU 加速，需指定 device 参数（如 'cuda'），具体型号、显存及 CUDA 版本未说明。",{"notes":94,"python":91,"dependencies":95},"核心依赖为 PyTorch。若需使用 Mel 频谱相关损失函数（MelSTFTLoss）或 FIR 滤波器，需安装额外依赖 librosa 和 scipy（可通过 pip install auraloss[all] 一键安装）。在使用 Mel 缩放功能时，必须明确指定采样率（sample_rate）和张量所在的设备（device，如 'cpu' 或 'cuda'）。",[96,97,98],"torch","librosa (可选，用于 MelSTFTLoss)","scipy (可选，用于 FIRFilter)",[14,100],"音频",[102,103,104],"loss-functions","pytorch","audio",null,"2026-03-27T02:49:30.150509","2026-04-19T15:38:51.495996",[109,114,119,124,129,134,139],{"id":110,"question_zh":111,"answer_zh":112,"source_url":113},42639,"Librosa 作为严格依赖项导致安装困难或版本冲突怎么办？","该问题已通过将 librosa 设为可选依赖解决。您可以尝试从特定分支安装以获取修复版本，命令如下：\npip3.8 install --upgrade git+https:\u002F\u002Fgithub.com\u002Fcsteinmetz1\u002Fauraloss.git@librosa\n如果问题仍然存在，建议检查是否已合并到主分支的最新版本。","https:\u002F\u002Fgithub.com\u002Fcsteinmetz1\u002Fauraloss\u002Fissues\u002F36",{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},42640,"运行压缩器示例时出现 'NameError: name 'kwargs' is not defined' 错误如何解决？","这是一个代码缺陷，已在主分支通过 PR #31 修复。如果您使用的是旧版本，可以手动修补代码，移除相关函数中未定义的 `**kwargs` 参数。建议升级到最新版本以避免此问题。","https:\u002F\u002Fgithub.com\u002Fcsteinmetz1\u002Fauraloss\u002Fissues\u002F30",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},42641,"MultiResolutionSTFTLoss 初始化时传递 'device' 参数报错怎么办？","该问题已在 v0.2.1 版本中修复。请确保您已升级到最新版本的 auraloss：\npip install --upgrade auraloss\n升级后，您可以在初始化时正常传递 device 参数，例如：\nself.loss = auraloss.freq.MultiResolutionSTFTLoss(fft_sizes=[...], device=self.device)","https:\u002F\u002Fgithub.com\u002Fcsteinmetz1\u002Fauraloss\u002Fissues\u002F20",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},42642,"如何在源分离任务中将 SISDR 损失与 PIT（排列不变训练）结合使用？","Auraloss 本身不直接支持 PIT，但您可以结合 Asteroid 库中的 PIT 包装器使用。具体做法是使用 auraloss 的损失函数，并将其包裹在 Asteroid 的 PITWrapper 中（参考：https:\u002F\u002Fgithub.com\u002Fasteroid-team\u002Fpytorch-pit\u002Fblob\u002Fmaster\u002Ftorch_pit\u002Fpit_wrapper.py）。","https:\u002F\u002Fgithub.com\u002Fcsteinmetz1\u002Fauraloss\u002Fissues\u002F28",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},42643,"训练初期 SI-SDR 损失出现 NaN 导致模型崩溃怎么办？","这通常是因为网络初始预测效果极差导致的数值不稳定。维护者建议确保使用最新的 GitHub 版本，其中包含了对数值稳定性的改进。此外，建议在计算损失前对输入数据进行适当的归一化或裁剪，避免极端值引发 NaN。","https:\u002F\u002Fgithub.com\u002Fcsteinmetz1\u002Fauraloss\u002Fissues\u002F25",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},42644,"SNR 和 SISNR 损失值为负数是否正常？如何与其他损失（如 L1 或多分辨率 STFT）组合使用？","是的，SNR 和 SISNR 损失值为负数是正常的，因为它们基于对数比率。要将它们与其他损失组合，可以分别计算各损失值后求和，并可考虑添加权重。示例代码如下：\n# 创建损失对象\nsnr = auraloss.time.SNRLoss()\nmrstft = auraloss.freq.MultiResolutionSTFTLoss()\n# 计算预测值\npred = model(input)\n# 计算并组合损失\nsnr_loss = snr(pred, target)\nmrstft_loss = mrstft(pred, target)\nloss = snr_loss + mrstft_loss\nloss.backward()","https:\u002F\u002Fgithub.com\u002Fcsteinmetz1\u002Fauraloss\u002Fissues\u002F13",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},42645,"FIRFilter 类在 CPU 上运行失败但在 CUDA 上正常，如何解决？","这是 FIRFilter 在 CPU 设备上的兼容性已知问题。建议暂时在 CUDA 设备上运行涉及 FIRFilter 的代码，或者检查是否有更新的补丁版本解决了 CPU 后端的具体实现错误。如果必须在 CPU 运行，可能需要手动修改滤波器实现以适配 CPU 张量操作。","https:\u002F\u002Fgithub.com\u002Fcsteinmetz1\u002Fauraloss\u002Fissues\u002F62",[145],{"id":146,"version":147,"summary_zh":148,"released_at":149},342340,"v0.1.0","这是首个版本，已实现多种损失函数。目前尚无测试用例，但将在下一个版本中加入，并进一步扩充损失函数的种类。现阶段，我们使用一个简单的神经网络训练示例，作为对部分损失函数的基本测试。","2020-11-16T03:58:06"]