diff --git a/apps/desktop/src/main/services/LocalLLMService.ts b/apps/desktop/src/main/services/LocalLLMService.ts index 7e520a5..a80cdc0 100644 --- a/apps/desktop/src/main/services/LocalLLMService.ts +++ b/apps/desktop/src/main/services/LocalLLMService.ts @@ -71,8 +71,12 @@ interface LocalLLMEvents { // ============================================================ // 시스템 프롬프트. -// `/no_think`는 qwen3 계열 reasoning model의 thinking mode를 비활성화하는 토큰. -// 다른 모델에서는 무시되므로 호환성에 문제 없음. +// 기본 권장 모델은 `gemma4:e4b` (non-reasoning). 기본값으로 thinking mode가 +// 꺼져 있어 추가 토큰이 필요 없지만, 사용자가 수동으로 qwen3/deepseek-r1 등 +// reasoning 모델로 교체했을 때를 대비한 2중 방어: +// (1) 아래 `/no_think` 시스템 프롬프트 토큰 (qwen3 계열 전용 힌트, 타 모델은 무시) +// (2) Ollama 요청 body의 `think: false` 파라미터 (Ollama v0.20.0+) +// (3) `stripReasoningBlocks()` 출력 가드 const NO_THINK = '/no_think' const SYSTEM_PROMPTS: Record = { @@ -269,7 +273,7 @@ class LocalLLMService extends EventEmitter { } const serverUrl = configGet('ollamaServerUrl') - const model = options?.model ?? configGet('llmModelId') ?? 'qwen3:4b' + const model = options?.model ?? configGet('llmModelId') ?? 'gemma4:e4b' this._state = LLMState.Generating @@ -282,6 +286,9 @@ class LocalLLMService extends EventEmitter { prompt, system: options?.systemPrompt, stream: false, + // Ollama v0.20+ think 파라미터: reasoning 모델에서 thinking 토큰 생성 중단. + // gemma4/llama3.2 등 non-reasoning 모델에서는 무시됨. + think: false, options: { temperature: options?.temperature ?? 0.3, num_predict: options?.maxTokens ?? 2048 @@ -333,7 +340,7 @@ class LocalLLMService extends EventEmitter { } const serverUrl = configGet('ollamaServerUrl') - const model = options?.model ?? configGet('llmModelId') ?? 'qwen3:4b' + const model = options?.model ?? configGet('llmModelId') ?? 'gemma4:e4b' this._state = LLMState.Generating this._abortController = new AbortController() @@ -347,6 +354,7 @@ class LocalLLMService extends EventEmitter { prompt, system: options?.systemPrompt, stream: true, + think: false, options: { temperature: options?.temperature ?? 0.3, num_predict: options?.maxTokens ?? 2048 @@ -541,7 +549,7 @@ class LocalLLMService extends EventEmitter { } const serverUrl = configGet('ollamaServerUrl') - const model = options?.model ?? configGet('llmModelId') ?? 'qwen3:4b' + const model = options?.model ?? configGet('llmModelId') ?? 'gemma4:e4b' this._abortController = new AbortController() this._state = LLMState.Generating @@ -554,6 +562,7 @@ class LocalLLMService extends EventEmitter { model, messages, stream: true, + think: false, options: { temperature: options?.temperature ?? 0.7, }, diff --git a/apps/desktop/src/renderer/components/OllamaGuideModal.tsx b/apps/desktop/src/renderer/components/OllamaGuideModal.tsx index 6abda15..8f2795a 100644 --- a/apps/desktop/src/renderer/components/OllamaGuideModal.tsx +++ b/apps/desktop/src/renderer/components/OllamaGuideModal.tsx @@ -130,7 +130,7 @@ export function OllamaGuideModal({ open, onClose }: OllamaGuideModalProps): Reac {t('ollama.step2.desc')} - ollama pull qwen3:4b + ollama pull gemma4:e4b {t('ollama.step2.alt')} diff --git a/apps/desktop/src/renderer/components/OnboardingModal.tsx b/apps/desktop/src/renderer/components/OnboardingModal.tsx index df6fd13..ee58d9a 100644 --- a/apps/desktop/src/renderer/components/OnboardingModal.tsx +++ b/apps/desktop/src/renderer/components/OnboardingModal.tsx @@ -243,7 +243,7 @@ export function OnboardingModal({ open, onClose }: OnboardingModalProps): React. - $ ollama pull qwen3:4b + $ ollama pull gemma4:e4b {t('onboarding.ollama.modelHint')} diff --git a/apps/desktop/tests/main/services/VoiceModeService.test.ts b/apps/desktop/tests/main/services/VoiceModeService.test.ts index 40624ce..120e3d1 100644 --- a/apps/desktop/tests/main/services/VoiceModeService.test.ts +++ b/apps/desktop/tests/main/services/VoiceModeService.test.ts @@ -55,7 +55,7 @@ vi.mock('../../../src/main/services/ConfigService', () => ({ sttModelId: 'base', defaultLLMAction: 'refine', ollamaServerUrl: 'http://localhost:11434', - llmModelId: 'qwen3:4b' + llmModelId: 'gemma4:e4b' } return defaults[key] }) diff --git a/docs/design/00-master-architecture.md b/docs/design/00-master-architecture.md index ad18aad..ffc4fde 100644 --- a/docs/design/00-master-architecture.md +++ b/docs/design/00-master-architecture.md @@ -862,7 +862,7 @@ export interface TTSConfig { export interface LLMConfig { serverUrl: string; // 기본: 'http://localhost:11434' - model: string; // 기본: 'qwen3:4b' (권장) + model: string; // 기본: 'gemma4:e4b' (non-reasoning, 권장) temperature: number; // 0.0~2.0, 기본: 0.3 maxTokens: number; // 기본: 2048 timeout: number; // ms, 기본: 30000 @@ -905,7 +905,7 @@ const CONFIG_DEFAULTS: AppConfig = { }, llm: { serverUrl: 'http://localhost:11434', - model: 'qwen3:4b', + model: 'gemma4:e4b', temperature: 0.3, maxTokens: 2048, timeout: 30000, diff --git a/docs/design/05-external-engine-integration.md b/docs/design/05-external-engine-integration.md index 29656f5..0e6b40a 100644 --- a/docs/design/05-external-engine-integration.md +++ b/docs/design/05-external-engine-integration.md @@ -347,7 +347,7 @@ faster-whisper 자체는 진정한 스트리밍을 지원하지 않는다. `tran ```typescript // 요청 interface OllamaGenerateRequest { - model: string; // 필수: "qwen3:4b" + model: string; // 필수: "gemma4:e4b" prompt: string; // 필수 suffix?: string; // FIM (Fill-in-Middle) 지원 모델용 system?: string; // 시스템 프롬프트 @@ -419,7 +419,7 @@ interface OllamaChatStreamChunk { // GET http://localhost:11434/api/tags interface OllamaTagsResponse { models: Array<{ - name: string; // "qwen3:4b" + name: string; // "gemma4:e4b" model: string; modified_at: string; // ISO 8601 size: number; // 바이트 @@ -427,8 +427,8 @@ interface OllamaTagsResponse { details: { parent_model: string; format: string; // "gguf" - family: string; // "qwen3" - parameter_size: string; // "4B" + family: string; // "gemma4" + parameter_size: string; // "4.5B" quantization_level: string; // "Q4_K_M" }; }>; @@ -440,7 +440,7 @@ interface OllamaTagsResponse { ```typescript // 요청 interface OllamaPullRequest { - name: string; // "qwen3:4b" + name: string; // "gemma4:e4b" stream?: boolean; // 기본 true } @@ -457,7 +457,7 @@ interface OllamaPullStreamChunk { ```typescript // POST http://localhost:11434/api/show -// 요청: { "name": "qwen3:4b" } +// 요청: { "name": "gemma4:e4b" } interface OllamaShowResponse { modelfile: string; parameters: string; @@ -477,7 +477,7 @@ interface OllamaShowResponse { ```typescript // DELETE http://localhost:11434/api/delete -// 요청: { "name": "qwen3:4b" } +// 요청: { "name": "gemma4:e4b" } // 응답: 200 OK (성공) | 404 Not Found ``` @@ -516,7 +516,7 @@ class OllamaClient { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ - model: options.model ?? 'qwen3:4b', + model: options.model ?? 'gemma4:e4b', prompt, system: options.systemPrompt, stream: false, @@ -555,7 +555,7 @@ class OllamaClient { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ - model: options.model ?? 'qwen3:4b', + model: options.model ?? 'gemma4:e4b', prompt, system: options.systemPrompt, stream: true, @@ -1053,25 +1053,26 @@ User HotkeyService VoiceModeService AudioCapture WhisperS | 모델 | 크기 | 한국어 | RAM | 추천 용도 | |------|------|--------|-----|----------| -| **`qwen3:4b`** | 2.7GB | ◎◎ 우수 | 4GB+ | **기본 추천. 한중일 강점** | -| `qwen3.5:4b` | ~3GB | ◎◎ 최상 | 4GB+ | 최신 모델, 한국어 특히 강화 | -| `gemma3:4b` | 3.3GB | ◎ 양호 | 4GB+ | Google 다국어, 140개 언어 | -| `llama3.2:3b` | 2.0GB | △ 보통 | 3GB+ | 영어 위주, 한국어 약함 | -| `phi-4-mini` | 2.5GB | △ 보통 | 3GB+ | 추론 강점, 한국어 제한적 | +| **`gemma4:e4b`** | 3.3GB | ◎◎ 우수 | 4GB+ | **기본 추천. non-reasoning, 140개 언어, Ollama think:false 지원** | +| `gemma4:e2b` | 1.8GB | ◎ 양호 | 2GB+ | 더 빠른 응답. 정제 품질은 한 끗 낮음 | +| `llama3.2:3b` | 2.0GB | ◎ 양호 | 3GB+ | 가장 빠름, Meta 소형 플래그십 | +| `phi4-mini:3.8b` | 2.5GB | △ 보통 | 3GB+ | 추론/수학 강점, 한국어 제한적 | +| `qwen3:4b` | 2.7GB | ◎◎ 우수 | 4GB+ | ⚠ reasoning 모델. strip empty 버그 유의 (think:false 필수) | -**판정:** Qwen3/3.5 계열이 한국어에서 압도적. Alibaba의 다국어 학습 데이터에 한중일이 충분히 포함됨. +**판정:** Gemma 4는 Google의 최신 non-reasoning 플래그십 소형 모델(2026-04). 한국어 포함 140개 언어 강력하고, reasoning 토큰을 기본으로 생성하지 않아 정제 파이프라인이 단순하다. Qwen3 계열은 한국어 품질은 좋지만 reasoning 모델이라 thinking block strip 후 빈 응답 fallback 이슈가 있음 — 수동 선택 시 Ollama v0.20+의 `think: false` 파라미터 필수. **텍스트 후처리에 권장 설정:** ```json { - "model": "qwen3:4b", + "model": "gemma4:e4b", + "think": false, "temperature": 0.3, "num_predict": 512, "top_p": 0.9, "stop": ["\n\n"] } ``` -낮은 temperature(0.3)로 원문 의미 보존, 짧은 출력으로 빠른 응답. +낮은 temperature(0.3)로 원문 의미 보존, 짧은 출력으로 빠른 응답. `think: false`는 gemma4/llama3.2는 무시하고, 사용자가 qwen3/deepseek-r1 등으로 교체했을 때 reasoning 토큰 차단. ### 6.3 TTS 음성 추천 diff --git a/docs/phases/phase-14-meeting-mode.md b/docs/phases/phase-14-meeting-mode.md index d8e84b6..482f27a 100644 --- a/docs/phases/phase-14-meeting-mode.md +++ b/docs/phases/phase-14-meeting-mode.md @@ -885,8 +885,9 @@ if (captionState !== 'inactive') { ## 12. 긴 회의 대응 전략 Ollama 모델별 컨텍스트 윈도우: -- qwen3:4b → 32K tokens (~24K 한국어 자) +- gemma4:e4b → 128K tokens (기본 추천) - llama3.2:3b → 128K tokens +- qwen3:4b → 32K tokens (~24K 한국어 자) ⚠ reasoning 모델 전사 텍스트가 20,000자를 초과하면 2-pass 요약: diff --git a/docs/v2/phase-V2-5-mac-guide.md b/docs/v2/phase-V2-5-mac-guide.md index 34959dd..06624ac 100644 --- a/docs/v2/phase-V2-5-mac-guide.md +++ b/docs/v2/phase-V2-5-mac-guide.md @@ -24,7 +24,7 @@ brew install sox # Ollama (로컬 LLM, 선택) brew install ollama ollama serve & # 백그라운드 실행 -ollama pull qwen3:4b +ollama pull gemma4:e4b ``` ## 2. 프로젝트 클론 + 설치 diff --git a/memory/project_status.md b/memory/project_status.md index e51252a..f242c13 100644 --- a/memory/project_status.md +++ b/memory/project_status.md @@ -1,8 +1,85 @@ # D3RO-VOICE 프로젝트 현황 -> 마지막 갱신: 2026-04-11 (빅뱅 Phase 5 Part 6 — Voice Conversation 몰입 패널 구현) +> 마지막 갱신: 2026-04-11 (빅뱅 Phase 5 Part 7 — Bug 13 전면 해소 + Gemma4 전환) > 규칙 13: 작업 완료 즉시 이 파일 갱신 의무 +## 빅뱅 Phase 5 Part 7 (2026-04-11) — Bug 13 전면 해소 + Gemma4 기본 모델 전환 ✅ + +Part 6에서 Voice Conversation 몰입 패널까지 가고 남은 숙제였던 **Bug 13 전면 해소**와 사용자 실측에서 발견된 **LLM refine 42.9초 병목**(qwen3 reasoning 모델 strip empty fallback)을 한 사이클에 정리. 받아쓰기 한 바퀴 51초 → 기대 7~10초로 대폭 단축 예상. + +### 7-A. Voice Conversation 에러 배너 UI (Part 6 후속) + +`VoiceConversationPage.tsx`의 `onError` 콜백이 기존에는 주석만 있고 UI 피드백이 없었음. MUI `Snackbar + Alert(severity="warning" variant="filled")` 하단 중앙 4초 auto-hide 배너 추가. 에러 매핑 헬퍼 `formatErrorMessage`: + +- `phase === 'stt' && message.startsWith('no speech')` → i18n `conversation.error.noSpeech` +- 그 외 → `${phaseLabel}: ${rawMessage}` (phaseLabel 3종 i18n) + +**i18n 키 4개 추가** (ko/en): `conversation.error.phase.{stt,llm,tts}` + `conversation.error.noSpeech` + +### 7-B. Dictation Bug 13 가드 (VoiceModeService) + +`_transcribe()`에 2중 가드 추가 — VoiceConversationService와 동일 패턴. + +1. **minBytes 가드** (16kHz 16bit mono 기준 0.5초 = 16000 bytes 미만) → `_handleError(STTAudioTooShort, 'No speech detected...')` → recording-tip popup이 'error' 상태로 전환 → 3초 자동 숨김 +2. **빈 result.text 가드** → `_handleError(STTNoAudioData, 'No speech detected...')` (동일 경로) + +실측 로그에서 확인된 기존 버그: `1.5초 무음 오디오 → VAD 전체 filter → 빈 전사 → LLM 5초 대기 → 빈 session completed → 빈 history entry 생성` 시퀀스가 모두 차단됨. + +### 7-C. Recording Tip hide 타이머 leak 수정 (VoiceModeService) + +사용자 실측에서 발견된 추가 버그 — "받아쓰기 꾹 누르고 있는데 2초 뒤에 popup이 사라짐". 원인은 `_handleError`의 `setTimeout(() => hideRecordingTip(), 3000)`이 핸들로 보관되지 않아 다음 세션 시작 후에도 예약대로 발사되어 현재 진행 중인 recording tip을 hide 시킴. Bug 13 가드 추가로 에러 경로가 자주 타면서 드러난 기존 잠재 버그. + +**수정**: `_errorHideTimer: NodeJS.Timeout | null` 필드 추가 → `_handleError`에서 핸들 보관 + 기존 타이머 clearTimeout 후 재예약, `_startSession` 초기화 블록에서 `_errorEmitted = false`와 함께 clearTimeout, `dispose()`에서도 leak 방지용 cleanup. 실측 확인: 4.5초 hold 성공, 전사 `"Hey, yeah, yeah..."` 정상 완료. + +### 7-D. LLM 기본 모델 전면 교체 — qwen3:4b → gemma4:e4b ⭐ + +**발견한 병목**: 받아쓰기 한 사이클 51.4초 = STT 7.4초(PyTorch 미설치, CPU int8) + **LLM 43초(!)** + insert 1초. LLM 43초의 원인은 `qwen3:4b`가 reasoning 모델이라 `...` 블록을 길게 생성 → `stripReasoningBlocks` 후 **빈 문자열 → 원본 transcript fallback**. 즉 43초를 기다렸는데 결과는 원본 그대로. + +**해결**: 2026-04-02 릴리스된 Google **Gemma 4 e4b** (4.5B effective params)를 기본으로 교체. non-reasoning 기본 동작 + Ollama v0.20+ `think: false` 파라미터로 2중 방어. + +**변경된 위치** (한 번에): +- `LocalLLMService.ts` — 3개 default fallback (`generate`/`streamGenerate`/`chatStream`) + Ollama 요청 body에 `think: false` 명시 추가 + NO_THINK 주석 업데이트(legacy 표기) +- `OnboardingModal.tsx:246` + `OllamaGuideModal.tsx:133` — pull 명령어 변경 +- `packages/i18n/src/locales/{12개}.json` — `settings.ollamaHint`, `ollama.step2.alt` 2개 키 (qwen3:4b → gemma4:e4b, qwen3:8b → gemma4:26b) +- `site/src/i18n/locales/{10개}.ts` — 마케팅 페이지 detail 문자열 `qwen3 / llama3 / gemma3` → `gemma4 / llama3.2 / phi4` +- `site/src/sections/HowItWorks.tsx:47` — 파이프라인 시각화 `qwen3:4b @ localhost` → `gemma4:e4b @ localhost` +- `apps/desktop/tests/main/services/VoiceModeService.test.ts:58` — test fixture `llmModelId` +- `docs/design/00-master-architecture.md` — `LLMConfig.model` 주석 + `CONFIG_DEFAULTS.llm.model` +- `docs/design/05-external-engine-integration.md` — 6개 API 스키마 예시 + 2개 OllamaClient 코드 예시 + LLM 모델 추천 표(gemma4:e4b를 최상위로 재정렬, qwen3를 reasoning 경고와 함께 후순위로) + 권장 JSON 설정(think:false 추가) +- `docs/phases/phase-14-meeting-mode.md` — 컨텍스트 윈도우 표 갱신 + +**리서치 경로**: Ollama 라이브러리 확인 → gemma4는 E2B(2.3B), E4B(4.5B), 26B MoE, 31B Dense 4종 + 31b-cloud. Thinking은 `<|think|>` 토큰을 system prompt에 넣어야 켜지는 opt-in 방식. 기본 추천 E4B. 사용자는 이미 Ollama 0.20.5 사용 중(gemma4 요구 0.20+). + +### 변경 파일 (대규모) — 40+ 파일 + +| 영역 | 파일 수 | 성격 | +|---|---|---| +| 코드 (메인) | 1 | LocalLLMService.ts | +| UI 컴포넌트 | 3 | OnboardingModal, OllamaGuideModal, VoiceConversationPage | +| 서비스 (버그 수정) | 1 | VoiceModeService | +| 테스트 | 1 | VoiceModeService.test | +| i18n (desktop) | 12 | ko/en/ja/zh/zh-TW/es/fr/de/pt/ru/vi/th | +| i18n (site) | 10 | ko/en/ja/zh/es/fr/de/pt/ru/vi | +| 마케팅 컴포넌트 | 1 | HowItWorks.tsx | +| 설계 문서 | 3 | 00-master, 05-external-engine, phase-14 | + +### 검증 게이트 + +| 게이트 | 결과 | +|---|---| +| desktop `tsc --noEmit` | ✅ EXIT 0 | +| Bug 13 Dictation minBytes 가드 | ✅ 로그 확인 (전에 빈 history entry 생성되던 경로 차단) | +| Bug 13 Conversation 배너 UI | ✅ Snackbar severity=warning filled 노출 | +| Recording tip hide 타이머 leak | ✅ 4.5초 hold 성공, 전사 정상 | +| 기본 모델 gemma4:e4b 전환 | ⏳ **사용자 수동 pull + 실측 대기** | + +### 다음 세션 액션 + +1. 사용자 `ollama pull gemma4:e4b` (~4.5GB) +2. 받아쓰기 한 사이클 실측 → refine 지연 측정 → **43초 → 몇 초 기대** +3. 결과 컨펌되면 커밋 정리 + 빅뱅 8/8 마지막 1개(`Phase 3.2 PREMIUM_LLM`)로 전환 +4. Phase 3.2 선행 조건: 사용자가 `supabase secrets set ANTHROPIC_API_KEY=... OPENAI_API_KEY=...` + ## 빅뱅 Phase 5 Part 6++ (2026-04-11) — U1/U3/U4 남은 이슈 정리 ✅ ### U1 — Realtime TIMED_OUT 자동 재구독 (CloudSyncService.ts) diff --git a/packages/i18n/src/locales/de.json b/packages/i18n/src/locales/de.json index aa5262a..56315ef 100644 --- a/packages/i18n/src/locales/de.json +++ b/packages/i18n/src/locales/de.json @@ -116,7 +116,7 @@ "settings.sttLang.auto": "Automatische Erkennung", "settings.ollamaServer": "Ollama-Server", "settings.ollamaUrl": "Ollama-Server-URL", - "settings.ollamaHint": "D3RO Voice verbindet sich automatisch, wenn Ollama läuft. Lade Modelle direkt über Ollama herunter (z. B.: ollama pull qwen3:4b).", + "settings.ollamaHint": "D3RO Voice verbindet sich automatisch, wenn Ollama läuft. Lade Modelle direkt über Ollama herunter (z. B.: ollama pull gemma4:e4b).", "settings.postProcess": "Sprachnachbearbeitung", "settings.defaultAction": "Standard-Nachbearbeitungsaktion", "settings.action.none": "Keine (Originaltext unverändert)", @@ -173,7 +173,7 @@ "ollama.step1.desc": "Ollama ist ein kostenloses Tool zum lokalen Ausführen von LLMs.", "ollama.step2.title": "SCHRITT 2 — Modell herunterladen", "ollama.step2.desc": "Führe den folgenden Befehl im Terminal aus, um das empfohlene Modell herunterzuladen:", - "ollama.step2.alt": "Oder ein größeres Modell: ollama pull qwen3:8b (genauer, langsamer)", + "ollama.step2.alt": "Oder ein größeres Modell: ollama pull gemma4:26b (genauer, langsamer)", "ollama.step3.title": "SCHRITT 3 — Automatische Verbindung", "ollama.step3.desc": "D3RO-VOICE erkennt automatisch, wenn Ollama läuft. Wenn die LED in der Statusleiste von Rot auf Grün wechselt, ist alles bereit!", "service.sttEngine": "STT-ENGINE", diff --git a/packages/i18n/src/locales/en.json b/packages/i18n/src/locales/en.json index 46d87e3..0b74e1a 100644 --- a/packages/i18n/src/locales/en.json +++ b/packages/i18n/src/locales/en.json @@ -122,7 +122,7 @@ "settings.sttLang.auto": "Auto-detect", "settings.ollamaServer": "Ollama Server", "settings.ollamaUrl": "Ollama Server URL", - "settings.ollamaHint": "Connects automatically when Ollama is running. Pull models directly in Ollama (e.g. ollama pull qwen3:4b).", + "settings.ollamaHint": "Connects automatically when Ollama is running. Pull models directly in Ollama (e.g. ollama pull gemma4:e4b).", "settings.llmModel": "LLM Model", "settings.postProcess": "Voice Post-Processing", "settings.defaultAction": "Default Post-Processing Command", @@ -187,7 +187,7 @@ "ollama.step1.desc": "Ollama is a free tool for running LLMs locally.", "ollama.step2.title": "STEP 2 — Download a Model", "ollama.step2.desc": "Pull a model from your terminal. Recommended:", - "ollama.step2.alt": "Or a larger model: ollama pull qwen3:8b (more accurate, slower)", + "ollama.step2.alt": "Or a larger model: ollama pull gemma4:26b (more accurate, slower)", "ollama.step3.title": "STEP 3 — Auto-Connect", "ollama.step3.desc": "Once Ollama is running, D3RO-VOICE will detect it automatically. When the status bar LED turns from red to green, you're ready!", "service.sttEngine": "STT ENGINE", diff --git a/packages/i18n/src/locales/es.json b/packages/i18n/src/locales/es.json index 8eba8e8..3fc5365 100644 --- a/packages/i18n/src/locales/es.json +++ b/packages/i18n/src/locales/es.json @@ -116,7 +116,7 @@ "settings.sttLang.auto": "Detección automática", "settings.ollamaServer": "Servidor Ollama", "settings.ollamaUrl": "URL del servidor Ollama", - "settings.ollamaHint": "D3RO Voice se conecta automáticamente cuando Ollama está en ejecución. Descarga modelos directamente desde Ollama (ej: ollama pull qwen3:4b).", + "settings.ollamaHint": "D3RO Voice se conecta automáticamente cuando Ollama está en ejecución. Descarga modelos directamente desde Ollama (ej: ollama pull gemma4:e4b).", "settings.postProcess": "Postprocesado de voz", "settings.defaultAction": "Acción de postprocesado predeterminada", "settings.action.none": "Ninguna (texto original sin cambios)", @@ -173,7 +173,7 @@ "ollama.step1.desc": "Ollama es una herramienta gratuita para ejecutar LLMs de forma local.", "ollama.step2.title": "PASO 2 — Descargar un modelo", "ollama.step2.desc": "Ejecuta el siguiente comando en la terminal para descargar el modelo recomendado:", - "ollama.step2.alt": "O un modelo más grande: ollama pull qwen3:8b (más preciso, más lento)", + "ollama.step2.alt": "O un modelo más grande: ollama pull gemma4:26b (más preciso, más lento)", "ollama.step3.title": "PASO 3 — Conexión automática", "ollama.step3.desc": "D3RO-VOICE detecta automáticamente cuando Ollama está en ejecución. Cuando el LED de la barra de estado pase de rojo a verde, ¡estará listo!", "service.sttEngine": "MOTOR STT", diff --git a/packages/i18n/src/locales/fr.json b/packages/i18n/src/locales/fr.json index da3ff1a..de1c287 100644 --- a/packages/i18n/src/locales/fr.json +++ b/packages/i18n/src/locales/fr.json @@ -116,7 +116,7 @@ "settings.sttLang.auto": "Détection automatique", "settings.ollamaServer": "Serveur Ollama", "settings.ollamaUrl": "URL du serveur Ollama", - "settings.ollamaHint": "D3RO Voice se connecte automatiquement quand Ollama est en cours d'exécution. Téléchargez les modèles directement depuis Ollama (ex : ollama pull qwen3:4b).", + "settings.ollamaHint": "D3RO Voice se connecte automatiquement quand Ollama est en cours d'exécution. Téléchargez les modèles directement depuis Ollama (ex : ollama pull gemma4:e4b).", "settings.postProcess": "Post-traitement vocal", "settings.defaultAction": "Action de post-traitement par défaut", "settings.action.none": "Aucune (texte original inchangé)", @@ -173,7 +173,7 @@ "ollama.step1.desc": "Ollama est un outil gratuit pour exécuter des LLM en local.", "ollama.step2.title": "ÉTAPE 2 — Télécharger un modèle", "ollama.step2.desc": "Exécutez la commande suivante dans le terminal pour télécharger le modèle recommandé :", - "ollama.step2.alt": "Ou un modèle plus grand : ollama pull qwen3:8b (plus précis, plus lent)", + "ollama.step2.alt": "Ou un modèle plus grand : ollama pull gemma4:26b (plus précis, plus lent)", "ollama.step3.title": "ÉTAPE 3 — Connexion automatique", "ollama.step3.desc": "D3RO-VOICE détecte automatiquement quand Ollama est en cours d'exécution. Quand la LED de la barre d'état passe du rouge au vert, c'est prêt !", "service.sttEngine": "MOTEUR STT", diff --git a/packages/i18n/src/locales/ja.json b/packages/i18n/src/locales/ja.json index e7cbd29..44f3969 100644 --- a/packages/i18n/src/locales/ja.json +++ b/packages/i18n/src/locales/ja.json @@ -116,7 +116,7 @@ "settings.sttLang.auto": "自動検出", "settings.ollamaServer": "Ollamaサーバー", "settings.ollamaUrl": "OllamaサーバーURL", - "settings.ollamaHint": "Ollamaが起動していれば自動的に接続されます。モデルはOllamaから直接pullしてください(例: ollama pull qwen3:4b)。", + "settings.ollamaHint": "Ollamaが起動していれば自動的に接続されます。モデルはOllamaから直接pullしてください(例: ollama pull gemma4:e4b)。", "settings.postProcess": "音声後処理", "settings.defaultAction": "デフォルト後処理コマンド", "settings.action.none": "なし (元のテキストをそのまま)", @@ -173,7 +173,7 @@ "ollama.step1.desc": "OllamaはローカルでLLMを実行するための無料ツールです。", "ollama.step2.title": "STEP 2 — モデルのダウンロード", "ollama.step2.desc": "ターミナルで希望のモデルをpullしてください。日本語におすすめ:", - "ollama.step2.alt": "または大きいモデル: ollama pull qwen3:8b (より正確、より遅い)", + "ollama.step2.alt": "または大きいモデル: ollama pull gemma4:26b (より正確、より遅い)", "ollama.step3.title": "STEP 3 — 自動接続", "ollama.step3.desc": "Ollamaが起動するとD3RO-VOICEが自動的に検出します。下部ステータスバーのLEDが赤から緑に変われば準備完了!", "service.sttEngine": "STT ENGINE", diff --git a/packages/i18n/src/locales/ko.json b/packages/i18n/src/locales/ko.json index 1fa0444..280c21f 100644 --- a/packages/i18n/src/locales/ko.json +++ b/packages/i18n/src/locales/ko.json @@ -123,7 +123,7 @@ "settings.sttLang.auto": "자동 감지", "settings.ollamaServer": "Ollama 서버", "settings.ollamaUrl": "Ollama 서버 URL", - "settings.ollamaHint": "Ollama가 실행 중이면 자동으로 연결됩니다. 모델은 Ollama에서 직접 pull하세요 (예: ollama pull qwen3:4b).", + "settings.ollamaHint": "Ollama가 실행 중이면 자동으로 연결됩니다. 모델은 Ollama에서 직접 pull하세요 (예: ollama pull gemma4:e4b).", "settings.llmModel": "LLM 모델", "settings.postProcess": "음성 후처리", "settings.defaultAction": "기본 후처리 명령어", @@ -188,7 +188,7 @@ "ollama.step1.desc": "Ollama는 로컬에서 LLM을 실행하는 무료 도구입니다.", "ollama.step2.title": "STEP 2 — 모델 다운로드", "ollama.step2.desc": "터미널에서 원하는 모델을 pull하세요. 한국어에 추천:", - "ollama.step2.alt": "또는 더 큰 모델: ollama pull qwen3:8b (더 정확, 더 느림)", + "ollama.step2.alt": "또는 더 큰 모델: ollama pull gemma4:26b (더 정확, 더 느림)", "ollama.step3.title": "STEP 3 — 자동 연결", "ollama.step3.desc": "Ollama가 실행되면 D3RO-VOICE가 자동으로 감지합니다. 하단 상태 바의 LED가 빨간색에서 초록색으로 바뀌면 준비 완료!", "service.sttEngine": "STT ENGINE", diff --git a/packages/i18n/src/locales/pt.json b/packages/i18n/src/locales/pt.json index 2f2ef6d..5233196 100644 --- a/packages/i18n/src/locales/pt.json +++ b/packages/i18n/src/locales/pt.json @@ -116,7 +116,7 @@ "settings.sttLang.auto": "Detecção automática", "settings.ollamaServer": "Servidor Ollama", "settings.ollamaUrl": "URL do servidor Ollama", - "settings.ollamaHint": "D3RO Voice conecta-se automaticamente quando o Ollama está em execução. Baixe modelos diretamente pelo Ollama (ex: ollama pull qwen3:4b).", + "settings.ollamaHint": "D3RO Voice conecta-se automaticamente quando o Ollama está em execução. Baixe modelos diretamente pelo Ollama (ex: ollama pull gemma4:e4b).", "settings.postProcess": "Pós-processamento de voz", "settings.defaultAction": "Ação de pós-processamento padrão", "settings.action.none": "Nenhuma (texto original sem alterações)", @@ -173,7 +173,7 @@ "ollama.step1.desc": "O Ollama é uma ferramenta gratuita para executar LLMs localmente.", "ollama.step2.title": "PASSO 2 — Baixar um modelo", "ollama.step2.desc": "Execute o seguinte comando no terminal para baixar o modelo recomendado:", - "ollama.step2.alt": "Ou um modelo maior: ollama pull qwen3:8b (mais preciso, mais lento)", + "ollama.step2.alt": "Ou um modelo maior: ollama pull gemma4:26b (mais preciso, mais lento)", "ollama.step3.title": "PASSO 3 — Conexão automática", "ollama.step3.desc": "D3RO-VOICE detecta automaticamente quando o Ollama está em execução. Quando o LED da barra de status mudar de vermelho para verde, está pronto!", "service.sttEngine": "MOTOR STT", diff --git a/packages/i18n/src/locales/ru.json b/packages/i18n/src/locales/ru.json index f3c8142..8b6e395 100644 --- a/packages/i18n/src/locales/ru.json +++ b/packages/i18n/src/locales/ru.json @@ -116,7 +116,7 @@ "settings.sttLang.auto": "Автоопределение", "settings.ollamaServer": "Сервер Ollama", "settings.ollamaUrl": "URL сервера Ollama", - "settings.ollamaHint": "Если Ollama запущена, подключение произойдёт автоматически. Загружайте модели напрямую через Ollama (например: ollama pull qwen3:4b).", + "settings.ollamaHint": "Если Ollama запущена, подключение произойдёт автоматически. Загружайте модели напрямую через Ollama (например: ollama pull gemma4:e4b).", "settings.postProcess": "Постобработка речи", "settings.defaultAction": "Команда постобработки по умолчанию", "settings.action.none": "Нет (оригинальный текст)", @@ -173,7 +173,7 @@ "ollama.step1.desc": "Ollama — бесплатный инструмент для локального запуска LLM.", "ollama.step2.title": "ШАГ 2 — Загрузка модели", "ollama.step2.desc": "Загрузите нужную модель через терминал. Рекомендуется:", - "ollama.step2.alt": "Или более крупная модель: ollama pull qwen3:8b (точнее, медленнее)", + "ollama.step2.alt": "Или более крупная модель: ollama pull gemma4:26b (точнее, медленнее)", "ollama.step3.title": "ШАГ 3 — Автоподключение", "ollama.step3.desc": "При запуске Ollama D3RO-VOICE обнаружит её автоматически. Когда индикатор LED на нижней панели сменится с красного на зелёный — готово!", "service.sttEngine": "STT ENGINE", diff --git a/packages/i18n/src/locales/th.json b/packages/i18n/src/locales/th.json index 298c0a5..9c3d4d9 100644 --- a/packages/i18n/src/locales/th.json +++ b/packages/i18n/src/locales/th.json @@ -116,7 +116,7 @@ "settings.sttLang.auto": "ตรวจจับอัตโนมัติ", "settings.ollamaServer": "เซิร์ฟเวอร์ Ollama", "settings.ollamaUrl": "URL เซิร์ฟเวอร์ Ollama", - "settings.ollamaHint": "หาก Ollama กำลังทำงาน จะเชื่อมต่ออัตโนมัติ ดาวน์โหลดโมเดลโดยตรงจาก Ollama (เช่น: ollama pull qwen3:4b)", + "settings.ollamaHint": "หาก Ollama กำลังทำงาน จะเชื่อมต่ออัตโนมัติ ดาวน์โหลดโมเดลโดยตรงจาก Ollama (เช่น: ollama pull gemma4:e4b)", "settings.postProcess": "การประมวลผลเสียงหลังการบันทึก", "settings.defaultAction": "คำสั่งประมวลผลเริ่มต้น", "settings.action.none": "ไม่มี (ข้อความต้นฉบับ)", @@ -173,7 +173,7 @@ "ollama.step1.desc": "Ollama เป็นเครื่องมือฟรีสำหรับรัน LLM ในเครื่อง", "ollama.step2.title": "ขั้นตอนที่ 2 — ดาวน์โหลดโมเดล", "ollama.step2.desc": "ดาวน์โหลดโมเดลที่ต้องการผ่านเทอร์มินัล แนะนำ:", - "ollama.step2.alt": "หรือโมเดลที่ใหญ่กว่า: ollama pull qwen3:8b (แม่นยำกว่า ช้ากว่า)", + "ollama.step2.alt": "หรือโมเดลที่ใหญ่กว่า: ollama pull gemma4:26b (แม่นยำกว่า ช้ากว่า)", "ollama.step3.title": "ขั้นตอนที่ 3 — เชื่อมต่ออัตโนมัติ", "ollama.step3.desc": "เมื่อ Ollama ทำงาน D3RO-VOICE จะตรวจพบโดยอัตโนมัติ เมื่อไฟ LED บนแถบสถานะเปลี่ยนจากสีแดงเป็นสีเขียว — พร้อมใช้งาน!", "service.sttEngine": "STT ENGINE", diff --git a/packages/i18n/src/locales/vi.json b/packages/i18n/src/locales/vi.json index a9575f1..6deb5ef 100644 --- a/packages/i18n/src/locales/vi.json +++ b/packages/i18n/src/locales/vi.json @@ -116,7 +116,7 @@ "settings.sttLang.auto": "Tự động phát hiện", "settings.ollamaServer": "Máy chủ Ollama", "settings.ollamaUrl": "URL máy chủ Ollama", - "settings.ollamaHint": "Nếu Ollama đang chạy, kết nối sẽ tự động. Tải mô hình trực tiếp từ Ollama (ví dụ: ollama pull qwen3:4b).", + "settings.ollamaHint": "Nếu Ollama đang chạy, kết nối sẽ tự động. Tải mô hình trực tiếp từ Ollama (ví dụ: ollama pull gemma4:e4b).", "settings.postProcess": "Hậu xử lý giọng nói", "settings.defaultAction": "Lệnh hậu xử lý mặc định", "settings.action.none": "Không có (văn bản gốc)", @@ -173,7 +173,7 @@ "ollama.step1.desc": "Ollama là công cụ miễn phí để chạy LLM cục bộ.", "ollama.step2.title": "BƯỚC 2 — Tải mô hình", "ollama.step2.desc": "Tải mô hình bạn muốn qua terminal. Khuyến nghị:", - "ollama.step2.alt": "Hoặc mô hình lớn hơn: ollama pull qwen3:8b (chính xác hơn, chậm hơn)", + "ollama.step2.alt": "Hoặc mô hình lớn hơn: ollama pull gemma4:26b (chính xác hơn, chậm hơn)", "ollama.step3.title": "BƯỚC 3 — Tự động kết nối", "ollama.step3.desc": "Khi Ollama chạy, D3RO-VOICE sẽ tự động phát hiện. Khi đèn LED trên thanh trạng thái chuyển từ đỏ sang xanh — đã sẵn sàng!", "service.sttEngine": "STT ENGINE", diff --git a/packages/i18n/src/locales/zh-TW.json b/packages/i18n/src/locales/zh-TW.json index 5c8ec3f..6190de2 100644 --- a/packages/i18n/src/locales/zh-TW.json +++ b/packages/i18n/src/locales/zh-TW.json @@ -116,7 +116,7 @@ "settings.sttLang.auto": "自動偵測", "settings.ollamaServer": "Ollama伺服器", "settings.ollamaUrl": "Ollama伺服器URL", - "settings.ollamaHint": "Ollama執行時將自動連線。請直接在Ollama中pull模型(例如:ollama pull qwen3:4b)。", + "settings.ollamaHint": "Ollama執行時將自動連線。請直接在Ollama中pull模型(例如:ollama pull gemma4:e4b)。", "settings.postProcess": "語音後處理", "settings.defaultAction": "預設後處理指令", "settings.action.none": "無(保留原始文字)", @@ -173,7 +173,7 @@ "ollama.step1.desc": "Ollama是一款在本地端執行LLM的免費工具。", "ollama.step2.title": "STEP 2 — 下載模型", "ollama.step2.desc": "在終端機中pull所需模型。推薦繁體中文模型:", - "ollama.step2.alt": "或更大的模型:ollama pull qwen3:8b(更精準,速度較慢)", + "ollama.step2.alt": "或更大的模型:ollama pull gemma4:26b(更精準,速度較慢)", "ollama.step3.title": "STEP 3 — 自動連線", "ollama.step3.desc": "Ollama啟動後,D3RO-VOICE將自動偵測。底部狀態列的LED從紅色變為綠色即表示準備就緒!", "service.sttEngine": "STT ENGINE", diff --git a/packages/i18n/src/locales/zh.json b/packages/i18n/src/locales/zh.json index e20c441..585add9 100644 --- a/packages/i18n/src/locales/zh.json +++ b/packages/i18n/src/locales/zh.json @@ -116,7 +116,7 @@ "settings.sttLang.auto": "自动检测", "settings.ollamaServer": "Ollama服务器", "settings.ollamaUrl": "Ollama服务器URL", - "settings.ollamaHint": "Ollama运行时将自动连接。请直接在Ollama中pull模型(例如:ollama pull qwen3:4b)。", + "settings.ollamaHint": "Ollama运行时将自动连接。请直接在Ollama中pull模型(例如:ollama pull gemma4:e4b)。", "settings.postProcess": "语音后处理", "settings.defaultAction": "默认后处理命令", "settings.action.none": "无(保留原始文本)", @@ -173,7 +173,7 @@ "ollama.step1.desc": "Ollama是一款在本地运行LLM的免费工具。", "ollama.step2.title": "STEP 2 — 下载模型", "ollama.step2.desc": "在终端中pull所需模型。推荐中文模型:", - "ollama.step2.alt": "或更大的模型:ollama pull qwen3:8b(更精准,更慢)", + "ollama.step2.alt": "或更大的模型:ollama pull gemma4:26b(更精准,更慢)", "ollama.step3.title": "STEP 3 — 自动连接", "ollama.step3.desc": "Ollama启动后,D3RO-VOICE将自动检测。底部状态栏的LED从红色变为绿色即表示准备就绪!", "service.sttEngine": "STT ENGINE", diff --git a/site/src/i18n/locales/de.ts b/site/src/i18n/locales/de.ts index 38ee515..5bcd77d 100644 --- a/site/src/i18n/locales/de.ts +++ b/site/src/i18n/locales/de.ts @@ -47,7 +47,7 @@ export const de: Translations = { steps: [ { label: 'EINGABE', title: 'Hotkey drucken', description: 'Right Alt (oder Ihre benutzerdefinierte Taste) gedruckt halten zum Aufnehmen. Doppeltippen fur KI-Modus. Umschalten fur Freisprechen.', detail: 'Halten / Umschalten / Doppeldruck' }, { label: 'TRANSKRIBIEREN', title: 'Whisper STT', description: 'Lokale faster-whisper Engine konvertiert 16kHz PCM-Audio in Echtzeit zu Text. GPU-Beschleunigung unterstutzt.', detail: 'faster-whisper / base ~ large-v3' }, - { label: 'VERARBEITEN', title: 'Ollama LLM', description: 'Lokales LLM korrigiert Grammatik, passt den Ton an, ubersetzt oder fasst zusammen. Benutzerdefinierte Anweisungen unterstutzt.', detail: 'qwen3 / llama3 / gemma3 / benutzerdefiniert' }, + { label: 'VERARBEITEN', title: 'Ollama LLM', description: 'Lokales LLM korrigiert Grammatik, passt den Ton an, ubersetzt oder fasst zusammen. Benutzerdefinierte Anweisungen unterstutzt.', detail: 'gemma4 / llama3.2 / phi4 / benutzerdefiniert' }, { label: 'AUSGABE', title: 'Auto-Einfugen', description: 'Korrigierter Text wird an der Cursorposition in jeder App eingefugt. Notepad, VS Code, Chrome, Slack, uberall.', detail: 'Zwischenablage + Ctrl+V / 100ms Latenz' }, ], panelTitle: 'D3RO Voice Pipeline', diff --git a/site/src/i18n/locales/en.ts b/site/src/i18n/locales/en.ts index a4dff98..2327c59 100644 --- a/site/src/i18n/locales/en.ts +++ b/site/src/i18n/locales/en.ts @@ -47,7 +47,7 @@ export const en: Translations = { steps: [ { label: 'INPUT', title: 'Press Hotkey', description: 'Hold Right Alt (or your custom key) to start recording. Double-tap for AI mode. Toggle for hands-free.', detail: 'Hold-to-talk / Toggle / Double-press' }, { label: 'TRANSCRIBE', title: 'Whisper STT', description: 'Local faster-whisper engine converts 16kHz PCM audio to text in real-time. GPU acceleration supported.', detail: 'faster-whisper / base ~ large-v3' }, - { label: 'PROCESS', title: 'Ollama LLM', description: 'Local LLM polishes grammar, adjusts tone, translates, or summarizes. Custom instructions supported.', detail: 'qwen3 / llama3 / gemma3 / custom' }, + { label: 'PROCESS', title: 'Ollama LLM', description: 'Local LLM polishes grammar, adjusts tone, translates, or summarizes. Custom instructions supported.', detail: 'gemma4 / llama3.2 / phi4 / custom' }, { label: 'OUTPUT', title: 'Auto Insert', description: 'Polished text is pasted at your cursor position in any app. Notepad, VS Code, Chrome, Slack, anywhere.', detail: 'Clipboard + Ctrl+V / 100ms latency' }, ], panelTitle: 'D3RO Voice Pipeline', diff --git a/site/src/i18n/locales/es.ts b/site/src/i18n/locales/es.ts index 4e30251..009f33a 100644 --- a/site/src/i18n/locales/es.ts +++ b/site/src/i18n/locales/es.ts @@ -47,7 +47,7 @@ export const es: Translations = { steps: [ { label: 'ENTRADA', title: 'Pulsa la tecla', description: 'Manten Right Alt (o tu tecla personalizada) para grabar. Doble toque para modo IA. Alternar para manos libres.', detail: 'Mantener / Alternar / Doble pulsacion' }, { label: 'TRANSCRIBIR', title: 'Whisper STT', description: 'El motor local faster-whisper convierte audio PCM 16kHz a texto en tiempo real. Compatible con aceleracion GPU.', detail: 'faster-whisper / base ~ large-v3' }, - { label: 'PROCESAR', title: 'Ollama LLM', description: 'El LLM local pule la gramatica, ajusta el tono, traduce o resume. Instrucciones personalizadas soportadas.', detail: 'qwen3 / llama3 / gemma3 / personalizado' }, + { label: 'PROCESAR', title: 'Ollama LLM', description: 'El LLM local pule la gramatica, ajusta el tono, traduce o resume. Instrucciones personalizadas soportadas.', detail: 'gemma4 / llama3.2 / phi4 / personalizado' }, { label: 'SALIDA', title: 'Insercion automatica', description: 'El texto pulido se pega en la posicion del cursor en cualquier app. Bloc de notas, VS Code, Chrome, Slack, donde sea.', detail: 'Portapapeles + Ctrl+V / 100ms latencia' }, ], panelTitle: 'D3RO Voice Pipeline', diff --git a/site/src/i18n/locales/fr.ts b/site/src/i18n/locales/fr.ts index e51a972..79eaa73 100644 --- a/site/src/i18n/locales/fr.ts +++ b/site/src/i18n/locales/fr.ts @@ -47,7 +47,7 @@ export const fr: Translations = { steps: [ { label: 'ENTREE', title: 'Appuyez sur la touche', description: 'Maintenez Right Alt (ou votre touche personnalisee) pour enregistrer. Double appui pour le mode IA. Basculez pour mains libres.', detail: 'Maintenir / Basculer / Double appui' }, { label: 'TRANSCRIRE', title: 'Whisper STT', description: 'Le moteur local faster-whisper convertit l\'audio PCM 16kHz en texte en temps reel. Acceleration GPU supportee.', detail: 'faster-whisper / base ~ large-v3' }, - { label: 'TRAITER', title: 'Ollama LLM', description: 'Le LLM local corrige la grammaire, ajuste le ton, traduit ou resume. Instructions personnalisees supportees.', detail: 'qwen3 / llama3 / gemma3 / personnalise' }, + { label: 'TRAITER', title: 'Ollama LLM', description: 'Le LLM local corrige la grammaire, ajuste le ton, traduit ou resume. Instructions personnalisees supportees.', detail: 'gemma4 / llama3.2 / phi4 / personnalise' }, { label: 'SORTIE', title: 'Insertion automatique', description: 'Le texte corrige est colle a la position du curseur dans n\'importe quelle app. Bloc-notes, VS Code, Chrome, Slack, partout.', detail: 'Presse-papiers + Ctrl+V / 100ms latence' }, ], panelTitle: 'D3RO Voice Pipeline', diff --git a/site/src/i18n/locales/ja.ts b/site/src/i18n/locales/ja.ts index 8c3b448..e39cb68 100644 --- a/site/src/i18n/locales/ja.ts +++ b/site/src/i18n/locales/ja.ts @@ -47,7 +47,7 @@ export const ja: Translations = { steps: [ { label: '入力', title: 'ホットキー押下', description: 'Right Alt(またはカスタムキー)を長押しで録音開始。ダブルタップでAIモード。トグルでハンズフリー。', detail: '長押し / トグル / ダブルプレス' }, { label: '文字起こし', title: 'Whisper STT', description: 'ローカルfaster-whisperエンジンが16kHz PCMオーディオをリアルタイムでテキストに変換。GPU加速対応。', detail: 'faster-whisper / base ~ large-v3' }, - { label: '処理', title: 'Ollama LLM', description: 'ローカルLLMが文法を校正し、トーンを調整し、翻訳または要約。カスタム指示に対応。', detail: 'qwen3 / llama3 / gemma3 / カスタム' }, + { label: '処理', title: 'Ollama LLM', description: 'ローカルLLMが文法を校正し、トーンを調整し、翻訳または要約。カスタム指示に対応。', detail: 'gemma4 / llama3.2 / phi4 / カスタム' }, { label: '出力', title: '自動挿入', description: '校正されたテキストが任意のアプリのカーソル位置に自動貼り付け。メモ帳、VS Code、Chrome、Slackなど。', detail: 'クリップボード + Ctrl+V / 100msレイテンシ' }, ], panelTitle: 'D3RO Voice パイプライン', diff --git a/site/src/i18n/locales/ko.ts b/site/src/i18n/locales/ko.ts index ecab630..c5e74df 100644 --- a/site/src/i18n/locales/ko.ts +++ b/site/src/i18n/locales/ko.ts @@ -47,7 +47,7 @@ export const ko: Translations = { steps: [ { label: '입력', title: '핫키 누르기', description: 'Right Alt(또는 설정한 키)를 길게 눌러 녹음을 시작. 더블탭으로 AI 모드. 토글로 핸즈프리.', detail: '길게 누르기 / 토글 / 더블프레스' }, { label: '전사', title: 'Whisper STT', description: '로컬 faster-whisper 엔진이 16kHz PCM 오디오를 실시간으로 텍스트로 변환. GPU 가속 지원.', detail: 'faster-whisper / base ~ large-v3' }, - { label: '처리', title: 'Ollama LLM', description: '로컬 LLM이 문법을 다듬고, 톤을 조절하고, 번역하거나 요약합니다. 커스텀 명령어 지원.', detail: 'qwen3 / llama3 / gemma3 / 커스텀' }, + { label: '처리', title: 'Ollama LLM', description: '로컬 LLM이 문법을 다듬고, 톤을 조절하고, 번역하거나 요약합니다. 커스텀 명령어 지원.', detail: 'gemma4 / llama3.2 / phi4 / 커스텀' }, { label: '출력', title: '자동 삽입', description: '다듬어진 텍스트가 어떤 앱에서든 커서 위치에 자동 붙여넣기. 메모장, VS Code, Chrome, Slack, 어디서나.', detail: '클립보드 + Ctrl+V / 100ms 지연' }, ], panelTitle: 'D3RO Voice 파이프라인', diff --git a/site/src/i18n/locales/pt.ts b/site/src/i18n/locales/pt.ts index 3c62a9b..5ecfa0d 100644 --- a/site/src/i18n/locales/pt.ts +++ b/site/src/i18n/locales/pt.ts @@ -47,7 +47,7 @@ export const pt: Translations = { steps: [ { label: 'ENTRADA', title: 'Pressione a tecla', description: 'Segure Right Alt (ou sua tecla personalizada) para gravar. Toque duplo para modo IA. Alternar para viva-voz.', detail: 'Segurar / Alternar / Toque duplo' }, { label: 'TRANSCREVER', title: 'Whisper STT', description: 'Motor local faster-whisper converte audio PCM 16kHz em texto em tempo real. Aceleracao GPU suportada.', detail: 'faster-whisper / base ~ large-v3' }, - { label: 'PROCESSAR', title: 'Ollama LLM', description: 'LLM local corrige gramatica, ajusta tom, traduz ou resume. Instrucoes personalizadas suportadas.', detail: 'qwen3 / llama3 / gemma3 / personalizado' }, + { label: 'PROCESSAR', title: 'Ollama LLM', description: 'LLM local corrige gramatica, ajusta tom, traduz ou resume. Instrucoes personalizadas suportadas.', detail: 'gemma4 / llama3.2 / phi4 / personalizado' }, { label: 'SAIDA', title: 'Insercao automatica', description: 'Texto polido e colado na posicao do cursor em qualquer app. Bloco de notas, VS Code, Chrome, Slack, em qualquer lugar.', detail: 'Area de transferencia + Ctrl+V / 100ms latencia' }, ], panelTitle: 'D3RO Voice Pipeline', diff --git a/site/src/i18n/locales/ru.ts b/site/src/i18n/locales/ru.ts index 048bd75..bad7045 100644 --- a/site/src/i18n/locales/ru.ts +++ b/site/src/i18n/locales/ru.ts @@ -47,7 +47,7 @@ export const ru: Translations = { steps: [ { label: 'ВВОД', title: 'Нажмите горячую клавишу', description: 'Удерживайте Right Alt (или вашу клавишу) для записи. Двойное нажатие для ИИ-режима. Переключение для свободных рук.', detail: 'Удержание / Переключение / Двойное нажатие' }, { label: 'ТРАНСКРИПЦИЯ', title: 'Whisper STT', description: 'Локальный движок faster-whisper преобразует 16кГц PCM аудио в текст в реальном времени. Поддержка GPU-ускорения.', detail: 'faster-whisper / base ~ large-v3' }, - { label: 'ОБРАБОТКА', title: 'Ollama LLM', description: 'Локальная LLM корректирует грамматику, настраивает тон, переводит или обобщает. Пользовательские инструкции поддерживаются.', detail: 'qwen3 / llama3 / gemma3 / пользовательский' }, + { label: 'ОБРАБОТКА', title: 'Ollama LLM', description: 'Локальная LLM корректирует грамматику, настраивает тон, переводит или обобщает. Пользовательские инструкции поддерживаются.', detail: 'gemma4 / llama3.2 / phi4 / пользовательский' }, { label: 'ВЫВОД', title: 'Автовставка', description: 'Отредактированный текст вставляется в позицию курсора в любом приложении. Блокнот, VS Code, Chrome, Slack, где угодно.', detail: 'Буфер обмена + Ctrl+V / 100мс задержка' }, ], panelTitle: 'D3RO Voice Конвейер', diff --git a/site/src/i18n/locales/vi.ts b/site/src/i18n/locales/vi.ts index 891f88b..7f2c4cb 100644 --- a/site/src/i18n/locales/vi.ts +++ b/site/src/i18n/locales/vi.ts @@ -47,7 +47,7 @@ export const vi: Translations = { steps: [ { label: 'DAU VAO', title: 'Nhan phim nong', description: 'Giu Right Alt (hoac phim tuy chinh) de ghi am. Nhan doi cho che do AI. Chuyen doi cho che do ranh tay.', detail: 'Giu / Chuyen doi / Nhan doi' }, { label: 'PHIEN AM', title: 'Whisper STT', description: 'Bo may faster-whisper cuc bo chuyen doi am thanh PCM 16kHz thanh van ban thoi gian thuc. Ho tro tang toc GPU.', detail: 'faster-whisper / base ~ large-v3' }, - { label: 'XU LY', title: 'Ollama LLM', description: 'LLM cuc bo sua ngu phap, dieu chinh giong dieu, dich hoac tom tat. Ho tro chi dan tuy chinh.', detail: 'qwen3 / llama3 / gemma3 / tuy chinh' }, + { label: 'XU LY', title: 'Ollama LLM', description: 'LLM cuc bo sua ngu phap, dieu chinh giong dieu, dich hoac tom tat. Ho tro chi dan tuy chinh.', detail: 'gemma4 / llama3.2 / phi4 / tuy chinh' }, { label: 'DAU RA', title: 'Tu dong chen', description: 'Van ban da tinh chinh duoc dan vao vi tri con tro trong bat ky ung dung nao. Notepad, VS Code, Chrome, Slack, bat cu dau.', detail: 'Clipboard + Ctrl+V / 100ms do tre' }, ], panelTitle: 'D3RO Voice Pipeline', diff --git a/site/src/i18n/locales/zh.ts b/site/src/i18n/locales/zh.ts index d3e9072..eb8b960 100644 --- a/site/src/i18n/locales/zh.ts +++ b/site/src/i18n/locales/zh.ts @@ -47,7 +47,7 @@ export const zh: Translations = { steps: [ { label: '输入', title: '按下快捷键', description: '长按 Right Alt(或自定义按键)开始录音。双击进入AI模式。切换免提模式。', detail: '长按 / 切换 / 双击' }, { label: '转录', title: 'Whisper STT', description: '本地 faster-whisper 引擎将 16kHz PCM 音频实时转换为文本。支持GPU加速。', detail: 'faster-whisper / base ~ large-v3' }, - { label: '处理', title: 'Ollama LLM', description: '本地 LLM 润色语法、调整语气、翻译或摘要。支持自定义指令。', detail: 'qwen3 / llama3 / gemma3 / 自定义' }, + { label: '处理', title: 'Ollama LLM', description: '本地 LLM 润色语法、调整语气、翻译或摘要。支持自定义指令。', detail: 'gemma4 / llama3.2 / phi4 / 自定义' }, { label: '输出', title: '自动插入', description: '润色后的文本自动粘贴到任何应用的光标位置。记事本、VS Code、Chrome、Slack,任何地方。', detail: '剪贴板 + Ctrl+V / 100ms延迟' }, ], panelTitle: 'D3RO Voice 流程', diff --git a/site/src/sections/HowItWorks.tsx b/site/src/sections/HowItWorks.tsx index af1ec6d..d6db6df 100644 --- a/site/src/sections/HowItWorks.tsx +++ b/site/src/sections/HowItWorks.tsx @@ -44,7 +44,7 @@ export function HowItWorks() {
{t.pipeline.llmConnected} - qwen3:4b @ localhost:11434 + gemma4:e4b @ localhost:11434