Skip to content

Repository files navigation

VoiceReady

VoiceReady is a local voice-command assistant for Ready or Not. It listens to your microphone, recognizes supported spoken commands with a local Vosk speech model, checks the current in-game command-menu state, and sends the matching keyboard or mouse input.

VoiceReady does not modify game files, write process memory, inject code, or use a remote transcription service.

How It Was Created

VoiceReady was created by reverse engineering Ready or Not with Cheat Engine. The project uses pointer paths extracted from that research to read specific in-game state values, including command-menu state, selected team, and context-sensitive door information.

Those values are used to decide which normal Ready or Not command-menu inputs should be sent after a voice command is recognized. VoiceReady executes commands through emulated keyboard and mouse input. It does not patch, hook, inject, or write to Ready or Not memory.

How It Works

At runtime, VoiceReady:

  • Captures microphone audio locally.
  • Uses a local Vosk speech-recognition model to turn supported phrases into command intents.
  • Reads Ready or Not process memory with read-only access to understand the command context the player is currently in.
  • Checks values such as the active command menu, selected team, and whether the game currently exposes a known trapped-door command state.
  • Sends the matching command sequence using normal keyboard and mouse input.

VoiceReady sends the same command-menu inputs the player would normally press. If your Ready or Not command-menu binds are customized, use the Keybinds menu in the UI to remap VoiceReady to match them.

VoiceReady only receives information after the player has obtained it in-game. For example, a door trap is only known to VoiceReady after Ready or Not exposes that state because the player can currently see the trap or has already discovered it by peeking or using the mirror wand. VoiceReady cannot know that a door is booby trapped before the player observes it, and it does not give the player hidden information they would not already have.

What You Need

  • Windows
  • Ready or Not
  • A working microphone
  • .NET 10 SDK installed and available on PATH

You do not need Python, Whisper, PyTorch, or an OpenAI API key. Earlier prototypes used Whisper, but the current app uses Vosk through .NET.

Why There Is No Prebuilt EXE

VoiceReady is distributed as source code instead of a prebuilt .exe because the project is intended to stay open and inspectable. A compiled executable is much harder for users to read and verify, while this repository lets you see the code, configuration, setup scripts, and exact commands being run.

First-Time Setup

Download or clone the full repository. The required Vosk runtime files and English speech model are included locally in the repo:

tools\vendor\vosk\
tools\vosk\models\vosk-model-small-en-us-0.15\

Extract VoiceReady to a simple English-only path such as:

C:\VoiceReady

Avoid OneDrive folders and folder paths containing non-English characters. The native Vosk library can fail to load the model from those paths.

There is no dependency installer script anymore. The only external requirement is the .NET 10 SDK. Check that .NET is available with:

dotnet --version

Verifying Bundled Vosk Files

Developers or automated repo reviewers can verify the bundled Vosk files by downloading the official Vosk NuGet package and the official vosk-model-small-en-us-0.15 model archive listed in THIRD-PARTY-LICENSES.md, extracting them locally, and comparing the extracted files against tools\vendor\vosk\ and tools\vosk\models\vosk-model-small-en-us-0.15\ with a file-hash tool such as PowerShell Get-FileHash.

Run The App

Start Ready or Not first, then run:

run-ui.bat

Use the dark-mode UI to start or stop VoiceReady from the sidebar, then move between dedicated menus for live status, audio setup, keybind remapping, and debug output. The Audio menu includes a microphone test that listens and prints local transcriptions without attaching to Ready or Not or sending any input.

The Keybinds menu lets you click a binding, press the matching key or supported mouse button, and save the remap to config\voice_ready.json. Each binding has its own Reset button, and Reset all restores the default Ready or Not command-menu bindings.

For the console voice runner, use:

run-voice.bat

The UI runner is recommended for normal use.

If Windows blocks the .bat files, run the app manually from PowerShell:

dotnet run --project src\VoiceReady.App

For console voice mode:

dotnet run --project src\VoiceReady.Cli -- --voice

Basic Voice Commands

Commands can target a team by saying red team, blue team, or gold team before the command:

red team breach using c2 and clear with flashbang
blue team search and secure
gold team fall in
red team get behind me
on me

fall in, on me, and get behind me default to Single File formation. You can also say double file, diamond formation, or wedge formation.

For best results, look at the door, ground, teammate, suspect, or civilian you want to command before speaking.

Current Limitations

  • Doorway and other-doorway command-menu voice support is still incomplete.
  • Pick-the-lock voice support is not complete yet because the locked-door state address has not been identified. This is actively being worked on.
  • Queued commands are not supported yet.
  • Keybind remapping supports single keyboard keys plus middle mouse, right mouse, mouse button 4, and mouse button 5. Modifier key chords are not supported yet.

Common Issues

.NET SDK was not found

If dotnet is not recognized, install the .NET 10 SDK, then open a new terminal and try again.

Check that .NET is visible with:

dotnet --version

run-ui.bat opens and immediately closes

Run run-ui.bat again after this update. The launcher now keeps the window open when startup fails and prints the reason.

The most common cause is that the .NET 10 SDK is missing. The normal .NET runtime is not enough for dotnet run; this source-code distribution requires the SDK. You can also open PowerShell in the VoiceReady folder and run:

dotnet run --project src\VoiceReady.App

That will show the full startup error in the terminal.

VoiceReady exits with error code -1073741819

This is Windows error 0xC0000005, usually a native access violation. If it happens when pressing Start VoiceReady, send the contents of:

config\voice_ready_diagnostics.log

That log records the last startup step before native audio or Vosk recognition code runs.

If the error mentions that the Vosk model folder does not contain model files and the path contains ????, move the whole VoiceReady folder to an English-only path such as:

C:\VoiceReady

Repository ZIP size looks small

A downloaded ZIP around 60 MB can be normal because the bundled Vosk model and native files compress heavily. After extraction, make sure these paths exist:

tools\vendor\vosk\native\win-x64\libvosk.dll
tools\vosk\models\vosk-model-small-en-us-0.15\am\final.mdl
tools\vosk\models\vosk-model-small-en-us-0.15\graph\HCLr.fst
tools\vosk\models\vosk-model-small-en-us-0.15\graph\Gr.fst

Vosk model was not found

If VoiceReady reports that the Vosk model was not found, the repository is incomplete or the model folder was moved. The expected model path is:

tools\vosk\models\vosk-model-small-en-us-0.15

The folder should contain files such as:

conf\model.conf
am\final.mdl
graph\HCLr.fst
graph\Gr.fst

Download or clone the repository again if those files are missing.

Vosk runtime DLLs were not found

VoiceReady also needs the local Vosk runtime files in tools\vendor\vosk. If build or startup errors mention Vosk.dll, libvosk.dll, libstdc++-6.dll, libgcc_s_seh-1.dll, or libwinpthread-1.dll, download or clone the full repository again.

VoiceReady does not hear you

Open run-ui.bat, go to the Audio menu, select the correct microphone, then use calibration or lower the speech-start threshold. If your mic is very quiet, Windows input gain may also need adjustment.

The audio settings are stored in:

config\voice_ready.json

Commands are recognized but nothing happens in game

Make sure Ready or Not is running and focused. VoiceReady sends normal keyboard and mouse input, so another focused window can receive the input instead of the game.

Also make sure you are looking at a valid in-game command target. Some commands only work when the matching Ready or Not command menu is available.

If you changed Ready or Not's command-menu keybinds, open the Keybinds menu in VoiceReady and remap the command menu and command option inputs to match the game.

Commands work for some menus but not others

VoiceReady depends on configured Ready or Not command-menu state values. If the game updates and changes those values, some menu detection can stop working until the configuration is updated.

The relevant configuration files are:

config\memory_map.json
config\command_menus.json

Speech recognition is inaccurate

Try speaking shorter commands, pausing after each command, and keeping background noise low. You can add unusual phrases to:

config\voice_ready.json

Look for vosk.additionalGrammarPhrases.

Windows blocks the batch files

Windows may block downloaded .bat files depending on your security settings. If that happens, use the manual PowerShell commands in the setup and run sections above.

Configuration

Main user-facing settings live in:

config\voice_ready.json

Important values include:

  • audio.deviceNumber: selected microphone number.
  • audio.speechStartDb: how loud speech must be before capture starts.
  • audio.speechEndDb: how quiet input must be before a phrase ends.
  • input.commandMenuOpen: key or mouse input used to open the Ready or Not command menu.
  • input.commandKeys: key or mouse inputs used for command-menu options 1 through 0.
  • vosk.modelPath: path to the local Vosk model.
  • vosk.additionalGrammarPhrases: extra phrases the recognizer should expect.

Third-Party Notices

Third-party dependency and license information is listed in:

THIRD-PARTY-LICENSES.md

About

External voice command assistant for Ready or Not. Speak officer orders aloud and have them executed in-game via read-only memory state detection and keyboard/mouse input emulation.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages