pdf-to-podcast

GitHub
817 209 中等 1 次阅读 今天Apache-2.0音频视频
AI 解读 由 AI 自动生成,仅供参考

pdf-to-podcast 是一款由 NVIDIA 推出的开源项目,旨在将枯燥的 PDF 文档自动转化为生动有趣的播客音频。它主要解决了用户在通勤、运动等移动场景下难以高效吸收长篇书面报告或学术文献的痛点,让“阅读”变为轻松的“聆听”。

这款工具特别适合开发者及企业技术团队使用。用户只需提供一份核心 PDF(目标文档)和若干参考 PDF(背景资料),甚至可以通过提示词指定关注重点(如“聚焦季度财报的关键驱动因素”),系统便能生成逻辑清晰、内容精准的对话式脚本,并利用高质量的语音合成技术输出音频。

其技术亮点在于基于 NVIDIA NIM 微服务架构构建,支持灵活部署。既可以直接调用云端 API 在普通服务器上运行,也能在本地私有网络中部署,确保敏感数据不出内网,满足企业对数据隐私的高要求。底层集成了 Meta Llama 3.1 系列大模型进行智能内容提炼,配合 Docling 进行文档解析以及 ElevenLabs 的自然语音合成,实现了从文档摄入到音频生成的全自动化流程。对于希望构建定制化知识音频应用或探索 AI 多模态转化的技术人员而言,这是一个极具参考价值的蓝图。

使用场景

某金融分析师团队需要在通勤途中快速消化数十页的季度财报和竞品分析 PDF,以便在晨会中即时输出洞察。

没有 pdf-to-podcast 时

  • 阅读效率低下:面对上百页的密集文档,必须在电脑前逐字阅读,无法利用通勤或运动等碎片时间。
  • 关键信息遗漏:人工速读容易忽略隐藏在长文本中的细微数据变化或上下文关联,导致分析不够全面。
  • 协作成本高昂:团队成员需各自阅读后开会同步,若有人未读完,会议效率将大打折扣,且难以统一关注焦点。
  • 数据安全风险:若使用公共在线转换工具,敏感的财务数据可能泄露,不符合企业合规要求。

使用 pdf-to-podcast 后

  • 随时随地聆听:pdf-to-podcast 将枯燥的财报自动转化为生动的双人对话播客,分析师可在地铁上轻松“听”完报告。
  • 智能提炼重点:基于 Llama 3.1 模型,工具能结合背景文档自动识别并强调关键驱动因素(如"Q3 营收增长主因”),避免信息过载。
  • 定制化内容聚焦:团队可输入特定指引(如“重点关注现金流风险”),让生成的音频内容直接服务于晨会讨论主题。
  • 私有化安全部署:依托 NVIDIA NIM 架构,整个处理流程可在内网运行,确保敏感财务数据不出域,满足严格的安全合规标准。

核心价值在于将静态、耗时的文档阅读转变为动态、高效的听觉学习,同时兼顾了企业级的数据安全与内容定制需求。

运行环境要求

操作系统
  • Linux (Ubuntu 20.04 或 22.04)
GPU
  • 非必需(若使用云端 NVIDIA NIM API 则无需 GPU)
  • 若本地部署 NIM,需支持 Llama 3.1 系列模型的 NVIDIA GPU(具体型号和显存需参考官方支持矩阵),建议启用 GPU 加速 PDF 处理以提升速度
内存

最低 64GB

依赖
notes1. 默认模式调用云端 API,可在无 GPU 机器运行,但需公网 IP;2. 本地部署需 NVIDIA AI Enterprise 许可证及 API Key;3. 首次启动 Docling 服务可能耗时 10-15 分钟拉取镜像;4. 生产环境需自行配置 SSL/TLS 加密,默认仅为 HTTP;5. 可通过修改配置切换模型大小以优化显存占用。
python未说明(项目使用 UV 管理依赖,隐含支持主流 Python 3.x 版本)
NVIDIA NIM (Llama 3.1 系列)
Docling
ElevenLabs API
Redis
MinIO
Docker Compose (>=2.29.1)
NVIDIA Container Toolkit
UV (Python 包管理器)
Ruff (代码检查)
Git
pdf-to-podcast hero image

快速开始

NVIDIA AI 蓝图:PDF 转播客

概述

本 NVIDIA AI 蓝图向开发者展示了如何构建一款将 PDF 文件转换为引人入胜的音频内容的应用程序。该蓝图基于 NVIDIA NIM 构建,具有高度灵活性,可在私有网络中安全运行,在不共享敏感数据的情况下提供可操作的洞察。

架构图

该蓝图接受一个目标 PDF 文件,并可选择性地上传多个上下文 PDF 文件。目标 PDF 将作为生成转录文本的主要信息来源,而上下文 PDF 则用作智能体的额外参考材料。用户还可以选择性地指定引导提示,以帮助智能体生成有针对性的转录文本(例如:“重点关注英伟达第三季度财报的关键驱动因素”)。

有关 PDF、智能体和 TTS 服务流程的更多信息,请参阅 Mermaid 图表

:exclamation: 重要
使用 NVIDIA AI Workbench 运行此蓝图的用户,请直接跳转至快速入门部分 此处!

软件组件

注意: 由于 NVIDIA 蓝图可根据您的具体业务场景和/或基础设施进行调整,上述软件组件均可配置。例如,为了减少所需的 GPU 显存,您可以使用较小的 Llama 3.1-8B NIM,并在 docker-compose.yaml 中禁用 Docling 的 GPU 使用。

我们提供了 Docker Compose 脚本,可在单个节点上启动这些微服务。该蓝图包含示例用例 PDF 文件,但开发者可以根据自身特定用例,使用自己的 PDF 文件在此基础上进行扩展。

硬件要求

以下是硬件要求,具体取决于您选择的部署方式。部署此蓝图有两种方法:

  1. 默认方式 - 使用 NVIDIA API 目录中的 NIM 端点

    • 可在任何非 GPU 加速的机器或虚拟机上运行
      • 8 核 CPU
      • 64 GB 内存
      • 100 GB 磁盘空间
      • 需要一个公网 IP 地址
  2. 在本地托管 NVIDIA NIM

注意: 若要大规模运行该蓝图并加快 PDF 的预处理速度,建议使用 GPU 来运行 PDF 摄取/提取管道。

先决条件

  • 需要 NVIDIA AI Enterprise 开发者许可证才能在本地托管 NVIDIA NIM。
  • API 目录密钥:

快速入门指南

  1. Docker Compose

系统要求:基于 Ubuntu 20.04 或 22.04 的机器,具备 sudo 权限

安装软件要求:

  • 安装 Docker 引擎和 Docker Compose。请参考 Ubuntu 的安装说明。
  • 确保 Docker Compose 插件版本为 2.29.1 或更高。
  • 运行 docker compose version 进行确认。
  • 更多信息请参阅 Docker 文档中的 安装 Compose 插件
  • 若要配置 Docker 以支持 GPU 加速容器,请安装 NVIDIA Container Toolkit
  • 安装 git
  1. 获取 API 密钥:

NVIDIA 推理微服务 (NIM)

  • 有两种方法可以为 NIM 生成 API 密钥:
    • 使用您的电子邮件登录 NVIDIA Build 门户。
      • 点击任意一个 模型,然后点击“获取 API 密钥”,最后点击“生成密钥”。
    • 使用您的电子邮件登录 NVIDIA NGC 门户。
      • 登录后从下拉菜单中选择您的组织。您必须选择已启用 NVIDIA AI Enterprise (NVAIE) 的组织。
      • 点击右上角的账户,在下拉菜单中选择“设置”。
      • 点击“生成个人密钥”选项,然后点击“+ 生成个人密钥”按钮以创建您的 API 密钥。
        • 此密钥将用于 NVIDIA_API_KEY 环境变量。
      • 点击“生成 API 密钥”选项,然后点击“+ 生成 API 密钥”按钮以创建 API 密钥。

重要提示:此密钥将用于下方的 NVIDIA_API_KEY 环境变量。

ElevenLabs

  1. 克隆仓库

    git clone https://github.com/NVIDIA-AI-Blueprints/pdf-to-podcast
    
  2. 设置环境变量

    # 在 /home/<username>/.local/bin/env 中创建包含所需变量的 .env 文件
    echo "ELEVENLABS_API_KEY=your_key" >> .env
    echo "NVIDIA_API_KEY=your_key" >> .env
    echo "MAX_CONCURRENT_REQUESTS=1" >> .env
    

注意: ElevenLabs API 密钥可以处理并发请求。对于本地开发,建议将 MAX_CONCURRENT_REQUESTS 设置为 1,以避免速率限制问题。

  1. 安装依赖项

我们使用 UV 来管理 Python 依赖项。

make uv

这将:

  • 如果未安装 UV,则进行安装
  • 创建虚拟环境
  • 安装项目依赖项

如果您打开一个新的终端窗口并希望快速重新使用相同的环境,可以再次运行 make uv

  1. 启动开发服务器

    make all-services
    

注意: 首次运行 make all-services 时,docling 服务可能需要 10-15 分钟来拉取和构建镜像。后续运行会快得多。

该命令将:

  • 验证环境变量是否已设置
  • 创建必要的目录
  • 使用 Docker Compose 以 --build 模式启动所有服务。

注意: 设置 DETACH=1 可以使服务在分离模式下运行,以便在服务运行时继续使用您的终端。

  1. 查看 Swagger API 文档

要查看 API 的 Swagger UI,您可以本地访问 localhost:8002/docs。如果在虚拟机上运行,您需要将 8002 端口进行端口转发,或将该端口暴露在您的虚拟机上。

  1. 生成播客

    source .venv/bin/activate
    python tests/test.py --target <pdf1.pdf> --context <pdf2.pdf>
    

默认情况下,此命令会生成一个双人播客。若要生成单人播客,请添加 --monologue 标志。重要提示:默认情况下,test.py 假设 PDF 文件位于 samples 目录中。

若测试过程中出现错误,可查看 Docker Compose 的日志以进行调试。

自定义

  1. 将 PDF 服务托管在独立机器上。

本蓝图默认使用 docling 作为 PDF 提取服务。

若要在独立机器上运行 PDF 提取服务,请在 .env 文件中添加以下内容:

echo "MODEL_API_URL=<pdf-model-service-url" >> .env

make model-dev 目标将仅启动 docling 服务。

  1. 使用自托管的 NIM

默认情况下,本蓝图使用由 3 个 LLM 组成的集成模型来生成播客。示例中使用了 Llama 3.1-8B、Llama 3.1-70B 和 Llama 3.1-405B NIM,以实现性能与准确性的平衡。若要使用其他模型,请更新 models.json 文件以包含所需的模型。默认的 models.json 会调用 NVIDIA 托管的 API 目录端点。这是默认配置,推荐给刚开始使用本蓝图的用户;但当您希望对蓝图进行调整时,则需要使用本地托管的 NIM 端点。

  1. 更改默认模型和 GPU 分配

您可以轻松替换堆栈中的不同组件,以优化现有硬件上的 GPU 使用情况。例如,通过替换为较小的 Llama 3.1-8B NIM,并在 docker-compose.yaml 中禁用 docling 的 GPU 使用,从而减少 GPU 资源占用。

  1. 启用追踪功能

我们在 http://localhost:16686/ 上公开了一个 Jaeger 实例,用于系统追踪。这对于调试和监控系统非常有用。

贡献

  1. fork 仓库
  2. 创建功能分支
  3. 进行更改
  4. 运行测试: python tests/test.py
  5. 运行代码检查: make ruff
  6. 提交拉取请求

代码质量

该项目使用 ruff 进行代码检查和格式化。在合并您的 PR 之前,必须运行 make ruff

make ruff  # 同时运行检查和格式化

CI/CD

我们使用 GitHub Actions 进行 CI/CD。我们执行以下操作:

  • ruff:运行代码检查和格式化
  • pr-test:在 PR 上运行端到端播客测试
  • build-and-push:构建并将新的容器镜像推送到远程仓库。此操作用于更新生产部署。

安全注意事项

重要提示:此设置使用 HTTP 协议,不适用于生产环境部署。对于生产环境部署,建议实施以下安全措施:

  • 添加 SSL/TLS 加密,方法如下:
    • 使用 SSL 证书配置 uvicorn
    • 设置反向代理(如 Nginx)以处理 SSL 终止
    • 实施适当的证书管理
    • 配置合适的安全头信息
  • 遵循其他 Web 安全最佳实践

版本历史

1.0.02025/01/15

相似工具推荐

Deep-Live-Cam

Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。

88.9k|★★★☆☆|2天前
开发框架图像Agent

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|2天前
图像数据工具视频

GPT-SoVITS

GPT-SoVITS 是一款强大的开源语音合成与声音克隆工具,旨在让用户仅需极少量的音频数据即可训练出高质量的个性化语音模型。它核心解决了传统语音合成技术依赖海量录音数据、门槛高且成本大的痛点,实现了“零样本”和“少样本”的快速建模:用户只需提供 5 秒参考音频即可即时生成语音,或使用 1 分钟数据进行微调,从而获得高度逼真且相似度极佳的声音效果。 该工具特别适合内容创作者、独立开发者、研究人员以及希望为角色配音的普通用户使用。其内置的友好 WebUI 界面集成了人声伴奏分离、自动数据集切片、中文语音识别及文本标注等辅助功能,极大地降低了数据准备和模型训练的技术门槛,让非专业人士也能轻松上手。 在技术亮点方面,GPT-SoVITS 不仅支持中、英、日、韩、粤语等多语言跨语种合成,还具备卓越的推理速度,在主流显卡上可实现实时甚至超实时的生成效率。无论是需要快速制作视频配音,还是进行多语言语音交互研究,GPT-SoVITS 都能以极低的数据成本提供专业级的语音合成体验。

56.4k|★★★☆☆|2天前
音频

MoneyPrinterTurbo

MoneyPrinterTurbo 是一款利用 AI 大模型技术,帮助用户一键生成高清短视频的开源工具。只需输入一个视频主题或关键词,它就能全自动完成从文案创作、素材匹配、字幕合成到背景音乐搭配的全过程,最终输出完整的竖屏或横屏短视频。 这款工具主要解决了传统视频制作流程繁琐、门槛高以及素材版权复杂等痛点。无论是需要快速产出内容的自媒体创作者,还是希望尝试视频生成的普通用户,无需具备专业的剪辑技能或昂贵的硬件配置(普通电脑即可运行),都能轻松上手。同时,其清晰的 MVC 架构和对多种主流大模型(如 DeepSeek、Moonshot、通义千问等)的广泛支持,也使其成为开发者进行二次开发或技术研究的理想底座。 MoneyPrinterTurbo 的独特亮点在于其高度的灵活性与本地化友好性。它不仅支持中英文双语及多种语音合成,允许用户精细调整字幕样式和画面比例,还特别优化了国内网络环境下的模型接入方案,让用户无需依赖 VPN 即可使用高性能国产大模型。此外,工具提供批量生成模式,可一次性产出多个版本供用户择优,极大地提升了内容创作的效率与质量。

55k|★★★☆☆|3天前
开发框架语言模型Agent

oh-my-openagent

oh-my-openagent(简称 omo)是一款强大的开源智能体编排框架,前身名为 oh-my-opencode。它致力于打破单一模型供应商的生态壁垒,解决开发者在构建 AI 应用时面临的“厂商锁定”难题。不同于仅依赖特定模型的封闭方案,omo 倡导开放市场理念,支持灵活调度多种主流大模型:利用 Claude、Kimi 或 GLM 进行任务编排,调用 GPT 处理复杂推理,借助 Minimax 提升响应速度,或发挥 Gemini 的创意优势。 这款工具特别适合希望摆脱平台限制、追求极致性能与成本平衡的开发者及研究人员使用。通过统一接口,用户可以轻松组合不同模型的长处,构建更高效、更具适应性的智能体系统。其独特的技术亮点在于“全模型兼容”架构,让用户不再受制于某一家公司的策略变动或定价调整,真正实现对前沿模型资源的自由驾驭。无论是构建自动化编码助手,还是开发多步骤任务处理流程,oh-my-openagent 都能提供灵活且稳健的基础设施支持,助力用户在快速演进的 AI 生态中保持技术主动权。

49.3k|★★☆☆☆|今天
视频语言模型开发框架

TTS

🐸TTS 是一款功能强大的深度学习文本转语音(Text-to-Speech)开源库,旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点,让高质量的语音生成变得触手可及。 无论是希望快速集成语音功能的开发者,还是致力于探索前沿算法的研究人员,亦或是需要定制专属声音的数据科学家,🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型,让用户能够即刻上手,还提供了完善的工具链,支持用户利用自有数据训练新模型或对现有模型进行微调,轻松实现特定风格的声音克隆。 在技术亮点方面,🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言,并在整体性能上大幅提升,实现了低于 200 毫秒的超低延迟流式输出,极大提升了实时交互体验。此外,它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型,并支持调用上千个 Fairseq 模型,展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具,🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。

45k|★★★☆☆|5天前
音频开发框架图像