Настройка

Распознавание речи и расходы

Выберите whisper на устройстве (бесплатно), собственный ключ OpenAI или любой OpenAI-совместимый эндпоинт, например свой сервер с GPU. Аудио идёт напрямую с вашего компьютера в выбранный сервис.

#Кто платит и куда идёт трафик

Модель расходов и сетевого трафика

  • Разработчик (Japan Marketing LLC) не оплачивает, не проксирует и не выставляет счета за распознавание речи или использование ИИ.
  • Запросы идут напрямую с вашего компьютера в OpenAI или на ваш эндпоинт и никогда не проходят через сервер разработчика.
  • Использование OpenAI оплачивается с вашего собственного аккаунта OpenAI.
  • Обработать использует CLI Claude Code / Codex, в который вы уже вошли, если только вы явно не выбрали исполнителя через API (organizer.runner: "api:<provider>", см. Настройка через settings.json). Сам по себе он никогда не переключается на API-ключ.

#Способы

Выбор делается в Настройки → Распознавание → Движок. Всплывающее окно Микрофон и распознавание в нижней панели показывает текущий выбор.

ДвижокКуда идёт аудиоСтоимость
На устройстве (бесплатно) (по умолчанию)НикудаБесплатно
OpenAI (ваш ключ)OpenAIВаш счёт OpenAI: gpt-transcribe по $0.0045/мин (около $0.27/час)
OpenAI-совместимый (свой GPU, Groq и т. п.)Ваш Base URL эндпоинтаЗависит от эндпоинта

Настройки → Распознавание → Язык: Авто, Японский или Английский. Это язык речи, он не зависит от языка интерфейса.

#whisper на устройстве (бесплатно)

Распознавание на устройстве использует whisper.cpp (откроется в новой вкладке): исполняемый файл whisper-cli и модель GGML.

1. Установите whisper-cli. Ferret ищет встроенную копию (resources/whisper/<platform>-<arch>/), затем PATH, затем стандартные места, например Homebrew.

# macOS
brew install whisper-cpp

# Linux: build from source, then add build/bin to PATH
git clone https://github.com/ggml-org/whisper.cpp && cd whisper.cpp
cmake -B build && cmake --build build -j --config Release

# Windows: download the zip from github.com/ggml-org/whisper.cpp/releases
# and add the folder containing whisper-cli.exe to PATH

2. Получите модель. Выбрав На устройстве (бесплатно), укажите Модель и нажмите Скачать модель. Файлы скачиваются напрямую с Hugging Face (ggerganov/whisper.cpp), сверяются с sha256, зафиксированным в приложении (при несовпадении файл удаляется), и сохраняются в <userData>/models/. Скачанная модель выбирается автоматически. Отменить сохраняет частично скачанный файл, а Продолжить загрузку продолжает с того же места.

МодельРазмерПримечания
large-v3-turbo1.6 GBРекомендуется по умолчанию. Быстро работает на Metal / GPU
large-v3-turbo-q5_0574 MBКвантованная. Экономит место на диске и память
small488 MBДля компьютеров только с CPU
base148 MBЛёгкая. Много ошибок в японском
tiny78 MBСамая быстрая. Недостаточно точна для японского

Модель уже есть? Укажите любой ggml-*.bin через Выбрать файл…. Без модели в настройках будет указано, что модель не задана. Записывать всё равно можно: аудио сохраняется, а замечания создаются только по пометкам пером.

whisper-cli не входит в состав приложения. Установите его сами, как показано выше. Если он не найден, в настройках появится сообщение whisper.cpp (whisper-cli) не найден. Установите его и откройте настройки заново. с теми же инструкциями.

#Собственный ключ OpenAI

  1. Выберите в поле Движок значение OpenAI (ваш ключ).
  2. Вставьте ключ, начинающийся с sk-, в поле API-ключ OpenAI и нажмите Сохранить.
  3. Нажмите Проверить подключение. Будет отправлена 1 секунда тишины (около $0.0001).

Модель зафиксирована: gpt-transcribe. Только при разработке (pnpm dev) также читается OPENAI_API_KEY из игнорируемого файла .env. Собранные версии никогда не читают .env.

#OpenAI-совместимые эндпоинты

Ferret отправляет POST <base>/v1/audio/transcriptions (multipart: file, model, response_format=json, language, prompt), поэтому он рассчитан на серверы, реализующие маршрут распознавания OpenAI.

  1. Выберите в поле Движок значение OpenAI-совместимый (свой GPU, Groq и т. п.).
  2. Заполните Base URL эндпоинта и Модель (имя модели на эндпоинте).
  3. Если серверу нужен ключ, введите API-ключ эндпоинта (необязательно) и нажмите Сохранить.
  4. Нажмите Проверить подключение. Сообщения об ошибках называют причину, например неверный Base URL (нет /v1/audio/transcriptions), отклонённый ключ или неизвестное имя модели.
СерверBase URLМодель (пример)
speaches (откроется в новой вкладке) (ранее faster-whisper-server)http://localhost:8000/v1Systran/faster-whisper-small
vLLM (откроется в новой вкладке) (vllm serve openai/whisper-large-v3)http://localhost:8000/v1openai/whisper-large-v3
Groq (откроется в новой вкладке)https://api.groq.com/openai/v1whisper-large-v3-turbo

Ferret рассчитан на OpenAI-совместимые серверы вроде этих, но с Ferret они ещё не тестировались. URL и имена моделей — это значения по умолчанию из документации самих серверов.

  • Завершающий /v1 или вставленный целиком /v1/audio/transcriptions при сохранении отбрасывается, поэтому подходит любой вариант.
  • URL с именем пользователя или паролем отклоняются, чтобы ключи никогда не попали в settings.json.
  • Для сервера с GPU в вашей локальной сети или tailnet укажите его адрес, например http://100.x.y.z:8000/v1.

#Лимит расходов

Для OpenAI и совместимых эндпоинтов задайте Лимит расходов: Нет или от До $0.10 на ревью до $0.50, $1 (по умолчанию), $5 и $20. Для собственного GPU разумно выбрать Нет. Параметр хранится как capture.costLimitUsd (максимум 1000, null означает без лимита). Для совместимых эндпоинтов стоимость оценивается в $0.006/мин.

Если следующий фрагмент превысит лимит, Ferret прекращает отправку и сохраняет аудио. Неудачные вызовы API автоматически не повторяются.

#Где хранятся ключи

Ключи, введённые в Настройки, шифруются через Electron safeStorage и записываются в <userData>/stt-keys.bin. Приложение никогда не записывает их в settings.json. Чтобы вместо этого сослаться на ключ из settings.json (переменная окружения или запись в .env), см. API-ключи.

  • macOS: Связка ключей (Keychain)
  • Windows: DPAPI
  • Linux: libsecret или KWallet. Если доступен только бэкенд basic_text, ключ хранится в памяти только на текущий сеанс (кнопка называется На этот сеанс).

Удалить ключ удаляет его. Пути <userData> см. в разделе Файлы и окружение.

Помочь с переводом этой страницы на GitHub (откроется в новой вкладке)