基于深度学习的音乐风格分类系统
本系统为 Python + Vue 前后端分离的音乐平台,结合 CNN + LSTM 混合深度学习模型 完成 8 类音乐风格分类,并提供完整的音乐浏览与互动业务。
项目封面

项目说明
基于深度学习的音乐风格分类系统
功能介绍
本系统为 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 重新导入 |
详细安装与启动步骤见 运行步骤必看/ 目录。
技术分类
包含内容
适用人群
学习参考与二次开发
关于 AI源码
AI源码 专注优质项目源码分享,提供完整源码、详细文档与技术支持,助力源码设计与课程作业。
相关推荐
查看全部 →
城市交通流量预测与拥堵成因分析系统
是一个面向城市交通拥堵分析的 monorepo,覆盖计算机设计课题中的主要能力链路:

电商用户行为漏斗与CRO转化率优化分析
电商用户行为漏斗与CRO转化率优化分析(E-Commerce Funnel CRO)是一套面向电商运营的数据分析平台,覆盖从用户访问到最终购买的完整漏斗链路,提供多维诊断、统计检验、PIE 优先级矩阵与 XGBoost 购买预测等能力,帮助运营团队精准定位转化瓶颈并制定优化策略。

多组学癌症预后预测分析系统
基于 Flask 的 Web 应用,用于上传 TCGA 风格合并表、做特征与标签概览、Cox 预后风险评分与生存相关可视化。模型在本地训练后以 形式加载,不提供旧版演示数据或假模型兜底。

基于 Apriori 算法的中药配伍审查系统
本系统是一个基于经典 Apriori 关联规则挖掘算法的中药配伍审查平台,使用真实中医药处方数据集(PTM-TKDE2018),实现药材频繁项集挖掘、关联规则生成与配伍禁忌审查。

基于 Python 的城市共享单车骑行需求时空分析系统
本系统是一个基于 Python Flask 框架的城市共享单车骑行需求时空分析平台,使用 Oslo City Bike(奥斯陆城市自行车)开放数据,提供系统总览、时间维度分析、空间维度分析、站点运营分析、OD 起讫流动分析、骑行需求预测、综合分析报告等功能模块,适用于城市共享单车运营调度与骑行需求研究场景。

基于 Python 的短视频用户行为分析系统
基于快手 KuaiRec / KuaiRand 数据集的短视频推荐分析平台,提供用户行为分析、推荐偏差检测、内容运营洞察、图神经网络推荐等完整分析链路。