Skip to content

GuangQianHui/voice-app

非遗文化传承智能体助手 - 语音转文字应用

Version License Node.js

一个专为非遗文化传承设计的智能语音转文字应用,集成了完整的资源管理系统,支持多种媒体格式的管理、预览和搜索功能。

🌟 功能特性

🎤 语音转文字

  • 实时语音识别:支持中文语音实时转文字
  • 高精度识别:针对非遗文化专业术语优化
  • 多格式支持:支持多种音频格式输入
  • 智能标点:自动添加标点符号和段落分割

📚 资源管理系统

  • 多媒体支持:图片、视频、音频、文档等多种格式
  • 智能分类:自动按文件类型和内容分类
  • 标签管理:支持自定义标签和关键词
  • 批量操作:支持批量上传、删除、导出

🔍 高级搜索

  • 多维度搜索:标题、描述、标签、分类全方位搜索
  • 智能高亮:搜索结果关键词高亮显示
  • 实时过滤:支持多种过滤条件组合
  • 搜索历史:记录搜索历史,快速重复搜索

👁️ 媒体预览

  • 图片预览:支持缩放、旋转、下载
  • 视频播放:内置视频播放器,支持多种格式
  • 音频播放:音频波形显示和播放控制
  • 文档预览:支持常见文档格式预览

📊 数据导出

  • 多格式导出:JSON、CSV、TXT 格式
  • 选择性导出:支持按分类、标签筛选导出
  • 批量导出:支持大量数据批量导出
  • 自定义导出:支持自定义导出字段

🏗️ 系统架构

双服务器架构

┌─────────────────┐    ┌──────────────────┐
│   主应用服务器   │    │   资源服务器      │
│   (端口:3000)   │◄──►│   (端口:3001)    │
└─────────────────┘    └──────────────────┘
         │                       │
         ▼                       ▼
┌─────────────────┐    ┌──────────────────┐
│   前端界面      │    │   媒体文件存储    │
│   (index.html)  │    │   (resources/)   │
└─────────────────┘    └──────────────────┘

技术栈

  • 后端:Node.js + Express.js
  • 前端:原生 JavaScript + Tailwind CSS
  • 文件处理:Multer + Form-data
  • 代理中间件:http-proxy-middleware
  • 安全:Helmet + CORS

🚀 快速开始

环境要求

  • Node.js >= 18.0.0
  • npm >= 8.0.0

安装步骤

  1. 克隆项目
git clone https://github.com/GuangQianhui/voice-to-text-app.git
cd voice-to-text-app
  1. 安装依赖
npm install
  1. 启动服务
# 启动主应用服务器
npm start

# 启动资源服务器(新终端)
npm run start:resources
  1. 访问应用

开发模式

# 主应用开发模式(支持热重载)
npm run dev

# 资源服务器开发模式
npm run dev:resources

📁 项目结构

voice-to-text-app/
├── server.js                 # 主应用服务器
├── index.html               # 资源管理前端界面
├── package.json             # 项目配置
├── LICENSE                  # 许可证文件
├── README.md               # 项目说明
├── resources-server/        # 资源服务器
│   ├── server.js           # 资源服务器主文件
│   ├── resources/          # 媒体文件存储目录
│   │   ├── images/         # 图片文件
│   │   ├── videos/         # 视频文件
│   │   ├── audios/         # 音频文件
│   │   └── documents/      # 文档文件
│   └── README.md           # 资源服务器说明
├── css/                    # 样式文件
│   └── standalone-resource-manager.css
└── uploads/                # 临时上传目录

🎯 核心功能详解

资源管理

  • 文件上传:支持拖拽上传和点击上传
  • 文件预览:支持多种格式的在线预览
  • 文件删除:安全删除文件和关联数据
  • 文件编辑:修改文件信息和标签

搜索系统

  • 实时搜索:输入即时显示搜索结果
  • 高级过滤:按类型、大小、时间等过滤
  • 搜索高亮:关键词在结果中高亮显示
  • 搜索建议:智能搜索建议和补全

视图模式

  • 网格视图:卡片式布局,适合浏览
  • 列表视图:紧凑列表,适合管理
  • 紧凑视图:最小化信息显示
  • 详细视图:完整信息展示

🔧 配置说明

服务器配置

// 主服务器端口
const PORT = 3000;

// 资源服务器端口
const RESOURCE_SERVER_PORT = 3001;

// 文件上传限制
const MAX_FILE_SIZE = '50mb';

CORS 配置

// 允许跨域访问
app.use(cors({
  origin: 'http://localhost:3000',
  credentials: true
}));

🛡️ 安全特性

  • 文件类型验证:严格的文件类型检查
  • 文件大小限制:防止大文件攻击
  • CORS 保护:跨域资源共享安全配置
  • Helmet 安全头:HTTP 安全头设置
  • 速率限制:API 请求频率限制

📈 性能优化

  • API 缓存:客户端缓存减少服务器负载
  • 请求去重:防止重复 API 调用
  • 图片压缩:自动压缩大图片
  • 懒加载:按需加载资源
  • 分页加载:大量数据分页显示

🐛 故障排除

常见问题

  1. 端口被占用
# 查看端口占用
netstat -ano | findstr :3000
# 终止进程
taskkill /f /pid <进程ID>
  1. 文件上传失败
  • 检查文件大小是否超限
  • 确认文件类型是否支持
  • 验证存储目录权限
  1. 预览功能异常
  • 确认资源服务器是否启动
  • 检查文件路径是否正确
  • 验证 CORS 配置

日志查看

# 主服务器日志
npm start

# 资源服务器日志
npm run start:resources

🤝 贡献指南

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

📄 许可证

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

👨‍💻 作者

Guang Qianhui

🙏 致谢

  • 感谢所有为非遗文化传承做出贡献的开发者
  • 感谢开源社区提供的优秀工具和库
  • 感谢用户提供的宝贵反馈和建议

⭐ 如果这个项目对您有帮助,请给我们一个星标!

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published