需将whisper集成至hermes agent实现本地化语音交互,共有五种路径:一、mcp协议桥接whisper服务;二、嵌入python子进程调用whisper-ct2;三、对接hermes内置stt插件框架;四、ffmpeg+whisper cli管道直连;五、绑定telegram语音消息自动触发。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望为Hermes Agent添加本地化、低延迟、高隐私的语音交互能力,则需将Whisper模型作为语音转文字(STT)后端集成进其输入处理链路。以下是实现该集成的多种可行路径:
一、通过MCP协议桥接Whisper服务
该方法利用Hermes Agent原生支持的MCP(Model Control Protocol)标准,将独立部署的Whisper推理服务注册为可调用工具,使Agent能按需发起语音识别请求并接收结构化文本结果。
1、在Linux服务器上拉取并运行Whisper.cpp官方Docker镜像,指定GPU设备与模型尺寸(如tiny、base或medium)。
2、启动容器时映射HTTP端口(如8080),启用内置的REST API服务,确保返回JSON格式的transcription字段。
3、进入Hermes Agent配置目录~/.hermes/,编辑config.yaml,在tools段落中新增mcp_tool条目,填写name为whisper_stt、endpoint为http://localhost:8080/inference、method为POST。
4、在同一配置文件中,将input_pipeline的preprocessor设置为whisper_stt,确保所有语音输入(如.wav或.opus文件)自动触发该工具。
5、重启hermes服务进程,发送一段录音文件至WebUI或CLI入口,验证返回文本是否准确匹配原始语音内容。
二、嵌入Python子进程调用Whisper-CT2
该方法绕过网络通信开销,直接在Hermes Agent主进程中以子进程方式调用轻量级Whisper-CT2推理引擎,适用于对实时性要求高且硬件资源受限的边缘部署场景。
1、在Hermes Agent虚拟环境中执行pip install whisper-ct2,安装兼容CUDA或CPU的CT2编译版本。
2、下载对应语言的量化Whisper模型(如whisper-ct2-small-zh),解压至~/.hermes/models/whisper-ct2/目录下。
3、在~/.hermes/skills/目录新建whisper_local.py文件,使用subprocess.Popen调用ct2-transformers-converter命令完成音频预处理与推理。
4、在该脚本中定义run()函数,接收音频路径参数,输出纯文本结果,并捕获stderr中的静音或截断警告。
5、使用hermes skill_manage register命令注册该技能,再于config.yaml中将audio_input_handler指向该技能名称。
三、对接Hermes内置TTS/STT插件框架
该方法复用Hermes Agent已有的语音模块抽象层,仅需提供符合其接口规范的适配器类,即可无缝接入Whisper,无需修改核心调度逻辑。
1、在~/.hermes/目录下创建plugins/stt/whisper_adapter/子目录,放入__init__.py和adapter.py两个文件。
2、在adapter.py中继承BaseSTTProvider基类,重写transcribe()方法,内部调用whisper.load_model()与model.transcribe()完成同步识别。
3、确保adapter.py中声明MODEL_NAME = "openai/whisper-small"与SUPPORTED_FORMATS = ["wav", "mp3", "flac"]。
4、编辑~/.hermes/config.yaml,将stt_provider字段设为whisper_adapter,同时禁用原有云厂商STT服务。
5、执行hermes plugin reload stt命令强制重载插件,随后通过WebUI上传测试语音并观察日志中是否出现“[STT] Whisper adapter loaded”提示。
四、使用FFmpeg+Whisper CLI管道直连
该方法完全脱离Python依赖,仅依靠系统级命令行工具链构建极简语音通道,适合嵌入式ARM设备或Docker精简镜像环境。
1、在宿主机安装ffmpeg与whisper-cli:sudo apt install ffmpeg && pip install whisper-cli。
2、准备一个shell脚本~/bin/whisper-pipe.sh,内容为ffmpeg -i "$1" -f s16le -ar 16000 -ac 1 - | whisper --model small --language zh --output_format txt -。
3、赋予脚本可执行权限:chmod +x ~/bin/whisper-pipe.sh。
4、在Hermes Agent的config.yaml中,将stt_binary_path设为/home/username/bin/whisper-pipe.sh,stt_input_format设为raw。
5、向Agent发送一段16kHz单声道WAV音频,检查其stdout输出是否立即打印出中文识别文本,且无Python解释器启动延迟。
五、绑定Telegram语音消息自动触发Whisper
该方法专用于Telegram平台接入场景,利用Hermes Agent对Telegram Bot API的深度支持,实现用户发送语音消息后自动识别并回复文字结果。
1、在Telegram BotFather中创建新Bot,获取API Token,并在Hermes Agent配置中填入telegram.bot_token字段。
2、启用Telegram的voice_message事件监听,在gateway.telegram模块中插入预处理钩子函数。
3、钩子函数内调用requests.get从Telegram CDN下载语音文件,保存为临时.ogg路径。
4、调用预先部署好的Whisper FastAPI服务(如http://localhost:8000/whisper),POST该.ogg文件并等待JSON响应。
5、解析response.json()["text"]字段,构造Telegram sendMessage请求,将识别结果作为纯文本消息回传给用户。











