一个专为非遗文化传承设计的智能语音转文字应用,集成了完整的资源管理系统,支持多种媒体格式的管理、预览和搜索功能。
- 实时语音识别:支持中文语音实时转文字
- 高精度识别:针对非遗文化专业术语优化
- 多格式支持:支持多种音频格式输入
- 智能标点:自动添加标点符号和段落分割
- 多媒体支持:图片、视频、音频、文档等多种格式
- 智能分类:自动按文件类型和内容分类
- 标签管理:支持自定义标签和关键词
- 批量操作:支持批量上传、删除、导出
- 多维度搜索:标题、描述、标签、分类全方位搜索
- 智能高亮:搜索结果关键词高亮显示
- 实时过滤:支持多种过滤条件组合
- 搜索历史:记录搜索历史,快速重复搜索
- 图片预览:支持缩放、旋转、下载
- 视频播放:内置视频播放器,支持多种格式
- 音频播放:音频波形显示和播放控制
- 文档预览:支持常见文档格式预览
- 多格式导出: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
- 克隆项目
git clone https://github.com/GuangQianhui/voice-to-text-app.git
cd voice-to-text-app- 安装依赖
npm install- 启动服务
# 启动主应用服务器
npm start
# 启动资源服务器(新终端)
npm run start:resources- 访问应用
# 主应用开发模式(支持热重载)
npm run dev
# 资源服务器开发模式
npm run dev:resourcesvoice-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';// 允许跨域访问
app.use(cors({
origin: 'http://localhost:3000',
credentials: true
}));- 文件类型验证:严格的文件类型检查
- 文件大小限制:防止大文件攻击
- CORS 保护:跨域资源共享安全配置
- Helmet 安全头:HTTP 安全头设置
- 速率限制:API 请求频率限制
- API 缓存:客户端缓存减少服务器负载
- 请求去重:防止重复 API 调用
- 图片压缩:自动压缩大图片
- 懒加载:按需加载资源
- 分页加载:大量数据分页显示
- 端口被占用
# 查看端口占用
netstat -ano | findstr :3000
# 终止进程
taskkill /f /pid <进程ID>- 文件上传失败
- 检查文件大小是否超限
- 确认文件类型是否支持
- 验证存储目录权限
- 预览功能异常
- 确认资源服务器是否启动
- 检查文件路径是否正确
- 验证 CORS 配置
# 主服务器日志
npm start
# 资源服务器日志
npm run start:resources- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
Guang Qianhui
- 项目主页:GitHub
- 邮箱:xuqiguang9@gmail.com
- 感谢所有为非遗文化传承做出贡献的开发者
- 感谢开源社区提供的优秀工具和库
- 感谢用户提供的宝贵反馈和建议
⭐ 如果这个项目对您有帮助,请给我们一个星标!