GNU Affero General Public License v3.0

项目介绍

Pi3-l22/TingJu 是一个托管在 GitHub 上的开源项目,主要使用 Python 编写,采用 GNU Affero General Public License v3.0 许可证,目前获得 141 个 Star、23 次 Fork。

仓库全名
Pi3-l22/TingJu
开源许可证
GNU Affero General Public License v3.0
Star 数
141
Fork 数
23
未关闭 Issue
2

README 摘要

🎧 一个英语听说学习工具 | 让英语听说变得简单! 🌟 简介 听句 TingJu 是一个专为英语学习者设计的听说训练工具。通过智能文本处理、精准翻译和高质量语音合成技术,帮助用户提升英语听说能力。 [!IMPORTANT] 现已支持英语English、日语Japanese、韩语Korean、法语French、德语German、俄语Russian、西班牙语Spanish、葡萄牙语Portuguese、意大利语Italian,共9种语言的听句学习。 核心功能: ✅ 智能分句:使用 sentencex 进行轻量多语言分句,保留原文标点与引号 ✅ 双语对照:调用多种翻译引擎(Bing、百度、有道等)生成准确翻译 ✅ 标准发音:使用Microsoft Edge官方英文音色,还原地道英文发音 ✅ 句子听写:支持句子听写功能,隐藏英文与翻译,练习英语听力 ✅ 多种格式:支持PDF、TXT、DOCX、XLSX、PPTX等多种文档格式 ✅…

完整内容见 GitHub 原始 README 或本页 。

常见问题

TingJu 用什么语言开发?

主要使用 Python 编写,采用 GNU Affero General Public License v3.0 许可证,目前有 141 个 Star。

TingJu 可以免费商用吗?

仓库标注的许可证为 GNU Affero General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 TingJu 的源码?

可以直接克隆仓库:git clone https://github.com/Pi3-l22/TingJu.git,默认分支为 main;安装与运行步骤见仓库 README。

TingJu 最近还在维护吗?

仓库最近一次更新为 2 周前,当前有 2 个未关闭 Issue;Star 数为 141,可作为社区活跃度的参考。

README

🎧 一个英语听说学习工具 | 让英语听说变得简单!

Python FastAPI FastAPI License Platform

🌟 简介

听句 TingJu 是一个专为英语学习者设计的听说训练工具。通过智能文本处理、精准翻译和高质量语音合成技术,帮助用户提升英语听说能力。

Important 重要

现已支持英语English、日语Japanese、韩语Korean、法语French、德语German、俄语Russian、西班牙语Spanish、葡萄牙语Portuguese、意大利语Italian,共9种语言的听句学习。

核心功能:

  • ✅ 智能分句:使用 sentencex 进行轻量多语言分句,保留原文标点与引号
  • ✅ 双语对照:调用多种翻译引擎(Bing、百度、有道等)生成准确翻译
  • ✅ 标准发音:使用Microsoft Edge官方英文音色,还原地道英文发音
  • ✅ 句子听写:支持句子听写功能,隐藏英文与翻译,练习英语听力
  • ✅ 多种格式:支持PDF、TXT、DOCX、XLSX、PPTX等多种文档格式
  • ✅ 离线使用:支持导出功能,在手机电脑平板上随时随地英语听句
  • ✅ 多种主题:内置多种颜色和字体主题,换个主题,换个心情

🚀 功能特性

📂 多格式文档支持

支持多种主流文档格式,轻松导入学习材料:

  • PDF文档
  • TXT文本文件
  • Word文档(DOCX)
  • Excel电子表格(XLSX)
  • PowerPoint演示文稿(PPTX)
  • 以及其他格式(SVG、EPUB、MOBI、XPS、FB2、CBZ等)

✂️ 智能文本处理

  • 使用 sentencex 对英语、日语、韩语、法语、德语、俄语、西班牙语、葡萄牙语和意大利语进行本地分句
  • 分句过程不需要下载 NLTK、Punkt 或其他词库
  • 保留原文标点、引号和句内空格
  • 完整引语块默认作为一个学习单元,即使引号内部包含多个句末标点
  • 过滤纯标点片段,同时保留有效短句

🌐 精准翻译

  • 集成多种翻译引擎(Bing、百度、有道等)
  • 提供高质量的中英文互译
  • 翻译结果准确可靠,便于理解

🔊 高质量语音合成

  • 使用Microsoft Edge TTS技术
  • 提供多种英语发音人声选择
  • 生成清晰、自然的英语发音音频

🎧 英文听力练习

  • 支持听写模式,隐藏英文与翻译,通过音频听写句子
  • 听不出来?鼠标移入即可显示提示
  • 自动检查听写是否正确,避免手动检查消耗时间

🖌️ 个性化界面

  • 多种主题配色方案(晴空、云海、春野、桃夭、暮灰、紫霭)
  • 多种字体选择(Source Sans、Source Serif、Arvo、Outfit、Nunito、Bree-Serif)
  • 响应式设计,适配不同设备屏幕

📤 离线学习支持

  • 一键导出功能,将学习内容打包为独立文件
  • 导出包包含所有文本、翻译和音频资源
  • 支持离线环境使用,手机平板随时随地学习

🛠️ 安装与使用

快速开始(推荐)

  1. 从 Release 页面下载最新版压缩包
  2. 解压并双击运行 TingJu 可执行文件
  3. TingJu 会在 2 秒后自动打开默认浏览器,即可开始使用
  4. 若未自动打开浏览器,请手动打开浏览器访问 http://127.0.0.1:51122

从源码启动

  1. 克隆项目代码:
git clone https://github.com/Pi3-l22/TingJu.git
cd TingJu
  1. 安装依赖:
pip install --upgrade -r requirements.txt
  1. 启动应用:
python launcher.py
  1. 在浏览器中访问 http://127.0.0.1:51122 开始使用

句子音频全部生成失败(HTTP 403)

微软语音服务在 2026 年 10 月更新了鉴权协议,旧版 edge-tts 可能仍能获取音色列表,但所有语音合成请求均被拒绝。项目要求 edge-tts>=7.3.1,包含新协议及系统区域设置相关的时间解析修复(上游发布说明)。

源码用户请在运行 TingJu 的 Python 环境中执行 python -m pip install --upgrade -r requirements.txt 后重启;可执行文件用户需要更新到包含此修复的构建,仅更新系统 Python 的依赖不会改变已打包程序。

使用方法

  1. 上传文档:点击"选择文件"按钮或拖拽上传支持格式的英文文档,也可以点击"手动填写"直接输入英文文本

index

  1. 确认文本:检查并确认提取的文本内容
  2. 选择音色:从可用的英语发音人声中选择喜欢的音色

text

  1. 生成内容:点击"确认生成",系统将自动处理文本、生成翻译和音频
  2. 听读模式:点击播放按钮听取标准发音,可根据情况调整播放速度

results

  1. 听写模式:使用听写模式练习英语听力,鼠标悬浮有提示

dictation

  1. 主题样式:通过主题和字体按钮,更换喜欢的颜色和字体样式,换个主题,换个心情

theme

  1. 导出内容:通过右上角导出按钮,将生成的内容导出为离线版本,随时随地手机电脑听读听写

export

Warning 警告

由于手机平板等移动设备的安全限制,导出的HTML文件可能无法加载CSS样式、JS脚本功能以及音频文件。

因此需要您在移动设备上启动一个HTTP服务器,才能正常浏览和播放内容。

Note 注意

更加详细的使用教程,包括移动端的使用方法,👉可访问 文字教程 或 视频教程

📁 项目结构

TingJu/
├── app.py                    # 主应用文件
├── run_tests.py              # 运行测试脚本
├── LICENSE                   # 项目许可
├── requirements.txt          # 项目依赖
├── static/                   # 静态资源
│   ├── css/                  # 样式文件
│   ├── js/                   # JavaScript文件
│   └── img/                  # 图片资源
├── templates/                # HTML模板
├── tests/                    # 测试代码
├── utils/                    # 工具模块
│   ├── audio_generator.py    # 音频生成
│   ├── file_processor.py     # 文件处理
│   ├── language_detector.py  # 语言检测
│   ├── logger.py             # 日志记录
│   ├── text_processor.py     # 文本处理
│   └── text_translator.py    # 文本翻译
├── temp/                     # 临时文件目录
├── audios/                   # 音频文件目录
└── exports/                  # 导出文件目录

🧩 技术架构

  • 前端使用原生 HTML + CSS + JavaScript
  • 后端使用 Python + FastAPI + Uvicorn

🤝 贡献

欢迎任何形式的贡献!如果您有改进建议、新功能想法或发现了bug,请:

  1. Fork 本仓库
  2. 创建您的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启一个 Pull Request

📄 许可证

本项目采用 AGPL 许可证。详情请见 LICENSE 文件。

🙏 致谢

感谢本项目中所使用的开源项目:

  • 后端框架:FastAPI - 现代、快速(高性能)的Python Web框架
  • TTS引擎:edge-tts - Microsoft Edge TTS的Python接口
  • 文本处理:sentencex - 轻量多语言句子分割库
  • 翻译服务:translators - 多平台翻译库
  • 文档处理:PyMuPDF - PDF和文档处理库
  • 模板引擎:Jinja2 - 现代和设计友好的Python模板引擎

📧 联系方式

评论

暂无评论