# Pet Call Recognition System
**Repository Path**: north-dream-testing/pet-call-recognition-system
## Basic Information
- **Project Name**: Pet Call Recognition System
- **Description**: 宠物叫声识别系统是一个面向宠物主人的智能语音识别平台,通过深度学习技术对宠物(主要是猫狗)的叫声进行实时识别和分析,帮助主人更好地理解宠物的情绪和需求。
系统采用前后端分离架构,后端基于 Spring Boot 4.0.6 + MyBatis,前端基于 Vue 3 + Element Plus,支持 Docker 一键部署,提供完整的 RESTful API 和微信小程序接口。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-10-23
- **Last Updated**: 2026-10-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🐾 宠物叫声识别系统
**基于深度学习的宠物语音识别与行为分析平台**
[](https://www.oracle.com/java/)
[](https://spring.io/projects/spring-boot)
[](https://vuejs.org/)
[](https://www.mysql.com/)
[](https://redis.io/)
[](https://www.docker.com/)
[](LICENSE)
[在线演示](http://demo.petvoice.com) · [文档中心](https://docs.petvoice.com) · [问题反馈](https://github.com/petvoice/issues)
---
## 📖 项目简介
宠物叫声识别系统是一个面向宠物主人的智能语音识别平台,通过深度学习技术对宠物(主要是猫狗)的叫声进行实时识别和分析,帮助主人更好地理解宠物的情绪和需求。
系统采用前后端分离架构,后端基于 Spring Boot 4.0.6 + MyBatis,前端基于 Vue 3 + Element Plus,支持 Docker 一键部署,提供完整的 RESTful API 和微信小程序接口。
### ✨ 核心特性
- 🎯 **高精度识别** - 基于 CNN + Transformer 混合模型,识别准确率达 92%+
- 🐱🐶 **多物种支持** - 覆盖猫、狗两大品类,支持 50+ 种常见叫声模式
- 📊 **行为分析** - 智能分析宠物情绪状态,生成性格报告
- 🎵 **音效库管理** - 内置 1000+ 宠物音效素材,支持收藏和分享
- 📱 **小程序对接** - 提供完整的微信小程序 API,支持语音/视频上传
- 🔐 **权限管理** - 基于 RBAC 的细粒度权限控制
- 📈 **数据统计** - 多维度运营数据统计和可视化展示
- 🚀 **云原生部署** - Docker Compose 编排,支持水平扩展
---
## 🛠️ 技术栈
### 后端技术
| 技术 | 版本 | 说明 |
|------|------|------|
| Java | 17 | 开发语言 |
| Spring Boot | 4.0.6 | 应用框架 |
| MyBatis | 3.5.16 | ORM 框架 |
| Spring Security | 6.3 | 安全框架 |
| JWT | 0.12.6 | 身份认证 |
| MySQL | 8.0 | 关系数据库 |
| Redis | 7.0 | 缓存数据库 |
| Druid | 1.2.23 | 连接池 |
| MinIO | 2023-03-20 | 对象存储 |
| FFmpeg | 6.0 | 音视频处理 |
| Lombok | 1.18.34 | 代码简化 |
| Swagger | 3.0 | API 文档 |
### 前端技术
| 技术 | 版本 | 说明 |
|------|------|------|
| Vue | 3.5.12 | 前端框架 |
| Vite | 6.4.1 | 构建工具 |
| Element Plus | 2.8.0 | UI 组件库 |
| Vue Router | 4.4.0 | 路由管理 |
| Pinia | 2.2.0 | 状态管理 |
| Axios | 1.7.0 | HTTP 客户端 |
| ECharts | 5.5.0 | 图表库 |
### 基础设施
| 技术 | 版本 | 说明 |
|------|------|------|
| Docker | 24.0+ | 容器化 |
| Docker Compose | 2.20+ | 服务编排 |
| Nginx | 1.25 | 反向代理 |
| Maven | 3.9+ | 构建工具 |
| Node.js | 20+ | 前端运行环境 |
---
## 🏗️ 系统架构
```
┌─────────────────────────────────────────────────────────┐
│ 客户端层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 管理后台 │ │ 微信小程序│ │ 移动 APP │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ Nginx 反向代理 │
│ (负载均衡 / SSL 终止 / 静态资源) │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ Spring Boot 应用层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 用户模块 │ │ 宠物模块 │ │ 识别模块 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 音效模块 │ │ 统计模块 │ │ 系统模块 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ MySQL │ │ Redis │ │ MinIO │ │
│ │ (主数据) │ │ (缓存) │ │ (文件) │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────┘
```
---
## 📸 模块界面预览
### 系统首页
系统首页提供全局数据概览,包括今日识别数、注册用户数、宠物档案数、音效素材数等核心指标,以及系统能力展示。

### 系统管理
#### 用户管理
集中管理系统用户,支持用户增删改查、角色分配、状态管理、数据导入导出等功能。左侧组织机构树支持按部门筛选用户。

#### 角色管理
管理用户角色和权限配置,支持菜单权限和数据权限的精细化控制。

#### 菜单管理
维护系统菜单和路由配置,支持多级菜单、权限标识、组件路径等配置。

#### 部门管理
管理组织架构,支持树形结构的部门层级关系,包括部门名称、负责人、联系电话等信息。

#### 岗位管理
维护系统岗位信息,用于用户职位关联和统计分类。

#### 字典管理
管理系统中常用的固定下拉选项数据,如性别、状态、类型等字典项。

#### 参数设置
配置系统运行参数,如验证码开关、用户密码策略、文件上传限制等。

#### 通知公告
发布和管理系统通知、公告信息,支持富文本编辑和定时发布。

#### 服务监控
实时监控系统运行状态,包括 CPU、内存、JVM、磁盘等服务器资源使用情况。

#### 缓存监控
监控 Redis 缓存运行信息,包括缓存命中率、内存使用、键数量等指标。

### 宠物语音
#### C 端用户
管理微信小程序注册用户,查看用户基本信息、注册来源、活跃度等数据。

#### 宠物档案
维护用户的宠物信息,包括宠物名称、品种、年龄、性别、照片等基础档案。

#### 翻译记录
查看小程序端上传的音频、视频识别记录,包括原始文件、识别结果、置信度等。

#### 音效库
管理宠物互动音效素材,支持音效分类、标签、上传、试听等功能。

#### 性格报告
基于宠物叫声识别结果生成的性格分析报告,包括情绪特征、行为倾向等。

### 系统工具
#### 代码生成
根据数据库表结构自动生成前后端 CRUD 代码,支持单表、树表、主子表等多种模板。

---
## 🚀 快速开始
### 环境要求
- Docker 24.0+
- Docker Compose 2.20+
- 至少 4GB 可用内存
- 至少 10GB 可用磁盘空间
### 一键部署
1. **克隆项目**
```bash
git clone https://github.com/petvoice/petvoice-system.git
cd petvoice-system
```
2. **启动服务**
```bash
# 使用 start.bat (Windows) 或 start.sh (Linux/Mac)
start.bat
# 或手动启动
docker-compose up -d
```
3. **访问系统**
- 管理后台:http://localhost:8081
- 默认账号:`admin` / `admin123`
- API 文档:http://localhost:8080/swagger-ui.html
4. **停止服务**
```bash
# 使用 stop.bat (Windows) 或 stop.sh (Linux/Mac)
stop.bat
# 或手动停止
docker-compose down
```
### 服务端口
| 服务 | 端口 | 说明 |
|------|------|------|
| 前端 | 8081 | Nginx 代理 |
| 后端 | 8080 | Spring Boot |
| MySQL | 3307 | 数据库 |
| Redis | 6380 | 缓存 |
| MinIO | 9002 | 对象存储 API |
| MinIO | 9003 | 对象存储控制台 |
### 数据初始化
系统首次启动时会自动初始化数据库,包括:
- 创建 42 张数据表
- 导入基础配置数据
- 创建默认管理员账号
- 初始化菜单和权限
如需重新初始化,可执行:
```bash
# 删除数据卷(会清空所有数据)
docker-compose down -v
# 重新启动
docker-compose up -d
```
---
## 📁 项目结构
```
petvoice-system/
├── petvoice-server-dev/ # 后端项目
│ ├── petvoice-admin/ # 管理模块(启动入口)
│ │ ├── src/main/java/
│ │ │ └── com/bmc/petvoice/
│ │ │ ├── web/ # Controller 层
│ │ │ └── PetvoiceApplication.java
│ │ └── src/main/resources/
│ │ ├── application.yml # 主配置文件
│ │ ├── application-dev.yml
│ │ └── mapper/ # MyBatis 映射文件
│ ├── petvoice-framework/ # 框架核心模块
│ │ └── src/main/java/
│ │ └── com/bmc/petvoice/framework/
│ │ ├── config/ # 配置类
│ │ ├── security/ # 安全框架
│ │ └── web/ # Web 工具
│ ├── petvoice-system/ # 系统管理模块
│ │ └── src/main/java/
│ │ └── com/bmc/petvoice/system/
│ │ ├── domain/ # 实体类
│ │ ├── mapper/ # DAO 层
│ │ └── service/ # Service 层
│ ├── petvoice-business/ # 业务模块
│ │ └── src/main/java/
│ │ └── com/bmc/petvoice/business/
│ │ ├── member/ # 用户管理
│ │ ├── pet/ # 宠物档案
│ │ ├── translation/ # 翻译记录
│ │ ├── sound/ # 音效库
│ │ └── trait/ # 性格分析
│ ├── petvoice-common/ # 公共模块
│ │ └── src/main/java/
│ │ └── com/bmc/petvoice/common/
│ │ ├── constant/ # 常量定义
│ │ ├── utils/ # 工具类
│ │ └── exception/ # 异常处理
│ ├── sql/ # 数据库脚本
│ │ ├── petvoice.sql
│ │ ├── quartz.sql
│ │ └── migration/ # 迁移脚本
│ ├── Dockerfile # 后端镜像构建
│ └── pom.xml # Maven 配置
│
├── petvoice-ui-dev/ # 前端项目
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ │ ├── system/ # 系统管理
│ │ │ ├── monitor/ # 系统监控
│ │ │ ├── petvoice/ # 宠物语音
│ │ │ └── tool/ # 系统工具
│ │ ├── components/ # 公共组件
│ │ ├── api/ # API 接口
│ │ ├── router/ # 路由配置
│ │ ├── store/ # 状态管理
│ │ ├── utils/ # 工具函数
│ │ └── assets/ # 静态资源
│ ├── public/ # 公共资源
│ ├── nginx.conf # Nginx 配置
│ ├── Dockerfile # 前端镜像构建
│ ├── package.json # npm 配置
│ └── vite.config.js # Vite 配置
│
├── docker-compose.yml # Docker 编排
├── start.bat # Windows 启动脚本
├── stop.bat # Windows 停止脚本
├── README.ZH-CN.md # 中文文档
└── LICENSE # 开源协议
```
---
## 🔧 开发指南
### 后端开发
1. **环境准备**
```bash
# 安装 JDK 17
# 安装 Maven 3.9+
# 安装 MySQL 8.0
# 安装 Redis 7.0
```
2. **本地运行**
```bash
cd petvoice-server-dev
# 修改 application-local.yml 配置
# 配置本地数据库和 Redis 连接
# 启动服务
mvn spring-boot:run -pl petvoice-admin
```
3. **代码规范**
- 遵循阿里巴巴 Java 开发手册
- Controller 层只做参数校验和结果封装
- Service 层处理业务逻辑
- Mapper 层只做数据访问
- 使用 Lombok 简化代码
### 前端开发
1. **环境准备**
```bash
# 安装 Node.js 20+
# 安装 npm 或 yarn
```
2. **本地运行**
```bash
cd petvoice-ui-dev
# 安装依赖
npm install
# 启动开发服务器
npm run dev
```
3. **代码规范**
- 使用 Vue 3 Composition API
- 组件命名采用 PascalCase
- 使用 ESLint + Prettier 格式化代码
- 遵循 Vue 官方风格指南
---
## 📦 部署说明
### 生产环境部署
1. **修改配置**
```yaml
# docker-compose.prod.yml
services:
petvoice-server:
environment:
SPRING_PROFILES_ACTIVE: prod
SPRING_DATASOURCE_DRUID_MASTER_URL: jdbc:mysql://prod-db:3306/petvoice_prod
# ... 其他生产环境配置
```
2. **构建镜像**
```bash
# 构建后端镜像
docker build -t petvoice/server:1.0.0 -f petvoice-server-dev/Dockerfile petvoice-server-dev
# 构建前端镜像
docker build -t petvoice/ui:1.0.0 -f petvoice-ui-dev/Dockerfile petvoice-ui-dev
```
3. **部署上线**
```bash
# 使用生产配置启动
docker-compose -f docker-compose.prod.yml up -d
# 查看日志
docker-compose logs -f
```
### 性能优化建议
- **数据库**:开启慢查询日志,定期优化索引
- **Redis**:配置内存淘汰策略,开启持久化
- **Nginx**:开启 gzip 压缩,配置缓存策略
- **JVM**:根据服务器配置调整堆内存大小
- **Docker**:限制容器资源使用,避免资源争抢
---
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request!
### 提交规范
```
feat: 新功能
fix: 修复 bug
docs: 文档更新
style: 代码格式调整
refactor: 重构
test: 测试相关
chore: 构建/工具变动
```
### 开发流程
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'feat: add some amazing feature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 提交 Pull Request
---
## 📄 开源协议
本项目基于 [MIT License](LICENSE) 开源。
---
## 👥 团队
- **作者**:PetVoice Team
- **邮箱**:support@petvoice.com
- **官网**:https://www.petvoice.com
---
## 🙏 致谢
感谢以下开源项目:
- [Spring Boot](https://spring.io/projects/spring-boot)
- [Vue.js](https://vuejs.org/)
- [Element Plus](https://element-plus.org/)
- [MyBatis](https://mybatis.org/)
- [MySQL](https://www.mysql.com/)
- [Redis](https://redis.io/)
- [MinIO](https://min.io/)
---
## 📞 联系我们
- **问题反馈**:[GitHub Issues](https://github.com/petvoice/issues)
- **技术支持**:support@petvoice.com
- **商务合作**:business@petvoice.com
---
[回到顶部](#-宠物叫声识别系统)