[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-anicolson--DeepXi":3,"tool-anicolson--DeepXi":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 真正成长为懂上",155373,2,"2026-04-14T11:34:08",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[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":79,"owner_website":79,"owner_url":80,"languages":81,"stars":94,"forks":95,"last_commit_at":96,"license":97,"difficulty_score":10,"env_os":98,"env_gpu":99,"env_ram":100,"env_deps":101,"category_tags":106,"github_topics":108,"view_count":32,"oss_zip_url":79,"oss_zip_packed_at":79,"status":17,"created_at":129,"updated_at":130,"faqs":131,"releases":159},7427,"anicolson\u002FDeepXi","DeepXi","Deep Xi: A deep learning approach to a priori SNR estimation implemented in TensorFlow 2\u002FKeras. For speech enhancement and robust ASR.","DeepXi 是一个基于 TensorFlow 2 和 Keras 构建的开源深度学习项目，核心功能是通过神经网络精准估计“先验信噪比”（a priori SNR）。它主要致力于解决嘈杂环境下的语音增强难题，能够有效从混合了背景噪音的音频中还原清晰的人声，同时也可用于噪声功率谱估计、声源分离以及提升自动语音识别（ASR）系统在复杂声学环境中的鲁棒性。\n\n该工具特别适合语音处理领域的研究人员、算法工程师及开发者使用。用户不仅可以利用其预训练模型直接进行语音降噪实验，还能基于其架构开发自定义网络或将其作为前端模块集成到更大的语音识别系统中。\n\nDeepXi 的技术亮点在于将传统的信号处理理论与现代深度学习相结合。它支持多种先进的网络结构，如掩码多头自注意力机制（MHANet）和带有频率维度自适应注意力的时序卷积网络，能够更精细地捕捉语音的时空特征。此外，项目还衍生出了 DeepMMSE 等变体，提供了从理论推导到工程落地的完整参考，是探索基于深度学习的语音增强方案的优质资源。","\u003C!--\r\n\r\nexport PATH=\u002Fusr\u002Flocal\u002Fcuda-10.1\u002Fbin${PATH:+:${PATH}}\r\nexport LD_LIBRARY_PATH=\u002Fusr\u002Flocal\u002Fcuda-10.1\u002Flib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}\r\n\r\n-->\r\n\r\n**Deep Xi**: A Deep Learning Approach to *A Priori* SNR Estimation for speech enhancement.\r\n====\r\n\r\nNews\r\n----\r\n\r\nNew journal paper:\r\n\r\n * On Training Targets for Deep Learning Approaches to Clean Speech Magnitude Spectrum Estimation [[link]](https:\u002F\u002Fasa.scitation.org\u002Fdoi\u002F10.1121\u002F10.0004823) [[.pdf]](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Fdocs\u002F3273_1.pdf)\r\n\r\nNew trained model:\r\n * A trained MHANet is available in the `model` directory.\r\n\r\nNew journal paper:\r\n * Masked Multi-Head Self-Attention for Causal Speech Enhancement [[link]](https:\u002F\u002Fwww.sciencedirect.com\u002Fscience\u002Farticle\u002Fpii\u002FS0167639320302806) [[.pdf]](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Fdocs\u002F1-s2.0-S0167639320302806-main.pdf)\r\n\r\nNew journal paper:\r\n * Spectral distortion level resulting in a just-noticeable difference between an *a priori* signal-to-noise ratio estimate and its instantaneous case [[link]](https:\u002F\u002Fdoi.org\u002F10.1121\u002F10.0002113) [[.pdf]](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Fdocs\u002F10.0002113.pdf)\r\n \r\n New conference paper:\r\n * Temporal Convolutional Network with Frequency Dimension Adaptive Attention for Speech Enhancement (INTERSPEECH 2021)[[link]](https:\u002F\u002Fwww.isca-speech.org\u002Farchive\u002Fpdfs\u002Finterspeech_2021\u002Fzhang21b_interspeech.pdf)\r\n\r\nContents\r\n----\r\n  * [Introduction](#introduction)\r\n  * [How does Deep Xi work?](#how-does-deep-xi-work)\r\n  * [Current networks](#current-networks)\r\n  * [Available models](#available-models)\r\n  * [Results](#results)\r\n  * [DeepMMSE](#deepmmse)\r\n  * [Installation](#installation)\r\n  * [How to use Deep Xi](#how-to-use-deep-xi)\r\n  * [Current issues and potential areas of improvement](#current-issues-and-potential-areas-of-improvement)\r\n  * [Where can I get a dataset for Deep Xi?](#where-can-i-get-a-dataset-for-deep-xi)\r\n  * [Which audio do I use with Deep Xi?](#which-audio-do-i-use-with-deep-xi)\r\n  * [Citation guide](#citation-guide)\r\n\r\nIntroduction\r\n----\r\n**Deep Xi is implemented in TensorFlow 2\u002FKeras and can be used for speech enhancement, noise estimation, mask estimation, and as a front-end for robust ASR.** [Deep Xi](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002) (where the Greek letter 'xi' or ξ is pronounced  \u002Fzaɪ\u002F and is the symbol used in the literature for the *a priori* SNR) is a deep learning approach to *a priori* SNR estimation that was proposed in [[1]](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002). Some of its use cases include:\r\n* Minimum mean-square error (MMSE) approaches to **speech enhancement**.\r\n* MMSE-based **noise PSD estimators**, as in *DeepMMSE* [[2]](https:\u002F\u002Fieeexplore.ieee.org\u002Fdocument\u002F9066933).\r\n* Ideal binary mask (IBM) estimation for **missing feature approaches**.\r\n* Ideal ratio mask (IRM) estimation for **source separation**.\r\n* **Front-end for robust ASR**\r\n\r\n\u003C!--\r\n\r\n|![](.\u002Fdocs\u002Ffig_front-end.png \"Deep Xi as a front-end for robust ASR.\")|\r\n|----|\r\n| \u003Cp align=\"center\"> \u003Cb>Figure 1:\u003C\u002Fb> Deep Xi used as a front-end for robust ASR. The back-end (Deep Speech) is available \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmozilla\u002FDeepSpeech\">here\u003C\u002Fa>. The noisy speech magnitude spectrogram, as shown in \u003Cb>(a)\u003C\u002Fb>, is a mixture of clean speech with \u003Ci>voice babble\u003C\u002Fi> noise at an SNR level of -5 dB, and is the input to Deep Xi. Deep Xi estimates the \u003Ci>a priori\u003C\u002Fi> SNR, as shown in \u003Cb>(b)\u003C\u002Fb>. The \u003Ci>a priori\u003C\u002Fi> SNR estimate is used to compute an MMSE approach gain function, which is multiplied elementwise with the noisy speech magnitude spectrum to produce the clean speech magnitude spectrum estimate, as shown in \u003Cb>(c)\u003C\u002Fb>. \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fanicolson\u002Fmatlab_feat\">MFCCs\u003C\u002Fa> are computed from the estimated clean speech magnitude spectrogram, producing the estimated clean speech cepstrogram, as shown in \u003Cb>(d)\u003C\u002Fb>. The back-end system, Deep Speech, computes the hypothesis transcript, from the estimated clean speech cepstrogram, as shown in \u003Cb>(e)\u003C\u002Fb>. \u003C\u002Fp> |\r\n\r\n-->\r\n\r\nHow does Deep Xi work?\r\n----\r\nA training example is shown in **Figure 2**. A deep neural network (DNN) within the Deep Xi framework is fed the **noisy-speech short-time magnitude spectrum** as input. The training target of the DNN is a mapped version of the instantaneous *a priori* SNR (i.e. **mapped *a priori* SNR**). The instantaneous *a priori* SNR is mapped to the interval `[0,1]` to improve the rate of convergence of the used stochastic gradient descent algorithm. The map is the cumulative distribution function (CDF) of the instantaneous *a priori* SNR, as given by Equation (13) in [[1]](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002). The statistics for the CDF are computed over a sample of the training set. An example of the mean and standard deviation of the sample for each frequency bin is shown in **Figure 3**. The training examples in each mini-batch are padded to the longest sequence length in the mini-batch. The **sequence mask** is used by TensorFlow to ensure that the DNN is not trained on the padding. During inference, the *a priori* SNR estimate is computed from the mapped *a priori* SNR using the sample statistics and Equation (12) from [[2]](https:\u002F\u002Fieeexplore.ieee.org\u002Fdocument\u002F9066933).\r\n\r\n|![](.\u002Fdocs\u002Ffig_training_example.png \"Deep Xi training example.\")|\r\n|----|\r\n| \u003Cp align=\"center\"> \u003Cb>Figure 2:\u003C\u002Fb> \u003Ca>A training example for Deep Xi. Generated using `eval_example.m`.\u003C\u002Fa> \u003C\u002Fp> |\r\n\r\n |![](.\u002Fdocs\u002Ffig_xi_dist.png \"Normal distribution of the instantaneous *a priori* SNR in dB for each frequency bin.\")|\r\n|----|\r\n| \u003Cp align=\"center\"> \u003Cb>Figure 3:\u003C\u002Fb> \u003Ca>The normal distribution for each frequency bin is computed from the mean and standard deviation of the instantaneous *a priori* SNR (dB) over a sample of the training set. Generated using `eval_stats.m`\u003C\u002Fa> \u003C\u002Fp> |\r\n\r\nCurrent networks\r\n-----\r\n\r\nConfigurations for the following networks can be found in [`run.sh`.](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh)\r\n\r\n* **MHANet**: Multi-head attention network [6].\r\n* **RDLNet**: Residual-dense lattice network [3].\r\n* **ResNet**: Residual network [2].\r\n* **ResLSTM & ResBiLSTM**: Residual long short-term memory (LSTM) network and residual bidirectional LSTM (ResBiLSTM) network [1].\r\n\r\n\r\nDeep Xi utilising the MHANet (**Deep Xi-MHANet**) was proposed in [[6]](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2020.10.004). It utilises multi-head attention to efficiently model the long-range dependencies of noisy speech. Deep Xi-MHANet is shown in **Figure 4**. Deep Xi utilising a ResNet TCN (**Deep Xi-ResNet**) was proposed in [[2]](https:\u002F\u002Fieeexplore.ieee.org\u002Fdocument\u002F9066933). It uses bottleneck residual blocks and a cyclic dilation rate. The network comprises of approximately 2 million parameters and has a contextual field of approximately 8 seconds. Deep Xi utilising a ResLSTM network (**Deep Xi-ResLSTM**) was proposed in [[1]](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002). Each of its residual blocks contain a single LSTM cell. The network comprises of approximately 10 million parameters.\r\n\r\n|![](.\u002Fdocs\u002Ffig_mhanet.jpg \"Deep Xi-MHANet a priori SNR estimator.\")|\r\n|----|\r\n| \u003Cp align=\"center\"> \u003Cb>Figure 4:\u003C\u002Fb> \u003Ca> \u003Cb>(left)\u003C\u002Fb> Deep Xi-MHANet from [6].\u003C\u002Fa>\u003C\u002Fp> |\r\n\r\nAvailable models\r\n-----\r\n\r\n**[`mhanet-1.1c`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh) (available in the [`model`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Ftree\u002Fmaster\u002Fmodel) directory)**\r\n\r\n**[`resnet-1.1n`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh) (available in the [`model`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Ftree\u002Fmaster\u002Fmodel) directory)**\r\n\r\n**[`resnet-1.1c`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh) (available in the [`model`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Ftree\u002Fmaster\u002Fmodel) directory)**\r\n\r\n**Each available model is trained using the [Deep Xi dataset](https:\u002F\u002Fieee-dataport.org\u002Fopen-access\u002Fdeep-xi-dataset). Please see [`run.sh`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh) for more details about these networks.**\r\n\r\nThere are multiple Deep Xi versions, comprising of different networks and restrictions. An example of the `ver` naming convention is `resnet-1.0c`. The network type is given at the start of `ver`. Versions with **c** are **causal**. Versions with **n** are **non-causal**.  The version iteration is also given, i.e. `1.0`.\r\n\r\nResults\r\n-----\r\n\r\nNote: Results for the Deep Xi framework in this repository are reported for Tensorflow 2\u002FKeras. Results in the papers were found using Tensorflow 1. All future work will be completed in Tensorflow 2\u002FKeras.\r\n\r\n**DEMAND Voice Bank test set**\r\n\r\nObjective scores obtained on the DEMAND Voicebank test set described [here](http:\u002F\u002Fssw9.talp.cat\u002Fpapers\u002Fssw9_PS2-4_Valentini-Botinhao.pdf). **Each Deep Xi model is trained on the  DEMAND Voicebank training set**. As in previous works, the objective scores are averaged over all tested conditions. **CSIG**, **CBAK**, and **COVL** are mean opinion score (MOS) predictors of the signal distortion, background-noise intrusiveness, and overall signal quality, respectively. **PESQ** is the perceptual evaluation of speech quality measure. **STOI** is the short-time objective intelligibility measure (in \\%). The highest scores attained for each measure are indicated in boldface.\r\n\r\n| Method                 |   Gain | Causal | CSIG | CBAK | COVL | PESQ | STOI      | SegSNR |\r\n|-------------------------|---|--------|------|------|------|------|-----------|----|\r\n| Noisy speech              | -- | --     | 3.35 | 2.44 | 2.63 | 1.97 | 92 (91.5) | -- |\r\n| [Wiener](https:\u002F\u002Fieeexplore.ieee.org\u002Fstamp\u002Fstamp.jsp?tp=&arnumber=543199) |  | Yes    | 3.23 | 2.68 | 2.67 | 2.22 | --        | -- |\r\n| [SEGAN](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1703.09452.pdf)                |   --   | No     | 3.48 | 2.94 | 2.80 | 2.16 | 93  | -- |\r\n| [WaveNet](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1706.07162.pdf)              | --     | No     | 3.62 | 3.23 | 2.98 | --   | --        | --|\r\n| [MMSE-GAN](https:\u002F\u002Fieeexplore.ieee.org\u002Fstamp\u002Fstamp.jsp?tp=&arnumber=8462068)    |    --         | No     | 3.80 | 3.12 | 3.14 | 2.53 | 93      | -- |\r\n| [Deep Feature Loss](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1806.10522.pdf)  |  --      | Yes    | 3.86 | 3.33 | 3.22 | --   | --        | -- |\r\n| [Metric-GAN](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1905.04874.pdf) |      --          | No     | 3.99 | 3.18 | 3.42 | 2.86 | --        | -- |\r\n| [Koizumi2020](https:\u002F\u002Fdoi.org\u002F10.1109\u002Ficassp40776.2020.9053214)  |  -- | No  | 4.15 | 3.42 | 3.57 | 2.99 | --  | --  |\r\n| [T-GSA](https:\u002F\u002Fieeexplore.ieee.org\u002Fdocument\u002F9053591)   | --  | No | 4.18  | **3.59** | 3.62  | **3.06**  |  -- | --  |\r\n| **Deep Xi-ResLSTM (1.0c)** | MMSE-LSA | Yes    | 4.01 | 3.25 | 3.34 | 2.65 | 91 (91.0) | 8.2 |\r\n| **Deep Xi-ResNet (1.0c)** | MMSE-LSA | Yes    | 4.14 | 3.32 | 3.46 | 2.77 | 93 (93.2) | -- |\r\n| **Deep Xi-ResNet (1.0n)** | MMSE-LSA | No    | 4.28 | 3.46 | 3.64 | 2.95 | 94 (93.6) | -- |\r\n| **Deep Xi-ResNet (1.1c)** | MMSE-LSA | Yes    | 4.24 | 3.40 | 3.59 | 2.91 | 94 (93.5) | 8.4 |\r\n| **Deep Xi-ResNet (1.1n)** | MMSE-LSA | No    | **4.35** | 3.52 | **3.71** | 3.03 | **94 (94.1)** | **9.3** |\r\n| **Deep Xi-MHANet (1.0c)** | MMSE-LSA | Yes    | 4.15 | 3.37 | 3.48 | 2.77 | 93 (93.2) | 8.9 |\r\n| **Deep Xi-MHANet (1.1c)** | MMSE-LSA | Yes    | 4.34 | 3.49 | 3.69 | 2.99 | 94 (94.0) | 9.1 |\r\n\r\n**Deep Xi Test Set**\r\n\r\nAverage objective scores obtained over the conditions in the test set of the [Deep Xi dataset](https:\u002F\u002Fieee-dataport.org\u002Fopen-access\u002Fdeep-xi-dataset). **Each Deep Xi model is trained on the test set of the Deep Xi dataet**. SNR levels between -10 dB and 20 dB are considered only. **Results for each condition can be found in `log\u002Fresults`**\r\n\r\n| Method           | Gain      | Causal | CSIG | CBAK | COVL | PESQ | STOI      |\r\n|-------------------------|---|--------|------|------|------|------|-----------|\r\n| Deep Xi-ResNet (1.1c) | MMSE-STSA | Yes    |   3.14| 2.52| 2.43| 1.82| 84.85 |\r\n| Deep Xi-ResNet (1.1c) | MMSE-LSA  | Yes    |   3.15| 2.55| 2.46| 1.85| 84.72 |\r\n| Deep Xi-ResNet (1.1c) | SRWF\u002FIRM  | Yes    |   3.12| 2.50| 2.41| 1.79| 84.95 |\r\n| Deep Xi-ResNet (1.1c) | cWF       | Yes    |   3.15| 2.51| 2.44| 1.83| 84.94 |\r\n| Deep Xi-ResNet (1.1c) | WF        | Yes    |  2.66| 2.46| 2.12| 1.69| 83.02 |\r\n| Deep Xi-ResNet (1.1c) | IBM       | Yes    |   1.36| 2.16| 1.26| 1.30| 77.57 |\r\n| Deep Xi-ResNet (1.1n) | MMSE-LSA  | No     | 3.30| 2.62| 2.59| 1.97| 86.70 |\r\n| Deep Xi-MHANet (1.1c) | MMSE-LSA  | Yes    | **3.45**| **2.75**| **2.73**| **2.08** | **87.11** |\r\n\r\nDeepMMSE\r\n----\r\n\r\nDeepMMSE: A Deep Learning Approach to MMSE-Based Noise Power Spectral Density Estimation.\r\n\r\nTo save noise PSD estimate `.mat` files from DeepMMSE, please use the following:\r\n```\r\n.\u002Frun.sh VER=\"mhanet-1.1c\" INFER=1 GAIN=\"deepmmse\"\r\n```\r\n\r\nInstallation\r\n-----\r\n\r\nPrerequisites for GPU usage:\r\n\r\n* [CUDA 10.1](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-downloads)\r\n* [cuDNN (>= 7.6)](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcudnn)\r\n\r\nTo install:\r\n\r\n1. `git clone https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi.git`\r\n2. `python3 -m venv --system-site-packages ~\u002Fvenv\u002FDeepXi`\r\n3. `source ~\u002Fvenv\u002FDeepXi\u002Fbin\u002Factivate`\r\n4. `cd DeepXi`\r\n5. `pip install -r requirements.txt`\r\n\r\nOtherwise, a **docker image** can be found on Docker Hub: https:\u002F\u002Fhub.docker.com\u002Fr\u002Ffhoerst\u002Fdeepxi\r\n\r\nHow to use Deep Xi\r\n-----\r\n\r\nUse [`run.sh`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh) to configure and run Deep Xi. Look at [`config.sh`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Fconfig.sh) to set the paths to the dataset, models, and outputs.\r\n\r\n**Inference:**\r\nTo perform inference and save the outputs, use the following:\r\n```\r\n.\u002Frun.sh VER=\"mhanet-1.1c\" INFER=1 GAIN=\"mmse-lsa\"\r\n```\r\nPlease look in [`thoth\u002Fargs.py`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Fdeepxi\u002Fargs.py) for available gain functions and [`run.sh`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh) for further options.\r\n\r\n**Testing:**\r\nTo perform testing and get objective scores, use the following:\r\n```\r\n.\u002Frun.sh VER=\"mhanet-1.1c\" TEST=1 GAIN=\"mmse-lsa\"\r\n```\r\nPlease look in [`log\u002Fresults`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Flog\u002Fresults) for the results.\r\n\r\n**Training:**\r\n```\r\n.\u002Frun.sh VER=\"mhanet-1.1c\" TRAIN=1\r\n```\r\nEnsure to delete the data directory before training. This will allow training lists and statistics for your training set to be saved and used. **To retrain from a certain epoch, set `--resume_epoch` in [`run.sh`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh) to the desired epoch**.\r\n\r\nCurrent issues and potential areas of improvement\r\n-----\r\n\r\nIf you would like to contribute to Deep Xi, please investigate the following and compare it to current models:\r\n\r\n* Currently, the ResLSTM network is not performing as well as expected (when compared to TensorFlow 1.x performance).\r\n\r\n\r\nWhere can I get a dataset for Deep Xi?\r\n----\r\nOpen-source training and testing sets are available for Deep Xi on IEEE *DataPort*:\r\n\r\n[4] Deep Xi dataset (training, validation, and test set): [http:\u002F\u002Fdx.doi.org\u002F10.21227\u002F3adt-pb04](http:\u002F\u002Fdx.doi.org\u002F10.21227\u002F3adt-pb04).\r\n\r\n[5] Test set from the original [Deep Xi paper](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002): [http:\u002F\u002Fdx.doi.org\u002F10.21227\u002F0ppr-yy46](http:\u002F\u002Fdx.doi.org\u002F10.21227\u002F0ppr-yy46).\r\n\r\nThe MATLAB scripts used to generate these sets can be found in [`set`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Ftree\u002Fmaster\u002Fset).\r\n\r\nWhich audio do I use with Deep Xi?\r\n----\r\nDeep Xi operates on mono\u002Fsingle-channel audio (not stereo\u002Fdual-channel audio). Single-channel audio is used due to most cell phones using a single microphone. The available trained models operate on a sampling frequency of `f_s=16000`Hz, which is currently the standard sampling frequency used in the speech enhancement community. The sampling frequency can be changed in `run.sh`. Deep Xi can be trained using a higher sampling frequency (e.g. `f_s=44100`Hz), but this is unnecessary as human speech rarely exceeds 8 kHz (the Nyquist frequency of `f_s=16000`Hz is 8 kHz). The available trained models operate on a window duration and shift of `T_d=32`ms and `T_s=16`ms, respectively. To train a model on a different window duration and shift, `T_d` and `T_s` can be changed in `run.sh`. Currently, Deep Xi supports `.wav`, `.mp3`, and `.flac` audio codecs. The audio codec and bit rate does not affect the performance of Deep Xi.\r\n\r\nNaming convention in the `set\u002F` directory\r\n-----\r\n\r\nThe following is already configured in the [Deep Xi dataset](http:\u002F\u002Fdx.doi.org\u002F10.21227\u002F3adt-pb04).\r\n\r\n**Training set**\r\n\r\nThe filenames of the waveforms in the `train_clean_speech` and `train_noise` directories are not restricted. There can be a different number of waveforms in each. The Deep Xi framework utilises each of the waveforms in `train_clean_speech` once during an epoch. For each `train_clean_speech` waveform of a mini-batch, the Deep Xi framework selects a random section of a randomely selected waveform from `train_noise` (that is at a length greater than or equal to the `train_clean_speech` waveform) and adds it to the `train_clean_speech` waveform at a randomly selected SNR level (the SNR level range can be set in `run.sh`).\r\n\r\n**Validation set**\r\n\r\nAs the validation set must not change from epoch to epoch, a set of restrictions apply to the waveforms in `val_clean_speech` and `val_noise`. There must be the same amount of waveforms in `val_clean_speech` and `val_noise`. One waveform in `val_clean_speech` corresponds to only one waveform in `val_noise`, i.e. a clean speech and noise validation waveform pair. Each clean speech and noise validation waveform pair must have identical filenames and and an identical number of samples. Each clean speech and noise validation waveform pair must have the SNR level (dB) that they are to be mixed at placed at the end of their filenames. The convention used is `_XdB`, where `X` is replaced with the desired SNR level. E.g. `val_clean_speech\u002FNAME_-5dB.wav` and `val_noise\u002FNAME_-5dB.wav`. An example of the filenames for a clean speech and noise validation waveform pair is as follows: `val_clean_speech\u002F198_19-198-0003_Machinery17_15dB.wav` and `val_noise\u002F198_19-198-0003_Machinery17_15dB.wav`.\r\n\r\n**Test set**\r\n\r\nThe filenames of the waveforms in the `test_noisy_speech` directory are not restricted. This is all that is required if you want inference outputs from Deep Xi, i.e. `.\u002Frun.sh VER=\"ANY_NAME\" INFER=1`. If you are obtaining objective scores by using `.\u002Frun.sh VER=\"ANY_NAME\" TEST=1`, then reference waveforms for the objective measures need to be placed in `test_clean_speech`. The waveforms in `test_clean_speech` and `test_noisy_speech` that correspond to each other must have the same number of samples (i.e. the same sequence length). The filename of the waveform in `test_clean_speech` that corresponds to a waveform in `test_noisy_speech` must be contained in the corresponding test noisy speech waveforn filename. E.g. if the filename of a test noisy speech waveform is `test_noisy_speech\u002F61-70968-0000_SIGNAL021_-5dB.wav`, then the filename of the corresponding test clean speech waveform must be contained in the filename of the test noisy speech waveform: `test_clean_speech\u002F61-70968-0000.wav`. This is because a test clean speech waveform may be used as a reference for multiple waveforms in `test_noisy_speech` (e.g. `test_noisy_speech\u002F61-70968-0000_SIGNAL021_0dB.wav`, `test_noisy_speech\u002F61-70968-0000_SIGNAL021_5dB.wav`, and `test_noisy_speech\u002F61-70968-0000_SIGNAL021_10dB.wav` are additional test noisy speech waveforms that the test clean speech waveform from the previous example is a reference for).\r\n\r\nCitation guide\r\n-----\r\n\r\nPlease cite the following depending on what you are using:\r\n* The Deep Xi framework is proposed in [1].\r\n* If using Deep Xi-MHANet, please cite [1] and [6].\r\n* If using Deep Xi-ResLSTM, please cite [1].\r\n* If using Deep Xi-ResNet, please cite [1] and [2].\r\n* If using DeepMMSE, please cite [2].\r\n* If using Deep Xi-RDLNet, please cite [1] and [3].\r\n* If using Deep Xi dataset, please cite [4].\r\n* If using the Test Set From 10.1016\u002Fj.specom.2019.06.002, please cite [5].\r\n\r\n[1] [A. Nicolson, K. K. Paliwal, Deep learning for minimum mean-square error approaches to speech enhancement, Speech Communication 111 (2019) 44 - 55, https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002.](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002)\r\n\r\n[2] [Q. Zhang, A. M. Nicolson, M. Wang, K. Paliwal and C. Wang, \"DeepMMSE: A Deep Learning Approach to MMSE-based Noise Power Spectral Density Estimation,\" in IEEE\u002FACM Transactions on Audio, Speech, and Language Processing, vol. 28, pp. 1404-1415, 2020, doi: 10.1109\u002FTASLP.2020.2987441.](https:\u002F\u002Fieeexplore.ieee.org\u002Fdocument\u002F9066933)\r\n\r\n[3] [Mohammad Nikzad, Aaron Nicolson, Yongsheng Gao, Jun Zhou, Kuldip K. Paliwal, and Fanhua Shang. \"Deep residual-dense lattice network for speech enhancement\". In AAAI Conference on Artificial Intelligence, pages 8552–8559, 2020](https:\u002F\u002Fwww.aaai.org\u002FPapers\u002FAAAI\u002F2020GB\u002FAAAI-NikzadM.6844.pdf)\r\n\r\n[4] Aaron Nicolson, \"Deep Xi dataset\", IEEE Dataport, 2020. [Online]. Available: http:\u002F\u002Fdx.doi.org\u002F10.21227\u002F3adt-pb04.\r\n\r\n[5] Aaron Nicolson, \"Test Set From 10.1016\u002Fj.specom.2019.06.002\", IEEE Dataport, 2020. [Online]. Available: http:\u002F\u002Fdx.doi.org\u002F10.21227\u002F0ppr-yy46.\r\n\r\n[6] [A. Nicolson, K. K. Paliwal, Masked multi-head self-attention for causal speech enhancement, Speech Communication 125 (2020) 80 - 96, https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002.](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2020.10.004)\r\n","\u003C!--\n\nexport PATH=\u002Fusr\u002Flocal\u002Fcuda-10.1\u002Fbin${PATH:+:${PATH}}\nexport LD_LIBRARY_PATH=\u002Fusr\u002Flocal\u002Fcuda-10.1\u002Flib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}\n\n-->\n\n**Deep Xi**: 一种基于深度学习的先验信噪比估计方法，用于语音增强。\n====\n\n新闻\n----\n\n新发表的期刊论文：\n\n* 关于清洁语音幅度谱估计的深度学习方法的训练目标 [[链接]](https:\u002F\u002Fasa.scitation.org\u002Fdoi\u002F10.1121\u002F10.0004823) [[.pdf]](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Fdocs\u002F3273_1.pdf)\n\n新训练好的模型：\n* 在 `model` 目录中提供了一个训练好的 MHANet 模型。\n\n新发表的期刊论文：\n* 用于因果语音增强的掩码多头自注意力机制 [[链接]](https:\u002F\u002Fwww.sciencedirect.com\u002Fscience\u002Farticle\u002Fpii\u002FS0167639320302806) [[.pdf]](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Fdocs\u002F1-s2.0-S0167639320302806-main.pdf)\n\n新发表的期刊论文：\n* 导致先验信噪比估计与其瞬时值之间产生可察觉差异的频谱失真水平 [[链接]](https:\u002F\u002Fdoi.org\u002F10.1121\u002F10.0002113) [[.pdf]](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Fdocs\u002F10.0002113.pdf)\n\n新发表的会议论文：\n* 带有频率维度自适应注意力的时序卷积网络用于语音增强（INTERSPEECH 2021）[[链接]](https:\u002F\u002Fwww.isca-speech.org\u002Farchive\u002Fpdfs\u002Finterspeech_2021\u002Fzhang21b_interspeech.pdf)\n\n目录\n----\n  * [引言](#introduction)\n  * [Deep Xi 是如何工作的？](#how-does-deep-xi-work)\n  * [当前网络架构](#current-networks)\n  * [可用模型](#available-models)\n  * [结果](#results)\n  * [DeepMMSE](#deepmmse)\n  * [安装](#installation)\n  * [如何使用 Deep Xi](#how-to-use-deep-xi)\n  * [当前问题及潜在改进方向](#current-issues-and-potential-areas-of-improvement)\n  * [我在哪里可以找到用于 Deep Xi 的数据集？](#where-can-i-get-a-dataset-for-deep-xi)\n  * [我应该使用哪种音频与 Deep Xi 配合使用？](#which-audio-do-i-use-with-deep-xi)\n  * [引用指南](#citation-guide)\n\n引言\n----\n**Deep Xi 使用 TensorFlow 2\u002FKeras 实现，可用于语音增强、噪声估计、掩膜估计，以及作为鲁棒自动语音识别系统的前端。** [Deep Xi](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002)（其中希腊字母“xi”或 ξ 发音为 \u002Fzaɪ\u002F，是文献中表示先验信噪比的符号）是一种用于先验信噪比估计的深度学习方法，该方法最初在 [[1]](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002) 中提出。其部分应用场景包括：\n* 基于最小均方误差 (MMSE) 的 **语音增强** 方法。\n* 基于 MMSE 的 **噪声功率谱密度估计器**，如 *DeepMMSE* [[2]](https:\u002F\u002Fieeexplore.ieee.org\u002Fdocument\u002F9066933)。\n* 用于 **缺失特征法** 的理想二进制掩膜 (IBM) 估计。\n* 用于 **源分离** 的理想比率掩膜 (IRM) 估计。\n* **鲁棒自动语音识别系统的前端**\n\n\u003C!--\n\n|![](.\u002Fdocs\u002Ffig_front-end.png \"Deep Xi 作为鲁棒 ASR 的前端。\")|\n|----|\n| \u003Cp align=\"center\"> \u003Cb>图 1：\u003C\u002Fb> Deep Xi 被用作鲁棒 ASR 的前端。后端系统（Deep Speech）可在 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmozilla\u002FDeepSpeech\">此处\u003C\u002Fa>找到。如 \u003Cb>(a)\u003C\u002Fb> 所示，噪声语音幅度谱图是由干净语音与\u003Cb>人声干扰\u003C\u002Fb>噪声混合而成，信噪比为 -5 dB，这是 Deep Xi 的输入。Deep Xi 估计出\u003Cb>(b)\u003C\u002Fb>中的\u003Cb>先验\u003C\u002Fb>信噪比。然后利用该先验信噪比计算 MMSE 增益函数，并将其与噪声语音幅度谱逐元素相乘，得到\u003Cb>(c)\u003C\u002Fb>中的清洁语音幅度谱估计。接着从估计的清洁语音幅度谱中计算出\u003Cb>(d)\u003C\u002Fb>中的 MFCC 特征，从而得到清洁语音倒谱图。最后，后端系统 Deep Speech 根据估计的清洁语音倒谱图生成假设转录文本，如\u003Cb>(e)\u003C\u002Fb>所示。\u003C\u002Fp> |\n\n-->\n\nDeep Xi 是如何工作的？\n----\n**图 2** 展示了一个训练示例。Deep Xi 框架内的深度神经网络 (DNN) 将 **噪声语音的短时幅度谱** 作为输入。该 DNN 的训练目标是瞬时先验信噪比的映射版本（即 **映射后的先验信噪比**）。为了提高所使用的随机梯度下降算法的收敛速度，瞬时先验信噪比被映射到区间 `[0,1]`。这种映射是瞬时先验信噪比的累积分布函数 (CDF)，具体公式见 [[1]](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002) 中的式 (13)。CDF 的统计信息是在训练集的一个样本上计算得出的。每个频段样本的均值和标准差示例如 **图 3** 所示。每个小批量中的训练样本都会被填充到该批量中最长序列长度。TensorFlow 使用 **序列掩码** 来确保 DNN 不会基于填充部分进行训练。在推理阶段，先验信噪比估计值通过使用样本统计信息和 [[2]](https:\u002F\u002Fieeexplore.ieee.org\u002Fdocument\u002F9066933) 中的式 (12)，由映射后的先验信噪比反推得出。\n\n|![](.\u002Fdocs\u002Ffig_training_example.png \"Deep Xi 训练示例。\")|\n|----|\n| \u003Cp align=\"center\"> \u003Cb>图 2：\u003C\u002Fb> \u003Ca>Deep Xi 的一个训练示例。由 `eval_example.m` 生成。\u003C\u002Fa> \u003C\u002Fp> |\n\n |![](.\u002Fdocs\u002Ffig_xi_dist.png \"各频段瞬时先验信噪比（dB）的正态分布。\")|\n|----|\n| \u003Cp align=\"center\"> \u003Cb>图 3：\u003C\u002Fb> \u003Ca>每个频段的正态分布是根据训练集中瞬时先验信噪比（dB）的均值和标准差计算得出的。由 `eval_stats.m` 生成。\u003C\u002Fa> \u003C\u002Fp> |\n\n当前网络架构\n-----\n\n以下网络的配置可以在 [`run.sh`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh) 中找到。\n\n* **MHANet**：多头注意力网络 [6]。\n* **RDLNet**：残差密集网格网络 [3]。\n* **ResNet**：残差网络 [2]。\n* **ResLSTM 和 ResBiLSTM**：残差长短时记忆网络和残差双向 LSTM 网络 [1]。\n\n\n利用 MHANet 的 Deep Xi（**Deep Xi-MHANet**）最早在 [[6]](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2020.10.004) 中提出。它采用多头注意力机制，能够高效地建模噪声语音中的长距离依赖关系。Deep Xi-MHANet 如 **图 4** 所示。利用 ResNet TCN 的 Deep Xi（**Deep Xi-ResNet**）最早在 [[2]](https:\u002F\u002Fieeexplore.ieee.org\u002Fdocument\u002F9066933) 中提出。该网络使用瓶颈残差块和循环扩张率。整个网络约有 200 万个参数，上下文感受野约为 8 秒。利用 ResLSTM 网络的 Deep Xi（**Deep Xi-ResLSTM**）最早在 [[1]](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002) 中提出。其每个残差块仅包含一个 LSTM 单元。该网络约有 1000 万个参数。\n\n|![](.\u002Fdocs\u002Ffig_mhanet.jpg \"Deep Xi-MHANet 先验信噪比估计器。\")|\n|----|\n| \u003Cp align=\"center\"> \u003Cb>图 4：\u003C\u002Fb> \u003Ca> \u003Cb>(左)\u003C\u002Fb> 来自 [6] 的 Deep Xi-MHANet。\u003C\u002Fa>\u003C\u002Fp> |\n\n可用模型\n-----\n\n**[`mhanet-1.1c`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh)（位于 [`model`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Ftree\u002Fmaster\u002Fmodel) 目录中）**\n\n**[`resnet-1.1n`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh)（位于 [`model`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Ftree\u002Fmaster\u002Fmodel) 目录中）**\n\n**[`resnet-1.1c`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh)（位于 [`model`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Ftree\u002Fmaster\u002Fmodel) 目录中）**\n\n**每个可用模型均使用 [Deep Xi 数据集](https:\u002F\u002Fieee-dataport.org\u002Fopen-access\u002Fdeep-xi-dataset) 进行训练。有关这些网络的更多详细信息，请参阅 [`run.sh`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh)。**\n\nDeep Xi 有多个版本，分别对应不同的网络架构和约束条件。例如，`ver` 命名规范为 `resnet-1.0c`。`ver` 开头标明了网络类型。带有 **c** 的版本是 **因果** 的，而带有 **n** 的版本则是 **非因果** 的。此外，还标明了版本迭代号，如 `1.0`。\n\n结果\n-----\n\n注意：本仓库中 Deep Xi 框架的结果均基于 Tensorflow 2\u002FKeras 报告。而论文中的结果则是使用 Tensorflow 1 得到的。今后的所有工作都将基于 Tensorflow 2\u002FKeras 完成。\n\n**DEMAND Voice Bank 测试集**\n\n在 DEMAND Voicebank 测试集中获得的客观评分如下所述 [这里](http:\u002F\u002Fssw9.talp.cat\u002Fpapers\u002Fssw9_PS2-4_Valentini-Botinhao.pdf)。**每个 Deep Xi 模型均在 DEMAND Voicebank 训练集上进行训练**。与以往的工作一致，客观评分是对所有测试条件取平均值。**CSIG**、**CBAK** 和 **COVL** 分别是信号失真、背景噪声侵扰性和整体信号质量的主观意见评分预测指标。**PESQ** 是语音质量的感知评估指标。**STOI** 是短时客观可懂度指标（以百分比表示）。各项指标中的最高得分以粗体显示。\n\n| 方法                 |   增益 | 因果 | CSIG | CBAK | COVL | PESQ | STOI      | SegSNR |\n|-------------------------|---|--------|------|------|------|------|-----------|----|\n| 噪声语音              | -- | --     | 3.35 | 2.44 | 2.63 | 1.97 | 92 (91.5) | -- |\n| [Wiener](https:\u002F\u002Fieeexplore.ieee.org\u002Fstamp\u002Fstamp.jsp?tp=&arnumber=543199) |  | 是    | 3.23 | 2.68 | 2.67 | 2.22 | --        | -- |\n| [SEGAN](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1703.09452.pdf)                |   --   | 否     | 3.48 | 2.94 | 2.80 | 2.16 | 93  | -- |\n| [WaveNet](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1706.07162.pdf)              | --     | 否     | 3.62 | 3.23 | 2.98 | --   | --        | --|\n| [MMSE-GAN](https:\u002F\u002Fieeexplore.ieee.org\u002Fstamp\u002Fstamp.jsp?tp=&arnumber=8462068)    |    --         | 否     | 3.80 | 3.12 | 3.14 | 2.53 | 93      | -- |\n| [Deep Feature Loss](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1806.10522.pdf)  |  --      | 是    | 3.86 | 3.33 | 3.22 | --   | --        | -- |\n| [Metric-GAN](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1905.04874.pdf) |      --          | 否     | 3.99 | 3.18 | 3.42 | 2.86 | --        | -- |\n| [Koizumi2020](https:\u002F\u002Fdoi.org\u002F10.1109\u002Ficassp40776.2020.9053214)  |  -- | 否  | 4.15 | 3.42 | 3.57 | 2.99 | --  | --  |\n| [T-GSA](https:\u002F\u002Fieeexplore.ieee.org\u002Fdocument\u002F9053591)   | --  | 否 | 4.18  | **3.59** | 3.62  | **3.06**  |  -- | --  |\n| **Deep Xi-ResLSTM (1.0c)** | MMSE-LSA | 是    | 4.01 | 3.25 | 3.34 | 2.65 | 91 (91.0) | 8.2 |\n| **Deep Xi-ResNet (1.0c)** | MMSE-LSA | 是    | 4.14 | 3.32 | 3.46 | 2.77 | 93 (93.2) | -- |\n| **Deep Xi-ResNet (1.0n)** | MMSE-LSA | 否    | 4.28 | 3.46 | 3.64 | 2.95 | 94 (93.6) | -- |\n| **Deep Xi-ResNet (1.1c)** | MMSE-LSA | 是    | 4.24 | 3.40 | 3.59 | 2.91 | 94 (93.5) | 8.4 |\n| **Deep Xi-ResNet (1.1n)** | MMSE-LSA | 否    | **4.35** | 3.52 | **3.71** | 3.03 | **94 (94.1)** | **9.3** |\n| **Deep Xi-MHANet (1.0c)** | MMSE-LSA | 是    | 4.15 | 3.37 | 3.48 | 2.77 | 93 (93.2) | 8.9 |\n| **Deep Xi-MHANet (1.1c)** | MMSE-LSA | 是    | 4.34 | 3.49 | 3.69 | 2.99 | 94 (94.0) | 9.1 |\n\n**Deep Xi 测试集**\n\n在 [Deep Xi 数据集](https:\u002F\u002Fieee-dataport.org\u002Fopen-access\u002Fdeep-xi-dataset) 的测试集中，针对不同条件测得的平均客观评分。**每个 Deep Xi 模型均在 Deep Xi 数据集的测试集上进行训练**。仅考虑 -10 dB 至 20 dB 之间的信噪比水平。**每种条件的结果均可在 `log\u002Fresults` 中找到**。\n\n| 方法           | 增益      | 因果 | CSIG | CBAK | COVL | PESQ | STOI      |\n|-------------------------|---|--------|------|------|------|------|-----------|\n| Deep Xi-ResNet (1.1c) | MMSE-STSA | 是    |   3.14| 2.52| 2.43| 1.82| 84.85 |\n| Deep Xi-ResNet (1.1c) | MMSE-LSA  | 是    |   3.15| 2.55| 2.46| 1.85| 84.72 |\n| Deep Xi-ResNet (1.1c) | SRWF\u002FIRM  | 是    |   3.12| 2.50| 2.41| 1.79| 84.95 |\n| Deep Xi-ResNet (1.1c) | cWF       | 是    |   3.15| 2.51| 2.44| 1.83| 84.94 |\n| Deep Xi-ResNet (1.1c) | WF        | 是    |  2.66| 2.46| 2.12| 1.69| 83.02 |\n| Deep Xi-ResNet (1.1c) | IBM       | 是    |   1.36| 2.16| 1.26| 1.30| 77.57 |\n| Deep Xi-ResNet (1.1n) | MMSE-LSA  | 否    | 3.30| 2.62| 2.59| 1.97| 86.70 |\n| Deep Xi-MHANet (1.1c) | MMSE-LSA  | 是    | **3.45**| **2.75**| **2.73**| **2.08** | **87.11** |\n\nDeepMMSE\n----\nDeepMMSE：一种基于深度学习的 MMSE 噪声功率谱密度估计方法。\n\n要保存来自 DeepMMSE 的噪声 PSD 估计 `.mat` 文件，请使用以下命令：\n```bash\n.\u002Frun.sh VER=\"mhanet-1.1c\" INFER=1 GAIN=\"deepmmse\"\n```\n\n安装\n-----\n使用 GPU 的前提条件：\n\n* [CUDA 10.1](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-downloads)\n* [cuDNN (≥ 7.6)](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcudnn)\n\n安装步骤：\n\n1. `git clone https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi.git`\n2. `python3 -m venv --system-site-packages ~\u002Fvenv\u002FDeepXi`\n3. `source ~\u002Fvenv\u002FDeepXi\u002Fbin\u002Factivate`\n4. `cd DeepXi`\n5. `pip install -r requirements.txt`\n\n此外，您也可以在 Docker Hub 上找到对应的 **Docker 镜像**：https:\u002F\u002Fhub.docker.com\u002Fr\u002Ffhoerst\u002Fdeepxi\n\n如何使用 Deep Xi\n-----\n使用 [`run.sh`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh) 来配置并运行 Deep Xi。请参考 [`config.sh`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Fconfig.sh) 设置数据集、模型和输出文件的路径。\n\n**推理：**\n若需执行推理并保存结果，请使用以下命令：\n```bash\n.\u002Frun.sh VER=\"mhanet-1.1c\" INFER=1 GAIN=\"mmse-lsa\"\n```\n有关可用增益函数的信息，请参阅 [`thoth\u002Fargs.py`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Fdeepxi\u002Fargs.py)，更多选项则可在 [`run.sh`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh) 中找到。\n\n**测试：**\n若需进行测试并获取客观评分，请使用以下命令：\n```bash\n.\u002Frun.sh VER=\"mhanet-1.1c\" TEST=1 GAIN=\"mmse-lsa\"\n```\n测试结果将保存在 [`log\u002Fresults`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Flog\u002Fresults) 中。\n\n**训练：**\n```bash\n.\u002Frun.sh VER=\"mhanet-1.1c\" TRAIN=1\n```\n请注意，在开始训练之前务必删除数据目录，以便保存和使用您的训练集列表和统计信息。**若需从特定 epoch 继续训练，请在 [`run.sh`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fblob\u002Fmaster\u002Frun.sh) 中设置 `--resume_epoch` 参数为所需 epoch。**\n\n当前问题及潜在改进方向\n-----\n如果您希望为 Deep Xi 贡献代码，请研究以下内容，并与现有模型进行比较：\n\n* 目前，ResLSTM 网络的表现不如预期（与 TensorFlow 1.x 版本相比）。\n\n我在哪里可以找到用于 Deep Xi 的数据集？\n----\nIEEE *DataPort* 上提供了 Deep Xi 的开源训练和测试数据集：\n\n[4] Deep Xi 数据集（训练、验证和测试集）：[http:\u002F\u002Fdx.doi.org\u002F10.21227\u002F3adt-pb04](http:\u002F\u002Fdx.doi.org\u002F10.21227\u002F3adt-pb04)。\n\n[5] 来自原始 [Deep Xi 论文](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002) 的测试集：[http:\u002F\u002Fdx.doi.org\u002F10.21227\u002F0ppr-yy46](http:\u002F\u002Fdx.doi.org\u002F10.21227\u002F0ppr-yy46)。\n\n用于生成这些数据集的 MATLAB 脚本可在 [`set`](https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Ftree\u002Fmaster\u002Fset) 目录中找到。\n\n我应该使用哪种音频与 Deep Xi 配合使用？\n----\nDeep Xi 处理的是单声道\u002F单通道音频（而非立体声\u002F双通道音频）。之所以采用单声道音频，是因为大多数手机都只配备一个麦克风。目前可用的训练模型以采样率为 `f_s=16000` Hz 运行，这也是当前语音增强领域普遍采用的标准采样率。您可以在 `run.sh` 中更改采样率。虽然 Deep Xi 也可以使用更高的采样率（如 `f_s=44100` Hz）进行训练，但这并非必要，因为人类语音的频率通常不超过 8 kHz（`f_s=16000` Hz 的奈奎斯特频率正是 8 kHz）。当前训练好的模型分别采用窗口持续时间 `T_d=32` ms 和滑动步长 `T_s=16` ms。如果需要使用不同的窗口持续时间和滑动步长来训练模型，可以在 `run.sh` 中进行调整。目前，Deep Xi 支持 `.wav`、`.mp3` 和 `.flac` 等音频格式。音频编解码器和比特率不会影响 Deep Xi 的性能。\n\n`set\u002F` 目录中的命名规范\n-----\n以下规范已在 [Deep Xi 数据集](http:\u002F\u002Fdx.doi.org\u002F10.21227\u002F3adt-pb04) 中设定。\n\n**训练集**\n\n`train_clean_speech` 和 `train_noise` 目录中波形文件的命名没有限制。每个目录中的波形数量可以不同。Deep Xi 框架会在每个 epoch 中使用一次 `train_clean_speech` 目录中的所有波形。对于每个小批量中的 `train_clean_speech` 波形，Deep Xi 框架会从 `train_noise` 目录中随机选择一段长度不小于 `train_clean_speech` 波形的噪声片段，并以随机选定的信噪比水平将其添加到 `train_clean_speech` 波形中（信噪比范围可在 `run.sh` 中设置）。\n\n**验证集**\n\n由于验证集的内容必须保持不变，因此对 `val_clean_speech` 和 `val_noise` 目录中的波形有一些限制。这两个目录中的波形数量必须相同。`val_clean_speech` 中的每一条波形只能对应 `val_noise` 中的一条波形，即构成一对清洁语音和噪声的验证波形。每对验证波形必须具有相同的文件名和样本数。此外，每对验证波形的文件名末尾还需注明它们将被混合的信噪比水平（dB），格式为 `_XdB`，其中 `X` 替换为所需的信噪比值。例如，`val_clean_speech\u002FNAME_-5dB.wav` 和 `val_noise\u002FNAME_-5dB.wav`。一对验证波形的完整文件名示例如下：`val_clean_speech\u002F198_19-198-0003_Machinery17_15dB.wav` 和 `val_noise\u002F198_19-198-0003_Machinery17_15dB.wav`。\n\n**测试集**\n\n`test_noisy_speech` 目录中波形文件的命名没有限制。如果您只需要 Deep Xi 的推理输出，即执行 `.\u002Frun.sh VER=\"ANY_NAME\" INFER=1`，那么只需遵循此规则即可。但如果您希望通过 `.\u002Frun.sh VER=\"ANY_NAME\" TEST=1` 获取客观评分，则需要在 `test_clean_speech` 目录中放置用于客观测量的参考波形。`test_clean_speech` 和 `test_noisy_speech` 中相互对应的波形必须拥有相同的样本数（即相同的序列长度）。`test_clean_speech` 中与某条 `test_noisy_speech` 波形相对应的文件名必须包含在后者文件名中。例如，如果一条测试噪声波形的文件名为 `test_noisy_speech\u002F61-70968-0000_SIGNAL021_-5dB.wav`，那么与其对应的清洁语音波形文件名就必须包含在测试噪声波形文件名中：`test_clean_speech\u002F61-70968-0000.wav`。这是因为同一条清洁语音波形可能被用作多条测试噪声波形的参考（例如，`test_noisy_speech\u002F61-70968-0000_SIGNAL021_0dB.wav`、`test_noisy_speech\u002F61-70968-0000_SIGNAL021_5dB.wav` 和 `test_noisy_speech\u002F61-70968-0000_SIGNAL021_10dB.wav` 都是以先前示例中的清洁语音波形为参考的测试噪声波形）。\n\n引用指南\n-----\n请根据您的使用情况引用以下文献：\n* Deep Xi 框架最初在 [1] 中提出。\n* 如果使用 Deep Xi-MHANet，请同时引用 [1] 和 [6]。\n* 如果使用 Deep Xi-ResLSTM，请引用 [1]。\n* 如果使用 Deep Xi-ResNet，请引用 [1] 和 [2]。\n* 如果使用 DeepMMSE，请引用 [2]。\n* 如果使用 Deep Xi-RDLNet，请引用 [1] 和 [3]。\n* 如果使用 Deep Xi 数据集，请引用 [4]。\n* 如果使用来自 10.1016\u002Fj.specom.2019.06.002 的测试集，请引用 [5]。\n\n[1] [A. Nicolson, K. K. Paliwal, 基于深度学习的最小均方误差语音增强方法，语音通信 111 (2019) 44–55，https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002。](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002)\n\n[2] [Q. Zhang, A. M. Nicolson, M. Wang, K. Paliwal 和 C. Wang，“DeepMMSE：一种基于深度学习的 MMSE 噪声功率谱密度估计方法”，载于 IEEE\u002FACM 音频、语音和语言处理汇刊，第 28 卷，第 1404–1415 页，2020 年，doi: 10.1109\u002FTASLP.2020.2987441。](https:\u002F\u002Fieeexplore.ieee.org\u002Fdocument\u002F9066933)\n\n[3] [Mohammad Nikzad、Aaron Nicolson、Yongsheng Gao、Jun Zhou、Kuldip K. Paliwal 和 Fanhua Shang。“用于语音增强的深度残差密集网格网络”。载于 AAAI 人工智能大会论文集，第 8552–8559 页，2020 年。](https:\u002F\u002Fwww.aaai.org\u002FPapers\u002FAAAI\u002F2020GB\u002FAAAI-NikzadM.6844.pdf)\n\n[4] Aaron Nicolson，“Deep Xi 数据集”，IEEE Dataport，2020 年。[在线]。网址：http:\u002F\u002Fdx.doi.org\u002F10.21227\u002F3adt-pb04。\n\n[5] Aaron Nicolson，“来自 10.1016\u002Fj.specom.2019.06.002 的测试集”，IEEE Dataport，2020 年。[在线]。网址：http:\u002F\u002Fdx.doi.org\u002F10.21227\u002F0ppr-yy46。\n\n[6] [A. Nicolson、K. K. Paliwal，“用于因果语音增强的掩码多头自注意力机制”，语音通信 125 (2020) 80–96，https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2019.06.002。](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.specom.2020.10.004)","# DeepXi 快速上手指南\n\nDeepXi 是一个基于深度学习的先验信噪比（*a priori* SNR）估计框架，主要用于语音增强、噪声估计、掩膜估计以及作为鲁棒自动语音识别（ASR）的前端。本项目基于 TensorFlow 2\u002FKeras 实现。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux (推荐) 或 macOS\n*   **Python**: 3.6 或更高版本\n*   **GPU (可选但推荐)**: 需要安装 CUDA 和 cuDNN。\n    *   原文示例环境为 `CUDA 10.1`，建议根据您安装的 TensorFlow GPU 版本匹配对应的 CUDA 版本。\n    *   若使用 GPU，需配置环境变量（参考原文）：\n        ```bash\n        export PATH=\u002Fusr\u002Flocal\u002Fcuda-10.1\u002Fbin${PATH:+:${PATH}}\n        export LD_LIBRARY_PATH=\u002Fusr\u002Flocal\u002Fcuda-10.1\u002Flib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}\n        ```\n*   **前置依赖**:\n    *   TensorFlow 2.x\n    *   Keras\n    *   NumPy, SciPy, Matplotlib 等科学计算库\n\n> **国内加速建议**：\n> 在安装 Python 依赖时，建议使用清华或阿里镜像源以加快下载速度：\n> ```bash\n> pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 安装步骤\n\n1.  **克隆仓库**\n    从 GitHub 获取源代码：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi.git\n    cd DeepXi\n    ```\n\n2.  **安装 Python 依赖**\n    确保已安装 `pip`，然后运行：\n    ```bash\n    pip install -r requirements.txt\n    ```\n    *(注：如果项目中没有 `requirements.txt`，请手动安装核心依赖：`pip install tensorflow numpy scipy matplotlib`)*\n\n3.  **验证模型文件**\n    预训练模型位于 `model` 目录中。确保该目录下存在以下模型文件之一（如 `mhanet-1.1c` 或 `resnet-1.1n`）：\n    ```bash\n    ls model\u002F\n    ```\n\n## 基本使用\n\nDeepXi 的核心功能是通过脚本进行推理或评估。以下是基于现有脚本的最简使用流程。\n\n### 1. 准备输入音频\n确保你有一段带噪的语音文件（例如 `noisySpeech.wav`）。DeepXi 通常处理短时幅度谱，输入音频应为单声道 WAV 格式。\n\n### 2. 运行评估\u002F推理示例\n项目提供了 `eval_example.m` (MATLAB) 用于生成训练示例图示，但在 Python 环境中，主要通过修改 `run.sh` 或直接调用 Python 脚本来加载模型并进行增强。\n\n由于 README 主要展示了配置脚本 `run.sh`，最直接的用法是查看并执行该脚本中的对应配置来加载预训练模型。\n\n**使用预训练模型进行语音增强（概念示例）：**\n\n你需要编写或修改一个 Python 脚本来加载模型并处理音频。以下是一个基于 DeepXi 逻辑的最小化推理代码示例：\n\n```python\nimport tensorflow as tf\nimport numpy as np\nimport scipy.io.wavfile as wav\nfrom deepxi.model import load_model  # 假设模块路径，具体需参考源码结构\nfrom deepxi.utils import stft, istft # 假设的工具函数\n\n# 1. 加载预训练模型 (以 ResNet 为例)\n# 模型路径需指向 model 目录下的具体权重文件\nmodel_path = 'model\u002Fresnet-1.1n' \nmodel = tf.keras.models.load_model(model_path)\n\n# 2. 读取带噪语音\nfs, noisy_audio = wav.read('noisySpeech.wav')\nnoisy_audio = noisy_audio.astype(np.float32) \u002F 32768.0 # 归一化\n\n# 3. 计算短时傅里叶变换 (STFT) 获取幅度谱\n# 注意：具体的帧长、帧移需与模型训练时保持一致\nnoisy_spec = stft(noisy_audio) \nnoisy_mag = np.abs(noisy_spec)\n\n# 4. 模型推理：预测映射后的先验 SNR\n# 输入通常需要扩展维度以匹配批次大小 [batch, time, freq]\ninput_data = np.expand_dims(noisy_mag, axis=0)\nmapped_xi_hat = model.predict(input_data)\n\n# 5. 反映射得到真实的先验 SNR 估计值\n# 此处需使用训练集统计量进行逆 CDF 变换 (参考原文 Equation 12)\n# xi_hat = inverse_cdf(mapped_xi_hat, stats_mean, stats_std) \n# (具体实现请参考源码中的 eval_stats.m 或对应的 Python 工具类)\n\n# 6. 计算增益函数 (如 MMSE-LSA) 并重构语音\n# gain = compute_gain(xi_hat, noisy_mag)\n# clean_mag = gain * noisy_mag\n# clean_spec = clean_mag * np.exp(1j * np.angle(noisy_spec))\n# clean_audio = istft(clean_spec)\n\n# 7. 保存结果\n# wav.write('enhancedSpeech.wav', fs, (clean_audio * 32768).astype(np.int16))\nprint(\"推理完成。请参考源码中 run.sh 调用的具体 Python 脚本执行完整流程。\")\n```\n\n> **注意**：由于 DeepXi 强依赖于特定的数据预处理（如 CDF 映射统计量），强烈建议直接参考项目中的 `run.sh` 脚本，它包含了调用训练或评估的具体命令行参数和入口脚本。对于初次使用者，可以先运行 `run.sh` 中定义的评估命令来测试预训练模型的效果。\n\n### 3. 查看结果\n处理后的音频将输出为增强的语音波形。您可以对比原始带噪音频和增强后音频的频谱图，或使用 PESQ\u002FSTOI 等指标进行评估（项目 `log\u002Fresults` 目录提供了相关评测脚本的输出示例）。","某智能客服团队正在优化其语音机器人，以应对嘈杂呼叫中心环境下的用户指令识别难题。\n\n### 没有 DeepXi 时\n- **语音清晰度差**：在背景人声嘈杂或电话线路噪声大时，传统降噪算法难以区分噪声与语音，导致输出音频依然模糊不清。\n- **识别率骤降**：由于输入音频信噪比（SNR）估计不准，后端自动语音识别（ASR）引擎频繁将“查询余额”误听为无关词汇，意图识别失败率高。\n- **开发调优困难**：工程师需要手动调整复杂的信号处理参数来适配不同噪声场景，耗时且难以泛化到新环境。\n- **实时性受限**：为了追求一定的降噪效果，往往引入较大的处理延迟，影响人机交互的流畅体验。\n\n### 使用 DeepXi 后\n- **精准语音增强**：DeepXi 利用深度学习准确估算先验信噪比，有效分离人声与背景噪声，显著提升了输出音频的纯净度。\n- **鲁棒性大幅提升**：作为 ASR 的前端处理器，DeepXi 提供的干净语谱图让识别引擎在 -5dB 低信噪比下仍能保持高准确率，大幅减少误识。\n- **自适应能力强**：基于训练好的模型（如 MHANet），DeepXi 能自动适应各种未见过的噪声类型，无需人工反复调试参数。\n- **高效端到端集成**：依托 TensorFlow 2\u002FKeras 实现，团队可轻松将其嵌入现有流水线，在保证低延迟的同时实现因果语音增强。\n\nDeepXi 通过高精度的先验信噪比估计，从根本上解决了复杂噪声环境下的语音增强难题，让智能语音系统在真实世界中听得清、认得准。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fanicolson_DeepXi_b8af65d7.png","anicolson","Aaron Nicolson","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fanicolson_71c41796.jpg","A postdoctoral research fellow stationed at the Australian e-Health Research Centre, CSIRO, Australia.","CSIRO","Brisbane, Australia","aaron.nicolson@csiro.au",null,"https:\u002F\u002Fgithub.com\u002Fanicolson",[82,86,90],{"name":83,"color":84,"percentage":85},"MATLAB","#e16737",60.1,{"name":87,"color":88,"percentage":89},"Python","#3572A5",30.3,{"name":91,"color":92,"percentage":93},"Shell","#89e051",9.6,523,126,"2026-03-18T13:49:54","MPL-2.0","Linux","需要 NVIDIA GPU（基于注释中的 CUDA 10.1 路径推断），具体显存大小未说明，建议 CUDA 10.1+","未说明",{"notes":102,"python":100,"dependencies":103},"该项目基于 TensorFlow 2\u002FKeras 实现。README 开头的注释中提到了 CUDA 10.1 的环境变量配置，暗示主要支持 Linux 环境下的 NVIDIA GPU 加速。文中提到不同模型参数量在 200 万到 1000 万之间。所有可用模型均需在 Deep Xi 数据集上训练或使用预训练权重。",[104,105],"TensorFlow 2","Keras",[107,14],"音频",[109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128],"resnet","tensorflow","speech-enhancement","robust-asr","deepxi","a-priori-snr-estimator","mmse","minimum-mean-square-error","mmse-lsa","residual-networks","deep-xi","speech-separation","noise-estimation","source-separation","deepmmse","tcn","keras","attention","mhanet","multi-head-attention","2026-03-27T02:49:30.150509","2026-04-14T20:44:51.369745",[132,137,142,146,151,155],{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},33317,"训练过程中出现 'mbatch_err: nan' 错误怎么办？","这通常与训练数据的选择有关。TIMIT 语料库包含较短的语音文件，而 ResNet 的接收场（receptive field）可能大于这些文件的长度，导致计算异常。此外，在选择噪声文件时没有特定标准，且未去除噪声中的有声部分（voiced sections）。建议检查训练数据长度是否匹配模型接收场，并考虑在选取噪声时人为去除包含人声的部分。维护者表示后续更新将把帧级层归一化（frame-wise layer norm）改为序列级层归一化（sequence-wise layer norm）以解决此问题。","https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fissues\u002F11",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},33318,"运行时报错 'ValueError: Sample larger than population or is negative' 如何解决？","该错误是因为设置的样本大小（sample_size）超过了可用的噪声文件数量。例如，如果样本大小设为 1000，但噪声源只有 108 个，就会报错。解决方法是减小样本大小，或者增加噪声文件目录下的噪声文件数量，确保噪声文件总数大于或等于设定的样本大小。","https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fissues\u002F25",{"id":143,"question_zh":144,"answer_zh":145,"source_url":141},33319,"测试集文件夹中的 'test noise' 和 'test clean speech' 文件需要不同吗？","不需要不同。测试集中的 'test noise' 和 'test clean speech' 文件夹用于生成测试用的带噪语音（test_noisy_speech），其文件内容可以相同，程序会将它们混合以创建测试数据。",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},33320,"DeepXi 输出的增强语音能否直接用于训练 Deep Speech 等 ASR 模型？","可以，但需要注意参数匹配。DeepXi 默认使用 32ms 的窗长和 16ms 的帧移，而 Deep Speech 通常使用 25ms 窗长和 10ms 帧移。为了获得最佳效果，建议调整其中一方的参数使两者一致。可以直接从增强后的语音幅度谱计算 MFCC 系数输入给 ASR 模型。另一种思路是直接用带噪语音训练 Deep Speech，让它自己学习去噪，但先通过 DeepXi 增强再输入可能效果更好。","https:\u002F\u002Fgithub.com\u002Fanicolson\u002FDeepXi\u002Fissues\u002F20",{"id":152,"question_zh":153,"answer_zh":154,"source_url":150},33321,"是否可以使用 MFCC 特征代替幅度谱来训练 DeepXi 以减少参数量？","理论上可以尝试用 MFCC 特征训练 DeepXi 并将增强后的 MFCC 直接送入 ASR，这样可以减少网络参数。但在实施时需注意特征提取参数（如窗长、帧移）与下游 ASR 模型的兼容性。目前官方代码主要基于幅度谱（magnitude spectrum），若改用 MFCC 需自行修改特征提取和网络输入部分代码。",{"id":156,"question_zh":157,"answer_zh":158,"source_url":136},33322,"在实时场景下只使用少量帧进行推理会影响效果吗？","是的，会有影响。虽然在某些实时场景中必须只使用少量帧进行推理，但实验表明这种做法的效果通常不如使用完整语音片段。尝试过多种方法优化少帧推理，但性能往往下降明显。如果条件允许，建议使用完整的语音片段以获得最佳去噪效果。",[]]