转变播客体验:AI驱动的摘要和互动聊天机器人解决方案
使用 Whisper 和 GPT-4o 开发基于 RAG 的可扩展解决方案,用于总结播客并获取见解
由 Gen-AI 为播客摘要器制作的动画图像。链接:https://genai.works/gpts/podcast-summarizer
在本文中,我将带您了解如何开发由 AI 驱动的播客摘要器和聊天机器人,该机器人利用 OpenAI Whisper、Pinecone 和 GPT-4o 进行对话式 AI。最终产品是一个完全交互式的 Streamlit 应用程序,用户可以上传播客音频文件,接收 AI 生成的摘要,并与内容进行聊天以提取关键见解。
例如,如果您有一个很长的播客节目,但没有时间听完整录音,那么这个 AI 驱动的工具将转录、总结并让您提出有关它的问题。如果您更喜欢听而不是阅读,聊天机器人甚至可以使用 Whisper 的文本转语音功能生成口语回复。
您可以在此 链接 and 代码在此 GitHub 存储库中找到该应用程序。
在 HuggingFace Spaces 上部署的应用程序的示例演练。
简介
“我们淹没在信息中,却渴望知识。” — John Naisbitt
播客是知识的宝库,但它们通常很长且难以浏览。如果您可以上传播客,获得简洁的摘要,并与之聊天以毫不费力地提取关键见解,那不是很棒吗?这正是我构建的——一个由 AI 驱动的播客摘要器和聊天机器人,它利用行业标准工具,如 OpenAI 的 Whisper API、用于向量搜索的 Pinecone、RAG(检索增强生成)和 Whisper TTS。
播客包含有价值的信息,但提取相关见解既耗时又低效。现有的解决方案提供了基于文本的基本摘要,但缺乏一种交互式和直观的方式来与内容进行交互。
在这篇博文中,我将带您了解使用目前在行业中使用的企业级技术设计、实施和优化此应用程序的整个过程。
动机
几年前,我发现自己下载了数百个播客——占用了数千兆字节的存储空间和无数小时的音频。我不知道哪些是有价值的,哪些可以删除,但仅仅为了弄清楚这一点而听每个播客感觉不切实际。快进到今天,播客可以在 Spotify、YouTube 和 Apple Podcasts 等平台上轻松访问,但核心问题仍然存在——我们如何有效地从长篇音频内容中提取见解,而无需花费数小时收听?
这促使我开发了由 AI 驱动的播客摘要器和聊天机器人——一个应用程序,它可以自动转录播客、总结关键要点,并让用户使用 AI 驱动的问答与内容进行交互。用户现在可以上传播客,接收 AI 生成的摘要,并直接与它聊天以找到他们需要的确切信息——在几秒钟内,而不是被动地消耗数小时的音频。
除了解决这个现实世界的问题之外,我构建了这个项目作为探索和集成行业标准 AI 工具的一种方式,例如用于转录和语音合成的 Whisper STT & TTS、用于可扩展向量搜索的 Pinecone 和用于对话式 AI 的 GPT-4。通过这篇博文,我希望记录我的技术之旅,分享实施策略,并获得反馈以进一步增强这个 AI 驱动的解决方案。
如果您曾经难以从长篇音频中提取见解,那么这个项目可能正是您所需要的。
目录
- 使用 OpenAI Whisper API 进行语音转文本
- 使用 Pinecone 进行分块和向量化
- 语义搜索和 RAG 实现
- 使用 GPT-4 进行对话式 AI
- 使用 Whisper 进行文本转语音 (TTS)
- 在 Hugging Face Spaces 上部署
- 未来工作
- 结论
使用 OpenAI Whisper API 进行语音转文本
构建由 AI 驱动的播客摘要器的第一个挑战是有效地将原始音频转换为文本。与基于文本的文档不同,播客包含非结构化的长篇对话,通常涉及多个说话者、背景噪音和不同的口音。为此,我们使用语音转文本 (STT),这是一种使用 AI 模型将口语转换为书面文本的技术。在我们的播客摘要器中,STT 是第一步——没有它,我们就无法有效地处理播客。
为了从语音中获取文本,我们使用广泛使用的 API,即 Whisper。Whisper 是 OpenAI 的尖端自动语音识别 (ASR) 模型,旨在处理多口音语音、嘈杂的音频和多语言对话。特点:
- 行业领先的准确性,即使在复杂的语音中也能很好地工作。
- 处理背景噪音,非常适合真实的播客。
- 可扩展的 API,允许无缝集成到应用程序中。
对于此应用程序,我没有在本地使用 Whisper,因为它需要大量的处理能力,而是使用了 API 版本。
使用 OpenAI Whisper API 的代码片段
如代码片段所示,API 访问音频文件并以超过 99% 的准确率将其转录为文本(有时在人群交谈或带歌词的音乐的情况下,背景会重叠)。
使用 Whisper API 而不是本地版本的影响
- 在几秒钟内处理大型音频文件,使其具有可扩展性。
- 从播客中提取清晰、结构化的转录,错误最少。
- 处理多个说话者和嘈杂的背景,与基于规则的 ASR 系统不同,Whisper 动态地适应语音变化。
一旦我们有了结构化的转录,下一个挑战就是有效地组织和搜索它们。我们现在将实施智能分块策略,并将嵌入存储在 Pinecone 中,从而确保快速且相关的播客检索。
使用 Pinecone 进行分块和向量化
分块,顾名思义,就是将一个大的信息分成更小的子部分,以实现更快的执行。一旦我们能够从播客的音频中转录文本数据,它就是很长的、非结构化的转录本,对于直接的 AI 处理来说可能太大。由于我们正在使用 GPT-4o 的 API,如果我们传递整个转录本,它将超过 token 限制并减慢响应时间。
## Code Snippet for Chunking function to split large transcripts in smaller chunks
为了测试分块的有效性,我们使用本地 LLM 实例进行了一项实验。由于 GPT-4o 无法在本地使用,我们在 AWS T2 实例上部署了 LLaMA 3.2,并比较了分块与未分块的输入处理时间。结果令人震惊——未分块的方法处理相同数据的时间长了 4 倍。这清楚地表明,分块如何显着提高 AI 检索系统的效率。
现在,我们有了分块的文本数据,准备好进行向量化并存储以供将来检索。为此,我们需要一种快速且可扩展的方式来存储和搜索播客片段。传统数据库难以进行高维向量搜索,因此我们使用了 Pinecone,这是一个为 AI 应用程序优化的基于云的向量数据库。特点:企业级可扩展性——Pinecone 针对生产进行了优化。实时向量搜索——确保跨大型数据集的超快检索。云托管和管理——无需处理基础设施的复杂性。
通过将转录本分块的向量嵌入存储在 Pinecone 中,当用户提出问题时,我们能够进行即时且准确的搜索。
## Code Snippet for Pinecone API access through GCP and Vector embedding storing
分块和向量化的影响
- LLM 仅处理相关的播客分块,而不是整个转录本。
- 优化了查询响应时间,因此用户可以立即得到答案。
- 将来支持数百万集播客。
现在我们已经存储了可搜索的播客分块,下一步是使用检索增强生成 (RAG) 实现语义搜索。这将允许用户提出具体问题并获得准确的、上下文感知的答案。
语义搜索和 RAG 实现
传统的信息检索搜索方法依赖于精确的关键词匹配,当用户以不同于原始文本的方式表达他们的查询时,这种方法通常会失败。另一方面,语义搜索使用向量嵌入来理解单词背后的含义,从而实现更相关和上下文感知的检索。它根据含义而不是关键词检索最相关的转录部分。通过在 AI 处理之前获取正确的上下文,确保更好的 LLM 响应。减少聊天机器人答案中的不相关结果和幻觉。
代码片段显示了该函数,该函数首先为用户提出的查询创建向量嵌入,将其与播客转录的嵌入进行匹配,并检索与所问查询匹配的前 3 个结果。
## Code Snippet for Semantic Searching
现在我们已经检索到最相关的播客分块,我们将其与用户的问题一起传递给 GPT-4,以生成上下文准确的响应。
但是,直接使用 GPT-4 有时会导致幻觉——模型生成误导性或虚假信息。为了防止这种情况,我们实现了一个 RAG 管道,确保响应基于真实的播客数据。
什么是 RAG?
当今最受关注的 AI 技术之一,RAG(检索增强生成)是一个高级框架,它通过在生成答案之前检索真实世界的上下文来增强基于 LLM 的响应。RAG 不仅仅依赖于 LLM 的预训练知识,而是获取相关的播客片段并将其输入到 GPT-4 中,使其能够生成基于事实、准确且直接来自播客的响应。
通过使用 RAG,GPT-4 仅从经过验证的播客数据生成答案,从而减少幻觉并提高响应质量。
## Code Snippet of the RAG Prompt
语义搜索和 RAG 的影响
- 准确的 AI 响应确保聊天机器人的答案直接来自真实的播客内容。
- 仅检索最相关的分块,优化 LLM 效率。
- 防止 AI 幻觉,这意味着模型仍然基于事实的播客数据。
现在我们的聊天机器人检索播客见解并生成响应,下一步是使用文本转语音 (TTS) 增强用户体验。这将允许用户收听 AI 生成的答案,而不是仅仅阅读它们!
使用 GPT-4 的对话式 AI
对话式 AI 能够在用户和 AI 系统之间进行自然的、类似人类的交互。用户可以提出问题并立即获得上下文感知的答案,而不是被动地消费内容。这会将静态播客摘要转变为交互式体验。帮助用户提取特定信息,而无需扫描整个转录本。通过允许后续查询来增强用户参与度
通过检索增强方法,我们的聊天机器人确保响应是基于事实的,并且基于真实的播客内容,而不是纯粹从 LLM 的内部知识生成的。
## Code Snippet of the prompt used to process the user query through GPT-4
GPT-4 仅从检索到的播客数据生成答案,从而确保可信度和准确性。
影响
- 用户可以动态地与播客互动,而不是阅读静态摘要。
- GPT-4 提供基于播客转录的上下文感知响应。
- 通过与 RAG 集成,响应仍然基于检索到的播客数据,从而减少幻觉。
现在我们的聊天机器人检索相关的播客见解并生成答案,下一步是使用文本转语音 (TTS) 增强用户体验。这将允许用户收听 AI 生成的响应,使体验更易于访问和更具吸引力!
使用 Whisper 进行文本转语音 (TTS)
文本转语音 (TTS) 技术将 AI 生成的文本回复转换为语音音频,允许用户通过听取而非阅读来获取信息。这对于喜欢音频交互的播客用户尤其有用。
- 增强了更喜欢听取而非阅读的用户的可访问性
- 通过保持播客格式创造了更沉浸式的体验
- 使聊天机器人的回复以音频格式提供。
我们没有强迫用户在文本和语音之间切换,而是让他们可以提问并以交互式、音频友好的格式接收答案。
就像我们使用 OpenAI 的 Whisper API 进行语音转文本以转录音频一样,我们使用它通过文本转语音生成音频文件,用于收听聊天机器人生成的回复。
用于 TTS 的 Whisper API 的代码片段
一旦生成了文本和音频回复,我们就将所有内容集成到 Streamlit 中以实现交互式 UI。
Streamlit UI 的代码片段
影响
- 将聊天机器人的回复转化为完全基于音频的体验
- 增加了更喜欢语音而不是文本的用户的参与度
- 在添加 AI 交互性的同时保持了播客的原始格式
现在我们已经构建了一个完整的播客摘要器和交互式聊天机器人,最后一步是在 Hugging Face Spaces 上部署该应用程序,以便用户可以公开访问并测试其全部功能!
在 Hugging Face Spaces 上部署
Hugging Face Spaces 是一个免费的、对开发者友好的平台,用于使用 Streamlit、Gradio 或 FastAPI 托管 AI 应用程序。
- 免费且易于设置 - 无需复杂的云配置。
- 原生支持 Streamlit - 非常适合我们的基于 Web 的聊天机器人 UI。
- 也可以连接 Hugging Face 模型或外部 API。
由于我们使用 Streamlit 构建了 UI,因此 Hugging Face Spaces 是一个理想的部署选择。
步骤 1:项目结构:
整个项目的项目文件结构
该结构包括在开发过程中创建和生成的所有文件,这些文件已上传到 GitHub 并克隆到 HuggingFace Spaces。一旦文件在 GitHub 和 HuggingFace 之间同步,它会自动从
步骤 2:requirements.txt
Requirements.txt 库
并启动部署。虽然该项目在 HuggingFace 上构建,但我们需要在运行代码之前更新此环境中的环境变量。为此
步骤 3:环境变量:
转到设置 -> 密钥 -> 环境变量。添加新变量 OPENAI_API_KEY = "your-openai-api-key" PINECONE_API_KEY = "your-pinecone-api-key"
步骤 4:部署:
瞧!一切就绪。部署完成后,通过以下方式测试应用程序:
- 上传播客文件
- 向聊天机器人提问
- 收听 Whisper TTS 生成的回复。
未来工作
虽然我们基于 AI 的播客摘要器和聊天机器人已经展示了其潜力,但我们设想该项目仅仅是更先进和多功能的 AI 驱动内容助手的开始。以下是我们对未来的计划:
功能:
YouTube 和 Spotify 摘要 - 只需输入其 URL 即可直接处理视频和音频流。 基于文本的内容(博客、PDF、研究论文)摘要。 视觉内容(信息图表、图像、演示幻灯片)- 集成 OCR 和视觉问答 (VQA)。 实时上下文感知 - 允许在记住过去对话的同时提出后续问题。 多语言支持 - 支持多种语言的播客摘要和聊天。 个性化推荐 - 根据用户偏好推荐播客摘要。 高级搜索功能 - 使用混合搜索 (BM25 + 密集检索) 以获得更准确的结果。
该项目最初只是一个简单的播客摘要器,但未来的可能性是巨大的。我们的下一步是增强 AI 功能,改进实时交互,并使用户在线检索知识变得更加无缝。
结论
本文探讨了我们基于 AI 的播客摘要器和聊天机器人的开发,该工具旨在将长篇音频内容转化为交互式、可访问的见解。通过利用 OpenAI 的 Whisper 进行语音转文本、Pinecone 进行向量搜索以及 GPT-4 进行对话式 AI,我们构建了一个系统,该系统允许用户上传播客、接收 AI 生成的摘要,并提出具有准确、检索增强回复的上下文问题。我们逐步介绍了整个开发过程,从语音转录、分块和语义搜索到聊天机器人集成和文本转语音 (TTS) 增强,从而确保了无缝且引人入胜的用户体验。然后,该项目已成功部署在 Hugging Face Spaces 上,使其可公开访问且可扩展。简而言之,此应用程序弥合了被动播客消费与 AI 驱动的知识检索之间的差距,允许用户以前所未有的方式与口头内容互动。虽然这仅仅是开始,但扩展到多模态 AI、实时财务见解和个性化内容推荐的潜力使其成为一个令人兴奋的创新领域。