一个基于 Ruby on Rails 的智能语言学习应用,专为语言学习者设计。通过自动语音识别技术生成同步字幕,提供视频、音频和电子书等多种学习方式,帮助用户高效学习英语。
- 支持多种视频格式上传(MP4, MOV, WebM, OGG, AVI, MKV, M4V)
- 用户可以管理和删除自己的视频资源
- 利用 Whisper 和腾讯ASR 技术自动生成精准时间轴字幕
- 实时同步视频播放与字幕显示
- 支持中英文等多种语言转录
- 便捷操作体验:键盘快捷键控制(空格键播放/暂停,方向键导航),点击字幕直接跳转到对应时间点
- 支持多种音频格式解析
- 自动生成音频时间轴字幕
- 利用 Whisper 技术进行音频转录
- 提供音频播放和字幕同步功能
- 内置词典,点击单词即时查询释义
- 支持生词收藏功能,方便复习
- 丰富的词汇详情展示
- 词汇学习进度跟踪
- 创建和管理个人学习笔记
- 支持问题和答案形式的笔记记录
- 笔记分类和检索功能
- 复习时间追踪
- 支持 TXT 格式电子书上传
- 分页加载长文本内容
- 记录和同步阅读进度
- 智能进度百分比计算
- 响应式阅读界面
- 响应式设计:适配桌面端和移动端设备
- 暗黑模式支持
- 流畅的用户界面交互
- 异步处理:视频/音频转录采用后台任务处理
- 云端存储(OSS)集成
- 框架: Ruby on Rails 8.0.4
- 前端: Stimulus.js, TailwindCSS, Video.js
- 数据库: SQLite3 (开发环境), PostgreSQL (生产环境)
- 部署: Docker 容器化部署
- 队列: Solid Queue 后台任务处理
- 缓存: Solid Cache 缓存服务
- Ruby 3.4.6
- Node.js
- SQLite3
# 1. 安装依赖
bundle install
# 2. 数据库初始化
rails db:setup
# 3. 启动开发服务器
bin/dev或者分别运行:
# 启动 Rails 服务器
rails server
# 启动 Tailwind CSS 监听器
rails tailwindcss:watchapp/
├── controllers/ # 控制器
├── javascript/ # JavaScript 和 Stimulus 控制器
├── models/ # 数据模型
├── services/ # 业务逻辑服务
├── views/ # 视图模板
└── jobs/ # 后台任务
/videos- 视频列表页面/videos/:id- 视频播放页面,带同步字幕
/audios- 音频列表页面/audios/:id- 音频播放页面,带同步字幕
/books- 电子书列表页面/books/:id- 电子书阅读页面,带进度记录
- 用户注册/登录
- 会话管理
- 密码找回
/favorites- 收藏的单词列表/notes- 学习笔记管理/word_lookup- 词汇查询接口
本项目已配置 Docker 支持,可通过以下方式构建生产镜像:
# 构建 Docker 镜像
docker build -t lazy-english .
# 运行容器(需要配置环境变量)
docker run -d -p 80:80 -e RAILS_MASTER_KEY=<master_key> --name lazy-english lazy-english- 多模态学习: 支持视频、音频和电子书三种学习模式
- 智能转录: 使用先进的语音识别技术,自动生成高质量字幕
- 学习友好: 一键查询单词释义,支持生词收藏,提升学习效率
- 交互流畅: 优化的用户界面和操作体验
- 进度管理: 完整的学习进度跟踪和记录功能
- 离线支持: PWA 技术支持,可安装为独立应用
- 云端同步: 支持云端存储,随时随地学习
- 英语学习者观看原版视频材料
- 需要精听练习的语言学习
- 电影、纪录片等娱乐性学习
- 专业课程视频的学习辅助
- 音频材料的精听训练
- 电子书阅读和进度管理
- 词汇积累和复习
欢迎提交 Issue 和 Pull Request 来改进本项目。