by drakulavich (community) Claude Desktop, Claude Code, OpenCode, macOS, Linux, Windows, Bun, OpenClaw, Hermes
Даёт вашим инструментам голос — speech-to-text и обратно, 25 языков, до ~19× быстрее Whisper. Работает локально.
MCP-сервер для доступа к актуальной документации библиотек прямо в контексте LLM. Вместо устаревших обучающих данных — …
Официальный MCP от команды Chrome DevTools: дает AI-агентам полный доступ к инструментам разработчика браузера. Автоматизация через …
Официальный MCP-сервер от Microsoft для управления браузером через Playwright. Использует accessibility tree вместо скриншотов — быстрее, …
Официальный MCP-сервер от GitHub: управление репозиториями, issues, pull requests, code search и Actions прямо из AI-агента.
# 1. Install Bun (skip if you have it) curl -fsSL https://bun.sh/install | bash # macOS/Linux — or: brew install oven-sh/bun/bun powershell -c "irm bun.sh/install.ps1 | iex" # Windows # 2. Install Kesha bun add -g @drakulavich/kesha-voice-kit kesha --version # confirms `kesha` resolved on PATH # 3. Download the engine and models — pick one path kesha init # guided: TTS languages and optional VAD / diarization kesha install --plan && kesha install # manual: preview the sizes, then download

Дайте голос вашим локальным инструментам и агентам LLM.
Быстрое преобразование речи в текст, текста в речь, обнаружение голосовой активности и определение языка в одном локальном CLI-инструменте — CoreML на Apple Silicon, ONNX на Linux и Windows.

Среда выполнения: Bun >= 1.3.0.
# 1. Install Bun (skip if you have it)
curl -fsSL https://bun.sh/install | bash # macOS/Linux — or: brew install oven-sh/bun/bun
powershell -c "irm bun.sh/install.ps1 | iex" # Windows
# 2. Install Kesha
bun add -g @drakulavich/kesha-voice-kit
kesha --version # confirms `kesha` resolved on PATH
# 3. Download the engine and models — pick one path
kesha init # guided: TTS languages and optional VAD / diarization
kesha install --plan && kesha install # manual: preview the sizes, then download
# 4. Transcribe
kesha audio.ogg # transcript to stdout
kesha install загружает ~2,5 ГБ на Linux/Windows и ~0,6 ГБ на Apple Silicon, чей движок CoreML использует меньший набор моделей. Загрузка всегда явная — ничего не скачивается в фоновом режиме — и отображает прогресс загрузки в stderr. Если bun --version не работает сразу после первого шага, перезагрузите PATH: exec $SHELL -l.
Предпочитаете Homebrew или Docker? См. Другие способы установки. Работаете в изолированной сети или за корпоративным зеркалом? См. docs/model-mirror.md.
Все три платформы поддерживают транскрипцию, определение языка речи, работу с VAD и синтез речи. Строки, доступные только для macOS, требуют фреймворков Apple — это не отсутствие портирования. Windows — это протестированный путь, а не опубликованный бинарник, который никто не запускал: CI выполняет холодную установку kesha install на windows-latest, транскрибирует тестовый файл и выполняет цикл синтеза речи (#216, #667).
| macOS arm64 | Linux x64 | Windows x64 | |
|---|---|---|---|
| Транскрипция · определение языка аудио · VAD | CoreML / ANE | ONNX CPU | ONNX CPU |
TTS — en ru es fr it pt |
✅ | ✅ | ✅ |
TTS — hi ja zh и системные голоса macOS |
✅ | — | — |
Захват микрофона и живой диктант (kesha record) |
✅ | — | — |
Диаризация говорящих (--speakers) |
✅ | — | — |
Временные метки на уровне слов (words в --json) |
✅ | ✅ | ✅ |
| Автоматическое перенаправление голоса в зависимости от языка текста | ✅ | укажите --lang |
укажите --lang |
Intel Mac не получают опубликованный бинарный движок. Полная матрица с метками зрелости: docs/product-positioning.md.
kesha audio.ogg # transcribe (plain text)
kesha --format transcript audio.ogg # text + language/confidence
kesha --format json audio.ogg # full JSON with lang fields
kesha --json --timestamps audio.ogg # JSON with timestamped segments
kesha --itn audio.ogg # spelled-out numbers -> digits
kesha --toon audio.ogg # compact LLM-friendly TOON
kesha status # show installed backend info
kesha status --disk # + recursive cache disk usage
kesha status --json # machine-readable, for scripts
Несколько файлов получают заголовки в стиле head; stdout — это транскрипция, stderr — ошибки — удобно для конвейеров:
$ kesha freedom.ogg tahiti.ogg
=== freedom.ogg ===
Свободу попугаям! Свободу!
=== tahiti.ogg ===
Таити, Таити! Не были мы ни в какой Таити! Нас и тут неплохо кормят.
kesha record --out hello.wav записывает аудио с микрофона в WAV-файл (kesha hello.wav транскрибирует его). macOS запрашивает доступ к микрофону при первом использовании — предоставьте его в Системных настройках → Конфиденциальность и безопасность → Микрофон, если доступ был отклонён. На Linux/Windows или в безголовых системах передавайте любой существующий аудиофайл напрямую в kesha.kesha record --live транскрибирует микрофон по мере захвата и выводит транскрипт в stdout — без промежуточного WAV, поэтому можно использовать пайп (kesha record --live | pbcopy). Чтобы завершить запись после паузы, явно установите VAD, а затем включите опцию: kesha install --vad && kesha record --live --auto-stop. По умолчанию используется 1000 мс тишины после 250 мс речи; настройте параметры с помощью --auto-stop-silence-ms, --auto-stop-min-speech-ms и --auto-stop-threshold. Прогресс выводится в stderr. Linux и Windows не захватывают микрофон; передайте существующий аудиофайл в kesha для транскрипции. Прерывание обратимо: Ctrl-C (или SIGTERM) останавливает сессию, всё равно выводит продиктованный текст и завершается с кодом 130/143, а аудио сохраняется в восстановительный WAV-файл в ~/.cache/kesha/recordings/ — имя файла выводится в stderr при старте сессии, удаляется после успешной доставки транскрипта, сохраняется, если что-то — сигнал, сбой, закрытый терминал, оборванный пайп — помешало этому (#962).kesha install --vad); Kesha автоматически использует его для аудио длительностью более 120 с. Без VAD длинное аудио обрабатывается фиксированными фрагментами ASR. См. docs/vad.md.kesha install --diarize (устанавливает также VAD), затем kesha --json --speakers meeting.m4a помечает каждый сегмент идентификатором speaker. Опция --speakers включает оконное разбиение VAD для любой длительности, поэтому её нельзя комбинировать с --no-vad. На Linux/Windows возвращается чёткая ошибка "только для darwin-arm64" (#199).kesha --json --timestamps audio.ogg добавляет массив words в каждый сегмент — { "word": "email", "start": 0.72, "end": 1.12 } — на той же относительной шкале времени, что и сегмент, поэтому слово всегда находится внутри несущего его сегмента. Метки считываются с собственной сетки кадров декодера, поэтому: времена квантуются с шагом 0.08 с, последовательные интервалы могут перекрываться (каждое end — это предсказание длительности слова, а не start следующего слова), end >= start вместо строгого неравенства, а пунктуация остаётся прикреплённой к своему слову. Ключ просто отсутствует там, где у сегмента нет слов — например, если сегмент был переписан с помощью --itn, — поэтому проверяйте возможность transcribe.words, а не ожидайте пустой массив (#720).textLanguage с кодом языка, уверенностью и его source. На macOS Kesha использует Apple NLLanguageRecognizer; на других платформах — встроенный запасной вариант tinyld, шкала уверенности которого отличается. Это отдельно от audioLanguage, который определяет язык речи при наличии.--itn переписывает то, что модель произносит словами — "two hundred thirty two" → "232", "five dollars and fifty cents" → "$5.50". Опция включается вручную, работает на всех платформах, временные метки не затрагиваются. На практике поддерживается только английский; русский и другие языки остаются без изменений. Названия знаков препинания остаются словами ("dot", "comma", "the period of growth"), так как Kesha транскрибирует речь, а не диктовку — поэтому "example dot com" тоже сохраняет слова (#822). Союз "and" в предложении сохраняется перед числом ("cats and three dogs" → "cats and 3 dogs"), а "and", принадлежащий числу, объединяется с ним ("three hundred and five" → "305") (#1000) — и больше не разбивает число вокруг себя ("two hundred and thirty two" → "232", а не "230 2") (#1006). Число через дефис читается так же, как и через пробел ("twenty-five apples" → "25 apples"), а дефис между обычными словами остаётся без изменений ("well-known", "state-of-the-art", "twenty-something") (#1004).Kesha отвечает на 9 языках. Kokoro работает нативно через FluidAudio CoreML/ANE на Apple Silicon и через ONNX на Linux и Windows; для русского используется Vosk-TTS, а системные голоса macos-* не требуют загрузки моделей. На macOS Kesha выбирает голос в зависимости от языка текста; на Linux и Windows укажите язык с помощью --lang <code> (или голос с помощью --voice <id>) — иначе будет использоваться голос по умолчанию движка.
kesha install --tts # English voices; sizes differ per platform — preview: kesha install --plan
kesha install --tts en ru # + Russian (+~890 MB, Vosk)
kesha say "Hello, world" > hello.wav
kesha say "Привет, мир" > privet.wav # auto-routes by language (macOS)
kesha say --lang ru "Привет, мир" > privet.wav # explicit — the Linux/Windows path
kesha say --voice ru-vosk-m02 "Голос в текст." > ru.wav
Форматы вывода (--format или определяется по расширению --out):
kesha say "Hello" --out hi.wav # WAV (default, uncompressed)
kesha say "Hello" --format ogg-opus --out hi.ogg # OGG/Opus — messenger voice notes
kesha say "Hello" --format flac --out hi.flac # FLAC — lossless, plays in every browser incl. Safari/iOS
kesha say --list-voices выводит список установленных голосов. Голоса, полный каталог, системные голоса macOS, SSML, скорость речи (--rate, <prosody>), ударения в русских словах и обработка сокращений на русском и английском — всё это описано в docs/tts.md.
Распознавание речи поддерживает 25 языков, а синтез речи — 9. Полные таблицы с кодами, флагами и доступностью на разных платформах — в docs/languages.md. Детектор языка аудио распознаёт 107 языков.
До ~19 раз быстрее, чем Whisper на Apple Silicon (M2), ~2,5 раза быстрее на CPU
Сравнение с Whisper large-v3-turbo, все движки с автоматическим определением языка:
Полная разбивка по файлам (русский + английский): BENCHMARK.md. Показатель для CPU — это движок ONNX на ядрах CPU M2; данные для x86 пока не опубликованы.
Все перечисленные методы устанавливают CLI-обёртку Bun; движок и модели всё равно загружаются явно через kesha install. (Исключение — Nix, который на данный момент собирает только движок из исходников; см. ниже.)
brew install drakulavich/tap/kesha-voice-kit · docs/homebrew.md.deb/.rpm, x64) — публикуются в релизах CLI, см. docs/linux-packages.mdaarch64-darwin / x86_64-linux) — собирает движок из исходников (nix build github:drakulavich/kesha-voice-kit#kesha-engine). Полный CLI kesha через nix run / nix profile install пока недоступен — требуется сопровождающий с опытом работы с Nix для заполнения хеша сборки (#946). · docs/nix-install.mdkesha completions bash|zsh|fish и kesha manpage выводят готовые файлы для установки в нужное место вашей оболочки.kesha mcp предоставляет инструменты транскрипции/синтеза/перечисления для любых MCP-клиентов (Claude, Cursor, Codex, Gemini). Настройка: docs/mcp.md.raycast/.@drakulavich/kesha-voice-kit/core для использования внутри Bun-программы. См. docs/api.md.kesha doctor, kesha support-bundle (очищенный .tar.gz для баг-репортов) и kesha logs создают локальные диагностические отчёты без конфиденциальных данных — см. docs/diagnostic-logs.md. Каждая ошибка выводит стабильную строку error [CODE]: … и задокументированный код завершения процесса.--json (или --toon) для машинно-читаемого вывода, --include-errors (с любым из них) для вывода ошибок по файлам в stdout вместе с результатами, --quiet/-q для подавления прогресса и --no-color (или NO_COLOR=1) для логов без цвета. Цвета автоматически отключаются при CI=true.kesha stats enable, чтобы записывать операционные метрики без контента в локальную базу SQLite — без сетевых запросов, без хранения аудио, транскриптов, текста или путей. Полный список команд и жизненный цикл: docs/local-stats.md.См. CONTRIBUTING.md, дорожную карту (Сейчас / Далее / Позже) и журнал решений (почему были выбраны или изменены платформы и модели). Настройка окружения для разработки: just dev-setup (Bun, Rust, nextest, системные библиотеки).
Создано с 💛🩵 и 🥤-энергией под лицензией MIT.