将语音、视觉与生成模型整合为多模态应用
了解多模态人工智能的六大核心要素,掌握语音、视觉与生成模型如何串联成处理流程,以及适合初学者的开源工具和项目有哪些。
现代人工智能系统能够读取文本、解析图像、转录语音、合成声音,还能生成图片或视频。这些功能单独使用都很实用,但当将它们组合起来时就能创造出有趣的应用:用户上传一张照片,用语音提出相关问题,随后就能听到答案的朗读。本指南将解释多模态人工智能对应用开发者的意义,将其拆解为六个构成要素,展示各部分之间如何传递数据,并最后提供学习顺序以及一系列相互关联的项目。
“多模态”究竟意味着什么
“模态”是一种信息类型。多模态系统能够接收或生成多种此类信息,通常包括:
- 文本
- 图像
- 音频
- 视频
传统的聊天机器人仅处理单一类型的输入和输出,即文本:
User → Text → AI → Text
多模态应用拓宽了这一流程的两端,因此输入和输出都可以是各种模态的任意组合:
User
↓
Text / Voice / Image / Video
↓
AI
↓
Text / Voice / Image / Video
对用户而言,这意味着可以以当前最自然的方式与系统交互:边开车边说话、通过拍照而非打字来处理文档、选择聆听而非阅读。
从单一模型到模型链
从最简单的情况开始。用户上传一张图片并询问其中的内容。视觉模型接收图像、对其进行解析,然后返回文本描述:
🖼️ Image
↓
Vision Model
↓
Understand Image
↓
📝 Text Response
由于输出的是纯文本,它就可以成为另一个组件的输入。将其交给文本转语音引擎后,应用就能通过查看图片并大声输出答案:
🖼️ Image
↓
Vision AI
↓
📝 Text
↓
Text-to-Speech
↓
🔊 Audio
这种一个模型的输出成为下一个模型输入的模式,正是整个主题的核心思想。文本通常充当各组件之间的通用媒介,正因如此,即便输入和最终输出都不是文本,仍有许多处理流程会经过文本环节。
六个基础构成要素
开发者所需的知识主要涵盖以下六个领域:
- 图像生成
- 语音转文本
- 文本转语音
- 视频生成
- 视觉技术(图像理解)
- 结合上述技术的多模态工作流
前五种属于具体组件,第六种则是将这些组件整合到产品中的工程技能。下文将依次介绍每一项。
图像生成
图像模型可将文本提示转化为图片:
📝 Prompt
↓
AI Image Model
↓
🖼️ Generated Image
提示词会描述主题、场景和风格,例如:
A futuristic city in Kerala during a rainy evening,
cinematic lighting, realistic photography
值得探索的开放生态系统包括 Stable Diffusion 和 SDXL、FLUX、基于节点的 ComfyUI 界面,以及 Hugging Face 上发布的图像模型。
仅根据提示词生成单张图片只是第一步。要打造真正的创意工具,你需要了解以下内容:
- 文本转图像生成
- 图像间转换
- 编辑现有图像的特定部分
- 提示词设计
- 输出分辨率
- 宽高比
- 基于参考图像的条件设定
- 风格控制
这些控制要素非常重要,因为产品需求很少是“任意图像”:缩略图需要固定的宽高比,品牌素材需要统一的风格,而编辑时必须保留选定区域之外的所有内容。
语音转文本
人们说话的速度比打字快,因此语音输入能让应用程序的使用体验更加自然。语音转文本(STT)模型可将录制的或实时的音频转换为语言模型能够处理的文本:
🎤 Voice
↓
Speech Recognition
↓
📝 Text
如果用户说“为明天创建一个提醒”,识别器会将这句话以字符串形式输出:
Create a reminder for tomorrow.
该字符串随后会被传递给大语言模型,后者可以理解其意图,并调用应用程序所使用的相应提醒接口。Whisper这种自动语音识别模型是文本转录的常见起点。除了对干净的音频文件进行一次转换外,实际需要处理的问题还包括:
- 捕获麦克风输入
- 处理音频文件
- 音频格式与采样率
- 批量转录
- 多语言音频
- 流式转录
- 实时识别
流媒体传输与噪音处理往往是原型在实际应用中出问题的环节,因此应尽早使用真实的音频进行测试。文本转语音技术能够实现语音助手、会议记录、字幕、语音搜索以及免提控制等功能。
文本转语音
文本转语音(TTS)则反向运作,将文字转换为语音音频:
📝 Text
↓
TTS Model
↓
🔊 Audio
如下所示的确认信息可以以语音形式读出,而无需显示在屏幕上:
Your order has been successfully placed.
可尝试的选项包括Piper、Coqui TTS、云端TTS API以及其他神经网络语音模型。需要调整的参数包括:
- 选择哪种语音
- 语速
- 音调
- 输出音频格式
- 流式播放
- 语音的自然度
- 说话风格
流式处理的重要性比最初看上去的要高:如果应用在播放任何内容之前都要等待整个答案生成完毕,用户就会觉得该助手反应迟缓。其常见应用场景包括智能助手、无障碍功能、有声书、导航、教育以及客户支持。
视频生成
图像模型只能生成单帧画面,而视频模型则需要生成在时间上保持连贯性的动态内容。有三种工作流程值得了解。
文本转视频
通过提示词描述场景,模型便能生成相应片段:
📝 Prompt
↓
AI Video Model
↓
🎬 Video
典型的提示词会包含主体、动作及环境条件等描述:
A motorcycle travelling through the
Kerala countryside during heavy monsoon rain.
图像转视频
以静态图片作为起始帧,模型再为其添加动画效果:
🖼️ Image
↓
Video Model
↓
🎬 Moving Video
视频转视频
对现有视频片段进行修改,例如调整风格,同时保持其结构不变:
🎬 Existing Video
↓
AI Model
↓
🎬 Transformed Video
诸如Wan和CogVideoX这样的开放模型可供使用,通常通过ComfyUI或Hugging Face运行。将可用输出与噪声区分开来的关键因素包括运动生成、摄像机移动、角色一致性保持、帧与帧之间的时间一致性以及分辨率和帧率。视频模型对硬件的要求也是最高的,因此在选择本地推理而非云端推理之前值得先考察硬件条件。
视觉技术:理解而非创造
人们很容易将它们混为一谈,但区别其实很简单:图像生成负责创建图片,而视觉模型则负责解读这些图片。给视觉模型展示一张汽车的照片,询问它的颜色,它就会根据所看到的内容给出答案:
🖼️ Image
↓
Vision Model
↓
Question
↓
📝 Answer
典型的视觉任务包括:
- 描述图像
- 识别物体
- 光学字符识别
将照片转换为结构化数据
拍下的收据就是视觉技术得以实际应用的典型例子。系统不会要求模型给出自由形式的描述,而是要求其以JSON格式返回相关字段:
📷 Receipt
↓
Vision AI
↓
Extract Information
↓
{
"shop": "ABC Store",
"total": 1250
}
结构化输出正是让视觉模型在更大系统中发挥作用的关键:JSON格式的数据可以经过验证、存储,或直接传递给其他组件,无需任何人去解析文字描述。务必对数据进行验证,因为模型有时会自行添加或遗漏字段。如需更深入、面向实际应用的了解,可参阅这篇关于基于Go语言的自托管视觉LLM OCR系统,包含光栅化、提示词生成与解析功能的教程。
多模态工作流
这就是各个组件协同工作的地方。一个基础的语音助手会经历五个步骤:用户发声,STT将语音转换为文本,文本传递给LLM,LLM生成回复,最后由TTS将其读出:
🎤 User
↓
Speech-to-Text
↓
📝 Text
↓
🤖 LLM
↓
📝 Response
↓
Text-to-Speech
↓
🔊 AI Voice
重要的一点是,并没有某个单一的巨型模型承担所有功能。该应用是由一系列专业组件构成的链条,每个组件都擅长某一种转换任务。这带来了实际影响:
- 每个阶段都可以独立更换,例如用更好的STT模型替换现有模型,而不会影响其他部分
- 错误会逐级累积,早期出现的翻译错误会导致后续生成完全错误的答案
- 各阶段的延迟会叠加,因此阶段间的数据流传输至关重要
- 可以使用固定输入对每个阶段进行独立测试
一些较新的模型能够原生支持多种数据格式,从而省去中间处理步骤;不过采用流程化思维依然有助于理解数据在何处发生形式变化。
组合多种输入
更高级的应用程序可能同时接受三种输入:
🎤 Audio
🖼️ Image
📝 Text
音频经过语音转文本处理,图像通过视觉模型处理,而文本则直接输入。这些整合后的上下文会被传递给人工智能模型,该模型随后可以以多种形式作出响应:
📝 Text
🖼️ Image
🎬 Video
🔊 Audio
整体来看,其架构如下所示:
USER
│
┌────────────┼────────────┐
↓ ↓ ↓
🎤 Audio 🖼️ Image 📝 Text
│ │ │
↓ ↓ │
STT Vision AI │
│ │ │
└────────────┼────────────┘
↓
🤖 AI Model
│
┌────────────┼────────────┐
↓ ↓ ↓
📝 Text 🖼️ Image 🎬 Video
│
↓
TTS
│
↓
🔊 Audio
此时工作内容已不再是“调用人工智能API”,而是设计工作流程:包括数据路由、上下文整合、输出渠道选择,以及在每个处理环节处理故障。
项目:个人多模态助手
能够处理语音提问并分析图片的个人助手是最佳的学习项目之一。用户上传照片后大声询问“这张图片里有什么?”,系统必须同时理解所说内容与图片中的信息。
简化版设计会使用Whisper将语音转录为文本,再将文本与图片一起发送给多模态模型,最后通过TTS输出回答:
🎤 Voice
↓
Whisper
↓
📝 Text
↓
┌─────────────────┐
🖼️ Image ───→ │ Multimodal AI │
└────────┬────────┘
↓
📝 Response
↓
TTS
↓
🔊 Audio
有一个小型项目可以同时练习音频处理、视觉分析、大语言模型提示工程、任务协调以及结果生成技术。
可供起步的开放工具
无需自行训练模型,已有大量开放工具可覆盖各个功能模块。
图像生成
- Stable Diffusion和SDXL:可在本地硬件上运行的开放图像模型。
语音转文本
Whisper负责文字转录:
Audio → Whisper → Text
文本转语音
Piper是一种轻量级的文本合成选项:
Text → Piper → Audio
本地大语言模型
Ollama可在本地运行语言模型,并可通过Python脚本进行控制:
Python
↓
Ollama
↓
Local LLM
视频处理
根据可用硬件不同,可通过Hugging Face或本地环境来使用Wan和CogVideoX。
Python作为协调层
Python在人工智能领域的地位并非在于它是实现模型的语言,而更在于它作为协调各模型的纽带。单个应用程序可以调用这些不同的功能:
Python Application
│
├── Speech-to-Text
│
├── LLM
│
├── Vision Model
│
├── Image Generation
│
├── Text-to-Speech
│
└── Video Generation
该脚本无需承担繁重的工作;它负责在模型与服务之间传递数据、处理错误并生成最终输出。这才是视角上的关键转变:很多人工智能开发工作并非在于构建模型,而在于围绕模型搭建系统。如果产品的其他部分运行在 Node.js 或 TypeScript 后端,这些后端也可以承担同样的协调作用。
循序渐进的学习顺序
试图一次性学习所有内容会导致对每项内容的理解都十分肤浅。采用逐层递进、每一步都复用前一步知识的方式效果更好:
1. 📝 Text + LLM
↓
2. 🎤 Speech-to-Text
↓
3. 🔊 Text-to-Speech
↓
4. 👁️ Vision
↓
5. 🖼️ Image Generation
↓
6. 🎬 Video Generation
↓
7. 🔗 Multimodal Workflows
↓
8. 🤖 Multimodal AI Agent
文本和大型语言模型是首要学习的对象,因为文本是所有其他组件进行交互的媒介。语音和视觉技术则为信息的输入与输出提供了新途径,生成式模型则能创造创意内容,而工作流和智能体则将这一切整合在一起。
从入门到高级的项目
通过逐步完成难度递增的项目,是最快掌握相关概念的方法。
入门级项目
语音转录工具可将录音转换为文本:
🎤 Audio
↓
Whisper
↓
📝 Text
语音读取工具则执行相反的操作:
📝 Text
↓
TTS
↓
🔊 Audio
图像生成工具可将提示词转化为图片:
📝 Prompt
↓
Image Model
↓
🖼️ Image
中级项目
语音聊天机器人整合了文本转语音、大型语言模型和文本转语音功能:
Voice
↓
STT
↓
LLM
↓
TTS
↓
Voice
图像分析工具可生成上传图片的描述:
Image
↓
Vision Model
↓
Description
高级项目
完整的多模态助手能够接收语音、图片和文本输入,并能以文本、生成的图片、生成的视频或语音形式回复:
🎤 Voice
🖼️ Image
📝 Text
↓
🤖 Multimodal AI
↓
📝 Response
🖼️ Generated Image
🎬 Generated Video
🔊 Voice
它运用了之前所有项目中的几乎所有技能。
以系统思维而非模型列表来思考
常见的初学者学习计划就像一份清单:先学图像生成,再学语音识别,接着学文本转语音,最后学视频处理。这种做法将各个领域视为互不相关的独立内容。更有效的思路是将每种能力视为一个具有输入端、核心部分和输出端的组件:
MULTIMODAL AI
│
┌──────────┼──────────┐
↓ ↓ ↓
INPUT AI CORE OUTPUT
│ │ │
┌───┼───┐ │ ┌───┼───┐
↓ ↓ ↓ ↓ ↓ ↓ ↓
🎤 🖼️ 📝 🤖 LLM 📝 🔊 🖼️
🎬 🎬
因此,重要的问题不是下一步该学习哪种模型,而是如何将已有的能力结合起来来解决具体问题。这正是多模态工程的真正意义所在。
关键要点
- 多模态应用通常由一系列专用模型组成,文本则是这些模型之间的通用格式。
- 视觉模块负责理解图像;生成模块则用于创建图像。在设计时应将这两者的功能区分开。
- 延迟和错误会在各个处理阶段不断累积,因此应在可能的情况下采用流式处理,并对结构化输出进行验证。