作者:梅雅达编程笔记
这是多模态栏的最后一篇。用一张表回顾 Day01~Day09 的全部技能点,写一个把抠图、语音合成、语音识别、LLM 整合到一起的多模态 Agent,再梳理这套技术栈在 2026 年的典型应用场景和进阶方向。最后做 6 栏 92 篇的总回顾。
学了这么多,到底能干嘛
前几天有个读者私信我:
“Mable老师,你 10 篇我都跟完了,代码也跑通了。但说实话,我不知道这些东西拼在一起能干什么。单独拎出来,抠图就是抠图,TTS 就是 TTS……怎么变成一个能解决实际问题的工具?”
这个问题问得挺好。单点能力不值钱,组合能力才值钱。
电商卖家不会说"帮我抠个图",他会说"我淘宝店 500 个 SKU,主图背景太乱,帮我全换成白底的,顺便把商品描述也写一下"。
教培机构不会说"帮我做语音合成",他会说"我想搞个 AI 客服,用户打电话进来能自动应答,声音要好听"。
知识博主不会说"帮我做视频字幕",他会说"我有一堆教学视频,帮我加上字幕,再出个文字版讲义"。
每一个实际需求,都是多项能力的组合。这篇就是把散落的珠子串成项链。
全栏知识图谱
十篇技能全景图
先把 Day01~Day09 干了什么摊开看:
| 篇章 | 主题 | 核心工具 | 学到了什么 | 应用场景 |
|---|---|---|---|---|
| Day01 | AI 抠图 | rembg, Pillow | 背景移除、批量处理、Alpha 通道 | 电商白底图、证件照 |
| Day02 | AI P图与增强 | Real-ESRGAN, inpainting | 超分辨率、去水印、风格迁移 | 老照片修复、商品美化 |
| Day03 | AI 营销素材 | CogView-4, SD, Prompt | 文生图、Prompt 工程、模型路由 | 海报、Banner、广告图 |
| Day04 | AI 语音合成 | Edge-TTS, SSML | TTS 合成、音色选择、SSML 控制 | 客服语音通知、有声内容 |
| Day05 | AI 语音识别 | Whisper | ASR 转写、实时识别、说话人分离 | 语音工单、会议记录 |
| Day06 | 声音克隆 | Fish-Speech, GPT-SoVITS | 声音克隆、情感控制、语音对话 | 品牌专属语音客服 |
| Day07 | AI 视频字幕 | Whisper + FFmpeg | 音轨提取、SRT 字幕、多语言翻译 | 教学视频字幕 |
| Day08 | AI 视频摘要 | 关键帧 + LLM | 场景检测、语音转写、结构化摘要 | 课程精华笔记 |
| Day09 | 小红书图文 | GLM + CogView + Pillow | 文案生成、封面设计、自动排版 | 内容矩阵自动化 |
能力分层:三大模块 + 一个整合层
把上面的表再抽象一层:
┌─────────────────────────────────────────────┐ │ 多模态 Agent 整合层 │ │ (LLM 调度 + 管道编排 + 输出管理) │ ├──────────┬──────────────┬───────────────────┤ │ 图像模块 │ 语音模块 │ 视频模块 │ ├──────────┼──────────────┼───────────────────┤ │ 抠图 │ 语音合成(TTS) │ 字幕生成 │ │ 增强 │ 语音识别(ASR) │ 视频摘要 │ │ 生成 │ 声音克隆 │ 关键帧提取 │ │ 排版 │ 对话管理 │ 音轨处理 │ └──────────┴──────────────┴───────────────────┘底层三列是 Day01~Day08 的单项能力,顶层是 Day09 和 Day10 要做的——把这些能力通过 LLM 调度起来,变成一个能理解复杂指令的 Agent。
2026 多模态能力地图:你需要掌握的核心技能
站在 2026 年的节点上,多模态 AI 的工具链已经相当成熟。我把"值得投入时间掌握"的技能和工具整理成了一份地图:
Tier 1 · 必会(核心工具)
| 技能 | 推荐工具 | 理由 |
|---|---|---|
| 图像抠图/分割 | rembg / SAM2 | 开源,效果够用 |
| 图像生成 | CogView-4 / Flux / SD3 | API + 本地部署两条路线 |
| 语音合成 | Edge-TTS / Fish-Speech | 基础方案够用,进阶用开源 |
| 语音识别 | Whisper large-v3 | 开源标杆,多语言准确率高 |
| LLM 文本生成 | GLM-4.7-Flash / Qwen3 | 长上下文,中文能力强 |
Tier 2 · 加分(拉开差距的)
| 技能 | 推荐工具 | 理由 |
|---|---|---|
| 视频处理 | FFmpeg + MoviePy | 字幕/剪辑/转码的基础 |
| 声音克隆 | Fish-Speech / GPT-SoVITS | 品牌化语音的杀手锏 |
| 图像增强 | Real-ESRGAN | 老照片/低质图片修复 |
| Prompt 工程 | 各模型的最佳实践 | 直接决定生成质量 |
Tier 3 · 前沿(关注即可)
| 技能 | 推荐工具 | 理由 |
|---|---|---|
| 模型路由 | Runway Media Router | 自动选择最优模型 |
| AI 视频生成 | Runway Gen-3 / 可灵 | 还在快速迭代中 |
| 多模态大模型 | GPT-4o / Gemini 2.5 | 看图说话、看图写代码 |
你不需要全部掌握。Tier 1 吃透就能解决大部分实际问题,Tier 2 学会能应对更复杂的需求,Tier 3 了解能跟上技术趋势。
动手实战:多模态 Agent 整合示例
说了这么多"整合",来个真的。
下面这个 Agent 能做这么一件事:
你给它一张商品图片 + 一段语音指令,它能:
- 听懂你说了什么(语音识别)
- 看懂图片是什么(抠图 + 视觉理解)
- 根据你的指令生成商品文案(LLM)
- 把文案读出来(语音合成)
- 生成一张带文案的营销图(图像生成 + 排版)
整个流程全自动,你只管说话。
安装依赖
pipinstallrembg edge-tts pillow openai跟前面几篇一样,依赖都是开源或公开可用的工具。
完整代码
""" Day10 · 多模态 Agent 整合示例 功能:图片 + 语音 → 自动抠图 → LLM 生成文案 → TTS 语音播报 → 营销图 """importosimportasyncioimporttempfilefrompathlibimportPathimportedge_ttsfromPILimportImage,ImageDraw,ImageFontfromrembgimportremove,new_sessionfromopenaiimportOpenAI# ─── 配置 ───────────────────────────────────────────# GLM API(智谱 AI 开放平台申请)client=OpenAI(api_key=os.getenv("GLM_API_KEY","your-api-key-here"),base_url="https://open.bigmodel.cn/api/paas/v4/")# 抠图模型预加载rembg_session=new_session("u2net")# TTS 音色TTS_VOICE="zh-CN-XiaoxiaoNeural"# 晓晓,女声,自然# ─── 第一步:语音识别(Whisper) ────────────────────deftranscribe_voice(audio_path:str)->str:"""语音 → 文字:把用户的语音指令转成文本"""# 实际项目中用 Whisper 本地模型# from transformers import pipeline# whisper = pipeline("automatic-speech-recognition", model="openai/whisper-large-v3")# result = whisper(audio_path)# return result["text"]# 这里用 GLM 的语音理解 API 做演示withopen(audio_path,"rb")asf:response=client.chat.completions.create(model="glm-4v-flash",messages=[{"role":"user","content":[{"type":"audio","audio":f.read()},{"type":"text","text":"请转写这段语音的内容"}]}])returnresponse.choices[0].message.content# ─── 第二步:图像抠图 ──────────────────────────────defcutout_image(input_path:str,output_path:str)->Image.Image:"""去除图片背景,返回透明 PNG"""img=Image.open(input_path).convert("RGB")result=remove(img,session=rembg_session)result.save(output_path)returnresult# ─── 第三步:LLM 生成文案 ──────────────────────────defgenerate_copy(product_name:str,style:str="电商")->str:"""根据产品信息生成营销文案"""prompt=f"""你是一个资深文案。请为以下商品写一段{style}风格的营销文案: 商品:{product_name}要求: 1. 50字以内 2. 突出卖点,有画面感 3. 适合小红书/电商详情页 """response=client.chat.completions.create(model="glm-4-7b-flash",messages=[{"role":"user","content":prompt}])returnresponse.choices[0].message.content# ─── 第四步:语音合成 ──────────────────────────────asyncdeftext_to_speech(text:str,output_path:str):"""文字 → 语音:把文案读出来"""communicate=edge_tts.Communicate(text,TTS_VOICE)awaitcommunicate.save(output_path)# ─── 第五步:生成营销图 ────────────────────────────defcreate_marketing_image(product_img:Image.Image,copy_text:str,output_path:str,size:tuple=(800,800)):"""将抠好的商品图 + 文案合成一张营销图"""# 创建画布(渐变背景色)canvas=Image.new("RGB",size,"#F5E6D3")draw=ImageDraw.Draw(canvas)# 粘贴商品图(居中偏上)product_resized=product_img.resize((500,500))canvas.paste(product_resized,(150,50),product_resized)# 写文案(底部)—— 注意:必须用中文字体,否则中文会显示成方框# Windows 用 simhei.ttf,macOS 用 PingFang.ttc,Linux 用 NotoSansCJKfont_paths=["C:/Windows/Fonts/simhei.ttf","/System/Library/Fonts/PingFang.ttc","/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc",]found_font=Noneforfpinfont_paths:ifos.path.exists(fp):found_font=fpbreakiffound_font:font=ImageFont.truetype(found_font,32)else:font=ImageFont.load_default()print("警告:未找到中文字体,文案可能显示为方框")# 自动换行words=copy_text bbox=draw.textbbox((0,0),words,font=font)text_width=bbox[2]-bbox[0]x=(size[0]-text_width)//2y=600draw.text((x,y),words,fill="#333333",font=font)# 加品牌水印(复用同一个中文字体,字号小一点)small_font=ImageFont.truetype(found_font,14)iffound_fontelseImageFont.load_default()draw.text((20,size[1]-30),"© 梅雅达工作室",fill="#999999",font=small_font)canvas.save(output_path)print(f"营销图已保存:{output_path}")# ─── 主管道:串联所有能力 ──────────────────────────asyncdefmultimodal_agent(image_path:str,audio_path:str=None,style:str="电商"):""" 多模态 Agent 主管道 输入:商品图片 + 语音指令(可选) 输出:抠图结果 + 文案 + 语音 + 营销图 """work_dir=Path("./agent_output")work_dir.mkdir(exist_ok=True)print("多模态 Agent 启动...")print("="*50)# Step 1: 语音识别(如果有语音输入)instruction="请为这个商品生成营销文案"ifaudio_pathandos.path.exists(audio_path):print("Step 1/5: 识别语音指令...")instruction=transcribe_voice(audio_path)print(f" → 识别结果:{instruction}")else:print("Step 1/5: 无语音输入,使用默认指令")# Step 2: 抠图print("Step 2/5: AI 抠图...")cutout_path=str(work_dir/"cutout.png")product_img=cutout_image(image_path,cutout_path)print(f" → 抠图完成:{cutout_path}")# Step 3: LLM 生成文案print("Step 3/5: 生成营销文案...")# 这里简化处理,实际可以结合视觉理解 API 自动识别商品copy_text=generate_copy("商品",style)print(f" → 文案:{copy_text}")# Step 4: 语音合成print("Step 4/5: 语音合成...")tts_path=str(work_dir/"narration.mp3")awaittext_to_speech(copy_text,tts_path)print(f" → 语音已保存:{tts_path}")# Step 5: 合成营销图print("Step 5/5: 生成营销图...")marketing_path=str(work_dir/"marketing.png")create_marketing_image(product_img,copy_text,marketing_path)print("="*50)print("全部完成!输出文件:")print(f" 抠图结果:{cutout_path}")print(f" 营销文案:{copy_text}")print(f" 语音播报:{tts_path}")print(f" 营销海报:{marketing_path}")return{"cutout":cutout_path,"copy":copy_text,"audio":tts_path,"marketing":marketing_path}# ─── 运行 ─────────────────────────────────────────if__name__=="__main__":# 示例:给一张商品图,自动生成全套营销素材asyncio.run(multimodal_agent(image_path="product.jpg",# 替换为你的商品图audio_path=None,# 可选:传入语音指令 .wav/.mp3style="电商"))运行结果
配好GLM_API_KEY后,在 Day10 目录放一张product.jpg商品图,直接执行python day10_multimodal_agent.py:
这次是真实调用智谱 API:rembg 完成抠图,LLM 生成营销文案,Edge-TTS 合成语音,Pillow 排版出海报,四件套全部落地到agent_output/(抠图、文案、语音、海报):
再实测语音路径:用 edge-tts 合成一段中文指令test_voice.wav(“你好,这是一个多模态智能体的语音输入测试,请帮我分析这张产品图片并生成宣传海报”),把audio_path传进multimodal_agent,完整跑一遍"语音识别 → 抠图 → 文案 → 语音播报 → 海报":
注意一个实测细节:代码里transcribe_with_glm把音频二进制直接塞进{"type": "audio", "audio": bytes},智谱的 OpenAI 兼容接口不认这种格式(报Object of type bytes is not JSON serializable)。语音识别改成 Day05 的 faster-whisper(small,本地推理)后一次通过,识别出"你好,这是一个多模态智能体的语音输入测试,请帮我分析这张产品图片,并生成宣传海报"。后面每一步都是真实调用:rembg 抠图、GLM-4-flash 生成文案、Edge-TTS 合成语音、Pillow 排版海报,产物落在agent_output_voice/。
注意:上面代码里文案模型写的是
glm-4-7b-flash,这个模型名在当前智谱开放平台会返回"模型不存在"(错误码 1211),配套的day10_multimodal_agent.py已改为glm-4-flash并实测跑通。动手前先到智谱开放平台控制台确认当前可用模型名。
代码结构拆解
看看这个 Agent 做了什么:
输入(图片+语音) │ ▼ ┌──────────────┐ │ Step 1 │ Whisper 语音识别 → 理解指令 │ 语音识别 │ Day05 技能 └──────┬───────┘ ▼ ┌──────────────┐ │ Step 2 │ rembg 抠图 → 获取透明底商品图 │ AI 抠图 │ Day01 技能 └──────┬───────┘ ▼ ┌──────────────┐ │ Step 3 │ GLM-4.7-Flash → 生成营销文案 │ LLM 文案 │ Day03/09 技能 └──────┬───────┘ ▼ ┌──────────────┐ │ Step 4 │ Edge-TTS → 文案转语音 │ 语音合成 │ Day04 技能 └──────┬───────┘ ▼ ┌──────────────┐ │ Step 5 │ Pillow 排版 → 输出营销海报 │ 营销图合成 │ Day03/09 技能 └──────┬───────┘ ▼ 输出(抠图+文案+语音+海报)5 个步骤,5 项技能,来自 Day01~Day09 的不同篇章。单独看每一段代码都不复杂,但组合在一起,就是一个能解决实际问题的多模态 Agent。
用 AI 写 AI 的整合代码
你可能注意到了:上面这段代码本身就是用 AI 辅助写的。
这不是套娃,这是 2026 年的开发方式。
写多模态 Agent 的正确姿势:
- 先把每个能力模块单独跑通(Day01~Day09 已经帮你做了)
- 把各模块的核心函数丢给 AI,让它帮你写整合管道
- 你只需要关注"业务逻辑"——输入是什么、输出要什么、中间怎么串
比如你可以直接跟 AI 说:
“我有一个抠图函数 remove_bg(image_path),一个 TTS 函数 generate_speech(text, output_path),一个 LLM 函数 generate_text(prompt)。帮我写一个 pipeline,输入商品图片,输出抠图结果 + 商品描述文案 + 语音播报。”
AI 会帮你把胶水代码写好,你只需要测试、调整、部署。
这就是"多模态全栈"的真正含义:不是每个模型都自己训练,而是把现成的能力模块像乐高一样拼起来。
这套技术栈能做什么:四大应用方向
把前面 10 篇的能力组合起来,可以覆盖很多实际场景。我整理了四个典型方向,每个方向都给出了需求拆解和技术方案。
方向一:营销素材批量生成
| 客户类型 | 需求 | 技术方案 |
|---|---|---|
| 电商卖家 | 500 张 SKU 白底图 | rembg 批量抠图 + 统一模板排版 |
| 教育公司 | 招生海报 10 套 | CogView 生成 + Pillow 排版 |
| 自媒体 | 日更小红书图文 | Day09 方案直接复用 |
关键点:批量处理的核心是"模板化"。把背景、字体、布局固定成模板,然后批量替换商品图和文案。500 张图和 1 张图的代码几乎一样,只是外层加个循环。
方向二:AI 语音交互方案
| 客户类型 | 需求 | 技术方案 |
|---|---|---|
| 小商家 | 微信自动回复语音 | Edge-TTS + 关键词匹配 |
| 教培机构 | 课程提醒语音通知 | TTS 批量生成 + 定时发送 |
| 品牌方 | 专属声音的客服 | 声音克隆 + 对话 Agent |
关键点:声音克隆是差异化利器。同样一个语音通知方案,用默认音色和用"克隆品牌代言人声音",用户的感知价值完全不同。技术难度差不了多少,但体验天差地别。
方向三:教学视频字幕与摘要
| 客户类型 | 需求 | 技术方案 |
|---|---|---|
| 知识博主 | 视频加字幕 | Whisper + FFmpeg |
| 企业培训 | 视频变图文讲义 | Day07+Day08 方案 |
| MCN | 多语言字幕 | Whisper + LLM 翻译 |
关键点:效率是这类场景的核心。一个 60 分钟的教学视频,Whisper 转写可能只要 10 分钟,剩下的是校对和排版。流水线跑起来后,边际成本极低。
方向四:内容矩阵自动化
| 客户类型 | 需求 | 技术方案 |
|---|---|---|
| 个人 IP | 日更公众号 + 小红书 | Day09 流水线 |
| 企业号 | 多平台内容分发 | 批量生成 + 排版 |
| 电商 | 商品图文全案 | 抠图 + 文案 + 海报 |
关键点:自动化的核心是"可重复"。一旦你的流水线跑通,每月维护成本极低。难点在于第一次把流程调通——这也是本栏 10 篇在帮你做的事。
从跟完教程到独立做项目:路线图
如果你是从 Day01 一路跟过来的,你现在已经具备了做项目的基础能力。但"能跑 Demo"和"能独立做完整项目"之间还有一段路。
路线图:
Week 1-2:跑通全部 10 篇代码,理解每个模块 ↓ Week 3-4:做 2-3 个完整案例(电商素材包/语音客服 Demo/视频字幕) ↓ Week 5-6:把案例整理成作品集,发到 GitHub 或技术社区 ↓ Week 7-8:根据反馈优化流程,尝试更复杂的组合 ↓ Month 3+:建立自己的工具链模板,形成可复用的项目脚手架几个实用建议:
- 建一个 GitHub 仓库,把你的多模态工具链整理好,这就是你的技术简历
- 每个项目都留案例(经授权后),积累作品集
- 写自动化脚本减少重复劳动:同样是抠图,第一次你手动跑脚本,第十次你应该有个一键批处理工具了
- 保持学习:关注本栏提到的前沿工具(SAM2、Runway Gen-3、模型路由),新能力 = 新的可能性
参考链接
本栏核心工具
- rembg(AI 抠图)
- Real-ESRGAN(图像超分)
- Edge-TTS(语音合成)
- Fish-Speech(声音克隆)
- Whisper(语音识别)
- 智谱 AI 开放平台(GLM 模型)
- Runway Media Router(模型路由)
6 栏矩阵总回顾
多模态栏 10 篇到这里完结。把镜头拉远一点,这其实是「AI Python 系列」第 6 栏的收官——也是整个系列 92 篇的一个节点。
| # | 专栏名称 | 篇数 | 核心技能 | 状态 |
|---|---|---|---|---|
| 01 | 办公自动化 | 20 篇 | Python + 文件处理 + Excel/Word/PDF 自动化 + 邮件 + 定时任务 | 已完结 |
| 02 | 数据可视化 | 15 篇 | Matplotlib + Seaborn + Plotly + ECharts + 数据分析 | 已完结 |
| 03 | 爬虫实战 | 15 篇 | Requests + Scrapy + Selenium + 反爬 + 数据清洗 | 已完结 |
| 04 | Web 全栈 | 20 篇 | Flask/FastAPI + 前端 + 数据库 + 部署 + 小程序 | 已完结 |
| 05 | AI Agent | 15 篇 | LLM API + RAG + 知识库 + Agent 框架 + 工作流 | 已完结 |
| 06 | AI + 多模态 | 10 篇 | 抠图/生图/TTS/ASR/声音克隆/视频处理/内容矩阵 | 已完结 |
| 总计 | 92 篇 |
92 篇,从最基础的文件处理,一路写到多模态 Agent。
这 6 栏不是孤立的——它们是一张网:
- 办公自动化 + 多模态 = 批量处理营销素材
- 爬虫 + 数据可视化 = 竞品监控 + 数据报告
- Web 全栈 + AI Agent = 能对话的智能网站
- 数据可视化 + 多模态 = 自动生成带图表的营销内容
当你把这些技能组合起来,你能做的事情远超任何单栏的范畴。
收尾
去年这个时候,"AI Python"这个系列还只是脑子里的一个想法。当时就想:Python 教程那么多,AI 教程也那么多,但把 Python 和 AI 真正结合起来、让普通人能用一套可落地的方案跑起来的教程,好像没见到几个。于是就写了。
92 篇,每一篇背后都有完整可运行的代码、有真实的应用场景、有踩过的坑。有读者私信说"跟着你的办公自动化栏,我把公司的月报从 3 天缩短到了 2 小时"——这种反馈就是继续写下去的理由。
这套多模态技术栈不需要 GPU 集群,不需要付费 API,不需要博士学位。一台电脑,跟着代码敲,就能做出有用的东西。想做项目的,从上面的四大方向里挑一个,先做 2-3 个完整案例;想继续学的,把本栏 Tier 1 的工具都亲手跑一遍。
梅雅达编程笔记,只记录真实能落地的技术。
本文为梅雅达编程笔记原创内容,首发于 CSDN,转载请注明出处。