基于Electron、智谱AI和腾讯云语音识别的桌面应用程序。
├── src/
│ ├── main/ # 主进程代码
│ │ ├── index.ts # 主进程入口
│ │ ├── window/ # 窗口管理
│ │ ├── services/ # 业务服务
│ │ ├── ipc/ # IPC通信处理
│ │ ├── utils/ # 工具函数
│ │ └── preload/ # 预加载脚本
│ ├── renderer/ # 渲染进程代码
│ │ ├── components/ # React组件
│ │ ├── pages/ # 页面组件
│ │ ├── hooks/ # 自定义Hook
│ │ ├── store/ # 状态管理
│ │ ├── services/ # 前端服务
│ │ ├── utils/ # 前端工具
│ │ ├── styles/ # 样式文件
│ │ └── types/ # 类型定义
│ └── shared/ # 共享代码
│ ├── types/ # 共享类型
│ ├── constants/ # 常量定义
│ └── utils/ # 共享工具
├── assets/ # 静态资源
│ ├── icons/ # 图标文件
│ ├── images/ # 图片文件
│ ├── sounds/ # 音频文件
│ └── fonts/ # 字体文件
├── build/ # 构建输出
├── dist/ # 打包输出
├── test/ # 测试文件
├── scripts/ # 构建脚本
├── logs/ # 日志文件
└── docs/ # 文档
- 🎤 实时语音录制和识别
- 🤖 智谱AI对话功能
- 🎨 现代化UI界面
- ⚙️ 丰富的设置选项
- 🔐 用户认证系统
- 📱 响应式设计
- 🌙 深色/浅色主题切换
- 框架: Electron + React + TypeScript
- 状态管理: Redux Toolkit
- UI组件: 自定义组件库
- 构建工具: Webpack + TypeScript
- 代码规范: ESLint + Prettier
- 测试框架: Jest
- 语音识别: 腾讯云实时语音识别
- AI对话: 智谱AI GLM模型
- Node.js >= 16.0.0
- npm >= 8.0.0
npm installnpm run devnpm run buildnpm run dist项目使用环境变量来配置不同的运行环境:
.env.development- 开发环境配置.env.production- 生产环境配置
主要配置项:
NODE_ENV=development
ELECTRON_IS_DEV=true
AI_API_BASE_URL=https://api.zhipuai.cn
TENCENT_CLOUD_ASR_URL=wss://asr.tencentcloudapi.com
LOG_LEVEL=debug在使用前需要配置相关API密钥:
- 智谱AI API密钥
- 腾讯云语音识别密钥
npm run dev- 启动开发服务器npm run build- 构建项目npm run dist- 打包应用npm run test- 运行测试npm run lint- 代码检查npm run format- 代码格式化
index.ts- 应用入口,负责创建窗口和初始化服务window/- 窗口管理相关代码services/- 业务服务层,包含AI、语音、设置等服务ipc/- IPC通信处理器utils/- 主进程工具函数preload/- 预加载脚本,暴露安全的API给渲染进程
components/- React组件pages/- 页面级组件hooks/- 自定义React Hookstore/- Redux状态管理services/- 前端服务层utils/- 前端工具函数styles/- 样式文件types/- 前端类型定义
types/- 前后端共享的类型定义constants/- 常量定义utils/- 共享工具函数
- 在
src/main/services/中添加业务逻辑 - 在
src/main/ipc/handlers/中添加IPC处理器 - 在
src/renderer/中添加前端组件 - 更新类型定义和常量
项目使用ESLint和Prettier来保证代码质量:
npm run lint # 检查代码规范
npm run format # 格式化代码npm run test # 运行所有测试
npm run test:watch # 监听模式运行测试
npm run test:coverage # 生成覆盖率报告npm run build
npm run dist构建完成后,可执行文件将在 dist/ 目录中生成。
MIT License
欢迎提交Issue和Pull Request来改进项目。
如有问题,请通过以下方式联系: