基于深度学习的音乐风格分类系统
Django+Vue2 音乐平台:Mel 频谱 CNN+Bi-LSTM 八类风格分类,含在线 MP3 播放、协同过滤推荐、热榜与 SimpleUI 管理后台,MySQL 预置 12 首歌曲,适合深度学习+Web 毕业设计。
项目封面

项目概览
后端 Django REST Framework 提供歌曲/歌手/歌单 CRUD、Swagger 文档与媒体分字段校验(音频 mp3/视频 mp4);前端 Vue2 门户支持收藏评论与播放器。深度学习模块对 8 类风格(流行/国风/说唱等)做 Mel 频谱混合模型分类,协同过滤个性化推荐,sql.sql 同步媒体路径,适合 Python Django、Vue 前后端分离与音频深度学习类毕业设计。
项目说明
基于深度学习的音乐风格分类系统
功能介绍
本系统为 Python + Vue 前后端分离的音乐平台,结合 CNN + LSTM 混合深度学习模型 完成 8 类音乐风格分类,并提供完整的音乐浏览与互动业务。
- 音乐风格分类:8 类风格(经典老歌、网络歌曲、国语、说唱、国风、流行、嘻哈、古音),基于 Mel 频谱图 + Bi-LSTM 混合模型
- 音乐库管理:歌曲、歌手、地区、风格分类的增删改查(管理后台 + REST API)
- 用户端门户:首页推荐、歌曲/歌手/歌单浏览、在线音频播放(MP3)、MV 视频、评论与收藏
- 个性化推荐:基于用户收藏与播放记录的协同过滤推荐
- 热榜统计:喜欢榜、热歌榜、点歌榜、收藏榜 Top 10
- 管理后台:Django Admin + SimpleUI,支持富文本详情与媒体文件上传(音频/视频分字段、扩展名校验)
- 接口文档:DRF 标准 CRUD + Swagger 在线文档
目录结构
python-deeper-study-music/
├── 项目说明.md # 本文件
├── 运行步骤必看/ # 分平台运行指南
│ ├── mac.md
│ └── window.md
│
├── mc_server/ # Django 后端
│ ├── mac_run.sh # macOS/Linux 启动脚本
│ ├── window_run.bat # Windows 启动脚本
│ ├── manage.py
│ ├── requirements.txt # Python 依赖
│ ├── sql.sql # MySQL 初始化脚本(与当前库数据同步)
│ ├── sql_backups/ # sql.sql 自动备份目录
│ ├── scripts/
│ │ ├── download_mp3s.py # 从酷我 API 批量下载 MP3 并更新库与 sql.sql
│ │ └── sync_sql_from_db.py # 将本地 MySQL 全量导出到 sql.sql
│ ├── venv/ # Python 虚拟环境(运行后生成)
│ ├── library/ # 项目配置(settings、urls、wsgi)
│ ├── app/ # 业务应用(models、views、serializer、validators)
│ ├── DjangoUeditor/ # 富文本编辑器
│ ├── simpleui/ # 后台 UI 主题
│ ├── static/ # 静态资源
│ ├── templates/ # 后台模板
│ └── media/ # 上传的音频/图片/视频(运行时)
│ └── article_file/
│ └── 2026/06/17/ # 当前 12 首歌曲 MP3 存放目录
│
├── music_class_vue/ # Vue 2 前端
│ ├── package.json
│ ├── vue.config.js # 开发代理配置
│ ├── public/ # 静态入口
│ └── src/
│ ├── components/web/ # 用户端页面(首页、歌曲、歌手、歌单等)
│ ├── router/ # 路由
│ ├── store/ # 状态管理
│ └── assets/ # 前端资源
│
└── 文章/ # 文章文档
└── 第三章配图/ # 数据处理、模型结构、实验结果配图
媒体文件说明
歌曲表 app_movie 中音频与视频分两个字段存储,前端分别绑定 <audio> 与 <video>:
| 字段 | 含义 | 前端 | 允许格式 |
|---|---|---|---|
fim_url | 音频文件 | <audio> 播放器 | mp3、wav、ogg、m4a、flac |
fim_mv | 视频 MV | <video> 播放器 | mp4、webm、mov、avi、mkv |
后台上传与 API 写入时会校验扩展名,禁止把 mp4 传到音频字段、或把 mp3 传到视频字段。
当前预置 12 首歌曲的 MP3 路径示例:article_file/2026/06/17/1_APT.mp3 … 12_李白.mp3;MV 默认使用 article_file/demo.mp4。
注意: 导入
sql.sql后须保留mc_server/media/目录(尤其article_file/2026/06/17/下的 mp3),否则页面能打开但音频无法播放。
维护脚本
在 mc_server 目录下执行(需已配置 MySQL 且虚拟环境可用):
cd mc_server
export PYTHONPATH="$(pwd)"
# 从酷我 API 按歌名搜索并下载全部歌曲 MP3,同步更新数据库与 sql.sql
./venv/bin/python scripts/download_mp3s.py
# 将本地 MySQL 当前数据全量导出到 sql.sql(会先备份到 sql_backups/)
./venv/bin/python scripts/sync_sql_from_db.py
下载脚本依赖外网访问 kw-api.cenguigui.cn,仅供本地开发/演示使用。
运行环境
| 项目 | 要求 |
|---|---|
| 操作系统 | macOS / Linux / Windows |
| Python | 3.10(推荐;兼容 3.8–3.10,Django 3.0 不支持 3.11+) |
| Node.js | 16 LTS(推荐;14+ 可用,17+ 需 OpenSSL 兼容参数) |
| MySQL | 5.7+ 或 8.0 |
| 数据库名 | sql(字符集 utf8mb4) |
后端主要依赖:Django 3.0、Django REST Framework、SimpleUI、PyMySQL、NumPy、Pillow
前端主要依赖:Vue 2、Element UI、Vue Router、Vuex、Axios、ECharts
服务端口(本地开发):
| 服务 | 端口 |
|---|---|
| Django 后端 / 管理后台 / Swagger | 8001 |
| Vue 用户端 | 8888 |
默认账号:
| 用途 | 账号 | 密码 |
|---|---|---|
| 管理后台 | admin | admin |
| 前台测试用户 | cs1 / cs4 / liyuanfang 等 | 见 sql.sql 中 app_userweb |
数据库与同步
- 首次部署:创建库
sql后导入mc_server/sql.sql(须加--default-character-set=utf8mb4,详见运行步骤必看/)。 - 迁移记录:当前
sql.sql已包含app.0002_movie_media_validators(媒体文件类型校验),导入后一般无需再执行migrate。 - 数据变更后:运行
scripts/sync_sql_from_db.py,使sql.sql与本地 MySQL 保持一致。 - 登录态:前端会在启动时校验
localStorage中的用户是否仍存在于数据库;若库被重置,需重新登录。
常见问题
| 问题 | 解决方式 |
|---|---|
| 歌曲页音频无法播放 | 确认 media/article_file/2026/06/17/ 下 mp3 存在,且 fim_url 指向正确路径 |
/up_id/ 外键报错 | 多为本地缓存了已删除的用户 id,刷新页面或清除浏览器 localStorage 后重新登录 |
| 后台上传音频被拒绝 | 检查是否为 mp3 等音频格式,勿上传 mp4 到「音频文件」字段 |
| 导入 sql 后中文乱码 | 使用 mysql ... --default-character-set=utf8mb4 sql < mc_server/sql.sql 重新导入 |
详细安装与启动步骤见 运行步骤必看/ 目录。
获取完整源码
技术分类
包含内容
适合方向
适合软件工程、人工智能毕业设计中 Django REST、Vue2 门户、CNN+LSTM 音频分类与推荐系统方向;需保留 media/article_file 下 MP3 方可播放。
关于 AI源码
AI源码 整理计算机毕业设计、课程设计向的可运行项目参考,含说明文档与演示材料。完整源码请通过联系方式沟通获取。
相关推荐
查看全部 →
基于用户画像的食谱推荐系统
Flask+SQLite 食谱推荐 Web:问卷与活动数据构建用户向量,KMeans 聚类画像 + 规则过滤 + RandomForest 融合排序,输出可解释推荐,含 Hit@K/NDCG 离线评估,适合推荐系统毕业设计。

基于协同过滤的电影推荐系统设计与实现
Flask+SQLite 豆瓣电影推荐平台:scikit-surprise 实现 UserCF/ItemCF,三级冷启动降级、星级评分收藏、Pyecharts 后台图表与一键重训,含算法讲解页,适合推荐算法毕业设计。

基于机器学习的古籍文字识别与断句校正系统
Vue3+Flask 古籍 OCR 流水线:PaddleOCR 识文、文本整理勘校、BERT 句读标注与多格式导出,JWT 任务隔离,支持离线微调数据闭环,适合 OCR+NLP 毕业设计。

基于深度学习的日常服饰分类与推荐系统设计
PyTorch CNN 对 Fashion-MNIST 服饰图像 Top-5 分类,融合协同过滤与 Embedding 相似度的混合推荐引擎,含 120 件商品目录与评分收藏,适合深度学习推荐系统类毕业设计。

微小异物检测与识别系统
YOLOv8 工业表面六类微小缺陷(龟裂、夹杂、点蚀等)检测平台,基于 NEU-DET 钢材数据集,支持单张/批量检测、在线训练与 PDF 报告导出,适合计算机视觉质检类毕业设计。

微小金属碎屑识别系统设计与实现
MobileNetV2 对 NEU-CLS 六类金属表面缺陷图像分类识别平台,输出置信度与 Top 概率分布,含在线训练与多维度统计图表,适合轻量级深度学习质检类毕业设计。