설정

음성 인식과 비용

기기 내 whisper(무료), 내 OpenAI 키, 또는 직접 운영하는 GPU 서버 같은 OpenAI 호환 엔드포인트 중에서 고를 수 있습니다. 오디오는 내 컴퓨터에서 선택한 서비스로 바로 전송됩니다.

#누가 비용을 내고, 통신은 어디로 가는가

비용과 네트워크 구조

  • 개발사(Japan Marketing LLC)는 음성 인식이나 AI 사용 비용을 부담하지 않으며, 중계하거나 청구하지도 않습니다.
  • 요청은 내 컴퓨터에서 OpenAI 또는 내 엔드포인트로 바로 전송되며, 개발사 서버를 거치지 않습니다.
  • OpenAI 사용량은 내 OpenAI 계정으로 청구됩니다.
  • 정리는 API 실행기를 명시적으로 고르지 않는 한(organizer.runner: "api:<provider>", settings.json으로 설정 참고) 이미 로그인한 Claude Code / Codex CLI를 사용합니다. 스스로 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 MBCPU만 있는 컴퓨터용
base148 MB가벼움. 일본어 오류가 많음
tiny78 MB가장 빠름. 일본어에는 정확도가 부족함

이미 모델이 있다면 파일 선택…으로 원하는 ggml-*.bin을 지정하세요. 모델이 없으면 설정에 모델이 설정되지 않았다고 표시됩니다. 그래도 녹화는 할 수 있습니다. 오디오는 저장되고, 펜 지적 사항만 만들어집니다.

whisper-cli는 앱에 포함되어 있지 않습니다. 위와 같이 직접 설치하세요. 찾을 수 없으면 설정에 whisper.cpp(whisper-cli)를 찾을 수 없습니다. 설치한 후 설정을 다시 여세요.가 같은 안내와 함께 표시됩니다.

#내 OpenAI 키

  1. 엔진을 OpenAI(내 키)로 설정합니다.
  2. sk-로 시작하는 키를 OpenAI API 키에 붙여 넣고 저장을 클릭합니다.
  3. 연결 테스트를 클릭합니다. 1초 분량의 무음을 보냅니다(약 $0.0001).

모델은 gpt-transcribe로 고정되어 있습니다. 개발 모드(pnpm dev)에서만 무시 목록에 있는 .env 파일의 OPENAI_API_KEY도 읽습니다. 패키징된 빌드는 .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에 남는 일은 없습니다.
  • LAN이나 tailnet에 있는 GPU 서버라면 그 주소를 사용하세요. 예: 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: 키체인
  • Windows: DPAPI
  • Linux: libsecret 또는 KWallet. basic_text 백엔드만 사용할 수 있으면 키는 현재 세션 동안만 메모리에 보관됩니다(버튼이 이번 세션에 설정으로 표시됨).

키 삭제로 삭제합니다. <userData> 경로는 파일과 환경을 참고하세요.

GitHub에서 이 페이지 번역 돕기 (새 탭에서 열림)