12 Commits

Author SHA1 Message Date
Adolfo Reyna 2e6d6d24ce feat: Apple on-device LLM (ANE) polish replaces Ollama as primary
- apple-llm-polish binary (120KB Swift, FoundationModels): --check
  now reports available:true after Apple Intelligence enabled,
  ping OK, line polish 258-388ms ANE vs Ollama 3-8s CPU
- engine_apple_llm.py: AppleLLM class with persistent pipe,
  thread reader, polish_line() + polish_paragraph(), JSONL protocol
  {id,mode,text,prev1,prev2,context} -> {id,text,ok,ms}
- engine_llm.py: try Apple ANE first (permissiveContentTransformations,
  temp 0.1 line / 0.2 para), log provider=apple apple_ms, fallback
  to Ollama on guardrail/timeout. Fixes missing LLM log — now
  logs provider=apple with ms.
- main_v3.py: --apple-llm / --no-apple-llm flag (on by default)
- Verified: direct polish 258ms, last log provider=apple ms=498,
  speech binary still 240KB with 31 word-by-word drafts

Co-authored-by: internal-model
2026-07-13 21:31:24 -04:00
Adolfo Reyna 80f0bf309f feat: Apple Speech v3 + Freeflow polish + draft streaming
- Apple SpeechAnalyzer (macOS 26+) binary: --bench (31x RTF), --pipe
  (persistent process, 150ms finals), --live (word-by-word drafts)
- Pipe protocol: 4-byte BE length + wav payload, emits JSONL
  {event:draft|final, text, isFinal, chunk} — 31 drafts for 6s audio (~60ms granularity)
- engine_apple_transcribe.py: ApplePipeTranscriber with
  transcribe() + transcribe_with_draft_callback(), VAD + draft
  queue, new flags --apple-stream (on), --apple-stream-interval,
  --apple-pipe (on). Fixes PIL/transformers import crash by lazy import.
- main_v3.py: engine selector {whisper,apple}, passthrough translate
  when no -es/-fr/-ar, freeflow flags same as v2
- Freeflow polish: deterministic punctuation commands (comma,
  question mark, new paragraph, at sign), filler stripping,
  <keep> protection, skip-clean heuristic, freeflow/qwen/legacy
  prompt styles. Much better final readability vs raw Apple/Whisper.
- main_v2.py, engine_llm.py, engine_distribute.py: integrate freeflow
- bench: Apple 2.12% WER vs Whisper Small 3.74% (Inscribe), CPU
  0mW ANE (measured via powermetrics), 196M EN cryptex per locale.
- Verified: 31 word-by-word drafts, 2 finals, exit 0, bench regression ok.

Freeflow still much better for final polish — Apple wins on speed
and raw accuracy, freeflow wins on readable paragraph output.

Co-authored-by: internal-model
2026-07-13 21:08:18 -04:00
Adolfo Reyna 7451d164b7 Tune paragraph prompts for multilingual noise 2026-03-17 11:51:53 -04:00
Adolfo Reyna 7da02a9697 Add LLM logging and prompt experiment harness 2026-03-17 11:13:22 -04:00
Adolfo Reyna 96fe560f6f Align Ollama system prompts with OpenAI 2026-03-17 01:19:28 -04:00
Adolfo Reyna 53060918e9 Remove unsupported OpenAI temperature override 2026-03-17 00:55:31 -04:00
Adolfo Reyna 487cb83080 Show OpenAI API error details for LLM failures 2026-03-17 00:54:56 -04:00
Adolfo Reyna 0dcbef7d34 Warm up local LLM before live corrections 2026-03-17 00:29:20 -04:00
Adolfo Reyna 9d9ee03ca1 Clarify LLM paragraph fallback behavior 2026-03-17 00:10:39 -04:00
Adolfo Reyna 4380c2ef99 Clarify pipeline labels and default to qwen3.5 0.8b 2026-03-17 00:06:47 -04:00
Adolfo Reyna f79c4f7310 Fix main_v2 bridge and pipeline regressions 2026-03-16 21:15:15 -04:00
Adolfo Reyna 50f58dbc22 feat: implement accumulative LLM paragraph engine and harden 4-process pipeline 2026-03-15 22:05:05 -04:00