智能双语播客生成工具 - 将网页内容转化为沉浸式英语学习体验
驱动工具,专注于将网页内容智能转换为双语播客。它不仅能自动生成引人入胜的中英文音频内容,还提供精准的双语字幕,为内容创作者和语言学习者提供了一站式的学习解决方案。
本项目包含:
- 服务端核心功能和简易Web界面
- 跨平台客户端应用 (可选,支持Android/Web/Windows)
- 🤖 智能网页内容提取与总结
- 💬 AI 驱动的自然对话生成
- 🗣️ 高品质中英文文本转语音 (TTS)
- 📝 自动生成双语字幕
- 🔄 支持中英文音频切换
- 🎵 智能音频合成与处理
- 🚀 RESTful API 支持
- 🎯 内置简易Web界面
- 📱 支持跨平台客户端应用
- 后端: Python 3.11, FastAPI, SQLAlchemy
- 内置前端: HTML5, JavaScript
- AI: LangChain, OpenAI API
- 数据库: SQLite
- 部署: Docker
- 框架: Flutter 3.5.4+
- 平台: Android/Web/Windows
项目依赖两个核心服务:
- LLM 服务: 通过 OpenAI 兼容接口对接,支持各类大语言模型,使用免费的qwen2.5-7b模型也可以达到较好效果
- TTS 服务: 支持两种模式:
- 微软 TTS(edge-tts):默认模式,免费使用。非大陆地区需设置 HTTPS_PROXY 环境变量
- OpenAI TTS:通过设置 USE_OPENAI_TTS_MODEL=true 启用,需配置相应的 API
- 默认使用 edge-tts,无需额外配置
- 非大陆地区用户需设置代理:
export HTTPS_PROXY="http://your-proxy:port"
需要在启动时配置以下环境变量:
USE_OPENAI_TTS_MODEL=true
TTS_BASE_URL=your_tts_base_url
TTS_API_KEY=your_tts_api_key
TTS_MODEL=your_tts_model
- 创建数据目录:
mkdir -p /path/to/lingopod/data
- 启动容器:
docker run -d \
--name lingopod \
--restart always \
-p 28811:28811 \
-v /path/to/lingopod/data:/opt/lingopod/data \
-e PORT=28811 \
-e API_BASE_URL=your_api_base_url \
-e API_KEY=your_api_key \
-e MODEL=your_model \
-e HTTPS_PROXY="http://your-proxy:port" \
linshen/lingopod:latest
docker run -d \
--name lingopod \
--restart always \
-p 28811:28811 \
-v /path/to/lingopod/data:/opt/lingopod/data \
-e PORT=28811 \
-e API_BASE_URL=your_api_base_url \
-e API_KEY=your_api_key \
-e MODEL=your_model \
-e USE_OPENAI_TTS_MODEL=true \
-e TTS_BASE_URL=your_tts_base_url \
-e TTS_API_KEY=your_tts_api_key \
-e TTS_MODEL=your_tts_model \
linshen/lingopod:latest
访问服务: http://localhost:28811
容器管理:
# 查看容器日志
docker logs -f lingopod
# 停止并删除容器
docker stop lingopod && docker rm lingopod
- 环境准备:
# 克隆项目
git clone https://github.com/linshenkx/lingopod.git
cd lingopod
# 安装依赖(建议python版本3.11)
pip install -r requirements.txt
# 启动服务
python main.py
配置可通过config.py或环境变量设置,所有配置项均支持环境变量注入。
# LLM 服务配置(必选)
API_BASE_URL="https://api.example.com/v1" # LLM API 基础地址
API_KEY="your_api_key" # API 密钥
MODEL="Qwen/Qwen2.5-7B-Instruct" # 使用的模型
# TTS 模式选择
USE_OPENAI_TTS_MODEL=false # 是否使用 OpenAI TTS(默认为 false,使用微软 TTS)
# OpenAI TTS 配置(当 USE_OPENAI_TTS_MODEL=true 时必选)
TTS_BASE_URL="http://localhost:5050/v1" # OpenAI TTS 服务地址
TTS_API_KEY="your_tts_key" # OpenAI TTS API 密钥
TTS_MODEL="tts-1" # OpenAI TTS 模型
# 微软 TTS 配置(当 USE_OPENAI_TTS_MODEL=false 时可选)
HTTPS_PROXY="http://your-proxy:port" # 代理服务器地址(非大陆地区可能需要)
# 中文主播音色
ANCHOR_TYPE_HOST_CN="zh-CN-XiaoxiaoNeural" # 主持人
ANCHOR_TYPE_GUEST_CN="zh-CN-YunxiaNeural" # 嘉宾
# 英文主播音色
ANCHOR_TYPE_HOST_EN="en-US-JennyNeural" # 主持人
ANCHOR_TYPE_GUEST_EN="en-US-ChristopherNeural" # 嘉宾
# 文件存储
TASK_DIR="./data/tasks" # 任务文件目录
DB_PATH="./data/tasks.db" # 数据库路径
# 服务配置
PORT=28811 # 服务端口
HOST="0.0.0.0" # 监听地址
方法 | 端点 | 说明 |
---|---|---|
POST | /api/post_task |
创建播客任务 |
GET | /api/get_task |
获取任务状态 |
GET | /api/get_list |
获取任务列表 |
DELETE | /api/delete_task/{task_id} |
删除任务 |
📝 完整 API 文档请访问
/docs
端点
lingopod/
├── app/ # 核心应用目录
│ ├── server.py # 核心逻辑
│ ├── api.py # API 路由
│ ├── models.py # 数据模型
│ └── config.py # 配置文件
│ └── prompt_templates.yaml # 提示词模板
├── static/ # 前端资源
├── main.py # 入口文件
├── Dockerfile # 容器配置
└── requirements.txt # 项目依赖
欢迎通过以下方式贡献:
- 🐛 报告问题
- 💡 提出新功能建议
- 📝 改进文档
- 🔧 提交代码改进
本项目采用 MIT 许可证 开源。
- LingoPod 客户端 - 跨平台客户端应用