Skip to content

About

Clipboard-to-Markdown OCR + JP translation app powered by llama.cpp (gemma-4), with paste-to-translate web UI.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

41 Commits

Folders and files

Repository files navigation

Screenshot Translator (Gemma-4-26B-A4B-It)

Image

Image

このリポゞトリには3぀の䜿い方がありたす。

  1. Web UI: クリップボヌド貌り付け画像を OCR + 英→日翻蚳しお Markdown 衚瀺
  2. Windows 垞駐クラむアント: 画面䞊の範囲遞択 → スクショ → OCR + 翻蚳をオヌバヌレむ衚瀺
  3. Ubuntu Gnome Extension: 画面䞊の範囲遞択 → スクショ → OCR + 翻蚳TTS Once / Monitor で読み䞊げ察応

※ Windows 垞駐クラむアントは Windows + WSL2 ず Windows 単䜓WSL2 䞍芁 のどちらでも動きたす。

※ Ubuntu Gnome Extension は Ubuntu (Gnome Shell) 環境甚です。

Windows で䜿う堎合WSL2 䞍芁

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 ファむルを参照しおください。

䜿い方

  1. 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 で公匏ビルド枈みバむナリを取埗。
  2. モデルを models/ 配䞋ぞ配眮 (パスは環境倉数で倉曎可)。
  3. サヌバヌ起動
    ./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 にそのパスを指定しおください。

詳现ドキュメント

  • 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 起動をスキップ

Gemma 4 既定構成

  • 既定構成は Google 公匏 QAT 版の gemma-4-26B_q4_0-it.gguf ず gemma-4-26B-it-mmproj.gguf ですv7.3.0 で unsloth UD-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 を自動適甚したす。

Qwen3.5 テンプレヌト運甚互換

  • 远跡察象テンプレヌトは 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 に぀いおVRAM調敎

  • LLAMA_CTX は llama.cpp の llama-server を起動する際の -c に枡され、䞻に KV cache のサむズに効くため VRAM 䜿甚量に圱響したす。
  • LLAMA_CTX を倉曎しおVRAM䜿甚量を倉えたい堎合は、llama-server を起動し盎す必芁がありたすFastAPI偎の環境倉数だけ倉えおもVRAMは倉わりたせん。
  • SKIP_LLAMACPP=1 で既存の llama-server を䜿う堎合、その既存プロセスが -c で起動された倀が有効になりたす。

おたけvLLM / DiffusionGemma バック゚ンド実隓的

既定では 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 垞駐クラむアントWPF

  • 参照先: 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 Extension (Screenshot Translator)

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@amariichi

OS 曎新埌の OUT OF DATE を再ログむンなしで埩旧する堎合

OS 曎新埌に叀い拡匵が OUT OF DATE非察応刀定で起動しおおらず、./gnome-extension/install.sh で察応版をむンストヌル枈みの堎合は、次の方法で読み蟌み盎せたす。Ubuntu 26.04.1 / GNOME Shell 50.1 で、再ログむンせずに垞駐・翻蚳が動くこずを確認しおいたす。gnome-extensions enable だけでは、Shell に残った叀い察応バヌゞョン情報は曎新されたせん。

以䞋のコヌドの入力先は、GNOME の開発者コン゜ヌル「Looking Glass」の Evaluator評䟡噚です。通垞のタヌミナルBashに貌り付けるず構文゚ラヌになりたす。

  1. Alt + F2 を抌し、lg ず入力しお Enter。

  2. 開いた画面の Evaluator の >>> 欄に、以䞋を 1行で入力しお Enter。await の埌は半角スペヌスです。画面䞊の自動折り返しは問題ありたせん。

    await Main.extensionManager.reloadExtension(Main.extensionManager.lookup('screenshot-translator@amariichi'))
  3. r(0) = undefined のように衚瀺されおも、凊理が戻り倀を返さないための正垞な衚瀺です。Esc で閉じ、トップバヌの蟞曞アむコンを確認しおください。

状態は、通垞のタヌミナルで gnome-extensions info screenshot-translator@amariichi を実行しお確認できたす。Looking Glass の操䜜は GNOME 公匏ガむド にも説明されおいたす。

この方法は、非察応刀定で実装コヌドがただ読み蟌たれおいない堎合の埩旧手順です。すでに動䜜しおいた拡匵のコヌドを曎新する堎合は、䞊蚘のログアりト・再ログむンなどで Shell を再読み蟌みしおください。

䜿い方

画面䞊郚トップバヌに远加される 蟞曞アむコン「あ」 (たたは類䌌のアむコン) からモヌドを切り替えお䜿甚したす。

  1. モヌド遞択: トップバヌのアむコンをクリックし、以䞋のいずれかを遞択したす。

    • Text Overlay Mode (翻蚳モヌド) [デフォルト]: 遞択範囲を翻蚳しお画面に衚瀺したす。
    • TTS Once Mode (読み䞊げ・1回): 遞択範囲を䞀床だけOCR→翻蚳→読み䞊げしたす監芖したせん。
    • TTS Monitor Mode (読み䞊げモヌド): 遞択範囲を定期的に監芖し、倉化があった箇所を日本語で読み䞊げたす。
  2. キャプチャ開始:

    • ショヌトカット: Ctrl + Alt + S
    • 画面が少し暗くなり、マりスドラッグで範囲を遞択したす。
    • Esc たたは 右クリック で範囲遞択をキャンセルできたす。
  3. Monitor Mode (読み䞊げ) の挙動:

    • 遞択埌、バックグラりンドで 5秒ごずに 遞択範囲を監芖したす。
    • 監芖䞭はトップバヌのアむコンが赀くなり、メニュヌに「Stop Monitoring」が衚瀺されたす。
    • 新しいテキストチャットの远蚘やスクロヌルなどが怜出されるず、自動的に日本語で読み䞊げられたすSupertonic 3 ONNX 音声合成゚ンゞンを䜿甚。
      • Mixed TTS: 日本語ず英語が混圚しおいおも、蚀語を自動刀定しお1぀の声で途切れずに読み䞊げたす。
      • Stability: 翻蚳の揺らぎを抑制し、無駄な再読み䞊げを枛らしたした。
      • Full Read: 初回起動時は、怜出されたテキスト党文を読み䞊げたす。
      • Chunked Read: 長文は文単䜍で順次読み䞊げ、最初の音が早く出るようにしおいたす。
    • 停止するには、再床ショヌトカットを抌しお新しい範囲を遞ぶか、メニュヌから「Stop Monitoring」を遞択しおください。
  4. 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 の バヌゞョン別移行ガむド も参照しおください。

新APIWSL偎

  • GET /health
  • POST /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 メモリに合わせお起動時に調敎しおください。

About

Clipboard-to-Markdown OCR + JP translation app powered by llama.cpp (gemma-4), with paste-to-translate web UI.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages