title: 本地AI能看图片、能听会说!DeepSeek多模态+语音交互完整配置教程(OpenWebUI+Ollama)
tags: AI,多模态,Vision,语音交互,Whisper,TTS,OpenWebUI,Ollama,DeepSeek,本地部署
category: 人工智能

本地AI能看图片、能听会说了!DeepSeek多模态+语音交互完整配置教程(OpenWebUI+Ollama)

本文是《本地AI配置完全攻略》系列第6篇。前5篇分别介绍了DeepSeek本地部署、Page Assist使用、OpenWebUI搭建、联网搜索配置、知识库RAG搭建。本篇将介绍如何配置多模态模型(视觉理解)和语音交互,让本地AI能看图片、能听会说。

环境要求

  • Ollama ≥ 0.1.47
  • Open WebUI ≥ 0.22.0
  • 显存 ≥ 6GB(7B多模态模型)
  • 麦克风 + 音箱(语音交互用)

目录

  1. 多模态模型简介
  2. 部署Qwen2-VL(推荐)
  3. OpenWebUI中配置图像理解
  4. 语音输入(STT)配置
  5. 语音输出(TTS)配置
  6. 完整使用示例
  7. 常见问题排查

1. 多模态模型简介

1.1 什么是多模态模型?

多模态模型(Multimodal LLM)是指能同时理解多种类型输入(文本、图像、音频等)的大语言模型。

传统LLM只能处理文本,多模态LLM可以:

  • 理解图片内容(描述、问答、分析)
  • OCR文字识别(从图片中提取文字)
  • 图表数据分析(读懂柱状图、折线图、表格)
  • 代码截图分析(识别代码并找bug)

1.2 主流多模态模型对比

模型名 大小 视觉编码器 推荐场景 Ollama命令
qwen2-vl:7b 4.5GB ViT-bigG 中文OCR、图表分析(推荐) ollama pull qwen2-vl:7b
llava:7b 4.7GB CLIP ViT-L/14 通用图像理解 ollama pull llava:7b
llava:13b 8.2GB CLIP ViT-L/14 高精度理解(需大显存) ollama pull llava:13b
minicpm-v:8b 5.1GB SigLIP 手机端、轻量级 ollama pull minicpm-v:8b
internvl2:8b 5.4GB InternViT 文档理解 ollama pull internvl2:8b

选择建议:中文用户首选 qwen2-vl:7b,OCR能力强,对中文手写、表格识别准确率高。


2. 部署Qwen2-VL(推荐)

2.1 前提条件检查

# 检查Ollama版本(需 ≥ 0.1.47)
ollama --version

# 检查显存(需 ≥ 6GB可用)
nvidia-smi  # NVIDIA用户
# 或
rocm-smi    # AMD用户

2.2 拉取模型

# 拉取Qwen2-VL 7B(推荐,约4.5GB)
ollama pull qwen2-vl:7b

# 如需更高精度,可拉取LLaVA 13B(需8GB+显存)
ollama pull llava:13b

2.3 验证模型运行

# 命令行测试(文本模式)
ollama run qwen2-vl:7b "你好,请介绍一下你自己"

# 测试图像理解(需指定图片路径)
ollama run qwen2-vl:7b "描述这张图片" --image /path/to/image.jpg

3. OpenWebUI中配置图像理解

3.1 确认模型已加载

  1. 打开 OpenWebUI(默认 http://localhost:8080)
  2. 点击左下角头像管理员面板
  3. 进入设置模型
  4. 确认 qwen2-vl:7b 出现在模型列表中

如未出现,点击刷新按钮,或重启OpenWebUI容器。

3.2 使用图像理解功能

步骤1:选择多模态模型

在聊天界面左上角,选择模型 qwen2-vl:7b

步骤2:上传图片

  • 点击输入框左侧的 📎 附件 图标
  • 选择图片文件(支持 PNG/JPG/JPEG/WEBP)
  • 或直接拖拽图片到聊天窗口

步骤3:提问

图片上传后,在输入框中输入问题,例如:

  • 请描述这张图片
  • 提取图片中的所有文字
  • 这张表格的数据说明了什么趋势?
  • 帮我找出这张代码截图中的bug

步骤4:发送

Enter 或点击发送按钮,等待AI分析图片并回复。

3.3 代码示例:批量图片分析脚本

# batch_image_analysis.py
# 批量分析文件夹中的图片

import ollama
import os
from pathlib import Path

IMAGE_DIR = Path("./images")  # 图片文件夹
OUTPUT_FILE = Path("./analysis_results.txt")

def analyze_image(image_path: Path, prompt: str) -> str:
    """使用Ollama分析单张图片"""
    response = ollama.chat(
        model="qwen2-vl:7b",
        messages=[{
            "role": "user",
            "content": prompt,
            "images": [str(image_path)]
        }]
    )
    return response["message"]["content"]

def main():
    prompt = "请详细描述这张图片的内容,如果是图表请分析数据趋势。"
    
    with open(OUTPUT_FILE, "w", encoding="utf-8") as f:
        for img_path in IMAGE_DIR.glob("*.*"):
            if img_path.suffix.lower() in [".png", ".jpg", ".jpeg", ".webp"]:
                print(f"正在分析: {img_path.name}")
                result = analyze_image(img_path, prompt)
                f.write(f"=== {img_path.name} ===\n{result}\n\n")
    
    print(f"分析完成,结果已保存到: {OUTPUT_FILE}")

if __name__ == "__main__":
    main()

4. 语音输入(STT)配置

4.1 方案一:OpenWebUI内置WebSpeech API(零配置)

适用场景:快速测试,无需额外安装。

配置步骤

  1. 打开 OpenWebUI
  2. 点击左下角头像设置
  3. 找到**音频(Audio)**设置
  4. 开启 「语音转文字(Speech-to-Text)」
  5. 引擎选择:Browser WebSpeech API

注意:此方法依赖浏览器支持,Chrome/Edge效果最好,Firefox部分不支持。

4.2 方案二:Whisper(推荐,识别率高)

Whisper 是OpenAI开源的语音识别模型,支持多语言,中文识别率高。

OpenWebUI 0.30+ 内置Whisper支持,配置环境变量即可:

# Docker部署方式(推荐)
docker stop open-webui

docker run -d \
  --name open-webui \
  -p 8080:8080 \
  -e WHISPER_MODEL=base \    # tiny/base/small/medium/large
  -e AUDIO_STT_ENGINE=whisper \
  -v open-webui:/app/backend/data \
  ghcr.io/open-webui/open-webui:main

Whisper模型选择指南

模型 大小 相对速度 中文识别率 显存需求
tiny 75MB 32x 一般 ~1GB
base 142MB 16x 良好 ~1GB
small 466MB 6x ~2GB
medium 1.5GB 2x 很好 ~5GB
large 3.1GB 1x 最好 ~10GB

推荐basesmall,速度准确率平衡最佳。

4.3 验证语音输入

  1. 在OpenWebUI聊天界面,点击输入框右侧的 🎤 麦克风 图标
  2. 允许浏览器访问麦克风权限
  3. 开始说话,说完后自动转录为文字
  4. 检查转录结果是否准确

5. 语音输出(TTS)配置

5.1 方案一:Edge TTS(免费,音质好,推荐)

Edge TTS 使用微软Edge浏览器的在线语音服务,音质接近真人,完全免费。

配置步骤

  1. 管理员面板 → 设置音频
  2. TTS引擎选择:Edge TTS
  3. 语音选择(中文推荐):
    • zh-CN-XiaoxiaoNeural(女声,温柔)
    • zh-CN-YunxiNeural(男声,沉稳)
    • zh-CN-XiaoyiNeural(女声,活泼)

5.2 方案二:Piper TTS(完全本地)

Piper 是离线TTS引擎,完全本地运行,无需网络。

安装步骤(Linux/macOS)

# 下载Piper二进制文件
wget https://github.com/rhasspy/piper/releases/latest/download/piper_linux_x86_64.tar.gz
tar xf piper_linux_x86_64.tar.gz
cd piper

# 下载中文语音模型
wget -P voices/ https://huggingface.co/rhasspy/piper-voices/resolve/main/zh_CN/huayan/medium/zh_CN-huayan-medium.onnx
wget -P voices/ https://huggingface.co/rhasspy/piper-voices/resolve/main/zh_CN/huayan/medium/zh_CN-huayan-medium.onnx.json

OpenWebUI配置

  1. 管理员面板 → 设置音频
  2. TTS引擎选择:Piper
  3. Piper可执行文件路径:指向 piper 二进制文件
  4. Piper语音模型路径:指向 zh_CN-huayan-medium.onnx

5.3 验证语音输出

  1. 在OpenWebUI中发送一条消息
  2. AI回复后,点击消息右下角的 🔊 播放 按钮
  3. 应该能听到AI的语音播报
  4. 如需自动播放,在设置 → 音频中开启"自动播放回复"

6. 完整使用示例

6.1 场景一:截图提问(最常用)

# 使用场景:代码报错截图,让AI分析

# 步骤:
# 1. 截取代码报错图片(如 error_screenshot.png)
# 2. 在OpenWebUI中上传图片
# 3. 输入提示词:

"""
请分析这张代码报错截图:
1. 错误类型是什么?
2. 可能的原因有哪些?
3. 请给出修复方案(附代码)
"""

6.2 场景二:语音对话(车载/厨房场景)

# 使用场景:开车时语音提问

# 步骤:
# 1. 手机访问 OpenWebUI(需内网/穿透)
# 2. 点击🎤说话:"帮我查一下,今天深圳天气怎么样?"
# 3. AI语音回复天气预报

6.3 场景三:文档图片批量提取(OCR)

# batch_ocr.py
# 批量OCR处理图片中的文字

import ollama
from pathlib import Path

def ocr_image(image_path: Path) -> str:
    response = ollama.chat(
        model="qwen2-vl:7b",
        messages=[{
            "role": "user",
            "content": "请提取图片中的所有文字,保持原有格式。如果是表格,用Markdown表格输出。",
            "images": [str(image_path)]
        }]
    )
    return response["message"]["content"]

# 使用示例
result = ocr_image(Path("./invoice.jpg"))
print(result)

7. 常见问题排查

Q1:上传图片后AI回复"我不支持图片"?

原因:当前模型不支持多模态。
解决:切换到 qwen2-vl:7bllava:7b 模型。

Q2:语音输入没反应/没权限?

原因:浏览器未授权麦克风权限。
解决

  1. 地址栏点击"锁"图标
  2. 麦克风权限设置为"允许"
  3. 刷新页面

Q3:Whisper识别中文不准确?

原因:使用了 tinybase 模型,精度不够。
解决:切换到 smallmedium 模型。

# 修改环境变量
-e WHISPER_MODEL=small

Q4:多模态模型运行很慢/显存不足?

原因:图片分辨率过高,显存不够。
解决

  1. 降低图片分辨率后再上传(建议最长边 ≤ 1024px)
  2. 换用更小的模型(qwen2-vl:7bllava:13b 快)
  3. 使用4-bit量化版本(Ollama会自动量化)

Q5:TTS voice列表为空?

原因:Edge TTS需要网络连接,或Piper未正确配置。
解决

  • Edge TTS:检查网络连接,确保能访问微软TTS服务
  • Piper:检查Piper可执行文件路径和语音模型路径是否正确

总结

本文详细介绍了在本地AI环境中配置多模态(视觉理解)和语音交互的完整流程。关键点总结:

  1. 多模态模型:推荐使用 qwen2-vl:7b(中文OCR强)
  2. 图像理解:通过OpenWebUI上传图片,使用多模态模型分析
  3. 语音输入:推荐Whisper(basesmall模型)
  4. 语音输出:推荐Edge TTS(免费、音质好)
  5. 应用场景:截图提问、语音对话、批量OCR

系列文章导航

如有问题欢迎评论区留言!你用过多模态模型了吗?识别中文图片效果怎么样?来评论区聊聊你的实测体验

🔗 系列导航
第1篇 DeepSeek安装 | 第2篇 Page Assist插件 | 第3篇 OpenWebUI搭建 | 第4篇 联网搜索 | 第5篇 RAG知识库 | 第6篇(本文) | 第7篇 手机远程访问

更多推荐