Skip to main content
Glama

speak

Попросите Claude зачитать свой ответ вслух.

Это не просто озвучка сырого ответа. Вы говорите «прочитай это мне просто», и Claude переписывает сказанное в короткий устный скрипт, а затем воспроизводит его. Скрипт никогда не появляется в чате. Это разговор между вами и моделью, где текст не мешает.

Работает в Claude Code уже сегодня. Часть воспроизведения — это обычный MCP-сервер, поэтому он также подключается к Claude Desktop, Cursor или любому MCP-клиенту.

Что вы получаете

  • MCP-сервер speak с инструментами speak, stop, pause, resume, back, skip, add_pronunciation, list_pronunciations, list_voices, set_default

  • Плавающий оверлей на macOS, пока говорит Claude: небольшая «пилюля» над каждым окном с живой волновой формой, назад на одно предложение, пропустить одно предложение, пауза и возобновление с точной позиции, остановка

  • Скилл /speak для Claude Code со стилями: simple (по умолчанию), brief, decisions, full, eli5

  • Авто-озвучка: хук Stop, который читает brief-скрипт после каждого ответа, по умолчанию выключен

  • CLI speak: echo "hello" | speak

  • Команды Raycast: Speak читает выделенный текст как есть, Speak Simply сначала переписывает его с помощью claude -p в короткое устное резюме, Speak Translated сначала переводит его (по умолчанию на английский; введите другой язык как аргумент команды или задайте SPEAK_TRANSLATE_LANGUAGE для изменения значения по умолчанию). Перевод не на английском читается подходящим установленным голосом macOS, сначала лучший доступный (Premium, затем Enhanced, затем компактный); для английского ваш обычный голос не изменяется. Загрузите голос Premium для языка в System Settings > Accessibility > Read & Speak > System Voice > Manage Voices, чтобы получить хороший. Speak Stop останавливает. Они копируют выделение с помощью имитации Cmd+C, поэтому Raycast требует разрешения на доступность.

Related MCP server: oto

Движки

Движок

Стоимость

Требования

Примечания

say

бесплатно

macOS

По умолчанию. Загрузите голос Premium или Enhanced в System Settings > Accessibility > Spoken Content для хорошего качества. Установите голос Siri как системный по умолчанию, и простой say будет использовать его.

edge

бесплатно

сеть

Нейронные голоса Microsoft через edge-tts-universal. Очень хорошее качество. Неофициальный API.

kokoro

бесплатно

npm i kokoro-js, ~300MB модель при первом запуске

Локальный нейронный TTS, работает на CPU.

openai

платно

OPENAI_API_KEY

gpt-4o-mini-tts.

elevenlabs

бесплатный тариф

ELEVENLABS_API_KEY

eleven_flash_v2_5.

Выбор голоса на macOS

Движок say по умолчанию использует системный голос вашего Mac, поэтому настройте его один раз в macOS, и каждое чтение будет использовать его:

  1. Откройте System Settings > Accessibility > Read & Speak (в старых версиях — Spoken Content).

  2. В разделе System Voice выберите голос. Apple поставляет большую библиотеку для каждого языка; голоса Premium и Enhanced загружаются по требованию и звучат значительно лучше компактных по умолчанию. Здесь также можно выбрать голоса Siri.

  3. Установите скорость речи по своему вкусу.

Произношение

Скажите Claude в чате:

  • "произноси fancyapp как fan-see-app с этого момента"

  • "какие произношения вы сохранили"

Они хранятся в ~/.config/speak/pronunciations.json (переопределите папку с помощью SPEAK_CONFIG_DIR), сопоставляются по полному слову и без учёта регистра и применяются к каждому чтению:

{
  "fancyapp": "fan-see-app",
  "OAuth": "oh auth"
}

Ссылки и электронные письма читаются вслух: https://example.com/login превращается в «example dot com slash login», jane@example.de — в «jane at example dot d e». Короткие окончания, такие как de, io, co.uk, произносятся по буквам, поскольку «de», прочитанное как слово, звучит как «дух».

Слова с двумя произношениями («live», «read», «lead») нельзя исправить списком слов. Скилл подсказывает Claude переписать их в скрипте, чтобы голос не ошибся: «lyive» для live в значении «живой», «red» для read в прошедшем времени, «led» для металла. В скилле есть таблица типичных слов-нарушителей, и он проверяет скрипт по ней перед озвучиванием.

Оставьте SPEAK_VOICE неустановленным, чтобы следовать системному голосу, или задайте имя голоса из say -v ?, чтобы переопределить его только для Claude.

Первый доступный движок выигрывает, если вы не зададите SPEAK_ENGINE. SPEAK_VOICE задаёт голос. Оба можно изменить для сеанса с помощью инструмента set_default («переключиться на движок edge»).

Установка

Задайте RAYCAST_SCRIPTS_DIR в каталог, уже добавленный в Raycast (Settings > Extensions > Script Commands), и команды будут связаны с ним. Без этого добавьте raycast/ из этого репозитория вручную один раз.

RAYCAST_SCRIPTS_DIR=~/raycast-scripts ./install.sh

Требуется Node 20+, jq и Claude Code.

git clone https://github.com/CareyScott/speak
cd speak
./install.sh

Это собирает сервер и вспомогательную программу оверлея для macOS (требуется swiftc из инструментов командной строки Xcode), регистрирует MCP-сервер в области пользователя, связывает скилл с ~/.claude/skills, добавляет хук Stop в ~/.claude/settings.json и связывает speak и speak-auto с ~/.local/bin.

Перезапустите Claude Code.

Использование

Поговорите с Claude:

  • "прочитай это мне"

  • "скажи просто"

  • "что тебе нужно от меня, вслух"

  • "/speak decisions"

  • "стоп"

Авто-озвучка после каждого ответа:

speak-auto on            # brief style
speak-auto on decisions  # only the questions for you
speak-auto off

Пока он говорит, используйте оверлей или просто скажите:

  • "пауза", "продолжить", "назад на одно предложение", "пропустить", "стоп"

Пауза удерживает точную позицию. Возобновление продолжает с неё. «Назад» повторяет предыдущее предложение. «Пропустить» переходит к следующему. Ничего не произносится о паузе или возобновлении; это просто происходит.

Выберите движок или голос:

export SPEAK_ENGINE=edge
export SPEAK_VOICE=en-IE-ConnorNeural

Или в чате: «перечисли голоса say», «используй Jamie с этого момента».

Как это работает

Скилл объясняет Claude, как писать для слуха: короткие предложения, начните с главного, описывайте код вместо чтения, завершайте решением, которое ему нужно от вас. Claude вызывает инструмент speak с этим скриптом.

Сервер удаляет остатки Markdown, разбивает скрипт на предложения и синтезирует следующее предложение, пока играет текущее.

На macOS небольшой вспомогательный модуль на Swift (overlay/main.swift) управляет воспроизведением с помощью AVAudioPlayer и рисует оверлей: панель поверх всех окон, которая не активируется и никогда не крадёт фокус. Node отправляет ему по одному файлу предложения через строки JSON на stdin, а он сообщает finished, back или stop на stdout. Пауза и возобновление происходят внутри модуля, поэтому позиция точна. «Назад» и «Пропустить» сообщают серверу, какое предложение воспроизводить дальше. В других местах сервер переключается на afplay или ffplay без оверлея.

Авто-озвучка — это хук Stop в Claude Code. Когда существует файл-флаг ~/.config/speak/auto, хук один раз блокирует остановку и просит Claude озвучить скрипт в стиле, указанном в файле. Защита stop_hook_active предотвращает зацикливание.

Разработка

npm run dev        # run the server with tsx
npm test           # vitest
npm run typecheck

MIT.

Related MCP Connectors

Related MCP Servers