ãã®ãªããžããªã«ã¯3ã€ã®äœ¿ãæ¹ããããŸãã
- Web UI: ã¯ãªããããŒã貌ãä»ãç»åã OCR + è±âæ¥ç¿»èš³ã㊠Markdown 衚瀺
- Windows åžžé§ã¯ã©ã€ã¢ã³ã: ç»é¢äžã®ç¯å²éžæ â ã¹ã¯ã·ã§ â OCR + 翻蚳ããªãŒããŒã¬ã€è¡šç€º
- Ubuntu Gnome Extension: ç»é¢äžã®ç¯å²éžæ â ã¹ã¯ã·ã§ â OCR + 翻蚳ïŒTTS Once / Monitor ã§èªã¿äžã察å¿ïŒ
â» Windows åžžé§ã¯ã©ã€ã¢ã³ã㯠Windows + WSL2 ãš Windows åäœïŒWSL2 äžèŠïŒ ã®ã©ã¡ãã§ãåããŸãã
â» Ubuntu Gnome Extension 㯠Ubuntu (Gnome Shell) ç°å¢çšã§ãã
Windows åäœã§ã¯ããŒã³ããèµ·åãŸã§å®çµããŸããNVIDIA (CUDA) / AMD / Intel / CPU ã®ã¿ã ãããã«ã察å¿ããŠããŸããMSVC ã CUDA Toolkit ã®ã€ã³ã¹ããŒã«ã¯äžèŠã§ãã
git clone <ãã®ãªããžããªã® URL>
cd ScreenshotTranslator2
# 1. llama.cpp ã®ãã«ãæžã¿ãã€ããªãååŸïŒç°å¢ã«åãããŠéžæïŒ
.\app\scripts\fetch_llama_win.ps1 # AMD / Intel / æ±çš (Vulkan)
.\app\scripts\fetch_llama_win.ps1 -Flavor cuda-13.3 # NVIDIA (Blackwell ã¯ãã¡ã)
.\app\scripts\fetch_llama_win.ps1 -Flavor cuda-12.4 # NVIDIA (Ada 以å)
# 2. ã¢ãã«ã models\ ã«é
眮ïŒäžèšãèŠä»¶ãåç
§ïŒ
# 3. èµ·åïŒuv sync ãèªåå®è¡ãããŸãïŒ
.\start.ps1詳现ïŒllama-server.exe ã®é
眮ããã«ãæžã¿ã䜿ããªãå Žåã®ãœãŒã¹ãã«ãæé ã
ãã©ãã«ã·ã¥ãŒããAMD APU åºæã®èšå®ïŒã¯ docs/windows.md ãåç
§ããŠãã ããã
Blackwell äžä»£ (RTX 50 ã·ãªãŒãº / RTX PRO Blackwell) 㯠CUDA 12.8 以éãå¿ èŠãªããã
cuda-12.4ãã«ãã§ã¯åäœããŸãããcuda-13.3ãéžãã§ãã ããã
- GPU: NVIDIA (CUDA) / AMD (Vulkanã»ROCm) / CPU ã®ãããã
app/scripts/build_llama.shã®GPU_BACKENDã§åãæ¿ããŸãïŒæ¢å®:cudaïŒ- AMD APU (Ryzen AI Max+ 395 / Strix Halo ãªã©) ã¯
vulkanã䜿ã£ãŠãã ãã
uv(Python ããã±ãŒãžãããŒãžã£) ããã¹ãã«ã€ã³ã¹ããŒã«æžã¿- äžã®2ã€ã®ã¢ãã«ãã¡ã€ã«ãããŒã«ã«
models/ã«é 眮models/gemma-4-26B_q4_0-it.ggufïŒæ¢å®ïŒmodels/gemma-4-26B-it-mmproj.ggufïŒ26B-A4B çšãæ¢å®ïŒ
- é
åžå
: google/gemma-4-26B-A4B-it-qat-q4_0-gguf
- Google å ¬åŒã® QAT (quantization-aware training) çã§ããçŽ 14.4GB
- ä»»æ:
models/mtp-gemma-4-26B-A4B-it.ggufã眮ããšææ©çãã³ãŒãã§é«éåããŸã â docs/mtp.md - é³å£°èªã¿äžã (TTS):
- æ¢å®ã®ãšã³ãžã³ã¯
Supertonic 3(ONNX / CPU å®è¡) ã§ããããã¯ãšã³ãèµ·åæã«ã¢ãã« (çŽ386MB) ãèªåã§ããŠã³ããŒããããŸãã - 声ã¯
F2ïŒæ¥æ¬èªå¥³æ§ïŒãèšèªã¯æåçš®ããèªåå€å®ãããŸããæ¥æ¬èªã®äžã«è±èªãæ··ãã£ãŠããŠãã1ã€ã®å£°ã§ç¶ããŠèªã¿äžããŸãã - é³å£°åçã®ããã«ããã¹ãåŽã«
libportaudio2ãaplay(ALSA) ãå¿ èŠã§ãïŒUbuntu Desktopãªãéåžžã¯å ¥ã£ãŠããŸãïŒã - é³å£°ã®èª¿æŽã¯ç°å¢å€æ°ã§è¡ããŸã:
SUPERTONIC_VOICE(M1ãM5/F1ãF5ãæ¢å®F2)ãSUPERTONIC_SPEED(0.7ã2.0ãæ¢å®1.05)ãSUPERTONIC_STEPS(5ã12ãæ¢å®8)ãSUPERTONIC_LANGUAGE(æ¢å®en)ã SUPERTONIC_LANGUAGE㯠Supertonic ã«æž¡ãèšèªã¿ã°ã§ããSupertonic ã¯ããã»ãŒãžå šäœã 1 ã€ã®ã¿ã°ã§æ¡ä»¶ä»ãããèªããšã®èšèªå€å®ã¯è¡ããŸãããjaãæž¡ããšãæ¥æ¬èªèš³ã«æ®ã£ãè±åïŒè£œååã»ç¥èªãªã©ïŒãŸã§æ¥æ¬èªãšããŠèªãŸããŠçºé³ã厩ãããããæ¢å®ãenã«ããŠããŸããæ¥æ¬èªã®èªã¿äžãå質ã¯enã§ãæãªãããŸããïŒè±åãå«ãŸãªãæã§ãç¢ºèªæžã¿ïŒãjaã«æ»ãå Žåã¯SUPERTONIC_LANGUAGE=jaãæåçš®ã«ããèªåå€å®ïŒv7.6.0 以åã®æåïŒã«æ»ãå Žåã¯SUPERTONIC_LANGUAGE=autoãæå®ããŠãã ããã- åŸæ¥ã®
Kokoro-82Mã«æ»ãå Žåã¯TTS_ENGINE=kokoroãæå®ããŠãã ããããã®å Žåã®ã¿æ¥æ¬èª G2P (misaki[ja]) ãå¿ èŠã§ãWindows ã§ã¯æ¢å®ããå€ããŸãïŒpyopenjtalkã« wheel ãç¡ã MSVC ãå¿ èŠãªããïŒãæå¹åããå Žåã¯uv sync --extra ja-ttsã - ã©ã€ã»ã³ã¹æ³šæ:
supertonicããã±ãŒãžæ¬äœã¯ MIT ã§ãããã¢ãã«ã®éã¿ã¯ BigScience Open RAIL-M ã©ã€ã»ã³ã¹ã§é åžãããŠããŸãïŒKokoro ã® Apache-2.0 ãšã¯æ¡ä»¶ãç°ãªããŸãïŒã- æ¬ãªããžããªã¯ã¢ãã«ã®éã¿ãåé åžããŠããŸãããååèµ·åæã« Supertone/supertonic-3 ããå©çšè ã®ç°å¢ãžçŽæ¥ããŠã³ããŒããããŸããæ¬ã¢ããªã®ã³ãŒãèªäœã¯ MIT ã§ãã
- ãã®ã¢ãã«ã«ã¯çšéã«åºã¥ãå¶éïŒOpen RAIL-M ã©ã€ã»ã³ã¹ Attachment AïŒããããå©çšè ã¯ããã«åŸãå¿ èŠããããŸããéæ³è¡çºãæªæå¹Žè ã®æŸåãæå®³ãªèåœæ å ±ã®çæã»æ¡æ£ããªãããŸãïŒãã£ãŒããã§ã€ã¯ïŒããã©ã¹ã¡ã³ããå»çäžã®å©èšã»èšºæçµæã®è§£éãæ³å·è¡ãåžæ³å€æãžã®å©çšãªã©ãçŠæ¢ãããŠããŸãã
- çæããé³å£°ãå ¬éã»é åžããå Žåã¯ãæ©æ¢°çæã§ããæšã®æç€ºãæ±ããããŸãïŒå Attachment A (e)ïŒã
- å
šæã¯äžèšã¢ãã«ããŒãžããŸãã¯ããŠã³ããŒãå
ã®
LICENSEãã¡ã€ã«ãåç §ããŠãã ããã
- æ¢å®ã®ãšã³ãžã³ã¯
- llama.cpp ããã«ã
./app/scripts/build_llama.sh # NVIDIA (CUDA) GPU_BACKEND=vulkan ./app/scripts/build_llama.sh # AMD / æ±çš
LLAMA_CURL=OFFã§libcurlæªã€ã³ã¹ããŒã«ç°å¢ã§ãéãããã«ããŠããŸãã- 䞊åãã«ãã¯
JOBSç°å¢å€æ°ã§äžæžãå¯èœïŒæ¢å®ã¯nprocãããã°ãã®å€ããªããã°4ïŒã - å¿
èŠã«å¿ããŠ
LLAMA_REPO/LLAMA_DIRãäžæžãããŠãã ããã - Windows ãã€ãã£ãã§ã¯ãã«ãäžèŠã§ãïŒ
app/scripts/fetch_llama_win.ps1ã§å ¬åŒãã«ãæžã¿ãã€ããªãååŸïŒã
- ã¢ãã«ã
models/é äžãžé 眮 (ãã¹ã¯ç°å¢å€æ°ã§å€æŽå¯)ã - ãµãŒããŒèµ·å
./start.sh # Linux / WSL2.\start.ps1 # Windows ãã€ãã£ã- ããã©ã«ã: Gemma 4 26B-A4B (Google QAT
q4_0) + 忢± mmproj, llama-server 8009, Web UI 8012, ctx=8192, parallel=1ã models/mtp-gemma-4-26B-A4B-it.ggufãããã°ææ©çãã³ãŒããèªåã§æå¹ã«ãªããŸãïŒç¡ããã°ç¡å¹ã®ãŸãŸéåžžåäœïŒã- VRAMãå°ãªãå Žåã¯èµ·åæã«
LLAMA_CTXãäžããŠèµ·åã§ããŸãïŒäŸ:LLAMA_CTX=4096 ./start.shïŒã - æ¢åã® llama-server ã䜿ãå Žå:
SKIP_LLAMACPP=1 LLAMA_SERVER_URL=http://127.0.0.1:8009 ./start.sh - Gemma 4 æ¢å®æã¯
LLAMA_THINK_BUDGET=0ãš--reasoning offãèªåé©çšãããŸãã - E4B ã䜵çšããå Žåã¯ã26B-A4B çšã®
models/mmproj-F16.ggufãšååãè¡çªããªããããE4B çš projector ãä»»æã®å¥åã«ããŠä¿åããŠãã ãããäŸ:models/mmproj-F16_gemma4E4B.gguf - E4B ã䜿ãå Žåã¯
LLAMA_MODEL=models/gemma-4-E4B-it-UD-Q4_K_XL.gguf LLAMA_MMPROJ=models/mmproj-F16_gemma4E4B.gguf LLAMA_MODEL_NAME=Gemma-4-E4B-It ./start.shã®ããã«æç€ºæå®ããŠãã ããã - Qwen3.5 ã䜿ãå Žåã¯
LLAMA_MODEL=models/Qwen3.5-35B-A3B-UD-Q4_K_XL.gguf LLAMA_MMPROJ=models/mmproj-F32.gguf ./start.shã®ããã«æç€ºæå®ããŠãã ããã - Qwen3.5 ã§ã¯ Qwen3.5 çšã®
mmprojãæå®ããŠãã ãããGemma 4 çšã®mmprojãšã¯å ±çšã§ããŸããããã¡ã€ã«åãè¡çªããå Žåã¯ä»»æã®å¥åã§ä¿åããLLAMA_MMPROJã«ãã®ãã¹ãæå®ããŠãã ããã
- ããã©ã«ã: Gemma 4 26B-A4B (Google QAT
- docs/mtp.md â MTPïŒææ©çãã³ãŒãïŒã«ããé«éåãä»»ææ©èœã»GGUF ã®äœãæ¹ä»ã
- docs/windows.md â WSL2 ã䜿ããªã Windows åäœæ§æïŒCUDA / éCUDA 䞡察å¿ïŒ/ AMD APU èšå®
WEB_PORT(æ¢å®: 8012)LLAMA_PORT(æ¢å®: 8009)LLAMA_MODEL(æ¢å®:models/gemma-4-26B_q4_0-it.gguf)LLAMA_MMPROJ(æ¢å®:models/gemma-4-26B-it-mmproj.gguf)LLAMA_MODEL_NAME(æ¢å®:Gemma-4-26B-A4B-It-QAT)LLAMA_SPEC_DRAFT_MODEL(MTP ãããã®ãã¹ãæ¢å®ã¢ãã«äœ¿çšæã¯models/mtp-gemma-4-26B-A4B-it.ggufãååšããã°èªåèšå®)LLAMA_SPEC_TYPE(æ¢å®:draft-mtpã--spec-typeã«æž¡ãå€)GPU_BACKEND(build_llama.shçšãcuda/vulkan/hip/cpuãæ¢å®:cuda)LLAMA_CTX(æ¢å®: 8192)LLAMA_PARALLEL(æ¢å®: 1)LLAMA_BIN(æ¢å®: ./llama.cpp/build/bin/llama-server)LLAMA_CHAT_TEMPLATE_FILE(--chat-template-fileã«æž¡ããã³ãã¬ãŒããã¹)LLAMA_REASONING(--reasoningã«æž¡ãå€ãGemma 4 ç³»ã¢ãã«ã§ã¯æªæå®æã«off)LLAMA_THINK_BUDGET(--reasoning-budgetã«æž¡ãå€ãGemma 4 / Qwen3.5 æ¢å®æã¯èªåã§0)LLAMA_ARG_CHAT_TEMPLATE_FILE/LLAMA_ARG_THINK_BUDGETãäºæå ¥åãšããŠåãä»ãSKIP_LLAMACPP=1 ã§ llama-server èµ·åãã¹ããã
- æ¢å®æ§æã¯ Google å
¬åŒ QAT çã®
gemma-4-26B_q4_0-it.ggufãšgemma-4-26B-it-mmproj.ggufã§ãïŒv7.3.0 ã§ unslothUD-Q4_K_XLãã倿ŽïŒã- ãµã€ãºã 17.1GB â 14.4GB ã«æžããã¡ã¢ãªåž¯ååŸéã®ç°å¢ã§ã¯çŽ 1.26 åé«éã«ãªããŸãã
- åŸæ¥æ§æã«æ»ãå Žå:
LLAMA_MODEL=models/gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf LLAMA_MMPROJ=models/mmproj-F16.gguf ./start.sh
- projector ã®ååŒã¯
gemma4vã§ãæ§æ¥ã® llama.cpp ã§ããã®ãŸãŸèªããŸããllama.cpp ã®æŽæ°ãå¿ é ãªã®ã¯ MTP ã䜿ãå Žåã ãã§ãã - E4B ãåå±
ãããå Žåã¯ãE4B çš projector ãå¥åã§ä¿åãã
LLAMA_MMPROJã§æç€ºæå®ããŠãã ããã - chat template 㯠Gemma 4 ã®ã¢ãã«å èµ template ããã®ãŸãŸäœ¿ããŸãã
- åäžãŠãŒã¶ãŒåæã§
--parallel 1ãæ¢å®ã«ããŠããŸãã - thinking ãæå¶ãããããGemma 4 ç³»ã¢ãã«ã§ã¯
LLAMA_THINK_BUDGETæªæå®æã¯0ãLLAMA_REASONINGæªæå®æã¯offãèªåé©çšããŸãã
- 远跡察象ãã³ãã¬ãŒãã¯
app/chat_templates/qwen3.5-35b-a3b.chat_template.jinjaã§ãã - å
ãã³ãã¬ãŒã㯠Qwen å
¬åŒ
chat_template.jinjaïŒApache-2.0ïŒã§ããã®ãªããžããªã§ã¯enable_thinking=falseãå ããŠããŸãã models/ã¯.gitignore察象ã®ããããã³ãã¬ãŒãã¯models/ã§ã¯ãªãapp/chat_templates/ã«çœ®ããŠç®¡çããŸãã- Qwen3.5 ã«åãæ¿ãããšãã ãããã®ãã³ãã¬ãŒããèªåé©çšãããŸãã
- å®è¡æã«
LAMA_ARG_THINK_BUDGETïŒtypoïŒãäžããããå Žåãäºæã§åãä»ããŸãããLLAMA_THINK_BUDGETã®å©çšãæšå¥šããŸãã
LLAMA_CTX㯠llama.cpp ã®llama-serverãèµ·åããéã®-cã«æž¡ããã䞻㫠KV cache ã®ãµã€ãºã«å¹ããã VRAM 䜿çšéã«åœ±é¿ããŸããLLAMA_CTXã倿ŽããŠVRAM䜿çšéãå€ãããå Žåã¯ãllama-server ãèµ·åãçŽãå¿ èŠããããŸãïŒFastAPIåŽã®ç°å¢å€æ°ã ãå€ããŠãVRAMã¯å€ãããŸããïŒãSKIP_LLAMACPP=1ã§æ¢åã® llama-server ã䜿ãå Žåããã®æ¢åããã»ã¹ã-cã§èµ·åãããå€ãæå¹ã«ãªããŸãã
æ¢å®ã§ã¯ Gemma-4-26B-A4B-It ã llama.cpp (GGUF) ã§åãããŸãïŒå¹
åºã GPUã»CPU ã§åäœïŒã
ãã€ãšã³ã㪠NVIDIA GPU ããæã¡ã®å Žåã¯ãåãããŒã¹ã¢ãã«ã®æ¡æ£ç
nvidia/diffusiongemma-26B-A4B-it-NVFP4 ã vLLM çµç±ã§äœ¿ããããé«éãªéžæè¢ããããŸãã
æ¡æ£ã¢ãã«ã¯ 256 ããŒã¯ã³ã®ãããã¯ã䞊åçæãããããOCRïŒç¿»èš³ããããã 1 ç§æªæºã§å®äºããŸãã
â å®éšçã§ãã ãã®çµè·¯ã¯å ¬éåã€ã¡ãŒãž
vllm/vllm-openai:gemmaã«äŸåããŸããNVIDIA/vLLM 㯠ãsupporting vLLM image ãæ£åŒå ¬éããããŸã§æ«å®ã§ãã倿Žããããã ãšæèšããŠããŸããNVFP4 圢åŒã experimental æ±ãã§ããåçŸæ§ã®ããã€ã¡ãŒãžã¯ digest ã§åºå®ããŠããŸãïŒã¹ã¯ãªããåç §ïŒãæ°ãã ã€ã¡ãŒãžãåºãã digest ãæŽæ°ããŠãã ãããå°æ¥ mainline ã® vLLM ãdiffusion_gemmaãåã蟌ãã°ã ãã®ç¹å¥ã€ã¡ãŒãžã¯äžèŠã«ãªãèŠèŸŒã¿ã§ãã
- NVIDIA Blackwell ãŸã㯠Hopper GPUïŒNVFP4 ã«ã¯ FP4 察å¿ããŒããå¿ èŠïŒã空ã VRAM çŽ 30 GB
- Docker ïŒ NVIDIA Container ToolkitïŒ
--gpus allãæ©èœããããšïŒ - ã¢ãã«éã¿çšã«çŽ 13 GB ã®ãã£ã¹ã¯ïŒååã®ã¿
~/.cache/huggingfaceã«ååŸïŒ
BACKEND=vllm ./start.shããã ãã§ãvLLM ã³ã³ããã®èµ·åïŒååã®DLã»ããŒãïŒèªåãŠã©ãŒã ã¢ããïŒâ ã¢ã㪠(FastAPI, :8012)
ã®èµ·åãŸã§ãäžæ¬ã§è¡ããŸããèµ·ååŸã¯ãã©ãŠã¶ã§ http://localhost:8012 ãéããŠãã ããã忢ã¯
Ctrl + CïŒæ¢å®ã§ã¯ vLLM ã³ã³ããã¯èµ·åãããŸãŸïŒæ¬¡åãéããçµäºæã«ã³ã³ãããæ¢ãããå Žåã¯
STOP_BACKEND_ON_EXIT=1 BACKEND=vllm ./start.shïŒã
äž»ãªèª¿æŽçšç°å¢å€æ°ïŒä»»æïŒïŒ
| 倿° | æ¢å® | çšé |
|---|---|---|
VLLM_PORT |
8000 |
åŸ åããŒã |
VLLM_GPU_MEM_UTIL |
0.75 |
VRAM 䜿çšçäžéïŒOOM æã¯äžããïŒ |
VLLM_MAX_MODEL_LEN |
8192 |
æå€§ã³ã³ããã¹ãé· |
VLLM_IMAGE |
digest åºå® | å¥ã€ã¡ãŒãžã䜿ãå Žå |
STOP_BACKEND_ON_EXIT |
0 |
çµäºæã« vLLM ã³ã³ããã忢ãã |
ããã¯ãšã³ãïŒvLLM ã³ã³ããïŒã ããèµ·åã»åæ¢ã»ç¢ºèªïŒ
./app/scripts/run_vllm_backend.sh start # åªçãèµ·åã®æåŸã«èªåãŠã©ãŒã ã¢ãã
./app/scripts/run_vllm_backend.sh stop
./app/scripts/run_vllm_backend.sh statusååã¯éã¿ã®ããŠã³ããŒããšã¢ãã«èªã¿èŸŒã¿ã§æ°åããããŸããèµ·åçŽåŸã®æåã® 1 ãªã¯ãšã¹ã㯠äžåºŠããã® CUDA/ã³ã³ãã€ã«åŠçã®ããé ãïŒçŽ 4ã5 ç§ïŒå質ãèœã¡ãã®ã§ãã¹ã¯ãªããã¯æåŸã«å°ã㪠ãŠã©ãŒã ã¢ãããèªåå®è¡ããŸãã
ãã§ã«èµ·åæžã¿ã®å€éšãµãŒãã«ã¢ããªãåããã ããªãïŒBACKEND ã䜿ããªãåŸæ¥ã®æ¹æ³ïŒïŒ
SKIP_LLAMACPP=1 \
LLAMA_SERVER_URL=http://127.0.0.1:8000 \
LLAMA_MODEL_NAME=nvidia/diffusiongemma-26B-A4B-it-NVFP4 \
./start.sh- ã¹ã¯ãªãããä»äžãã
--default-chat-template-kwargs '{"enable_thinking":false}'ã¯ å¿ é ã§ãã ãããç¡ããšã¢ãã«ãåçããæè(reasoning)ããšããŠåºåããã¢ããªåŽã®contentã空ã«ãªããŸãã
| GGUFïŒæ¢å®ïŒ | vLLM / NVFP4ïŒä»»æïŒ | |
|---|---|---|
| å¯Ÿå¿ GPU | ã»ãŒå š GPU / CPU | Blackwell / Hopper ã®ã¿ |
| é å»¶ïŒOCRïŒç¿»èš³ïŒ | æ°ç§ | çŽ 0.5 ç§ïŒãŠã©ãŒã åŸïŒ |
| ã»ããã¢ãã | llama.cpp ããã«ã | docker pull |
| å®å®æ§ | å®å® | å®éšçïŒå ¬éåã€ã¡ãŒãžïŒ |
| VRAM | 調æŽå¯ïŒçŽ 16 GBãïŒ | çŽ 30 GB |
å質ã¯åçã§ãïŒåã Gemma-4-26B-A4B ããŒã¹ïŒã察å¿ããŒãã§ã¯é床éèŠã§ vLLMã坿¬æ§éèŠã§ GGUF ã æ¢å®ã®ãŸãŸããšãã䜿ãåããããããã§ãã
- èµ·åæã« CUDA out of memory â
VLLM_GPU_MEM_UTILãäžããïŒäŸ0.70ïŒãå¿ èŠãªãVLLM_MAX_MODEL_LEN=4096ãïŒVLLM_GPU_MEM_UTIL=0.70 VLLM_MAX_MODEL_LEN=4096 ./app/scripts/run_vllm_backend.sh start - 翻蚳ã空ã§è¿ã â ãµãŒãã
enable_thinking:falseã§åããŠããã確èªïŒã¹ã¯ãªããæ¢å®ã§ä»äžïŒã - æåã® 1 åã ãé ã/厩ãã â ãŠã©ãŒã ã¢ãããå®è¡ãããã確èªïŒã¹ã¯ãªãããèªåå®è¡ïŒã
- ã¢ãã«åŽãã° â
docker logs dgemma
- ãã©ãŠã¶ã§
http://localhost:8012ã«ã¢ã¯ã»ã¹ã - ç»åã 貌ãä»ã (Ctrl+V) ããããã©ãã°&ããããã
- ä»»æã§è¿œå æç€ºãå ¥åããåéä¿¡ãã
- è¿ã£ãŠãã Markdown ããã³ããŒããã¿ã³ã§ååŸå¯èœã
- CSS ã§æšªã«é·ãè¡ãæãè¿ããŠè¡šç€ºã
llama.cppã®llama-server --apiãåžžé§ãããOpenAI äºæ/v1/chat/completionsã§ãã«ãã¢ãŒãã«æšè«ã- FastAPI (ããŒã 8012) ãç»åã PNG ã«æ£èŠå â llama-server ãž base64 ç»åä»ãã¡ãã»ãŒãžéä¿¡ã
- å¿ç Markdown ããã®ãŸãŸè¡šç€º (èŠçŽçŠæ¢ããã³ãããä»äž)ã
- Windows åžžé§ã¯ã©ã€ã¢ã³ãã¯
windows/OverlayClientã«ãããCtrl+AltæŒäž/é¢ãã§ROIãååŸããŠ/api/v1/ocr_translate_with_groundingã«éä¿¡ããããã¬ã€ã®ãSpeak Translationããæå¹ã«ãããšã衚瀺ããæååããã®ãŸãŸ/api/v1/speakã«æž¡ããŠèªã¿äžããã
- åç
§å
:
windows/OverlayClient - åæ: Windows 10/11 + .NET 8 SDKïŒ
dotnet --versionã§ç¢ºèªïŒ - WSL2ã§ãã®ãªããžããªãCloneããå Žåã¯ãwindowsãã©ã«ããWindowsåŽã«ã³ããŒããŠãã«ãã»å®è¡ããŠãã ããã
- å
ã« WSL åŽã® FastAPI ãèµ·åããŠããïŒ
./start.shãããŒã 8012ïŒã - ãã«ã:
cd windows/OverlayClient dotnet build - å®è¡:
dotnet run
- é
åžçšã«ãŸãšãã:
dotnet publish -c Release -o output
output/ã«å®è¡ãã¡ã€ã«äžåŒãåºåãããŸãïŒsettings.jsonã忢±ïŒã
settings.json㯠exe ãšåããã©ã«ãã«çœ®ããããã«ãåºåã«å梱ãããŸãã- WSL åŽã«ç¹ãããªãå Žåã¯
settings.jsonã®server.base_urlã確èªããŠãã ããã - æ¢å®ã¯ Ctrl+AltãæŒããªãããã©ãã°ããããŒãé¢ããšç©åœ¢ROIæå® â 翻蚳å®è¡ã§ãïŒCtrlã®ã¿/Altã®ã¿ã¯èšå®ã§å€æŽå¯ïŒã
- æ¢å®ã§ ROI 㯠赀æ ã§äžç¬è¡šç€ºãããŸãïŒ
overlay.preview.show_roi_previewïŒã - CtrlæŒäžäžã®ãªã¢ã«ã¿ã€ã æ 衚瀺ã¯
overlay.preview.live_previewã§åæ¿ã§ããŸãã - ãªãŒããŒã¬ã€ã¯ãÃãã§éããããŸãïŒã¢ããªèªäœã®çµäºã¯ãã¬ã€ã¡ãã¥ãŒã® QuitïŒã
Ubuntu (Gnome Shell) ç°å¢åãã®å°çšæ¡åŒµæ©èœã§ããWindows çãšã¯æäœæãç°ãªããŸãã ããŒãžã§ã³19以éããããããŒã®ã¡ãã¥ãŒããã¢ãŒãåæ¿ãå¯èœã«ãªããŸããã
- Python ããã¯ãšã³ã (
./start.sh) ã127.0.0.1:8012ã§èµ·åããŠããå¿ èŠããããŸãã - å¯Ÿå¿ GNOME Shell: 46ã50ïŒUbuntu 24.04 / 26.04ã»26.04.1 ãå«ãïŒãUbuntu ã®ããŒãžã§ã³ã§ã¯ãªãã
gnome-shell --versionã§ç¢ºèªã§ããŸãã - Ubuntu 26.04 系㯠Wayland ã§äœ¿çšããŸãã24.04 ã® Wayland / X11 åãäºææ§ãç¶æããŠããŸãã
ãªããžããªã®ã«ãŒãã§æ¬¡ã®ã³ãã³ããå®è¡ããŸããæŽæ°æãåãã³ãã³ãã§åã€ã³ã¹ããŒã«ã§ããŸãã
./gnome-extension/install.shã€ã³ã¹ããŒã©ãŒã¯å¯Ÿå¿ Shell ããŒãžã§ã³ã確èªããmetadata.json ã® UUID ã«äžèŽãããã£ã¬ã¯ããªãžã³ããŒããŠãèšå®ã¹ããŒããã³ã³ãã€ã«ããŸãããŠãŒã¶ãŒåãžã®æžãæãã¯äžèŠã§ããæ¢åã®ã€ã³ã¹ããŒã«å
ãã·ã³ããªãã¯ãªã³ã¯ã®å Žåã¯ãªã³ã¯ãããã¯ã¢ããããŠããã³ããŒã«åãæ¿ããŸãïŒãªã³ã¯å
ã®ãœãŒã¹ã¯ä¿æãããŸãïŒãæ¢åã®èšå®ã¯ç¶æãããŸãã
ã€ã³ã¹ããŒã«ã»æŽæ°åŸã¯ãé垞㯠Gnome Shell ãåèªã¿èŸŒã¿ããŸãã
- Wayland (Ubuntu æšæº): äžåºŠãã°ã¢ãŠãããŠãå床ãã°ã€ã³ããŠãã ããã
- X11 (24.04 ãªã©):
Alt+F2ãæŒããrãå ¥åã㊠Enterã
åèªã¿èŸŒã¿åŸããExtensions (æ¡åŒµæ©èœ)ãã¢ããªãŸãã¯ãExtension ManagerããéããScreenshot Translator ãæå¹ã«ããŠãã ããã
ã³ãã³ãã§æå¹åã»ç¶æ 確èªããå Žå:
gnome-extensions enable screenshot-translator@amariichi
gnome-extensions info screenshot-translator@amariichiOS æŽæ°åŸã«å€ãæ¡åŒµã OUT OF DATEïŒé察å¿ïŒå€å®ã§èµ·åããŠãããã./gnome-extension/install.sh ã§å¯Ÿå¿çãã€ã³ã¹ããŒã«æžã¿ã®å Žåã¯ãæ¬¡ã®æ¹æ³ã§èªã¿èŸŒã¿çŽããŸããUbuntu 26.04.1 / GNOME Shell 50.1 ã§ãåãã°ã€ã³ããã«åžžé§ã»ç¿»èš³ãåãããšã確èªããŠããŸããgnome-extensions enable ã ãã§ã¯ãShell ã«æ®ã£ãå€ã察å¿ããŒãžã§ã³æ
å ±ã¯æŽæ°ãããŸããã
以äžã®ã³ãŒãã®å ¥åå ã¯ãGNOME ã®éçºè ã³ã³ãœãŒã«ãLooking Glassãã® EvaluatorïŒè©äŸ¡åšïŒã§ããéåžžã®ã¿ãŒããã«ïŒBashïŒã«è²Œãä»ãããšæ§æãšã©ãŒã«ãªããŸãã
-
Alt + F2 ãæŒãã
lgãšå ¥åã㊠Enterã -
éããç»é¢ã® Evaluator ã®
>>>æ¬ã«ã以äžã 1è¡ã§å ¥åã㊠Enterãawaitã®åŸã¯åè§ã¹ããŒã¹ã§ããç»é¢äžã®èªåæãè¿ãã¯åé¡ãããŸãããawait Main.extensionManager.reloadExtension(Main.extensionManager.lookup('screenshot-translator@amariichi'))
-
r(0) = undefinedã®ããã«è¡šç€ºãããŠããåŠçãæ»ãå€ãè¿ããªãããã®æ£åžžãªè¡šç€ºã§ããEsc ã§éãããããããŒã®èŸæžã¢ã€ã³ã³ã確èªããŠãã ããã
ç¶æ
ã¯ãéåžžã®ã¿ãŒããã«ã§ gnome-extensions info screenshot-translator@amariichi ãå®è¡ããŠç¢ºèªã§ããŸããLooking Glass ã®æäœã¯ GNOME å
¬åŒã¬ã€ã ã«ã説æãããŠããŸãã
ãã®æ¹æ³ã¯ãé察å¿å€å®ã§å®è£ ã³ãŒãããŸã èªã¿èŸŒãŸããŠããªãå Žåã®åŸ©æ§æé ã§ãããã§ã«åäœããŠããæ¡åŒµã®ã³ãŒããæŽæ°ããå Žåã¯ãäžèšã®ãã°ã¢ãŠãã»åãã°ã€ã³ãªã©ã§ Shell ãåèªã¿èŸŒã¿ããŠãã ããã
ç»é¢äžéšïŒãããããŒïŒã«è¿œå ããã èŸæžã¢ã€ã³ã³ããã (ãŸãã¯é¡äŒŒã®ã¢ã€ã³ã³) ããã¢ãŒããåãæ¿ããŠäœ¿çšããŸãã
-
ã¢ãŒãéžæ: ãããããŒã®ã¢ã€ã³ã³ãã¯ãªãã¯ãã以äžã®ãããããéžæããŸãã
- Text Overlay Mode (翻蚳ã¢ãŒã) [ããã©ã«ã]: éžæç¯å²ã翻蚳ããŠç»é¢ã«è¡šç€ºããŸãã
- TTS Once Mode (èªã¿äžãã»1å): éžæç¯å²ãäžåºŠã ãOCRâ翻蚳âèªã¿äžãããŸãïŒç£èŠããŸããïŒã
- TTS Monitor Mode (èªã¿äžãã¢ãŒã): éžæç¯å²ã宿çã«ç£èŠããå€åããã£ãç®æãæ¥æ¬èªã§èªã¿äžããŸãã
-
ãã£ããã£éå§:
- ã·ã§ãŒãã«ãã:
Ctrl+Alt+S - ç»é¢ãå°ãæããªããããŠã¹ãã©ãã°ã§ç¯å²ãéžæããŸãã
- Esc ãŸã㯠å³ã¯ãªã㯠ã§ç¯å²éžæããã£ã³ã»ã«ã§ããŸãã
- ã·ã§ãŒãã«ãã:
-
Monitor Mode (èªã¿äžã) ã®æå:
- éžæåŸãããã¯ã°ã©ãŠã³ãã§ 5ç§ããšã« éžæç¯å²ãç£èŠããŸãã
- ç£èŠäžã¯ãããããŒã®ã¢ã€ã³ã³ãèµ€ããªããã¡ãã¥ãŒã«ãStop Monitoringãã衚瀺ãããŸãã
- æ°ããããã¹ãïŒãã£ããã®è¿œèšãã¹ã¯ããŒã«ãªã©ïŒãæ€åºããããšãèªåçã«æ¥æ¬èªã§èªã¿äžããããŸãïŒSupertonic 3 ONNX é³å£°åæãšã³ãžã³ã䜿çšïŒã
- Mixed TTS: æ¥æ¬èªãšè±èªãæ··åšããŠããŠããèšèªãèªåå€å®ããŠ1ã€ã®å£°ã§éåããã«èªã¿äžããŸãã
- Stability: ç¿»èš³ã®æºãããæå¶ããç¡é§ãªåèªã¿äžããæžãããŸããã
- Full Read: ååèµ·åæã¯ãæ€åºãããããã¹ãå šæãèªã¿äžããŸãã
- Chunked Read: é·æã¯æåäœã§é 次èªã¿äžããæåã®é³ãæ©ãåºãããã«ããŠããŸãã
- 忢ããã«ã¯ãå床ã·ã§ãŒãã«ãããæŒããŠæ°ããç¯å²ãéžã¶ããã¡ãã¥ãŒãããStop MonitoringããéžæããŠãã ããã
-
Monitor Mode ã®ãªã»ãã:
- å¥ã®ç¯å²ãéžæãããå Žåã¯ãå床
Ctrl+Alt+SãæŒããŠãã ãããå€ãã¢ãã¿ãªã³ã°ã¯åæ¢ããæ°ããç¯å²ã§å³åº§ã«éå§ãããŸãã
- å¥ã®ç¯å²ãéžæãããå Žåã¯ãå床
æ¡åŒµæ©èœãåé€ããã«ã¯ã以äžã®ãã£ã¬ã¯ããªãåé€ããGnome Shell ãåèªã¿èŸŒã¿ããŸãã
gnome-extensions uninstall screenshot-translator@amariichiãã®åŸããã°ã¢ãŠã/ãã°ã€ã³ (ãŸã㯠Alt+F2 r) ããŠãã ããã
- OS æŽæ°åŸã«
OUT OF DATEã«ãªã:./gnome-extension/install.shã§å¯Ÿå¿çãã€ã³ã¹ããŒã«ããŠãã ãããåãã°ã€ã³ãé¿ãããå Žåã¯ãäžèšãOS æŽæ°åŸã®OUT OF DATEãåãã°ã€ã³ãªãã§åŸ©æ§ããå Žåãã®æé ã䜿ããŸããGNOME å šäœã®ããŒãžã§ã³ãã§ãã¯ãç¡å¹ã«ããå¿ èŠã¯ãããŸããã - æŽæ°ãåæ ãããªã: Wayland ã§ã¯
Alt+F2 rã䜿ããªãããããã°ã¢ãŠã/ãã°ã€ã³ããŠãã ããããã¡ã€ã«ãæŽæ°ããã ãã§ã¯ãåäœäžã® Shell ã«æ®ã£ãå€ãã³ãŒããã¡ã¿ããŒã¿ã¯åèªã¿èŸŒã¿ãããŸããã - 翻蚳ã»TTS ãåããªã: ããã¯ãšã³ãã®èµ·åãš
curl http://127.0.0.1:8012/healthã確èªããŠãã ãããæ¡åŒµã®ãšã©ãŒã¯journalctl -b /usr/bin/gnome-shell --no-pagerã§ç¢ºèªã§ããŸãã - Pango ãšã©ãŒ: å€ãããŒãžã§ã³ããã£ãã·ã¥ãããŠããå¯èœæ§ããããŸããäžåºŠã¢ã³ã€ã³ã¹ããŒã«æäœãè¡ã£ãŠããåã€ã³ã¹ããŒã«ããŠãã ããã
GNOME 50 ã® gnome-shell-test-tool ã§ãçŸåšã®ãã¹ã¯ããããšã¯ç¬ç«ãããããã¬ã¹ Shell ã«æ¡åŒµãèªã¿èŸŒã¿ãç¯å²éžæã®ãã£ã³ã»ã«ãPNG ååŸã翻蚳衚瀺ãTTS çšéä¿¡ãç¡å¹åã»åæå¹åã確èªã§ããŸããéä¿¡å
ã«ã¯ã©ã³ãã ãªããŒã«ã«ããŒãã®ãã¹ããµãŒããŒã䜿ããããLLM ãèªã¿äžããµãŒããŒã®èµ·åã¯äžèŠã§ããå®éã®OCRã»ç¿»èš³å質ã»é³å£°ã¯ãã®ãã¹ãã®å¯Ÿè±¡å€ã§ãã
mkdir -p /tmp/screenshot-translator-test
gnome-extensions pack --force --out-dir /tmp/screenshot-translator-test gnome-extension
dbus-run-session -- gnome-shell-test-tool --headless \
--extension /tmp/screenshot-translator-test/screenshot-translator@amariichi.shell-extension.zip \
"$PWD/tests/gnome-extension-smoke.js"GNOME ã® ããŒãžã§ã³å¥ç§»è¡ã¬ã€ã ãåç §ããŠãã ããã
GET /healthPOST /api/v1/ocr_translate_with_groundingïŒclean_image(å¿ é ) ãšguide_image(ä»»æ) ã multipart ã§éä¿¡ïŒPOST /api/v1/ocr_translate_tts_onceïŒOCRâ翻蚳âèªã¿äžãã1åå®è¡ïŒPOST /api/v1/speakïŒ{"text": "..."}ãèªã¿äžããã ããæšè«ã¯ããªããåŒã³åºãåŽã衚瀺ããæååããã®ãŸãŸèªãŸããããã®ãã®ã§ãWindows åžžé§ã¯ã©ã€ã¢ã³ãã®ãSpeak Translationãã䜿ãïŒ
- äŸåã¯ä»®æ³ç°å¢å
(
uv sync) ã®ã¿ã§ã€ã³ã¹ããŒã«ããããã¹ãã«ã¯å ¥ããŸããã - ããã³ãã¯ãã¬ãŒã³ HTML/CSS/JS (ãã«ãäžèŠ)ã
- Markdown ã¬ã³ããªã³ã°ã¯è»œéãªç¬èªå®è£ ã§ãã³ãŒã/ç®æ¡æžã/匷調ããµããŒãã
- llama.cpp ååèµ·åæã«ã¢ãã«ãããŒãããããã1 åç®ã®ãªã¯ãšã¹ãã¯æéãããããŸããã¢ãã«ã®ããŒããå®äºïŒã¹ããŒã¿ã¹ã«ãæºåå®äº (ãã°ãã) / èµ·åäžïŒAPIå¿çããã»ã¢ãã«èªã¿èŸŒã¿æªç¢ºèªïŒããšè¡šç€ºãããŸããïŒããŠã翻蚳ãå®è¡ãããªãå Žåã¯ããææ°ã§ãããå床ç»åã匵ãä»ããŠãã ããã
- ã¢ãã«èªã¿èŸŒã¿äžã«ç»åã貌ãä»ãããšå€±æããå ŽåããããŸããã¹ããŒã¿ã¹ããæºåå®äºããšè¡šç€ºãããŠãã貌ãä»ããŠãã ããã
LLAMA_CTXã倧ãããããš VRAM 䜿çšéãå¢ããŸããGPU ã¡ã¢ãªã«åãããŠèµ·åæã«èª¿æŽããŠãã ããã
