github bpwhelan/GameSentenceMiner v2026.7.1
Release v2026.7.1

3 months ago

Downloads

OS Download
Windows GameSentenceMiner-Setup-2026.7.1.exe
Windows (unpacked) GameSentenceMiner-2026.7.1-win-unpacked.zip
Linux GameSentenceMiner-2026.7.1.AppImage
macOS (Apple Silicon) GameSentenceMiner-2026.7.1-arm64.dmg

Intel Mac builds are no longer provided. If you need GSM on Intel Mac, run it from source.

What's Changed

Very excited to get this out finally, the FireRed change is huge for GSM, fast, CPU efficient, and very reliable for clean audio cuts. This release includes faster card creation, cleaner audio, more obvious/useful controller and OCR controls, Jiten styling that follows your reader settings, and substantially stronger automation and recovery behavior.

Highlights

1. FireRed VAD and Faster Card Creation

Card creation should feel faster and make better decisions about which text and media belong to the card. All the Audio I've collected over the years that Silero failed to know was audio

  • FireRed VAD is now bundled as a forced default voice activity detector. It's faster than silero, and seems to be more reliable than whisper, best of both worlds. I might even ditch Whisper/Silero entirely unless people find something wrong with firered.
  • Anki media preparation and translation work can start earlier and continue in parallel while the confirmation dialog is open.
  • Sentence matching for NVL games should be greatly improved. It now prefers the most relevant recent line and is stricter about which selected lines are sent for translation.
  • Animated screenshot generation is prefetched, and more expensive post-confirmation work is kept out of the interactive path.
  • Database writes are serialized by priority so card updates and foreground work are less likely to wait behind maintenance tasks.

2. Jiten Reader Styling Now Follows Your Extension Configuration

GSM's overlay highlighting can now use the word-state styling configured in Jiten Reader.

  • Jiten word-style settings are read through the bundled settings bridge.
  • Backgrounds, borders, shadows, and other visible effects are mirrored in GSM's overlay highlights.
  • Style changes can refresh the text already visible on the overlay; you do not need to wait for the next line.
  • States with no visible effects remain hidden instead of receiving GSM's old fallback appearance.

alt text

alt text

3. Gamepad Input and OCR Keybinds

The gamepad input service now belongs to the main GSM desktop app rather than being tied to the overlay. This makes controller bindings available to GSM even when the overlay is not running.

  • The OCR tab can assign gamepad buttons for Manual OCR, Menu OCR, Area Select, Whole Window OCR, and global pause/resume. In the future I will add an option for delaying the Manual OCR run for a "bind to advance dialogue" workflow. Just thought about that as I was proofreading these notes.
  • Each OCR action has an in-app Run button, so actions can be used/tested even when hotkeys aren't available (Mac).
  • OCR hotkey settings were redesigned to show keyboard and optional gamepad bindings together. (It's Ugly)
  • Python-side hotkeys also support controller bindings for pausing text intake, running an overlay scan, playing the latest audio, and pausing the game process.
  • The shared input service is started and stopped with Electron and reports clearer availability and lifecycle state.

alt text

4. Separate Manual and Menu OCR Actions

Manual OCR and menu OCR are now distinct actions instead of sharing one ambiguous shortcut.

  • Manual OCR runs OCR 2 once on configured green areas and bypasses stability and black-hole checks.
  • Menu OCR runs OCR 2 once on configured purple menu areas.
  • Both actions have independent keyboard shortcuts, controller bindings, and Run buttons.
  • Area Select and Whole Window OCR remain separate one-shot actions.
  • Overlay OCR engines unload after five minutes of inactivity, releasing memory and accelerator resources until the next scan.
  • Routine frame processing avoids several unnecessary image copies, conversions, debug writes, and repeated reflection checks.
  • Menu and black-hole filtering better handles short English choices such as “OK” and “No” without opening the filter to single-character noise.

5. Built-In OBS Scene Switching (Windows)

  • Instead of abusing an OBS plugin which is fragile, GSM now switches OBS scenes itself.
  • Rules are stored per OBS scene and can be changed in the
  • Ambiguous matches open a scene picker instead of silently choosing the wrong scene. (like for yuzu games if the switcher is named poorly)
  • GSM detects and migrates away from OBS's legacy automatic scene switcher to avoid competing automation.

6. Tadoku, Stats, and Database Improvements

Tadoku is just something I wanted because I participate in a club that uses it for logging. The other stats improvements are just things I noticed and wanted to fix.

  • Tadoku can incrementally sync one character/reading log per game, sending only text added since the last successful sync.
  • Tadoku supports username/email and password sign-in, manual preview, manual sync, daily sync, and optional duplicate exclusion.
  • Heatmap days link directly to filtered search results, and deleting data refreshes affected stats more reliably.
  • Search game lists are restored from game-management data when stats-only sources do not contain the game.
  • Character goals and adaptive reading-time calculations were corrected and made more conservative around idle gaps.
  • Bulk/test deletion paths are prevented from removing persistent game lines accidentally.

7. Overlay and Text Intake Reliability

  • Controller "Click Window" position has been moved to the top left of the window instead of directly in the middle.
  • The overlay recovers more reliably after Magpie stops scaling.
  • Overlay settings persistence, hotkey recovery, and reopening the settings window are more reliable after navigation or reconnects.
  • TextFeed has explicit controls for pausing GSM stats collection without stopping the visible feed.
  • TextFeed proxy connections now maintain their own sessions correctly across reconnects.
  • Text-hook profiles are keyed by OBS scene instead of windowname (Yuzu fix).
  • Auto OCR will now stop when switching between a scene with it enabled and one without.

alt text

8. Backup and Restore

You can now backup GSM's settings, yomitan dicts, and more through the Desktop App's settings tab. You can also restore in the same way.

alt text

9. Other

  • Sudachi is the new default tokenizer. It takes a little more memory than MeCab, but is anywhere from 50x to 200x faster and should also provide better deconjugation and tokenization. Tokenizer backends remain configurable.
  • GSM can now allow the display to sleep while idle instead of keeping the machine awake indefinitely.

Detailed Changelog

Anki and Card Creation

  • Parallelized translation prefetch and moved more media work out of the interactive confirmation path.
  • Added early animated-screenshot prefetch and reuse of compatible media from repeated selections.
  • Improved recent-line resolution for overlay cards and selection-aware sentence caching.
  • Limited translation to lines that actually match the mined sentence block.
  • Preserved plain dialogue lines when combining sentence blocks.
  • Improved cancellation cleanup so abandoned confirmation flows do not leave stale work or notes behind.
  • Added optional structured card-timing logs for diagnosing slow stages in development builds.
  • Serialized database writes by priority and expanded database-writer regression coverage.

Voice Activity Detection and Audio

  • Added the bundled FireRed VAD ONNX model, Kaldi feature extraction, CMVN parsing, CPU/GPU provider selection, and lazy loading.
  • Made FireRed the default VAD for new or missing configurations.
  • Removed confirmed trailing silence from FireRed segments.
  • Added a reusable VAD benchmark script for comparing accuracy and runtime behavior.

OCR

  • Split Manual OCR for green areas from Menu OCR for purple areas.
  • Added independent keyboard shortcuts, gamepad bindings, IPC actions, and manual Run controls.
  • Added Area Select, Whole Window, and Pause gamepad bindings in the OCR settings UI.
  • Reduced repeated image conversion, buffer copying, callback inspection, engine-label resolution, debug image output, and metrics capture.
  • Cached scan-rate configuration and tightened OCR process logging.
  • Improved menu, short-English, black-hole, furigana, and duplicate-result filtering.
  • Minimized the overlay during OCR startup where appropriate and added a startup notification surface.
  • Unloaded overlay OCR engines after five minutes without overlay OCR activity.

Jiten Reader and Overlay Dictionary Styling

  • Pulled Jiten Reader word-style configuration through the GSM settings bridge.
  • Applied configured visible effects to overlay vocabulary highlights.
  • Refreshed existing highlights when reader settings change.
  • Improved Jiten highlighting availability and settings synchronization behavior.

Controller, Hotkeys, and Input Service

  • Moved the shared input server lifecycle into the Electron main process.
  • Added controller bindings for the OCR actions and Python-side global hotkeys.
  • Redesigned the OCR controller binding UI and legacy Qt hotkey page.
  • Added forwarding for Enter, Space, Ctrl, Escape, and left click to the target game window.
  • Improved input-service startup, shutdown, error handling, packaging, and routine log filtering.

OBS and Game Automation

  • Added GSM's Windows foreground-window scene switcher with title/executable rules, per-collection settings, migration, testing, and conflict resolution.
  • Keyed text-hook profiles by OBS scene.
  • Stopped auto-launched OCR when the selected scene has OCR disabled.
  • Added controls for disabling OBS replay-buffer management, automatically starting/stopping it, and choosing replay duration.

Power Management

  • Allowed the display to sleep while GSM is idle.

Settings, Desktop, and Installation

  • Added comprehensive backup and restore for GSM, overlay/Yomitan, OBS, OCR, database, and related settings.
  • Added progress reporting and coordinated process shutdown/restart around restore operations.
  • Added a default-configuration change dialog for surfacing important default changes.
  • Made overlay settings persistence and backend reconnection more reliable.
  • Recovered overlay hotkeys and settings-window behavior after page lifecycle changes.
  • Restored the installer's option to run GSM when setup finishes.

Stats, Goals, Search, and Tadoku

  • Fixed character goals and strengthened goal API behavior.
  • Made adaptive reading-time caps more conservative and synchronized live and historical results.
  • Added incremental Tadoku character sync with saved progress per game.
  • Added Tadoku username/email and password authentication, daily sync, deduplication, preview, and manual queueing.
  • Refreshed stats after deletion and linked heatmap dates to search.
  • Restored search game choices from game-management records.
  • Protected persistent game lines from destructive test and bulk-deletion paths.

TextFeed and Text Intake

  • Added explicit pause/resume controls for GSM stats collection from TextFeed.
  • Fixed proxy-session tracking and reconnect behavior.
  • Redirected the backend root page to TextFeed and updated the standalone TextFeed branding.
  • Preserved source/session state more consistently across the backend, websocket, proxy, and Svelte client.

Overlay Interaction and Recovery

  • Forwarded overlay clicks to the correct client position in the game window.
  • Recovered overlay state after Magpie controller exit.
  • Improved settings updates across backend reconnects.
  • Preserved hotkeys and made the overlay settings window reopen reliably.
  • Suppressed routine input-service client connect/disconnect noise.

Tokenization and Furigana

  • Restored configurable tokenizer backends instead of tying furigana to a single engine.
  • Added the Sudachi client, furigana conversion, kana helpers, dictionary selection, and tokenizer abstraction.
  • Routed Anki furigana, background tokenization, VAD language handling, and overlay gamepad tokenization through the selected backend.

Release Engineering and Tests

  • Fixed the development-release race by creating the prerelease once and uploading platform assets without concurrent release metadata updates.
  • Expanded tests across Anki media reuse and timing, FireRed VAD, OCR performance and filtering, controller bindings, settings backup/restore, scene switching, database serialization, Tadoku, TextFeed, stats, and overlay recovery.
  • Added cross-platform collection protection for Windows-only window-monitor tests.
  • Updated stale assertions for card-timing instrumentation and the current adaptive reading-time model.

Commit Inventory

  • fe87dc90 - Stop auto-launched OCR when scene has no OCR.
  • e59edb51 - Fix character goals and add the default-config change dialog.
  • e1c71c0c - Add FireRed VAD support.
  • cec232b8 - Add configurable Jiten highlight styling.
  • 895086f2 - Serialize database writes by priority.
  • 824fb5ca - Improve Anki mining accuracy and responsiveness.
  • e6114ac6 - Key text-hook profiles by OBS scene.
  • db773c4d - Add in-house Windows scene switching.
  • 5c9b0d50 - Add comprehensive settings backup and restore.
  • 9cf020ec - Forward overlay clicks inside the game window.
  • 90173569 - Recover the overlay after Magpie controller exit.
  • ad677c4b - Use a more conservative adaptive reading pace.
  • 960157a9 - Add a reusable VAD benchmark script.
  • 4c5eb62f - Fix Anki sentence blocks and translate only matched lines.
  • 8fedff51 - Protect persistent game lines from test and bulk deletion.
  • ca4d6fdd - Preserve plain lines when combining dialogue blocks.
  • 2eac625c - Add configurable OBS replay-buffer controls.
  • 0ef67e6f - Allow display sleep while GSM is idle.
  • 2cde112d - Add incremental Tadoku character sync.
  • 7305f6fa - Refresh deleted stats and link heatmap days to search.
  • d511c4c6 - Restore search game lists from management data.
  • 0e0c90d6 - Reduce avoidable OCR frame-processing overhead.
  • 95d32a1e - Add explicit GSM stats pause controls to TextFeed.
  • 4257b3cd - Add Tadoku email/password authentication.
  • af950fa8 - Allow short English menu choices in black-hole filtering.
  • 6fcf0262 - Redirect the backend root to TextFeed and use GSM branding.
  • 12087143 - Move the overlay input server to the main app.
  • 0587a86a - Fix OCR behavior and minimize the overlay on startup.
  • 5cc9ff05 - Merge the input-server work with current develop.
  • 2c8c0008 - Restore configurable tokenizer backends.
  • d3e11a0b - Trim confirmed silence from FireRed VAD.
  • 611b0edb - Redesign controller hotkey settings.
  • 64a2d82d - Fix OCR filtering and process logging.
  • cccb4f82 - Make overlay settings persistence reliable.
  • d4619627 - Fix TextFeed proxy-session tracking.
  • f8f59826 - Show the run option after installation.
  • 7555923d - Document Tadoku credential authentication.
  • 6cf02cc0 - Split Manual and Menu OCR actions.
  • dda44567 - Unload overlay OCR engines after inactivity.
  • c540939b - Recover overlay hotkeys and the settings window.
  • f980a762 - Suppress routine input-service client logs.

Release Metadata

  • Stable baseline: v2026.7.0, published 2026-07-02.
  • Repository comparison: main...develop.
  • New-release commit window: 7d7bb283..f980a762.
  • Reviewed head: develop at f980a762.
  • Reviewed scope: 41 commits after the 2026.7.0 merge-back, plus release-preparation fixes.

Don't miss a new GameSentenceMiner release

NewReleases is sending notifications on new releases.