Skip to content
/ ZhiYin Public

知音 - AI音频听觉功能集成软件。提供声乐技术识别分析、伴奏分离等伴奏多种工具。

License

Notifications You must be signed in to change notification settings

bgArray/ZhiYin

Repository files navigation

🎵 知音 - AI音频听觉功能集成软件 🎵

Python Version PyTorch License Version

知音是一款集成多种AI音频处理功能的软件,提供音频分类、音源分离等多种工具,让音频处理变得简单而强大。

Demo Documentation


📖 目录


✨ 功能特点

🎼 音频分类

  • 🔬 深度学习模型: 使用CNN-LSTM混合架构进行多标签分类
  • 🏷️ 8种声乐标签: 真声、混声、假声、气声、咽音、颤音、滑音、说话
  • 📊 实时可视化: 波形显示和置信度图表
  • GPU加速: 支持CUDA加速推理
  • 🎛️ 阈值调节: 可自定义分类结果过滤阈值

🎤 音源分离

  • 🎭 Demucs引擎: 基于最先进的音源分离技术
  • 🎸 多轨道分离: 人声、贝斯、鼓点、其他乐器分离
  • 🎛️ 多种模型: mdx_extra_q、htdemucs等多种预训练模型
  • 📁 批量处理: 支持多文件同时处理
  • 🎧 高质量输出: 保持原始音频质量

🎨 界面体验

  • 🌙 深色主题: 现代化的深色界面设计
  • 📱 响应式布局: 适配不同屏幕尺寸
  • 🎯 直观操作: 简洁易用的用户界面
  • 流畅动画: 平滑的过渡和交互效果

🧠 AI分析

  • 📝 歌词识别: 集成Whisper语音识别
  • 🎵 歌词对齐: 精确的歌词与音频时间轴对齐
  • 🔍 声乐技术分析: 专业的声乐技术评估
  • 📊 多维度评估: 音高、节奏、情感等多维度分析

🚀 快速开始

🎬 快速演示

# 克隆仓库
git clone https://github.com/yourusername/ZhiYin.git
cd ZhiYin

# 安装依赖
pip install -r requirements.txt

# 启动应用
python main.py

知音界面截图

知音软件主界面 - 现代化的深色主题设计


📦 安装说明

🔧 环境要求

组件 最低版本 推荐版本
Python 3.8 3.9+
PyTorch 1.12.0 2.0+
CUDA 11.0 11.7+
RAM 4GB 8GB+
GPU - NVIDIA GTX 1060+

📋 详细安装步骤

1️⃣ 环境准备

# 创建虚拟环境
python -m venv zhiyin_env

# 激活虚拟环境
# Windows
zhiyin_env\Scripts\activate
# Linux/Mac
source zhiyin_env/bin/activate

2️⃣ 安装依赖

# 安装PyTorch (根据你的CUDA版本选择)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

# 安装其他依赖
pip install -r requirements.txt

3️⃣ 验证安装

# 检查PyTorch和CUDA
python -c "import torch; print(f'PyTorch: {torch.__version__}'); print(f'CUDA: {torch.cuda.is_available()}')"

🎯 使用指南

🎼 音频分类功能

graph TD
    A[选择音频文件] --> B[模型加载]
    B --> C[特征提取]
    C --> D[分类推理]
    D --> E[结果可视化]
    E --> F[阈值调节]
    F --> G[导出结果]
Loading

📋 操作步骤

  1. 🎵 选择音频: 点击"打开音频文件"选择要分析的音频
  2. 等待处理: 系统自动加载模型并进行分析
  3. 📊 查看结果: 分类结果以标签和置信度显示
  4. 🎛️ 调节阈值: 使用滑块过滤低置信度结果
  5. 🎧 音频播放: 内置播放器支持音频预览
  6. 📈 波形显示: 实时显示音频波形和频谱

🎤 音源分离功能

graph TD
    A[选择音频文件] --> B[选择分离模型]
    B --> C[设置输出路径]
    C --> D[开始分离]
    D --> E[进度显示]
    E --> F[结果预览]
    F --> G[导出分离文件]
Loading

📋 操作步骤

  1. 🎵 选择音频: 支持多种音频格式 (MP3, WAV, FLAC等)
  2. 🤖 选择模型: 根据需要选择合适的分离模型
  3. 📁 设置输出: 自定义输出目录和文件名
  4. ▶️ 开始分离: 点击按钮开始处理
  5. 📊 监控进度: 实时显示处理进度和状态
  6. 🎧 结果预览: 分离完成后可预览各轨道

🏗️ 项目结构

ZhiYin/
├── 📁 main.py                     # 应用程序入口
├── 📁 config/                     # 配置文件
│   ├── 📄 __init__.py
│   ├── 📄 settings.py             # 全局配置
│   ├── 📄 config_manager.py       # 配置管理器
│   └── 📄 label_mapping.json      # 标签映射
├── 📁 core/                       # 核心模块
│   ├── 📄 __init__.py
│   ├── 📄 app.py                  # 主应用程序类
│   └── 📄 base_window.py          # 基础窗口类
├── 📁 ui/                         # 用户界面
│   ├── 📄 __init__.py
│   ├── 📄 main_window.py          # 主界面
│   ├── 📁 components/             # UI组件
│   │   ├── 📄 __init__.py
│   │   └── 📄 navigation.py       # 导航组件
│   └── 📁 styles/                 # 样式主题
│       ├── 📄 __init__.py
│       └── 📄 dark_theme.py       # 深色主题样式
├── 📁 features/                   # 功能模块
│   ├── 📄 __init__.py
│   ├── 📁 audio_classifier/       # 音频分类
│   │   ├── 📄 __init__.py
│   │   ├── 📄 classifier_window.py
│   │   ├── 📄 waveform_widget.py
│   │   ├── 📄 model.py
│   │   ├── 📄 audio_processor.py
│   │   ├── 📄 multi_audio_processor.py
│   │   ├── 📄 lyrics_recognizer.py
│   │   ├── 📄 lyrics_tag_aligner.py
│   │   └── 📄 progress_dialog.py
│   ├── 📁 source_separation/      # 音源分离
│   │   ├── 📄 __init__.py
│   │   ├── 📄 demucs_window.py
│   │   └── 📄 demucs_processor.py
│   └── 📁 ai_analysis/            # AI分析
│       ├── 📄 __init__.py
│       └── 📄 ai_analysis_window.py
├── 📁 utils/                      # 工具函数
│   ├── 📄 __init__.py
│   ├── 📄 audio_utils.py          # 音频处理工具
│   └── 📄 model_utils.py          # 模型工具
├── 📁 resources/                  # 资源文件
│   ├── 📁 icons/                  # 图标资源
│   │   └── 🖼️ 知音LOGO.png
│   └── 📁 models/                 # 预训练模型
└── 📁 best_new_models/            # 最新训练模型
    ├── 🧠 final_multilabel_cnn_lstm_model_m8.pth
    ├── 📋 label_to_idx_m8.json
    └── 📊 m8_0.9375.txt

🤖 模型架构

🧠 CNN-LSTM混合模型

我们的音频分类模型采用CNN-LSTM混合架构,结合了卷积神经网络的特征提取能力和长短期记忆网络的序列建模能力。

graph TD
    A[音频输入] --> B[预处理]
    B --> C[1D卷积层]
    C --> D[深度可分离卷积]
    D --> E[点卷积]
    E --> F[LSTM层]
    F --> G[全连接层]
    G --> H[Sigmoid激活]
    H --> I[多标签输出]
Loading

📊 模型参数

层类型 参数 输出维度 激活函数
Conv1D kernel=5, filters=32 (32, T) ReLU
DepthwiseConv kernel=3, groups=32 (32, T) -
PointwiseConv filters=64 (64, T) ReLU
LSTM hidden=128 (T, 128) -
Dense units=256 256 ReLU
Output units=8 8 Sigmoid

🎯 性能指标

指标
准确率 93.75%
精确率 92.3%
召回率 91.8%
F1分数 92.0%
模型大小 15.2MB

🎨 自定义主题

# ui/styles/custom_theme.py
DARK_THEME = {
    "background": "#1e1e1e",
    "foreground": "#ffffff",
    "accent": "#0078d4",
    "button": "#404040",
    "button_hover": "#505050",
    # ... 更多样式定义
}

📊 性能指标

⚡ 处理速度

音频长度 CPU处理时间 GPU处理时间 加速比
30秒 2.3秒 0.8秒 2.9x
1分钟 4.1秒 1.4秒 2.9x
5分钟 18.2秒 6.3秒 2.9x

💾 内存使用

组件 内存占用
基础应用 120MB
音频分类模型 380MB
音源分离模型 1.2GB
总计 ~1.7GB

🤝 贡献指南

我们欢迎所有形式的贡献!请查看我们的贡献指南了解详情。

🚀 如何贡献

  1. 🍴 Fork 本仓库
  2. 🌿 创建你的功能分支 (git checkout -b feature/AmazingFeature)
  3. 💾 提交你的更改 (git commit -m 'Add some AmazingFeature')
  4. 📤 推送到分支 (git push origin feature/AmazingFeature)
  5. 🎯 打开一个 Pull Request

📋 代码规范

  • 🐍 使用 PEP 8 or Black Python 代码规范
  • 💬 添加适当的注释和文档字符串
  • 🧪 为新功能添加单元测试
  • 🎨 保持代码风格一致

📝 更新日志

🎉 v1.4.0 (最新版本)

✨ 新增功能

  • 🧠 新增AI分析功能模块
  • 📝 集成Whisper语音识别
  • 🎵 实现歌词与音频精确对齐
  • 🔍 添加声乐技术分析
  • 📊 多维度音频评估

🚀 功能优化

  • ⚡ 优化模型加载速度
  • 🎛️ 改进用户界面交互
  • 📈 增强可视化效果
  • 🔧 修复已知问题

🐛 问题修复

  • 🐛 修复音频分类阈值调节问题
  • 🐛 解决音源分离进度显示异常
  • 🐛 修复深色主题样式问题

📜 历史版本

v1.3.0

  • 🎤 新增多音频处理器
  • 📊 改进波形显示
  • ⚡ 优化性能

v1.2.0

  • 🎨 深色主题界面
  • 📱 响应式布局
  • 🔧 配置管理

v1.1.0

  • 🎼 音频分类功能
  • 🎤 音源分离功能
  • 🎛️ 基础UI界面

v1.0.0

  • 🎉 初始版本发布
  • 📦 基础架构搭建

📄 许可证

本项目采用 Apache 2.0 许可证 - 查看 LICENSE 文件了解详情。


🎵 知音 - 让AI为你的音乐创作赋能 🎵

GitHub stars GitHub forks GitHub issues GitHub pull requests

Made with ❤️ by bgArray

About

知音 - AI音频听觉功能集成软件。提供声乐技术识别分析、伴奏分离等伴奏多种工具。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages