[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-andabi--music-source-separation":3,"tool-andabi--music-source-separation":64},[4,23,32,40,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85092,2,"2026-04-10T11:13:16",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},4128,"GPT-SoVITS","RVC-Boss\u002FGPT-SoVITS","GPT-SoVITS 是一款强大的开源语音合成与声音克隆工具，旨在让用户仅需极少量的音频数据即可训练出高质量的个性化语音模型。它核心解决了传统语音合成技术依赖海量录音数据、门槛高且成本大的痛点，实现了“零样本”和“少样本”的快速建模：用户只需提供 5 秒参考音频即可即时生成语音，或使用 1 分钟数据进行微调，从而获得高度逼真且相似度极佳的声音效果。\n\n该工具特别适合内容创作者、独立开发者、研究人员以及希望为角色配音的普通用户使用。其内置的友好 WebUI 界面集成了人声伴奏分离、自动数据集切片、中文语音识别及文本标注等辅助功能，极大地降低了数据准备和模型训练的技术门槛，让非专业人士也能轻松上手。\n\n在技术亮点方面，GPT-SoVITS 不仅支持中、英、日、韩、粤语等多语言跨语种合成，还具备卓越的推理速度，在主流显卡上可实现实时甚至超实时的生成效率。无论是需要快速制作视频配音，还是进行多语言语音交互研究，GPT-SoVITS 都能以极低的数据成本提供专业级的语音合成体验。",56375,3,"2026-04-05T22:15:46",[21],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},2863,"TTS","coqui-ai\u002FTTS","🐸TTS 是一款功能强大的深度学习文本转语音（Text-to-Speech）开源库，旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点，让高质量的语音生成变得触手可及。\n\n无论是希望快速集成语音功能的开发者，还是致力于探索前沿算法的研究人员，亦或是需要定制专属声音的数据科学家，🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型，让用户能够即刻上手，还提供了完善的工具链，支持用户利用自有数据训练新模型或对现有模型进行微调，轻松实现特定风格的声音克隆。\n\n在技术亮点方面，🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言，并在整体性能上大幅提升，实现了低于 200 毫秒的超低延迟流式输出，极大提升了实时交互体验。此外，它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型，并支持调用上千个 Fairseq 模型，展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具，🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。",44971,"2026-04-03T14:47:02",[21,20,13],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":29,"last_commit_at":46,"category_tags":47,"status":22},2375,"LocalAI","mudler\u002FLocalAI","LocalAI 是一款开源的本地人工智能引擎，旨在让用户在任意硬件上轻松运行各类 AI 模型，包括大语言模型、图像生成、语音识别及视频处理等。它的核心优势在于彻底打破了高性能计算的门槛，无需昂贵的专用 GPU，仅凭普通 CPU 或常见的消费级显卡（如 NVIDIA、AMD、Intel 及 Apple Silicon）即可部署和运行复杂的 AI 任务。\n\n对于担心数据隐私的用户而言，LocalAI 提供了“隐私优先”的解决方案，确保所有数据处理均在本地基础设施内完成，无需上传至云端。同时，它完美兼容 OpenAI、Anthropic 等主流 API 接口，这意味着开发者可以无缝迁移现有应用，直接利用本地资源替代云服务，既降低了成本又提升了可控性。\n\nLocalAI 内置了超过 35 种后端支持（如 llama.cpp、vLLM、Whisper 等），并集成了自主 AI 代理、工具调用及检索增强生成（RAG）等高级功能，且具备多用户管理与权限控制能力。无论是希望保护敏感数据的企业开发者、进行算法实验的研究人员，还是想要在个人电脑上体验最新 AI 技术的极客玩家，都能通过 LocalAI 获",44782,"2026-04-02T22:14:26",[13,21,19,17,20,14,16],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":29,"last_commit_at":54,"category_tags":55,"status":22},3108,"bark","suno-ai\u002Fbark","Bark 是由 Suno 推出的开源生成式音频模型，能够根据文本提示创造出高度逼真的多语言语音、音乐、背景噪音及简单音效。与传统仅能朗读文字的语音合成工具不同，Bark 基于 Transformer 架构，不仅能模拟说话，还能生成笑声、叹息、哭泣等非语言声音，甚至能处理带有情感色彩和语气停顿的复杂文本，极大地丰富了音频表达的可能性。\n\n它主要解决了传统语音合成声音机械、缺乏情感以及无法生成非语音类音效的痛点，让创作者能通过简单的文字描述获得生动自然的音频素材。无论是需要为视频配音的内容创作者、探索多模态生成的研究人员，还是希望快速原型设计的开发者，都能从中受益。普通用户也可通过集成的演示页面轻松体验其神奇效果。\n\n技术亮点方面，Bark 支持商业使用（MIT 许可），并在近期更新中实现了显著的推理速度提升，同时提供了适配低显存 GPU 的版本，降低了使用门槛。此外，社区还建立了丰富的提示词库，帮助用户更好地驾驭模型生成特定风格的声音。只需几行 Python 代码，即可将创意文本转化为高质量音频，是连接文字与声音世界的强大桥梁。",39067,"2026-04-04T03:33:35",[21],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":29,"last_commit_at":62,"category_tags":63,"status":22},5908,"ChatTTS","2noise\u002FChatTTS","ChatTTS 是一款专为日常对话场景打造的生成式语音模型，特别适用于大语言模型助手等交互式应用。它主要解决了传统文本转语音（TTS）技术在对话中缺乏自然感、情感表达单一以及难以处理停顿、笑声等细微语气的问题，让机器生成的语音听起来更像真人在聊天。\n\n这款工具非常适合开发者、研究人员以及希望为应用增添自然语音交互功能的设计师使用。普通用户也可以通过社区开发的衍生产品体验其能力。ChatTTS 的核心亮点在于其对对话任务的深度优化：它不仅支持中英文双语，还能精准控制韵律细节，自动生成自然的 laughter（笑声）、pauses（停顿）和 interjections（插入语），从而实现多说话人的互动对话效果。在韵律表现上，ChatTTS 超越了大多数开源 TTS 模型。目前开源版本基于 4 万小时数据预训练而成，虽主要用于学术研究与教育目的，但已展现出强大的潜力，并支持流式音频生成与零样本推理，为后续的多情绪控制等进阶功能奠定了基础。",39042,"2026-04-09T11:54:03",[19,17,20,21],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":81,"owner_twitter":79,"owner_website":79,"owner_url":82,"languages":83,"stars":88,"forks":89,"last_commit_at":90,"license":79,"difficulty_score":91,"env_os":92,"env_gpu":93,"env_ram":92,"env_deps":94,"category_tags":101,"github_topics":79,"view_count":10,"oss_zip_url":79,"oss_zip_packed_at":79,"status":22,"created_at":102,"updated_at":103,"faqs":104,"releases":135},6800,"andabi\u002Fmusic-source-separation","music-source-separation","Deep neural networks for separating singing voice from music written in TensorFlow","music-source-separation 是一个基于 TensorFlow 构建的开源项目，旨在利用深度神经网络将流行音乐中的人声与伴奏进行分离。它主要解决了从单声道录音中提取清晰演唱声音的技术难题，为音乐信息检索、音频处理及创作提供了高质量的数据基础。\n\n该项目非常适合人工智能开发者、音频算法研究人员以及对音乐科技感兴趣的学生使用。由于代码依赖特定版本的 TensorFlow 和 librosa 库，且涉及模型训练与评估流程，使用者最好具备一定的编程基础和深度学习知识。\n\n在技术实现上，music-source-separation 复现了经典的深度循环神经网络（RNN）架构，包含三层 RNN、全连接层以及时频掩码层。其核心亮点在于采用短时傅里叶变换（STFT）处理音频频谱，并通过引入“区分项”的损失函数，有效防止分离出的人声与伴奏信号趋于相似，从而提升分离纯度。项目基于 iKala 和 MIR-1K 数据集训练，并提供了完整的训练、评估脚本及 TensorBoard 可视化支持，是研究歌声分离领域的优质参考范例。","# Deep Neural Network for Music Source Separation in Tensorflow\n\n>__This work is from [Jeju Machine Learning Camp 2017](http:\u002F\u002Fmlcampjeju.kakao.com)__\n>* Co-author: Mark Kwon (hjkwon0609@gmail.com)\n>* Final work will be done in Jeju ML Camp. Please check [here](https:\u002F\u002Fgithub.com\u002Fhjkwon0609\u002Fsource_separation_ml_jeju).\n>* [__Take a look at the demo!__](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Cx7Me0Ayz1I&feature=youtu.be)\n\n## Intro\nRecently, deep neural networks have been used in numerous fields and improved quality of many tasks in the fields. \nApplying deep neural nets to MIR(Music Information Retrieval) tasks also provided us quantum performance improvement.\nMusic source separation is a kind of task for separating voice from music such as pop music.\nIn this project, I implement a deep neural network model for music source separation in Tensorflow.\n\n## Implementations\n* I used Posen's deep recurrent neural network(RNN) model [2, 3].\n  * 3 RNN layers + 2 dense layer + 2 time-frequency masking layer\n* I used iKala dataset introduced by [1] and MIR-1K dataset which is public together when training.\n\n## Requirements\n* Numpy >= 1.3.0\n* TensorFlow == 1.2\n* librosa == 0.5.1\n\n## Usage\n* Configuration\n  * config.py: set dataset path appropriately.\n* Training\n  * ```python train.py```\n  * check the loss graph in Tensorboard.\n* Evaluation\n  * ``` python eval.py```\n  * check the result in Tensorboard (audio tab).\n\n# \\[Related Paper\\] Singing-Voice Separation From Monaural Recordings Using Deep Recurrent Neural Networks (2014) \u003Csup>\\[3\\]\u003C\u002Fsup>\n## Proposed Methods\n### Overall process\n* Waveform of a music(the mixture of voice and background music) is transformed to magnitude and phase spectra by Short-Time Fourier Transformation(STFT).\n* Only magnitude spectra are processed as input of the RNN layer.\n* Estimated magnitude spectra of each sources and phase spectra of the mixture are transformed to waveform of each sources by ISTFT(inverse STFT).\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_c893560dda97.png\" width=\"75%\">\u003C\u002Fp>\n\n### Model\n* RNN layers (3 layers)\n* Dense layer\n  * 1 for each source\n* Time-frequency masking layer (normalization)\n  * 1 for each source\n  * no non-linearity\n  * src1's magnitude + src2's magnitude = input's magnitude\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_d777329efccb.png\" width=\"75%\">\u003C\u002Fp>\n\n### Loss\n* Mean squared error(MSE) or KL divergence between estimated magnitude and ground true are used as the loss function.\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_afd348a66b76.png\" height=\"30px\">\u003C\u002Fp>\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_bcd970f162a9.png\" height=\"30px\">\u003C\u002Fp>\n\n* Further, to prevent different sources to get similar each other, 'discrimination' term is considered additionally.\n  * The discrimination weight(r) should be carefully chosen because it causes ignoring the first term when training(large r (e.g. r >= 1) makes the result bad)\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_b881fb908868.png\" height=\"30px\">\u003C\u002Fp>\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_c1b2b5694b9b.png\" height=\"30px\">\u003C\u002Fp>\n\n\n## Experiments\n### Settings\n* [MIR-1K dataset](https:\u002F\u002Fsites.google.com\u002Fsite\u002Funvoicedsoundseparation\u002Fmir-1k) is used.\n  * 1000 song clip with a sample rate of 16KHz, with duration from 4 to 13 secs.\n  * extracted from 110 Karaoke songs performed by both male and female amateurs.\n  * singing voice and background music in different channels.\n* Data augmentation\n  * circularly shift the singing voice and mix them with the background music.\n* 1024 points STFT with 50% overlap (hop size=512 points)\n* L-BFGS optimizer rather than gradient decent optimizers\n* Concatenating neighboring 1 frame\n  * To enrich context, previous and next frames are concatenated to current frame.\n### Evaluation Metric\n* [BSS-EVAL 3.0 metrics](https:\u002F\u002Fhal.inria.fr\u002Finria-00544230\u002Fdocument) are used.\n* (__v'__ = estimated voice, __v__ = ground truth voice, __m__ = ground truth music, __x__ = the mixture)\n  * Source to Distortion Ratio (SDR) or GSDR(length weighted)\n    * SDR(__v__) = how similar __v'__ with __v__?\n  * Source to Interferences Ratio (SIR) or GSIR(length weighted)\n    * SIR(__v__) = how discriminative __v'__ with __m__?\n  * Sources to Artifacts Ratio (SAR) or GSAR(length weighted)\n  * NSDR(Normalized SDR) or GNSDR(length weighted)\n    * SDR improvement between the estimated voice and the mixture.\n    * SDR(__v'__, __v__) - SDR(__x__, __v__)\n### Results\n* The proposed neural network models achieve 2.30-2.48 dB GNSDR gain, 4.32-5.42 dB GSIR gain with similar GSAR performance, compared with conventional approaches. (quantum jump!!!)\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_cc16ec1abd88.png\" width=\"50%\">\u003C\u002Fp>\n\n* Concatenating neighboring 1 frame provides better results.\nWe can make a assumption that more sufficient information than single frame provides more hint to the neural net.\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_4207c92a57f5.png\" width=\"50%\">\u003C\u002Fp>\n\n* The RNN-based models, in fact, do not make any plausible improvement comparing with DNN.\nBut discriminative training with carefully chosen weight(r) provides a bit better performance in the experiments.\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_4765cd466ae3.png\" width=\"50%\">\u003C\u002Fp>\n\n* A visualization of magnitude spectrogram (in log scale) for the mixture, voice, and background music.\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_e9216c1b206f.png\" width=\"100%\">\u003C\u002Fp>\n\n# \\[Related Paper\\] Music Signal Processing Using Vector Product Neural Networks (2017) \u003Csup>\\[1\\]\u003C\u002Fsup>\n## Approach\n* Some transformation methods are applied to enrich the information for each frame\n  * Instead of Posen's approach(simply concatenate previous-k and subsequent-k frames)\n* Vector Product Neural Network(VPNN) proposed by [4] is used.\n  * In VPNN, the input data, weights, and biases are all three-dimensional vectors\n  * each elements(vectors) are operated by cross product of vectors.\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_9fb13530d699.png\" width=\"50%\">\u003C\u002Fp>\n\n### Context-windowed Transformation (WVPNN)\n* previous, current, and subsequent frame as 3-dimensional vector\n* take only second value(current frame) as output in 3-dimensional output vector\n### Spectral-color Transformation (CVPNN)\n* Transformation the magnitude to RGB colored value (3-dimensional vector)\n  * x is the magnitude of each t-f unit,\n  * n a scalar to bias the generation of RGB values.\n    * empirically set n to 0.0938 in this work.\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_fb49d214a5c7.png\" width=\"50%\">\u003C\u002Fp>\n\n### Loss\n* MSE loss is used like Posen's work.\n## Experiments\n### Settings\n* [iKala dataset](http:\u002F\u002Fmac.citi.sinica.edu.tw\u002Fikala\u002F) is used.\n  * 252 30-second excerpts sampled from 206 iKala songs\n* 63 training clips and 189 testing clips. \n* All clips are downsampled to 16000 Hz. \n* 1024-point window and a 256-point hop size.\n* VPNN of 3-layers and 512 units each layer.\n* time frequency masking applied.\n\n### Evaluation Metric\n[GNSDR, GSIR, GSAR](https:\u002F\u002Fhal.inria.fr\u002Finria-00544230\u002Fdocument) are used.\n### Results\n* CVPNN and WVPNN performs better than DNNs which have same size of weights.\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_36896dabeac7.png\" width=\"75%\">\u003C\u002Fp>\n\n# References\n1. Zhe-Cheng Fan, Tak-Shing T. Chan, Yi-Hsuan Yang, and Jyh-Shing R. Jang, \"[Music Signal Processing Using Vector Product\nNeural Networks](http:\u002F\u002Fmac.citi.sinica.edu.tw\u002F~yang\u002Fpub\u002Ffan17dlm.pdf)\", Proc. of the First Int. Workshop on Deep Learning and Music joint with IJCNN, May, 2017\n2. P.-S. Huang, M. Kim, M. Hasegawa-Johnson, P. Smaragdis, \"[Joint Optimization of Masks and Deep Recurrent Neural Networks for Monaural Source Separation](http:\u002F\u002Fparis.cs.illinois.edu\u002Fpubs\u002Fhuang-ismir2014.pdf)\", IEEE\u002FACM Transactions on Audio, Speech, and Language Processing, vol. 23, no. 12, pp. 2136–2147, Dec. 2015\n3. P.-S. Huang, M. Kim, M. Hasegawa-Johnson, P. Smaragdis, \"[Singing-Voice Separation From Monaural Recordings Using Deep Recurrent Neural Networks](https:\u002F\u002Fposenhuang.github.io\u002Fpapers\u002FDRNN_ISMIR2014.pdf)\" in International Society for Music Information Retrieval Conference (ISMIR) 2014.\n4. Tohru Nitta, \"[A backpropagation algorithm for neural networks based an 3D vector product. In Proc. IJCNN](https:\u002F\u002Fstaff.aist.go.jp\u002Ftohru-nitta\u002FIJCNN93-VP.pdf)\", Proc. of IJCAI, 2007.","# 基于 TensorFlow 的音乐源分离深度神经网络\n\n>__本工作来自 [济州机器学习营 2017](http:\u002F\u002Fmlcampjeju.kakao.com)__\n>* 共同作者：Mark Kwon (hjkwon0609@gmail.com)\n>* 最终成果将在济州 ML 营完成。请查看 [这里](https:\u002F\u002Fgithub.com\u002Fhjkwon0609\u002Fsource_separation_ml_jeju)。\n>* [__观看演示！__](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Cx7Me0Ayz1I&feature=youtu.be)\n\n## 简介\n近年来，深度神经网络已被广泛应用于各个领域，并显著提升了多项任务的性能。将其应用于音乐信息检索（MIR）任务同样带来了质的飞跃。音乐源分离是指从音乐中分离出人声的任务，例如流行音乐中的主唱部分。在本项目中，我使用 TensorFlow 实现了一个用于音乐源分离的深度神经网络模型。\n\n## 实现细节\n* 我采用了 Posen 提出的深度循环神经网络（RNN）模型 [2, 3]。\n  * 包含 3 层 RNN、2 层全连接层和 2 层时频掩码层。\n* 训练时使用了 [1] 中介绍的 iKala 数据集以及公开的 MIR-1K 数据集。\n\n## 环境要求\n* Numpy >= 1.3.0\n* TensorFlow == 1.2\n* librosa == 0.5.1\n\n## 使用方法\n* 配置\n  * config.py：请正确设置数据集路径。\n* 训练\n  * ```python train.py```\n  * 在 TensorBoard 中查看损失曲线。\n* 评估\n  * ```python eval.py```\n  * 在 TensorBoard 的音频标签页中查看结果。\n\n# \\[相关论文\\] 使用深度循环神经网络从单声道录音中分离歌声（2014） \u003Csup>\\[3\\]\u003C\u002Fsup>\n## 方法概述\n### 整体流程\n* 将音乐波形（人声与背景音乐的混合信号）通过短时傅里叶变换（STFT）转换为幅度谱和相位谱。\n* 仅将幅度谱作为 RNN 层的输入进行处理。\n* 利用逆短时傅里叶变换（ISTFT），结合各分离源的估计幅度谱和混合信号的相位谱，还原出各分离源的波形。\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_c893560dda97.png\" width=\"75%\">\u003C\u002Fp>\n\n### 模型结构\n* RNN 层（3 层）\n* 全连接层\n  * 每个分离源对应一个\n* 时频掩码层（归一化）\n  * 每个分离源对应一个\n  * 不包含非线性激活函数\n  * 源1的幅度 + 源2的幅度 = 输入信号的幅度\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_d777329efccb.png\" width=\"75%\">\u003C\u002Fp>\n\n### 损失函数\n* 使用估计幅度谱与真实幅度谱之间的均方误差（MSE）或 KL 散度作为损失函数。\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_afd348a66b76.png\" height=\"30px\">\u003C\u002Fp>\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_bcd970f162a9.png\" height=\"30px\">\u003C\u002Fp>\n\n* 此外，为了防止不同分离源过于相似，还引入了“区分性”项。\n  * 区分性权重（r）需谨慎选择，因为过大的 r 值会导致训练过程中忽略第一项损失（例如 r ≥ 1 会使结果变差）。\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_b881fb908868.png\" height=\"30px\">\u003C\u002Fp>\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_c1b2b5694b9b.png\" height=\"30px\">\u003C\u002Fp>\n\n\n## 实验\n### 设置\n* 使用了 [MIR-1K 数据集](https:\u002F\u002Fsites.google.com\u002Fsite\u002Funvoicedsoundseparation\u002Fmir-1k)。\n  * 包含 1000 个采样率为 16KHz、时长 4 至 13 秒的歌曲片段。\n  * 数据来源于 110 首由男女业余歌手演唱的卡拉 OK 曲目。\n  * 人声与背景音乐分别位于不同的声道。\n* 数据增强\n  * 对人声进行循环移位后与背景音乐混合。\n* 使用 1024 点 STFT，重叠率为 50%（步长为 512 点）。\n* 优化器采用 L-BFGS，而非梯度下降类优化器。\n* 连接相邻帧\n  * 为丰富上下文信息，将当前帧与其前后帧拼接在一起。\n### 评价指标\n* 使用了 [BSS-EVAL 3.0 指标](https:\u002F\u002Fhal.inria.fr\u002Finria-00544230\u002Fdocument)。\n* (__v'__ = 估计的人声，__v__ = 真实的人声，__m__ = 真实的背景音乐，__x__ = 混合信号)\n  * 信干比（SDR）或加权信干比（GSDR）\n    * SDR(__v__) 表示 __v'__ 与 __v__ 的相似程度如何？\n  * 信噪比（SIR）或加权信噪比（GSIR）\n    * SIR(__v__) 表示 __v'__ 与 __m__ 的区分度如何？\n  * 信杂比（SAR）或加权信杂比（GSAR）\n  * 归一化信干比（NSDR）或加权归一化信干比（GNSDR）\n    * 表示估计的人声相对于混合信号的信干比提升。\n    * SDR(__v'__, __v__) - SDR(__x__, __v__)\n### 结果\n* 相较于传统方法，所提出的神经网络模型在 GNSDR 上提升了 2.30–2.48 dB，在 GSIR 上提升了 4.32–5.42 dB，同时保持了相近的 GSAR 性能。（质的飞跃！！！）\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_cc16ec1abd88.png\" width=\"50%\">\u003C\u002Fp>\n\n* 连接相邻帧的方法带来了更好的效果。\n可以推测，相比单一帧，提供更多上下文信息有助于神经网络更好地学习。\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_4207c92a57f5.png\" width=\"50%\">\u003C\u002Fp>\n\n* 事实上，基于 RNN 的模型相较于 DNN 并没有带来显著的性能提升。\n然而，在经过仔细选择权重（r）的区分性训练后，实验结果仍显示出一定的优势。\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_4765cd466ae3.png\" width=\"50%\">\u003C\u002Fp>\n\n* 混合信号、人声和背景音乐的幅度谱可视化图（对数尺度）。\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_e9216c1b206f.png\" width=\"100%\">\u003C\u002Fp>\n\n# \\[相关论文\\] 使用向量积神经网络进行音乐信号处理（2017） \u003Csup>\\[1\\]\u003C\u002Fsup>\n## 方法\n* 采用了一些变换方法来丰富每帧的信息\n  * 未沿用 Posen 的简单拼接前后帧的方式。\n* 使用了 [4] 提出的向量积神经网络（VPNN）。\n  * 在 VPNN 中，输入数据、权重和偏置均为三维向量。\n  * 各元素（向量）之间通过向量叉积运算。\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_9fb13530d699.png\" width=\"50%\">\u003C\u002Fp>\n\n### 上下文窗口变换（WVPNN）\n* 将前一帧、当前帧和下一帧视为三维向量。\n* 在三维度输出向量中仅保留第二个值（即当前帧）作为输出。\n\n### 光谱-颜色变换（CVPNN）\n* 将幅度值转换为RGB颜色值（三维向量）\n  * x 是每个时频单元的幅度，\n  * n 是用于偏置RGB值生成的标量。\n    * 在本工作中，n 经验性地设置为0.0938。\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_fb49d214a5c7.png\" width=\"50%\">\u003C\u002Fp>\n\n### 损失函数\n* 使用了与Posen工作相同的均方误差损失函数。\n## 实验\n### 设置\n* 使用了[iKala数据集](http:\u002F\u002Fmac.citi.sinica.edu.tw\u002Fikala\u002F)。\n  * 从206首iKala歌曲中采样得到252段30秒的片段。\n* 训练集包含63个片段，测试集包含189个片段。\n* 所有音频片段均被下采样至16000 Hz。\n* 窗口大小为1024点，步长为256点。\n* VPNN网络由3层组成，每层包含512个单元。\n* 应用了时频掩码。\n\n### 评价指标\n* 使用了GNSDR、GSIR、GSAR指标。\n### 结果\n* CVPNN和WVPNN的表现优于具有相同权重规模的DNN。\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_readme_36896dabeac7.png\" width=\"75%\">\u003C\u002Fp>\n\n# 参考文献\n1. Zhe-Cheng Fan, Tak-Shing T. Chan, Yi-Hsuan Yang, and Jyh-Shing R. Jang, “[使用向量积神经网络进行音乐信号处理](http:\u002F\u002Fmac.citi.sinica.edu.tw\u002F~yang\u002Fpub\u002Ffan17dlm.pdf)”, 第一届深度学习与音乐国际研讨会论文集，与IJCNN联合举办，2017年5月。\n2. P.-S. Huang, M. Kim, M. Hasegawa-Johnson, P. Smaragdis, “[单声道声源分离中掩码与深度循环神经网络的联合优化](http:\u002F\u002Fparis.cs.illinois.edu\u002Fpubs\u002Fhuang-ismir2014.pdf)”, IEEE\u002FACM 音频、语音与语言处理汇刊，第23卷，第12期，第2136–2147页，2015年12月。\n3. P.-S. Huang, M. Kim, M. Hasegawa-Johnson, P. Smaragdis, “[利用深度循环神经网络从单声道录音中分离人声](https:\u002F\u002Fposenhuang.github.io\u002Fpapers\u002FDRNN_ISMIR2014.pdf)” ，发表于2014年国际音乐信息检索协会会议（ISMIR）。\n4. Tohru Nitta, “[基于三维向量积的神经网络反向传播算法。载于IJCNN论文集](https:\u002F\u002Fstaff.aist.go.jp\u002Ftohru-nitta\u002FIJCNN93-VP.pdf)”, IJCAI论文集，2007年。","# music-source-separation 快速上手指南\n\n本指南基于 TensorFlow 实现的音乐源分离（人声与伴奏分离）深度学习项目，帮助开发者快速搭建环境并运行模型。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux \u002F macOS \u002F Windows (需配置好 Python 环境)\n*   **Python 版本**: 建议 Python 3.6+ (兼容 TensorFlow 1.2)\n*   **核心依赖**:\n    *   `TensorFlow == 1.2` (注意：本项目基于较旧的 TF 1.2 版本开发)\n    *   `librosa == 0.5.1` (音频处理库)\n    *   `Numpy >= 1.3.0`\n\n> **国内加速建议**：\n> 安装依赖时，推荐使用清华或阿里镜像源以提升下载速度：\n> ```bash\n> pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple tensorflow==1.2 librosa==0.5.1 numpy\n> ```\n\n## 安装步骤\n\n1.  **克隆项目代码**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fandabi\u002Fmusic-source-separation.git\n    cd music-source-separation\n    ```\n\n2.  **安装 Python 依赖**\n    如果未使用上述镜像源命令，可创建虚拟环境后安装：\n    ```bash\n    pip install -r requirements.txt\n    # 若无 requirements.txt，请手动执行：\n    # pip install tensorflow==1.2 librosa==0.5.1 numpy\n    ```\n\n3.  **准备数据集**\n    本项目主要支持 **iKala** 和 **MIR-1K** 数据集。\n    *   下载数据集并解压到本地目录。\n    *   修改配置文件 `config.py`，将数据路径指向您本地的数据集文件夹。\n    ```python\n    # config.py 示例修改\n    DATA_PATH = '\u002Fyour\u002Flocal\u002Fpath\u002Fto\u002Fikala_or_mir1k'\n    ```\n\n## 基本使用\n\n### 1. 训练模型 (Training)\n\n运行训练脚本开始模型训练。训练过程中可以使用 TensorBoard 监控损失函数变化。\n\n```bash\npython train.py\n```\n\n*   **查看训练日志**：\n    启动 TensorBoard 查看 Loss 曲线：\n    ```bash\n    tensorboard --logdir=.\u002Flogs\n    ```\n    然后在浏览器访问 `http:\u002F\u002Flocalhost:6006`。\n\n### 2. 评估与推理 (Evaluation)\n\n训练完成后，运行评估脚本生成分离后的音频文件，并在 TensorBoard 中试听结果。\n\n```bash\npython eval.py\n```\n\n*   **查看分离结果**：\n    再次打开 TensorBoard，切换到 **Audio** 标签页，即可在线试听分离出的人声（Voice）和背景音乐（Background Music）效果。\n\n---\n*注：本项目复现了 Posen 的深循环神经网络 (RNN) 模型及向量积神经网络 (VPNN) 方法，适用于单声道录音的人声分离任务。*","一位独立音乐制作人需要从老旧的卡拉 OK 录音中提取纯净人声，以便为歌手重新编曲制作新版伴奏。\n\n### 没有 music-source-separation 时\n- **音质受损严重**：传统滤波方法在去除背景乐时，往往连带切掉人声的高频细节，导致声音发闷、失真。\n- **分离不彻底**：简单的立体声相位抵消对单声道（Monaural）老录音完全无效，背景鼓点和旋律依然清晰可闻。\n- **人工成本高昂**：为了获得干净音轨，不得不花费数小时手动逐帧编辑频谱图，或高价聘请专业工程师处理。\n- **缺乏灵活方案**：面对不同风格的混音（如流行、民谣），无法自适应调整，只能依赖固定参数的插件反复试错。\n\n### 使用 music-source-separation 后\n- **高保真提取**：基于深度循环神经网络（RNN）模型，精准识别人声特征，在移除伴奏的同时完整保留歌手的呼吸感和情感细节。\n- **单声道友好**：即使输入是左右声道混合的单声道录音，也能通过时频掩码技术有效分离出人声与背景音乐。\n- **自动化高效**：只需配置好数据集路径并运行 `eval.py`，即可批量处理数百首歌曲，将数天的工作量缩短至几分钟。\n- **智能泛化能力强**：模型在 iKala 和 MIR-1K 数据集上经过训练，能自适应处理不同性别歌手及多种音乐风格的分离任务。\n\nmusic-source-separation 利用深度学习技术，将原本昂贵且低效的人声提取工作转变为自动化、高保真的标准流程，极大降低了音乐再创作的技术门槛。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fandabi_music-source-separation_6eb9ec13.png","andabi","Dabi Ahn","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fandabi_1a058078.jpg","AI\u002FML Engineer.",null,"Seoul, Korea","andabi412@gmail.com","https:\u002F\u002Fgithub.com\u002Fandabi",[84],{"name":85,"color":86,"percentage":87},"Python","#3572A5",100,804,148,"2026-04-08T16:42:23",4,"未说明","未说明 (基于 TensorFlow 1.2，通常支持 CPU 或任意兼容的 NVIDIA GPU，但无具体型号要求)",{"notes":95,"python":96,"dependencies":97},"该项目基于较旧的 TensorFlow 1.2 版本，现代环境安装可能遇到兼容性问题。训练和评估需使用 iKala 或 MIR-1K 数据集，并在 config.py 中配置路径。优化器使用了 L-BFGS 而非普通的梯度下降。","未说明 (兼容 TensorFlow 1.2 的版本，通常为 Python 2.7 或 3.5-3.6)",[98,99,100],"numpy>=1.3.0","tensorflow==1.2","librosa==0.5.1",[21],"2026-03-27T02:49:30.150509","2026-04-12T13:59:56.413198",[105,110,115,120,125,130],{"id":106,"question_zh":107,"answer_zh":108,"source_url":109},30664,"为什么运行 eval.py 时提示找不到 mir_eval.separation 模块？","这是因为 mir_eval 文件夹中缺少 __init__.py 文件，导致 Python 无法将其识别为包。解决方法是在 mir_eval 文件夹下创建一个空的 __init__.py 文件。创建后无需再手动导出 PYTHONPATH 环境变量即可正常运行。","https:\u002F\u002Fgithub.com\u002Fandabi\u002Fmusic-source-separation\u002Fissues\u002F5",{"id":111,"question_zh":112,"answer_zh":113,"source_url":114},30665,"使用自己的音频数据进行预测时，报错 'ValueError: Sample larger than population or is negative' 是什么原因？","该错误通常是因为程序没有找到足够的数据文件，或者提供的数据文件数量太少（少于代码中设定的采样数量）。请检查数据路径配置是否正确，并确保输入目录中包含足够的音频文件以供随机采样。","https:\u002F\u002Fgithub.com\u002Fandabi\u002Fmusic-source-separation\u002Fissues\u002F46",{"id":116,"question_zh":117,"answer_zh":118,"source_url":119},30666,"在 to_wav 函数中，为什么要将幅度乘以 np.exp(1.j * phases)？","这是从频域转换回时域波形的理论必要步骤。整个过程是：(幅度，相位) -> STFT 矩阵 (语谱图) -> 波形。在第一步转换中，需要使用公式 `magnitudes * np.exp(1.j * phases)` 来重建复数频谱，从而通过逆短时傅里叶变换得到波形。","https:\u002F\u002Fgithub.com\u002Fandabi\u002Fmusic-source-separation\u002Fissues\u002F10",{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},30667,"项目难以复现，缺少 iKala 数据集且没有详细的使用步骤和配置说明怎么办？","该项目确实未直接提供 iKala 数据集，用户需自行获取。关于配置，需手动修改 config.py 文件以适配本地环境。由于官方文档细节不足，建议参考其他成功复现用户的经验，或尝试联系社区成员获取数据划分（train\u002Fvalidation\u002Feval）的具体指导。注意：直接索取受版权保护的数据集可能无法得到官方回复。","https:\u002F\u002Fgithub.com\u002Fandabi\u002Fmusic-source-separation\u002Fissues\u002F39",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},30668,"如何正确设置 ModelConfig 参数以避免训练时报错（如 to_spectrogram 失败）？","参数设置需与音频数据的特性匹配。例如，如果使用的是 NSynth 数据集（4 秒片段，16kHz），可参考以下配置：SR=16000, L_FRAME=1024, L_HOP 设为 L_FRAME\u002F4 的最近二次幂，SEQ_LEN=4。如果报错，重点检查 L_FRAME 和 L_HOP 是否与音频长度和采样率兼容，确保计算出的帧数合法。","https:\u002F\u002Fgithub.com\u002Fandabi\u002Fmusic-source-separation\u002Fissues\u002F24",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},30669,"运行 eval.py 后只得到了分离结果，没有显示 GNSDR、GSIR、GSAR 等评估指标，如何获取？","默认情况下可能未开启详细评估指标的输出。要获取 GNSDR、GSIR、GSAR 等指标，需要确保已正确安装 mir_eval 库，并且输入数据包含真实的源信号（Ground Truth）以便进行对比计算。如果使用的是无标签的真实音乐数据而非测试集，则无法计算这些需要参考信号的指标。","https:\u002F\u002Fgithub.com\u002Fandabi\u002Fmusic-source-separation\u002Fissues\u002F54",[]]