本地多语言语音工具包——语音转文字(STT)、文字转语音(TTS)和语言检测。完全离线运行于 Apple Silicon、Linux 和 Windows。
kesha-voice-kit. 本地语音工具包:将语音信息转换为文本,合成语音,检测音频或文本的语言. kesha安装后完全脱机. .没有API键,没有每分钟
功能概述
kesha-voice-kit. 本地语音工具包:将语音信息转换为文本,合成语音,检测音频或文本的语言. kesha安装后完全脱机. .没有API键,没有每分钟是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
kesha-voice-kit
本地语音工具包:将语音消息转录为文本、合成语音、检测音频或文本的语言。执行 kesha install 后完全离线运行,无需 API 密钥,也无按分钟计费模式。
触发该技能的关键词:语音消息、语音备忘录、语音笔记、.ogg、.opus、.wav、.mp3、音频文件、转录、语音识别、speech-to-text、STT、text-to-speech、TTS、合成语音、朗读、Telegram 语音笔记、WhatsApp 语音笔记、ogg-opus、opus、多语言语音、多语言 ASR、语言检测、离线语音、隐私保护、Apple Silicon、CoreML。
适用场景
- 收到语音备忘录时(Telegram、WhatsApp、Slack、Signal 的 .ogg/.opus/.m4a 文件):使用
kesha --json进行转录,并依据检测到的语言进行分支处理。 - 需要发送语音笔记(Telegram、WhatsApp、Signal、Discord)时:直接合成为信使原生支持的 OGG/Opus 格式,命令为
kesha say --format ogg-opus --out reply.ogg "。默认参数为单声道 24 kHz @ 32 kbps —— 正是 Telegram" sendVoice所期望的格式。无需 WAV 中转,也无需ffmpeg编码往返。 - 需要本地文件播放或调试输出时:仍可使用
kesha say --out reply.wav "输出 WAV,但请勿将 WAV 用于 Telegram 语音回复。系统会根据检测到的语言自动路由(英语使用 Kokoro-82M,俄语使用 Vosk-TTS)。在 darwin-arm64 平台上,英语 Kokoro 使用 FluidAudio CoreML 而非 ONNX。如需其他语言及约 180 种 macOS 系统语音,请在 macOS 上使用" --voice macos-*(零模型下载)。 - 需要在选择处理流程前检测音频文件的语言时:运行
kesha --json audio.ogg,返回基于音频与基于文本的双重语言检测结果,并附带置信度分数。
OpenClaw 插件配置
安装插件后,需显式通过 CLI 模型入口将 OpenClaw 的音频理解能力路由至 Kesha。插件注册使 Kesha 可被发现,但真正的语音消息转录依赖于 tools.media.audio.models 中类型为 type: "cli" 的条目。
bun add -g @drakulavich/kesha-voice-kit
kesha install
openclaw plugins install @drakulavich/kesha-voice-kit
openclaw config patch --stdin <<'JSON5'
{
tools: {
media: {
audio: {
enabled: true,
models: [
{
type: "cli",
command: "kesha",
args: ["{{MediaPath}}"],
timeoutSeconds: 15,
},
],
echoTranscript: true,
echoFormat: '🦜 "{transcript}"',
},
},
},
}
JSON5
使用 Kesha 默认输出作为 OpenClaw 常规语音消息路径的输入:标准输出(stdout)仅包含纯文本转录结果,而进度信息和错误日志则不会混入转录负载中。默认配置会在 Agent 响应前,将每条转录内容以 🦜 "{transcript}" 形式回显至聊天窗口。
若 Agent 需要带时间戳的分段内容,请切换模型条目为 JSON 输出并延长超时时间:
openclaw config set tools.media.audio.models
'[{"type":"cli","command":"kesha","args":["--json","--timestamps","{{MediaPath}}"],"timeoutSeconds":30}]'
验证清单:
which kesha kesha status openclaw plugins list openclaw config get tools.media.audio.models openclaw config get tools.media.audio.echoTranscript openclaw config get tools.media.audio.echoFormat
请勿依赖 openclaw.plugin.json 来补丁(patch)tools.media.audio.models;OpenClaw 会忽略 schema 之外的字段(例如 configPatch)。CLI 路由必须保留在用户配置中。
对于 OpenClaw 的 TTS 回复,请将本地 TTS 提供方路由至 Kesha 的 OGG/Opus 输出。这是 Telegram 安全路径:
openclaw config patch --stdin <<'JSON5'
{
messages: {
tts: {
auto: "always",
provider: "tts-local-cli",
providers: {
"tts-local-cli": {
command: "kesha",
args: ["say", "--format", "ogg-opus", "--out", "{{OutputPath}}", "{{Text}}"],
outputFormat: "opus",
timeoutMs: 120000,
},
},
},
},
}
JSON5
在 OpenClaw 流程中手动调用 Kesha 时,应将 OGG/Opus 写入 OpenClaw 拥有的临时路径,例如 kesha say --format ogg-opus --out /tmp/openclaw/reply.ogg ",并在执行前确保目录已存在。已配置的 tts-local-cli 提供方应使用 OpenClaw 的 {{OutputPath}} 占位符,而非硬编码路径。
请勿将 OpenClaw Telegram TTS 配置为 kesha say ";这将生成 WAV 文件,无法在 Telegram 中渲染为原生语音消息。
STT:音频转录
# 推荐用于自动化:JSON 输出并含语言检测 kesha --json voice.ogg
[{
"file": "voice.ogg",
"text": "Привет, как дела?",
"lang": "ru",
"audioLanguage": { "code": "ru", "confidence": 0.98 },
"textLanguage": { "code": "ru", "confidence": 0.99 }
}]
使用 lang 字段(或更详细的 audioLanguage/textLanguage)决定响应逻辑。
如需带时间戳的转录分段(用于导航、章节划分或下游编辑):
kesha --json --timestamps voice.ogg > voice.timestamps.json jq '.[0].segments' voice.timestamps.json
每个分段均包含 start、end 和 text 字段。--timestamps 仅对机器可读输出生效(即搭配 --json、--toon 或 --format json 使用)。
说话人区分(speaker diarization)(darwin-arm64,v1.12.0 版本后支持)。添加 --speakers 参数可为每个分段标注聚类 ID,适用于多人通话或会议录音转录:
kesha install --diarize # 一次性操作,约 245 MB kesha --json --vad --speakers meeting.m4a > out.json jq '.[0].segments[] | "(.speaker)t(.text)"' out.json
每个 segment.speaker 是一个数字(聚类 ID,在单个文件内稳定)。Linux / Windows 平台下引擎会明确报错“currently darwin-arm64 only”——详见 #199。
支持格式:.ogg、.opus、.mp3、.m4a、.wav、.flac、.webm —— 均通过 symphonia 解码,无需 ffmpeg。
其他输出模式:
kesha audio.ogg—— 标准输出(stdout)显示纯文本转录结果kesha --format transcript audio.ogg—— 转录结果 + 底部附加[lang: ru, confidence: 0.99]kesha --json --timestamps audio.ogg—— JSON 格式,含带时间戳的segmentskesha --verbose audio.ogg—— 人类可读格式,含语言信息kesha --lang en audio.ogg—— 若检测语言与指定不符则发出警告(可用作合理性校验)
TTS:语音合成
kesha say "Hello, world" > hello.wav # 自动路由:en → Kokoro-82M kesha say "Привет, мир" > privet.wav # 自动路由:ru → Vosk-TTS kesha say --voice macos-de-DE "Guten Tag" > de.wav # 任意 macOS 系统语音 —— 德语、法语、意大利语等 kesha say --list-voices # 列出 Kokoro + Vosk-TTS + 约 180 种 macos-* 语音
输出格式:默认为 WAV 单声道 float32。使用 --out 可写入文件而非 stdout。Telegram/OpenClaw 回复推荐使用 --format ogg-opus --out reply.ogg 或 OpenClaw 提供的 {{OutputPath}}。
语音笔记(Telegram / WhatsApp / Signal / Discord):添加 --format ogg-opus 直接输出 OGG/Opus 格式 —— 即信使 API 渲染为原生语音消息所要求的格式:
kesha say --format ogg-opus --out reply.ogg "Hello there" # 24 kHz @ 32 kbps 单声道 —— Telegram 级别质量 kesha say --voice ru-vosk-m02 --format ogg-opus --out reply.ogg "Привет" # 俄语语音笔记 kesha say --format ogg-opus --bitrate 16000 --out tiny.ogg "Hi" # 更小体积,可听清但有损
格式也可通过 --out 后缀自动推断(.ogg / .opus / .oga → OGG/Opus)。--bitrate(6 000–510 000 bps)与 --sample-rate(8 000 / 12 000 / 16 000 / 24 000 / 48 000 Hz)用于调节编码器参数。
俄语缩略词处理(ru-vosk-*):所有全大写的西里尔字母 2–5 字符标记,若无法按俄语音节发音,则自动逐字母展开(如 ФСБ → “эф-эс-бэ”,ВОЗ → “воз”)。可通过 --no-expand-abbrev 禁用。详见 docs/tts.md#russian-abbreviation-auto-expansion。
英语首字母缩略词处理(en-*, Kokoro):采用三表机制(字母拼读规则 + STOP_LIST + IPA_LEXICON),自动展开 FBI → “ef bee eye”,并为 EPAM/JSON/Anthropic 等提供正确 IPA。可通过 --no-expand-abbrev 禁用字母拼读。详见 docs/tts.md#english-acronym-auto-expansion。
俄语单词重音标记(仅 ru-vosk-* 支持):使用 将重音移至标有 + 的元音上。 则移除 +(取消继承的重音)。其他语音(en-*, macos-*)会静默丢弃 + 并在进程内仅警告一次。未提供自动重音词典 —— 调用方需手动插入 +。关闭 #233。
通过 SSML 控制语速(ru-vosk-* 与 en-* 语音):将整段话语包裹在 中,即可减慢或加快合成速度。支持 SSML 命名值(x-slow/slow/medium/fast/x-fast)、绝对百分比(如 120%)及相对百分比(+N%/-N%)。仅当 包裹整段话语时才生效;句中嵌入 prosody 将触发警告并以默认速率合成。--rate 与 效果叠加计算,最终结果限定在 0.5×–2.0× 范围内。AVSpeech(macos-* 语音)暂不支持 SSML —— 详见 #236。
独立语言检测
kesha --json audio.ogg 同时包含基于音频(audioLanguage)与基于文本(textLanguage)的语言检测。建议先使用音频检测确定语言,再执行语言特定逻辑。
安装
bun add -g @drakulavich/kesha-voice-kit # 全局 CLI 安装 kesha install # 下载引擎(约 350 MB) kesha install --tts # 额外下载 Kokoro + Vosk-TTS RU(约 990 MB,用于 TTS)
无系统依赖 —— 英语 G2P 内置于 misaki-rs;俄语 G2P 已打包进 Vosk-TTS。macos-* 语音亦无需额外安装 —— 直接调用 Mac 系统已预装语音。
支持语言
语音识别(25 种):保加利亚语、克罗地亚语、捷克语、丹麦语、荷兰语、英语、爱沙尼亚语、芬兰语、法语、德语、希腊语、匈牙利语、意大利语、拉脱维亚语、立陶宛语、马耳他语、波兰语、葡萄牙语、罗马尼亚语、俄语、斯洛伐克语、斯洛文尼亚语、西班牙语、瑞典语、乌克兰语。
语音合成:英语(Kokoro-82M;darwin-arm64 平台使用 FluidAudio CoreML,其余平台使用 ONNX)、俄语(Vosk-TTS,内置 5 种说话人 —— 默认为 ru-vosk-m02),以及通过 --voice macos-* 调用的任意 macOS 系统语音。
性能
- ASR:在 Apple Silicon 上约为 OpenAI Whisper 的 19 倍速度(通过 FluidAudio CoreML 加速),CPU 上约为 2.5 倍(通过
ort的 ONNX 加速)。 - TTS:在 Apple Silicon 上短语合成延迟低于 1 秒。
为何选择本地化方案
无需管理 API 密钥,无按分钟计费模式。语音数据永不离开本地设备 —— 对受监管行业、私人通信,以及任何不应记录于第三方日志中的场景至关重要。
相关链接
- 源码:https://github.com/drakulavich/kesha-voice-kit
- npm:https://www.npmjs.com/package/@drakulavich/kesha-voice-kit
- 发布版本:https://github.com/drakulavich/kesha-voice-kit/releases
热门AI工具
相关专题
本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。
0
2026.11.12
本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。
0
2026.11.12
本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。
0
2026.11.12
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.8万人学习
共6课时 | 54.7万人学习
最新文章