AI个人学习
和实操指南
豆包Marscode1

用语音和文字控制macOS操作的开源工具

综合介绍

MacOS LLM Controller 是一个开源桌面应用,托管在 GitHub 上,允许用户通过语音或文字输入自然语言指令来执行 macOS 系统命令。它基于 Llama-3.2-3B-Instruct 模型,利用 LlamaStack 生成 Python 代码,调用 macOS 系统 API 完成任务。用户可以说“打开终端”或输入“新建文件夹”,工具会自动解析并执行操作。该项目采用 React 前端和 Flask 后端,支持实时状态反馈和命令历史记录,适合 macOS 用户提升操作效率,尤其便于开发者或无障碍需求人群。代码公开,社区可参与优化。

用语音和文字控制macOS操作的开源工具-1


 

功能列表

  • 语音指令识别:通过麦克风输入语音,实时转化为 macOS 系统命令。
  • 文字指令输入:支持文本输入自然语言,执行系统操作。
  • 命令历史记录:显示已执行命令的成功或失败状态。
  • 实时状态反馈:界面动态更新服务连接和命令执行状态。
  • Python 代码生成:基于 LlamaStack 将指令转为可执行的 macOS API 调用代码。
  • 本地化运行:所有处理在本地完成,保护用户隐私。
  • 安全检查:对生成的 Python 代码进行基本安全验证。

 

使用帮助

安装流程

MacOS LLM Controller 需要在 macOS 系统上配置环境,包括前端、后端和 LlamaStack 模型。以下是详细的安装步骤,确保用户可以顺利运行:

1. 环境准备

确保系统满足以下要求:

  • 操作系统:macOS(项目专为 macOS 设计,未明确支持其他系统)。
  • Node.js:版本 16 或更高,包含 npm。可从 Node.js 官网 下载。
  • Python:版本 3.8 或更高,包含 pip。可从 Python 官网 下载。
  • Ollama:用于运行 Llama 模型。访问 Ollama 官网 安装。
  • Docker:用于运行 LlamaStack。安装 Docker Desktop。
  • 硬件要求:建议 16GB 以上内存和多核 CPU,以支持模型推理。

2. 克隆项目代码

打开终端,运行以下命令克隆代码:

git clone https://github.com/duduyiq2001/llama-desktop-controller.git
cd llama-desktop-controller

3. 配置 LlamaStack

LlamaStack 是项目的核心依赖,用于生成 Python 代码。配置步骤如下:

设置环境变量
在终端运行以下命令,指定推理模型:

export INFERENCE_MODEL="meta-llama/Llama-3.2-3B-Instruct"
export OLLAMA_INFERENCE_MODEL="llama3.2:3b-instruct-fp16"

启动 Ollama 推理服务器
运行以下命令启动模型,设置 60 分钟保持活动:

ollama run $OLLAMA_INFERENCE_MODEL --keepalive 60m

使用 Docker 运行 LlamaStack
设置端口并启动容器:

export LLAMA_STACK_PORT=5001
docker run \
-it \
-p $LLAMA_STACK_PORT:$LLAMA_STACK_PORT \
-v ~/.llama:/root/.llama \
llamastack/distribution-ollama \
--port $LLAMA_STACK_PORT \
--env INFERENCE_MODEL=$INFERENCE_MODEL \
--env OLLAMA_URL=http://host.docker.internal:11434

确保 LlamaStack 在 http://localhost:5001 运行正常。

4. 后端设置

后端基于 Flask,负责处理 API 请求和代码生成。操作步骤如下:

  • 进入后端目录:
    cd backend
    
  • 安装 Python 依赖:
    pip install -r ../requirements.txt
    

    依赖包括 flaskflask-corsrequestspyobjc 和 llama-stack-client。若安装失败,可使用国内镜像:

    pip install -r ../requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    
  • 启动 Flask 服务器:
    python server.py
    
  • 确认后端运行在 http://localhost:5066

5. 前端设置

前端基于 React,提供用户界面。操作步骤如下:

  • 进入前端目录:
    cd ..  # 返回项目根目录
    
  • 安装 Node.js 依赖:
    npm install
    
  • 启动开发服务器:
    npm run dev
    
  • 确认前端运行在 http://localhost:5173

6. 访问应用

打开浏览器,访问 http://localhost:5173。确保后端和 LlamaStack 正常运行,否则功能可能受限。

功能操作指南

1. 使用语音指令

语音输入是项目的核心功能,适合快速操作。操作步骤如下:

  • 启动语音模式:在主界面点击“语音输入”按钮(或使用快捷键,需查看文档确认)。
  • 录制指令:对着麦克风说指令,例如“打开 Finder”或“关闭 Safari”。保持环境安静以提高识别率。
  • 执行过程:工具通过 SpeechRecognition API 将语音转为文字,LlamaStack 解析为 Python 代码,调用 macOS API 执行任务。
  • 常见指令示例
    • “打开终端”:启动 Terminal.app。
    • “新建文件夹”:在当前目录创建文件夹。
    • “截屏”:触发 macOS 截图功能。
  • 注意事项
    • 首次使用需授权麦克风权限。
    • 若识别失败,检查麦克风设置或切换文字输入。

2. 使用文字指令

文字输入适合精确控制。操作步骤如下:

  • 打开输入框:在界面找到文本输入区域。
  • 输入指令:键入自然语言,例如“打开日历”或“将音量调到 50%”。
  • 提交指令:点击“执行”按钮或按回车,工具生成并运行 Python 代码。
  • 高级用法:支持复杂指令,如“在桌面新建一个名为‘项目’的文件夹并打开”。LlamaStack 会分解任务并按序执行。
  • 提示:指令明确可提高成功率,例如“打开 Chrome”优于“打开浏览器”。

3. 查看命令历史

界面提供命令历史区域,显示每次指令的执行状态:

  • 成功状态:绿色标记,表示命令已正确执行。
  • 错误状态:红色标记,附带错误提示(如“权限不足”)。
  • 操作:可点击历史记录重新运行指令,或查看生成的 Python 代码。

4. 实时状态监控

界面右上角显示服务状态:

  • 绿色:后端和 LlamaStack 连接正常。
  • 红色:服务断开,需检查 Flask 或 LlamaStack 是否运行。
  • 操作:点击状态图标可手动刷新连接。

5. 安全检查

工具对生成的 Python 代码进行基本安全验证:

  • 过滤高风险命令(如删除系统文件)。
  • 检查语法错误,确保代码可执行。
  • 注意:仍需谨慎使用,避免运行未知来源的指令。

注意事项

  • 模型依赖:项目固定使用 Llama-3.2-3B-Instruct,无法直接替换其他模型。
  • 性能要求:运行 LlamaStack 需要较高算力,建议关闭无关程序。
  • 调试方法:若启动失败,检查终端日志,或访问 http://localhost:5066/status 查看后端状态。
  • 权限问题:部分 macOS 命令需授权(如访问文件或控制音量),首次运行会弹出权限提示。
  • 社区支持:问题可通过 GitHub Issues 提交,附带错误日志以便开发者排查。

 

应用场景

  1. 无障碍辅助
    视障或行动不便用户可通过语音指令操作 macOS,例如“打开邮件”快速启动 Mail.app,提升使用便利性。
  2. 开发者效率
    开发者可快速执行命令,如“打开 Xcode 并新建项目”,节省手动操作时间,专注于开发任务。
  3. 日常自动化
    用户可通过文字指令完成重复任务,例如“每天整理桌面文件到归档文件夹”,适合高效办公。
  4. 教育与实验
    编程爱好者可研究 LlamaStack 如何将自然语言转为代码,学习 AI 与系统集成的原理。

 

QA

  1. 语音识别不准确怎么办?
    确保麦克风正常,环境无杂音。若仍失败,切换文字输入,或检查 SpeechRecognition API 配置。
  2. 后端启动失败怎么办?
    确认 Python 依赖完整安装,LlamaStack 是否运行在 http://localhost:5001。查看 server.py 日志定位错误。
  3. 支持非 macOS 系统吗?
    当前仅支持 macOS,因代码依赖 macOS API。未来可能通过社区扩展其他平台。
  4. 如何优化性能?
    增加内存或使用高性能 CPU/GPU,关闭其他占用资源的程序。也可尝试更高效的 LlamaStack 配置。
  5. 如何贡献代码?
    Fork 仓库,提交 Pull Request。建议先阅读项目文档,遵循贡献指南。
未经允许不得转载:首席AI分享圈 » 用语音和文字控制macOS操作的开源工具
zh_CN简体中文