«Таити, Таити! Не были мы ни в какой Таити! Нас и тут неплохо кормят.»
[lang: ru, confidence: 1.00]
Я активно использую OpenClaw последние два месяца, и 90% взаимодействия с ботом в Telegram происходит через войсы. Когда я увидел в LinkedIn упоминание о том, что Nvidia выпустила новую модель для speech-to-text, сразу решил её попробовать. Потом оказалось, что ребята из проекта FluidAudio на GitHub выложили оптимизированную версию модели для Apple Silicon, и на моих тестах производительность отличалась в 15 раз. Поэтому я решил, что это будет полезно не только мне, и быстро запилил wrapper вокруг этой библиотеки. Сначала я использовал в качестве обвязки bun и бинарник на Swift. Потом увидел, что для этой библиотеки можно использовать Rust, и перегенерировал код на Rust.
Сразу же появилась идея сделать эту библиотеку доступной не только под Mac, но и под Linux, поэтому я нашёл совместимые с форматом ONNX модели и продолжил развивать проект в эту сторону. В первой версии я зарелизил Speech to Text. Сейчас в текущем релизе добавил text to speech, чтобы агент или OpenClaw могли тоже разговаривать с вами голосом. Это бывает полезно, когда вы хотите быстро перевести что-то с одного языка на другой. Я, например, делал так, когда путешествовал по Таиланду: добавил скилл для OpenClaw, чтобы мои войсы на русском он переводил в текст на тайском и отправлял мне тайский voice-over. Это было удобно в магазинах.
До этого в моём OpenClaw-сетапе использовалась модель Whisper, которая работала через Groq. Groq даёт большой прирост скорости для моделей, работающих на GPU, и при подключении API Groq транскрибация с Whisper происходила почти моментально.
Сейчас с Parakeet история примерно та же, только не нужно отправлять данные в облако, всё происходит на моём MacBook. Мой основной персональный сетап OpenClaw сейчас крутится на MacBook Air M2 с 16 ГБ памяти, и транскрибация там происходит примерно за 300 миллисекунд.
К слову, это мой первый проект, в котором Opus на Claude практически в автоматическом режиме запилил все фичи. Мне нужно было только направлять его и следить, чтобы тесты, которые он пишет, реально покрывали функциональность. Но с CLI-утилитами это в целом довольно просто, так что опытом я доволен. Получилось сделать всё быстро.
Можно посмотреть в репозитории все наработки, которые я делал по ходу генерации кода, я старался всё документировать в CLAUDE.md.
Позырить / заюзать / поругать
- 🐙 Гитхаб: github.com/drakulavich/kesha-voice-kit
- 📦 npm:
@drakulavich/kesha-voice-kit - 📜 MIT
Буду благодарен за фидбэк.




TTS пожаловал.
Теперь ваш краб 🦀 будет говорить 🗣️
https://github.com/drakulavich/kesha-voice-kit/releases/tag/v1.1.3
Интересный сервис, как раз вчера делал себе транскрибатор на n8n и elevenlabs, но спасибо за наводку про Parakeet, надо будет глянуть.
Ложка дегтя конечно, что текст написан ИИ, например фраза « Ни один килобайт голоса не уходит наружу.» прям сверкает ред флагом.
А на Hermes насколько просто это завести?
А есть сравнение качества c whishper моделями?
В 19 раз быстрее "Субтитры делал DimaTorzok" транскрибировать я и сам смогу
Что нового в v1.3.0:
🍎 macOS AVSpeech как zero-install бэкенд для озвучки. На маке уже стоят ~180 системных голосов. Теперь они доступны из CLI:
kesha say --voice macos-ru-RU "Привет, мир"🪟 На Windows наконец-то работает TTS. До v1.3.0 релизный бинарь на винде умел только распознавать речь. Теперь
kesha sayтоже. Нуженchoco install espeak-ngодин раз — дальше всё как на маке/линуксе.😱 Комментарий удален его автором...
🔁 Ноль системных зависимостей для TTS (v1.4.0)
Главное изменение: выкинули espeak-ng и заменили его на полностью ONNX-овый G2P-движок (grapheme-to-phoneme) на базе CharsiuG2P ByT5-tiny. Больше никаких brew install espeak-ng или apt install espeak-ng. Text-to-speech теперь работает полностью через ONNX — тот же рантайм, что у Kokoro и Piper — на всех трёх платформах.
🗣️ Переопределение произношения через SSML <phoneme> (v1.4.1)
Для каких-нибудь хитрых слов теперь можно полностью обойти G2P, указав IPA-нотацию прямо в SSML:
kesha say --ssml '<speak>The word <phoneme alphabet="ipa" ph="nuˈmoʊniə">pneumonia</phoneme> is now pronounced correctly.</speak>'
🎙️ Умный автозапуск VAD
Voice Activity Detection теперь включается автоматически для записей длиннее 120 секунд. Длинные записи режутся по естественным речевым границам, тишина выкидывается — никакие флаги руками выставлять не надо. Короткие голосовухи остаются на быстром пути.
🖥️ Расширение для Raycast на macOS
Нативное расширение с двумя командами: Transcribe Selected Audio (берёт любой аудиофайл из Finder, прогоняет STT, кладёт транскрипт в буфер) и Speak Clipboard (читает текст из буфера выбранным голосом через kesha say). Уже отправили в Raycast Store.
⚡ Параллельная загрузка моделей
Первая установка стала на 40–60% быстрее. Модели качаются пулом из 4 воркеров на rayon вместо серийных HTTP-запросов. Установка на 2.6 ГБ при канале в 25 Мбит/с теперь занимает ~8 минут вместо ~14.
🔐 SHA-256 для всех файлов моделей
Все файлы ASR- и language-ID-моделей теперь проверяются по запиненным SHA-256 хэшам при каждой установке — закрыли последнюю дыру по целостности (TTS уже было проверено раньше).
📊 Использование диска в kesha status
Команда kesha status теперь показывает использование диска по компонентам — видно ровно, что лежит в ~/.cache/kesha: движок, ASR-модель, language ID, VAD, Kokoro TTS, Piper TTS, G2P.
Привет! Респект за cli! Мне в ай-чатике подсказали ссылку на твой проект.
Я записал драфт-скринкаст и мне нужно было взглянуть на то что я наговорил в виде текста.
Обычно я просил агента через ffmpeg вытащить аудио, потом загружал его ручками в ai.studio и там промптил.
Сегодня стало лень, решил поискать локальное решение на мак, где то из чертогов памяти у меня появилось слово parakeet, спросил в ай-чатике, там подсказали ссылку на этот пост.
Прогнал свою задачу и результат STT получился офигенным!
Вопрос есть, у тебя нет skill который учит как правильно использовать kesha cli? Мне кажется он был бы полезным чтобы понимать, какие есть use cases и как правильно готовить этот cli
Kesha Voice Kit — что случилось с версии 1.4 🦜
Давно не постил апдейты. На 1.4 (конец апреля) Кеша умел распознавать речь и кое-как говорить через espeak-ng + Piper. С тех пор доехали до 1.22 — рассказываю 5 главных изменений.
1. TTS переписал с нуля — без системных зависимостей
Выкинул espeak-ng и Piper (которые требовали
brew install/apt install). Теперь английский говорит Kokoro со встроенным G2P (misaki-rs), русский — Vosk-TTS (BERT-просодия + словарь, всё внутри). Ноль системных пакетов, один бинарь. Голос по умолчанию мужской — Кеша всё-таки. Вывод в WAV, OGG/Opus (голосовухи для телеги/вотсапа) и FLAC (играет нативно в Safari/iOS, где Opus не умеет).2. Русский TTS — по-человечески
<emphasis>дом+а</emphasis>→ до-МА́.--no-expand-abbrev.<prosody rate="slow">и флаг--rate 0.5..2.0.3. Мультиязычный TTS на Apple Neural Engine
На Apple Silicon Kokoro крутится через FluidAudio прямо на ANE. Завезли español / italiano / português / français. Японский, китайский и хинди тоже есть, но честно: только латиницей (ромадзи/пиньинь/транслит) — нативное письмо движок пока не фонемизирует и теперь честно падает с
E_SCRIPT_UNSUPPORTED, а не выдаёт шум. Плюс на macOS — 180+ системных голосов (--voice macos-*), вообще без скачиваний.4. Кеша подключается к LLM-агентам
kesha mcp— локальный MCP-сервер (transcribe/synthesize/list voices) для Claude, Cursor, Codex, Gemini. Плюс скилл для OpenClaw, провайдеры для Hermes и расширение Raycast в работе.5. Кто сказал?
--speakers(кто когда говорил, Sortformer на ANE) + таймстемпы по сегментам + VAD (Silero v5) для длинного аудио.