Scrapegraph-ai SpeechGraph 实战指南:从网页抓取到 AI 语音摘要生成
网页爬虫人工智能AI 应用【免费下载链接】Scrapegraph-aiPython scraper based on AI项目地址https://gitcode.com/GitHub_Trending/sc/Scrapegraph-ai点击查看免费下载本文围绕 Scrapegraph-ai 官方示例 examples/speech_graph/README.md 展开系统讲解 SpeechGraph 的核心能力一条集网页抓取、内容解析、LLM 文本分析与语音合成Text-to-Speech于一体的端到端管线。你将掌握 SpeechGraph 的图结构与节点调用链、graph_config的完整配置方法、环境变量设置以及如何把示例 speech_graph_openai.py 改造为可直接运行的语音摘要生成脚本并学会解读执行统计信息。SpeechGraph 是什么SpeechGraph 是 Scrapegraph-ai 提供的语音摘要图它抓取指定网页让 LLM 根据用户 prompt 生成一段文字回答再调用 TTS 模型把回答合成为音频文件输出。从源码类注释看它的定位是a scraping pipeline that scrapes the web, provide an answer to a given prompt, and generate an audio file见 speech_graph.py。官方 README 归纳的四大能力分别为Speech-to-text conversion语音转文本——对音频输入做语音识别与内容提取Audio processing音频处理——音频数据的预处理与输出Text analysis文本分析——对抓取内容进行 LLM 语义分析Sentiment analysis情感分析——对文本做情绪/倾向性判断。安装与初始化环境安装依赖在仓库根目录下通过requirements-dev.txt安装开发所需依赖包含dotenv、openai等运行 SpeechGraph 必需的库pip install -r requirements-dev.txt若希望最小化安装至少需要scrapegraph-ai主体、python-dotenv加载.env、以及openai驱动 TTS 客户端。配置环境变量复制环境变量模板将 examples/speech_graph/.env.example 拷贝为同目录下的.env文件cp examples/speech_graph/.env.example examples/speech_graph/.env在.env中填入你的 API Key# OpenAI API Configuration OPENAI_API_KEYyour-openai-api-key-here # Whisper API Configuration (Optional) WHISPER_API_KEYyour-whisper-api-key-here # Optional Configurations MAX_TOKENS4000 MODEL_NAMEgpt-4-1106-preview TEMPERATURE0.7 # Speech Settings AUDIO_FORMATmp3 SAMPLE_RATE16000READMEE 明确给出的两个核心变量为变量必填性作用OPENAI_API_KEY必需同时驱动 LLM 回答生成与 TTS 语音合成WHISPER_API_KEY可选用于 Whisper 语音识别语音转文本场景模板中的MODEL_NAME、TEMPERATURE、MAX_TOKENS、AUDIO_FORMAT、SAMPLE_RATE为可选配置示例脚本本身仅从环境读取OPENAI_API_KEY其余参数可直接写进graph_config。核心使用方式一行图、一段话、一个音频README 给出的最小调用范式如下from scrapegraphai.graphs import SpeechGraph graph SpeechGraph() text graph.process(audio_file.mp3)需要说明的是这是 README 的示意性 API。在当前仓库的实际实现中SpeechGraph 的构造与运行接口是prompt source config三元组配合run()见 speech_graph.py 与run()方法process并非现有公开方法。真实可运行的写法请以下一节示例为准。完整可运行示例解析仓库提供了官方可运行脚本 examples/speech_graph/speech_graph_openai.py其目标是把https://perinim.github.io/projects/页面内容总结成一段语音。逐段拆解如下1) 定义音频输出路径import os from dotenv import load_dotenv from scrapegraphai.graphs import SpeechGraph from scrapegraphai.utils import prettify_exec_info load_dotenv() FILE_NAME website_summary.mp3 curr_dir os.path.dirname(os.path.realpath(__file__)) output_path os.path.join(curr_dir, FILE_NAME)脚本把生成的音频命名为website_summary.mp3输出到脚本所在目录即examples/speech_graph/下。2) 构造 graph_configopenai_key os.getenv(OPENAI_API_KEY) graph_config { llm: { api_key: openai_key, model: openai/gpt-4o, temperature: 0.7, }, tts_model: {api_key: openai_key, model: tts-1, voice: alloy}, output_path: output_path, }配置分三层对应三种模型/职责llm回答生成的基座模型。model采用provider/model形式openai/gpt-4o会被 abstract_graph.py 拆分为 provideropenai、modelgpt-4o并交给init_chat_model实例化temperature控制回答随机性。tts_model语音合成模型配置默认值见 openai_tts.pymodel默认tts-1voice默认alloyOpenAI 内置音色之一。output_path音频落盘路径。若不提供run()会回退到默认文件名output.mp3见 speech_graph.py。3) 实例化并运行speech_graph SpeechGraph( promptMake a detailed audio summary of the projects., sourcehttps://perinim.github.io/projects/, configgraph_config, ) result speech_graph.run() print(result)prompt决定 LLM 回答的内容与风格source为抓取目标。SpeechGraph 在初始化时会根据 source 前缀自动判断输入类型source.startswith(http)时输入键为url否则为local_dir见 speech_graph.py因此 source 也可以是本地目录路径run()返回图执行后的最终回答文本final_state[answer]同时会把生成的音频写入output_path。4) 打印执行统计graph_exec_info speech_graph.get_execution_info() print(prettify_exec_info(graph_exec_info))get_execution_info()返回各节点的执行明细token 数、请求数、成本、耗时prettify_exec_info会将其格式化为表格文本见 prettify_exec_info.py便于观测全链路开销。图结构与底层调用链SpeechGraph 通过_create_graph()串联四个节点见 speech_graph.pyFetchNode → ParseNode → GenerateAnswerNode → TextToSpeechNodeFetchNode根据url | local_dir抓取页面内容。URL 场景下默认使用 ChromiumLoader 渲染页面headless得到doc若use_soup为 True 则改用requests直接拉取 HTML见 fetch_node.py。ParseNode将 HTML 转为纯文本Html2TextTransformer再按chunk_size切块产出parsed_doc。SpeechGraph 传入的chunk_size取自self.model_token——即 LLM 模型的 token 上限见 parse_node.py。GenerateAnswerNode把user_prompt与文档内容交给 LLM 生成回答写入answer。单文档走TEMPLATE_NO_CHUNKS直接回答多分块则并行分块作答后合并见 generate_answer_node.py。TextToSpeechNode从状态取出answer文本交给 TTS 模型合成音频字节写入audio见 text_to_speech_node.py。图由 BaseGraph 驱动从入口节点FetchNode开始沿边依次执行execute()结束后的final_state中同时含有answer文本与audio字节。音频落盘的关键一步run()中TextToSpeechNode产出的只是字节数据真正写文件的是 save_audio_from_bytesaudio self.final_state.get(audio, None) if not audio: raise ValueError(No audio generated from the text.) save_audio_from_bytes(audio, self.config.get(output_path, output.mp3))OpenAITextToSpeech.run()调用client.audio.speech.create(model, voice, input)并返回response.content见 openai_tts.py即音频的二进制内容。若图执行后未产生audio会直接抛出ValueError提醒检查 TTS 配置。运行前提与注意事项网络与 Key 依赖整个流程需要能访问 OpenAI API 的网络环境且OPENAI_API_KEY同时用于 LLM 与 TTSKey 失效会先后在回答生成和语音合成阶段失败。模型可用性gpt-4o、tts-1均为示例所写模型实际可用性以你的 API 账号为准。若要切换只需修改graph_config中的model字段。输出文件output_path指向脚本同目录的website_summary.mp3运行时该目录需可写。输入类型灵活source支持 URL 或本地目录SpeechGraph 自动在url/local_dir两种输入键间切换。成本观测TTS 调用按字符计费回答越长、合成音频越大、成本越高建议先用prettify_exec_info查看生成节点的 token 与成本统计后再规模化运行。小结SpeechGraph 把网页抓取 → LLM 文本分析 → 语音合成三条能力串成一条可复用管线graph_config只暴露llm、tts_model、output_path三个核心配置块图内部则由 Fetch → Parse → GenerateAnswer → TextToSpeech 四个节点协作完成。官方 README 与 speech_graph_openai.py 共同构成了最快上手的路径配置.env、组装配置字典、实例化SpeechGraph并run()即可获得一份由任意网页生成的音频摘要。想要进一步定制可参照 speech_graph.py 的节点组装逻辑替换tts_model或接入 schema 结构化输出。赞分享网页爬虫人工智能AI 应用【免费下载链接】Scrapegraph-aiPython scraper based on AI项目地址https://gitcode.com/GitHub_Trending/sc/Scrapegraph-ai点击查看免费下载相关推荐基于 CrewAI 的 ScrapegraphScrapeTool使用 Scrapegraph AI 智能抓取网页内容实战指南基于 CrewAI 的 ScrapegraphScrapeTool使用 Scrapegraph AI 智能抓取网页内容实战指南 导读 ScrapegraphS人工智能AI AgentAgent 框架多智能体工作流自动化后端openGauss事务处理机制华为数据库内核经验的深度解析openGauss事务处理机制华为数据库内核经验的深度解析 openGauss作为华为在数据库领域多年内核经验的结晶其事务处理机制体现了企业级数据库的高性能数据库关系型数据库后端零代码玩转AI抓取Scrapegraph-ai集成Hugging Face模型实战指南零代码玩转AI抓取Scrapegraph ai集成Hugging Face模型实战指南 你还在为复杂的网页数据抓取烦恼还在为API调用限制发愁本文将带你零网页爬虫人工智能AI 应用上一篇Dagger File.withReplaced 指南FileWithReplacedOpts 类型详解与文件内容替换实战下一篇mistral.rs 本地 GGUF 模型加载与推理实战从零运行离线 GGUF 文件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

AI coding的两板斧——Rules和Skills:用TaoToken统一Key跑通配置验证

AI coding的两板斧——Rules和Skills:用TaoToken统一Key跑通配置验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 2:33:51 阅读更多 →
蓝-绿部署无法将您从糟糕的迁移中解救出来

蓝-绿部署无法将您从糟糕的迁移中解救出来

部署在90秒内变绿。然后蓝色的错误率达到100%,每个请求都很感人/orders归来的column "orders.status_v2" does not exist。两个健康的应用堆栈,没有工作回滚。 蓝绿色只保护一样东西 Blue-green为您提供了两份应用程序代码和一个在它们之间切…

2026/9/30 2:33:51 阅读更多 →
delta 彩色 Diff 导出为 HTML/PDF:基于 ansifilter 的完整实践指南

delta 彩色 Diff 导出为 HTML/PDF:基于 ansifilter 的完整实践指南

开发工具CLI 【免费下载链接】delta A syntax-highlighting pager for git, diff, grep, rg --json, and blame output 项目地址: https://gitcode.com/gh_mirrors/de/delta 点击查看 免费下载 导读 本文介绍如何使用 delta 将 git show、git diff 等输出的彩色 d…

2026/9/30 2:33:51 阅读更多 →

最新新闻

工控AI应用实战:六个场景切片赋能产线工程师

工控AI应用实战:六个场景切片赋能产线工程师

1. 这不是“学AI”,而是工控人重新校准职业坐标的实战课“工控国际举办全员AI应用能力提升专题培训”——看到这个标题,我第一反应不是点开看PPT长什么样,而是下意识摸了摸自己电脑里那几个常年没更新的PLC仿真软件、SCADA组态工程备份包&…

2026/9/30 5:32:29 阅读更多 →
从代码问答到任务执行:羲和Agent的架构设计与工程实践

从代码问答到任务执行:羲和Agent的架构设计与工程实践

1. 为什么多数AI编码助手止步于问答先讲个真实场景。上个月我给团队搭了一套代码知识库问答机器人,效果相当能打:仓库里几千个文件,问"订单超时重试的逻辑在哪个模块"、"支付回调幂等怎么做的",模型能把文件路…

2026/9/30 5:32:29 阅读更多 →
DTFT与DFT本质区别:连续频谱vs离散采样

DTFT与DFT本质区别:连续频谱vs离散采样

1. 从一张“信号快照”说起:为什么我们非得搞清楚DTFT和DFT的区别?你有没有试过用手机拍一张照片,然后放大再放大,最后发现边缘全是马赛克?或者用录音笔录下一段钢琴声,回放时总觉得少了点“空气感”&#…

2026/9/30 5:32:29 阅读更多 →
Redis 8 接入 AI 实战:内置向量检索与 RAG 应用指南

Redis 8 接入 AI 实战:内置向量检索与 RAG 应用指南

最近关于“Redis 已正式接入 AI”的讨论很多,我也花了不少时间把新版 Redis 真正用起来。这里说的“接入 AI”并不是什么玄学,而是两层现实:一是 Redis 8 开始把向量检索、AI 辅助操作直接内置成官方能力;二是大模型应用越来越普遍…

2026/9/30 5:32:29 阅读更多 →
本地大模型显存估算与硬件匹配:从扫描到量化选型

本地大模型显存估算与硬件匹配:从扫描到量化选型

1. 为什么“我的机器能不能跑这个模型”成了高频问题过去一年,我身边做开发的朋友、做产品的同事、甚至一些刚入门折腾本地模型的学生,问得最多的一句话就是:“我这个配置到底能跑多大的模型?”这个问题听起来简单,但真…

2026/9/30 5:32:29 阅读更多 →
证据驱动源码审阅:Cocos-Engine 静态工程分析实战

证据驱动源码审阅:Cocos-Engine 静态工程分析实战

1. 为什么我要用"证据驱动"的方式审阅 Cocos-Engine 源码第一次听说"静态工程审阅"这个词,很多人的反应是"不就是看代码吗"。但真正做过大型开源项目源码分析的人都知道,漫无目的地翻代码和带着证据链去审阅,完…

2026/9/30 5:31:29 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述:为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多,后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表,动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介:本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档,聚焦城市公共广告资源信息化管理痛点,提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构,含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求,背景很直接:公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关,开放给几个业务团队用。结果第一个月账单出来,额度直接超了 4 倍。仔细查日志,发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 8:16:59 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/29 8:24:48 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →