【本地AI能看图片、能听会说!DeepSeek多模态+语音交互完整配置教程(OpenWebUI+Ollama)】
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. 多模态模型简介
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 确认模型已加载
- 打开 OpenWebUI(默认 http://localhost:8080)
- 点击左下角头像 → 管理员面板
- 进入设置 → 模型
- 确认
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(零配置)
适用场景:快速测试,无需额外安装。
配置步骤:
- 打开 OpenWebUI
- 点击左下角头像 → 设置
- 找到**音频(Audio)**设置
- 开启 「语音转文字(Speech-to-Text)」
- 引擎选择: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 |
推荐:
base或small,速度准确率平衡最佳。
4.3 验证语音输入
- 在OpenWebUI聊天界面,点击输入框右侧的 🎤 麦克风 图标
- 允许浏览器访问麦克风权限
- 开始说话,说完后自动转录为文字
- 检查转录结果是否准确
5. 语音输出(TTS)配置
5.1 方案一:Edge TTS(免费,音质好,推荐)
Edge TTS 使用微软Edge浏览器的在线语音服务,音质接近真人,完全免费。
配置步骤:
- 管理员面板 → 设置 → 音频
- TTS引擎选择:Edge TTS
- 语音选择(中文推荐):
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配置:
- 管理员面板 → 设置 → 音频
- TTS引擎选择:Piper
- Piper可执行文件路径:指向
piper二进制文件 - Piper语音模型路径:指向
zh_CN-huayan-medium.onnx
5.3 验证语音输出
- 在OpenWebUI中发送一条消息
- AI回复后,点击消息右下角的 🔊 播放 按钮
- 应该能听到AI的语音播报
- 如需自动播放,在设置 → 音频中开启"自动播放回复"
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:7b 或 llava:7b 模型。
Q2:语音输入没反应/没权限?
原因:浏览器未授权麦克风权限。
解决:
- 地址栏点击"锁"图标
- 麦克风权限设置为"允许"
- 刷新页面
Q3:Whisper识别中文不准确?
原因:使用了 tiny 或 base 模型,精度不够。
解决:切换到 small 或 medium 模型。
# 修改环境变量
-e WHISPER_MODEL=small
Q4:多模态模型运行很慢/显存不足?
原因:图片分辨率过高,显存不够。
解决:
- 降低图片分辨率后再上传(建议最长边 ≤ 1024px)
- 换用更小的模型(
qwen2-vl:7b比llava:13b快) - 使用4-bit量化版本(Ollama会自动量化)
Q5:TTS voice列表为空?
原因:Edge TTS需要网络连接,或Piper未正确配置。
解决:
- Edge TTS:检查网络连接,确保能访问微软TTS服务
- Piper:检查Piper可执行文件路径和语音模型路径是否正确
总结
本文详细介绍了在本地AI环境中配置多模态(视觉理解)和语音交互的完整流程。关键点总结:
- 多模态模型:推荐使用
qwen2-vl:7b(中文OCR强) - 图像理解:通过OpenWebUI上传图片,使用多模态模型分析
- 语音输入:推荐Whisper(
base或small模型) - 语音输出:推荐Edge TTS(免费、音质好)
- 应用场景:截图提问、语音对话、批量OCR
系列文章导航:
- 第1篇:DeepSeek本地部署(Ollama安装)
- 第2篇:Page Assist浏览器插件使用
- 第3篇:OpenWebUI自托管搭建
- 第4篇:联网搜索配置(SearXNG)
- 第5篇:知识库RAG搭建
- 第6篇:多模态+语音交互(本文)
- 第7篇(预告):手机远程访问本地AI
如有问题欢迎评论区留言!你用过多模态模型了吗?识别中文图片效果怎么样?来评论区聊聊你的实测体验~
🔗 系列导航:
第1篇 DeepSeek安装 | 第2篇 Page Assist插件 | 第3篇 OpenWebUI搭建 | 第4篇 联网搜索 | 第5篇 RAG知识库 | 第6篇(本文) | 第7篇 手机远程访问
更多推荐



所有评论(0)