Skip to content

Repository files navigation

ListenPaper

ListenPaper 是一个面向学生听力练习的小工具。学生导入 DOCX 格式的英语试卷后,应用会自动提取英文原文,生成可编辑的听力稿章节,并通过本地桌面端合成为语音,方便反复听、跟读和整理错题材料。

项目采用 Tauri + Rust + Vite + TypeScript 构建,优先保持绿色便携:配置、项目数据和日志都放在应用目录内,不写入系统 AppData。

主要功能

  • 导入 DOCX 试卷并转换为 Markdown。
  • 自动识别英文段落,过滤翻译、结构分析等中文说明。
  • 按 Markdown 标题生成待合成章节,支持手动编辑、重命名、排序和删除。
  • 支持新建空白 Markdown 文档,粘贴文本后自动分析。
  • 辅助支持文字版 PDF 导入,使用 LiteParse + vendored PDFium;PDF 解析效果仍依赖原文件结构,暂不支持扫描版 PDF OCR。
  • 使用 Edge TTS 合成单章或全部章节音频。
  • 已合成章节可直接播放或停止。
  • Markdown 源码和预览都会高亮已经进入右侧章节的段落,便于人工校对。
  • 本地日志写入 logs/YYYY-MM-DD.log,并同步输出到控制台。

本地数据结构

绿色版运行时默认结构如下:

应用目录/
  ListenPaper.exe
  pdfium.dll
  settings.json
  data/
    260530_试卷名/
      original/
        试卷.docx
      document.md
      chapters.json
      audio/
        001_Chapter.mp3
  logs/
    2026-05-30.log

settings.jsondata/logs/release/ 都属于本地运行或构建产物,不进入 Git 管理。

开发环境

需要安装:

  • Node.js 与 pnpm
  • Rust stable
  • Windows 桌面环境

本项目使用 pnpm,不使用 npm。

pnpm install
pnpm run dev

Tauri 开发运行:

pnpm tauri dev

构建

前端构建:

pnpm run build

绿色版 release 可执行文件:

pnpm tauri build

项目已将 PDFium 放在 lib/pdfium/,Cargo 配置会使用该目录下的 include/lib 文件,构建脚本会把 lib/pdfium/bin/pdfium.dll 复制到目标可执行文件同级目录。

本地打绿色包:

pnpm tauri build
pnpm run package:portable -Version v0.1.0 -Configuration release

产物会生成在 release/ListenPaper-v0.1.0-windows-portable.zip

自动发布

推送 v* 格式的 Git tag 后,GitHub Actions 会在 Windows runner 上自动编译 release 版本,并发布绿色版 zip 到 GitHub Release。

git tag v0.1.0
git push origin v0.1.0

发布产物只包含绿色版运行所需文件和许可证文件,不生成安装包。

验证

常用检查命令:

cargo nextest run
cargo test
pnpm run type-check
pnpm run build

Rust 代码格式以 cargo fmt 为准;其他语言代码格式以对应 fmt/lint 工具输出为准。

文档

许可证

本项目以 MIT 协议开源,详见 LICENSE

lib/pdfium/ 中 vendored PDFium 相关文件遵循其自身许可证,详见 lib/pdfium/LICENSE

About

自动提取试卷英文段落,转成语音的小工具

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages