🤖 这是一个基于人工智能的学术论文播客自动生成系统。该系统可以自动爬取最新的学术论文,通过 LLM 生成播客脚本,并利用文本转语音技术生成逼真的播客音频。
- 🔍 自动爬取 arXiv 网站的最新学术论文
- 🧠 使用大语言模型生成结构化的播客对话脚本
- 🎯 支持自定义关键词和时间范围的新闻筛选
- 🗣️ 通过百度文本转语音 API 生成自然的播客音频
- 📝 完整的日志记录和文章引用追踪
- 🎨 支持多种音色和语音参数调节
- 🐍 Python 3.7+
- 📦 依赖包详见 requirements.txt
git clone https://github.com/MJy1023/MyArxivPodcast.git
cd MyArxivPodcast
pip install -r requirements.txt
在 config.py
中配置以下参数:
- 🔑 LLM API 密钥 (支持智谱AI等)
- 🎤 百度文本转语音 API 密钥
- 🎯 目标网站和关键词设置
支持两种运行模式:
# 生成中文播客
python main.py --mode batch --language zh
# 生成英文播客
python main.py --mode batch --language en
# 通过主题生成中文播客
python main.py --mode single --language zh --topic "LLM Agent"
# 通过文章ID生成英文播客
python main.py --mode single --language en --identifier "2401.xxxxx"
# 通过标题搜索生成播客
python main.py --mode single --language zh --title "论文标题"
--mode
: 选择生成模式batch
: 批量生成多篇文章的播客single
: 生成单篇文章的详细播客
--language
: 选择语言zh
: 中文en
: 英文
--topic
: 文章主题(单篇模式)--identifier
: 文章ID(单篇模式可选)--title
: 文章标题(单篇模式可选)
程序会在 output
目录下生成带时间戳的文件夹,包含:
- 📝 播客脚本文本 (podcast_script.txt)
- 🎵 音频文件 (podcast.mp3)
- 📊 文章引用信息 (article_references.json)
- 📋 运行日志 (logs/podcast_generation_*.log)
可以在 config.py
中自定义以下配置:
- 🌐 目标网站和关键词
- ⏰ 新闻爬取的时间范围
- 🔧 API 设置
- 🎛️ 音频合成参数(语速、音调等)
- 📁 输出路径设置
.
├── main.py # 🎯 主程序入口
├── config.py # ⚙️ 配置文件
├── news_crawler.py # 🕷️ 新闻爬虫模块
├── podcast_generator.py # 🎙️ 播客内容生成模块
├── text_to_speech.py # 🗣️ 语音合成模块
├── prompt.py # 💭 LLM 提示词模板
└── README.md # 📖 项目说明文档
生成效果如下(具体生成要求可以自行调节prompt,例如可以要求其播客内容更加深入专业):
欢迎提交 Issue 和 Pull Request 来帮助改进项目!让我们一起把这个项目变得更好! 💪
- 💫 请确保有足够的 API 调用额度
- ⏳ 音频生成可能需要较长时间,请耐心等待
- 🧹 建议定期清理临时文件和日志
如果你喜欢这个项目,欢迎点个 Star!✨
如有任何问题或建议,欢迎通过以下方式联系:
- 📧 Email: maojiayi1023@163.com
- 💬 Issues: GitHub Issues
🤖 An AI-powered system that automatically generates academic paper podcasts. It crawls the latest academic papers, generates podcast scripts using LLM, and converts them into natural-sounding audio using text-to-speech technology.
- 🔍 Automatically crawl academic papers from sources like arXiv
- 🧠 Generate structured podcast scripts using LLM
- 🎯 Customizable keywords and time range for news filtering
- 🗣️ Natural podcast audio generation via Baidu TTS API
- 📝 Complete logging and article reference tracking
- 🎨 Multiple voice options and audio parameter adjustments
- 🐍 Python 3.7+
- 📦 See requirements.txt for dependencies
git clone https://github.com/MJy1023/MyArxivPodcast.git
cd MyArxivPodcast
pip install -r requirements.txt
# Copy configuration template
cp config.template.py config.py
Then configure in config.py
:
- 🔑 LLM API key (Zhipu AI)
- 🎤 Baidu TTS API keys
- 🎯 Other settings...
The program supports two running modes:
# Generate Chinese podcast
python main.py --mode batch --language zh
# Generate English podcast
python main.py --mode batch --language en
# Generate Chinese podcast by topic
python main.py --mode single --language zh --topic "LLM Agent"
# Generate English podcast by article ID
python main.py --mode single --language en --identifier "2401.xxxxx"
# Generate podcast by article title
python main.py --mode single --language zh --title "paper title"
--mode
: Generation modebatch
: Generate podcast for multiple articlessingle
: Generate detailed podcast for a single article
--language
: Language selectionzh
: Chineseen
: English
--topic
: Article topic (single mode)--identifier
: Article ID (optional for single mode)--title
: Article title (optional for single mode)
The program generates a timestamped folder in the output
directory containing:
- 📝 Podcast script (podcast_script.txt)
- 🎵 Audio file (podcast.mp3)
- 📊 Article references (article_references.json)
- 📋 Logs (logs/podcast_generation_*.log)
Customize in config.py
:
- 🌐 Target websites and keywords
- ⏰ News crawling timeframe
- 🔧 API settings
- 🎛️ Audio synthesis parameters
- 📁 Output path settings
.
├── main.py # 🎯 Main entry
├── config.py # ⚙️ Configuration
├── news_crawler.py # 🕷️ News crawler
├── podcast_generator.py # 🎙️ Content generator
├── text_to_speech.py # 🗣️ TTS module
├── prompt.py # 💭 LLM prompts
└── README.md # 📖 Documentation
Issues and PRs are welcome! Let's make this project better together! 💪
- 💫 Ensure sufficient API quota
- ⏳ Audio generation may take time
- 🧹 Regular cleanup of temp files recommended
If you like this project, please give it a star! ✨
For any questions or suggestions:
- 📧 Email: maojiayi1023@163.com
- 💬 Issues: GitHub Issues
You can listen to the demo podcast here: