首页 / 文章 / 将语音、视觉与生成模型整合为多模态应用

将语音、视觉与生成模型整合为多模态应用

了解多模态人工智能的六大核心要素,掌握语音、视觉与生成模型如何串联成处理流程,以及适合初学者的开源工具和项目有哪些。

2531 词

现代人工智能系统能够读取文本、解析图像、转录语音、合成声音,还能生成图片或视频。这些功能单独使用都很实用,但当将它们组合起来时就能创造出有趣的应用:用户上传一张照片,用语音提出相关问题,随后就能听到答案的朗读。本指南将解释多模态人工智能对应用开发者的意义,将其拆解为六个构成要素,展示各部分之间如何传递数据,并最后提供学习顺序以及一系列相互关联的项目。

“多模态”究竟意味着什么

“模态”是一种信息类型。多模态系统能够接收或生成多种此类信息,通常包括:

  • 文本
  • 图像
  • 音频
  • 视频

传统的聊天机器人仅处理单一类型的输入和输出,即文本:

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

这种一个模型的输出成为下一个模型输入的模式,正是整个主题的核心思想。文本通常充当各组件之间的通用媒介,正因如此,即便输入和最终输出都不是文本,仍有许多处理流程会经过文本环节。

六个基础构成要素

开发者所需的知识主要涵盖以下六个领域:

  1. 图像生成
  2. 语音转文本
  3. 文本转语音
  4. 视频生成
  5. 视觉技术(图像理解)
  6. 结合上述技术的多模态工作流

前五种属于具体组件,第六种则是将这些组件整合到产品中的工程技能。下文将依次介绍每一项。

图像生成

图像模型可将文本提示转化为图片:

📝 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:可在本地硬件上运行的开放图像模型。
  • ComfyUI:一种基于节点的编辑器,用于构建复杂的生成工作流。
  • 语音转文本

    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   📝  🔊  🖼️
       🎬                     🎬
    

    因此,重要的问题不是下一步该学习哪种模型,而是如何将已有的能力结合起来来解决具体问题。这正是多模态工程的真正意义所在。

    关键要点

    • 多模态应用通常由一系列专用模型组成,文本则是这些模型之间的通用格式。
    • 视觉模块负责理解图像;生成模块则用于创建图像。在设计时应将这两者的功能区分开。
    • 延迟和错误会在各个处理阶段不断累积,因此应在可能的情况下采用流式处理,并对结构化输出进行验证。
  • Whisper、Piper、Ollama、Stable Diffusion 和 ComfyUI 等工具无需任何训练即可处理各类任务。
  • 按顺序学习,从文本和大型语言模型开始,接着构建小型项目,并将它们整合为更大的系统。