joyvox 4.0.1

1. Install Python 3 for Windows.
   Download it from the official Python site.
   During install, enable the option to add Python to PATH.

2. Install the required Python packages.
   Run joyvox_install_requirements_corrected.bat
   or open a Command Prompt in this folder and run one of these:

   py -3 -m pip install --upgrade pip
   py -3 -m pip install pyaudio pynput pygame faster-whisper

   If you do not have the py launcher, use:
   python -m pip install --upgrade pip
   python -m pip install pyaudio pynput pygame faster-whisper

3. Edit joyvox_config.cfg.
   Set your keys, output path, and other options.

   Important settings:
   - STT_OUTPUT_PATH should point to your Kingpin / Quake 2 game folder
     (for example a main or mod folder).
   - STT_EXEC_FILE is the cfg file you will exec in-game.
   - STT_OUTPUT_FILE is the temporary text output file joyvox writes.
   - STT_AUDIO_INPUT_INDEX can stay on auto, or you can set a specific mic index.
   - STT_WHISPER_MODEL controls speed vs. accuracy.
     Recommended starting point: base.en
   - STT_WHISPER_DEVICE can be auto, cpu, or cuda.

4. Run joyvox.
   Double-click joyvox_run.bat
   or open a Command Prompt in this folder and run:

   python joyvox.py

5. Start your game and load the bind cfg.
   In the in-game console, type:

   exec joyvox.cfg

   Or add that line to your autoexec.cfg.
   If you changed STT_EXEC_FILE in the config, use that filename instead.

6. Use it in game.
   Default config file bindings are:

   - Hold STT_LISTEN (default: mouse4) while speaking.
   - Release it to stop recording and transcribe.
   - Press STT_KEY_AUTO (default: F5) to set auto-send to public chat.
   - Press STT_TEAMKEY_AUTO (default: F6) to set auto-send to team chat.
   - Press STT_KEY (default: J) to manually send/repeat the last text to public chat.
   - Press STT_TEAMKEY (default: K) to manually send/repeat the last text to team chat.

7. Notes.
   - On first use, Whisper may download the selected model automatically.
     That can take a little time depending on the model size and your connection.
   - If STT_AUDIO_INPUT_INDEX=auto, your default Windows microphone is normally the easiest choice.
   - If no speech is recognized, try speaking longer, lowering STT_MIN_AUDIO_LENGTH,
     or switching to a different microphone input index.
   - If CUDA is not available, joyvox should fall back to CPU when STT_WHISPER_DEVICE=auto.

Still rampant,
joyeuse
