Severynson/TTS-Reader

The app provides convenient interface to use any TTS model for text reading aloud by your computer.

0

stars

4

commits

Python

primary language

Apr 22, 2026

updated

README

TTS Reader

Read selected text aloud with AI voice synthesis.

Select text in any app, press a global shortcut, and listen.


Quick Start (from tts-reader folder)

Assumption: you already cloned this repo and your terminal is currently inside the project root:

pwd
# .../tts-reader

1. Create and activate a virtual environment

python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip

2. Get model code + install dependencies

# Clone LongCat repo inside tts-reader (if not present yet)
[ -d LongCat-AudioDiT ] || git clone https://github.com/meituan-longcat/LongCat-AudioDiT.git

# Install dependencies required by LongCat and this app
pip install -r LongCat-AudioDiT/requirements.txt
pip install -r requirements.txt

3. Run app (with audiodit import path)

PYTHONPATH="$PWD/LongCat-AudioDiT:$PYTHONPATH" python main.py

On first launch, model weights download from Hugging Face (roughly 2-7 GB depending on variant).

4. Grant macOS permissions

If hotkeys or text capture do not work, enable permissions for the app that launched Python:

  • System Settings -> Privacy & Security -> Accessibility
  • System Settings -> Privacy & Security -> Input Monitoring
  • System Settings -> Privacy & Security -> Automation (allow controlling System Events when prompted)

If you run from VSCode terminal, grant Visual Studio Code. If you run from Terminal/iTerm, grant Terminal/iTerm.


Daily Run

From the project root:

source .venv/bin/activate
PYTHONPATH="$PWD/LongCat-AudioDiT:$PYTHONPATH" python main.py

Optional (persist path once):

echo 'export PYTHONPATH="/ABSOLUTE/PATH/TO/tts-reader/LongCat-AudioDiT:$PYTHONPATH"' >> ~/.zshrc
source ~/.zshrc

Default Shortcuts

ActionShortcut
Read selected text / ResumeOption + W
Stop / PauseOption + S
Speed upOption + Up
Slow downOption + Down
Next sentenceOption + Right
Previous sentenceOption + Left

Typical Workflow

  1. Highlight text in any app.
  2. Press Option + W to read.
  3. Press Option + S to pause.
  4. Press Option + W again to resume.

Configuration

You can configure model, voice, speed, and inference from the settings window or by editing config.yaml.

Example:

model:
  name: "LongCatAudioDiT"
  variant: "1B"            # "1B" or "3.5B"

voice:
  prompt_file: ""          # file inside voices/

playback:
  speed: 1.0
  speed_step: 0.1
  speed_min: 0.5
  speed_max: 3.0

shortcuts:
  read_selected: "option+w"
  stop_reading:  "option+s"
  read_faster:   "option+up"
  read_slower:   "option+down"
  next_sentence: "option+right"
  prev_sentence: "option+left"

inference:
  steps: 16
  cfg_strength: 4.0
  guidance_method: "apg"   # "apg" or "cfg"

Custom Voices

  1. Put .wav files in voices/.
  2. Open settings window.
  3. Pick your file in the Voice dropdown.

Troubleshooting

Option + W does nothing

  1. Confirm permissions (Accessibility/Input Monitoring/Automation) for the launcher app (VSCode/Terminal).
  2. In the app, press Option + Up:
    • If speed changes, hotkeys work and issue is text capture/model.
    • If not, global key capture is blocked by permissions.

Model not loaded / audiodit import error

Run:

pip install -r LongCat-AudioDiT/requirements.txt
pip install -r requirements.txt
PYTHONPATH="$PWD/LongCat-AudioDiT:$PYTHONPATH" python main.py

No sound

Check audio devices:

python -c "import sounddevice as sd; print(sd.query_devices())"

System Notes

  • macOS (Apple Silicon): recommended.
  • Linux: requires xclip or xsel for selection capture.
  • Windows: supported.

Contributors

Severynson

4 commits

Severynson/TTS-Reader

The app provides convenient interface to use any TTS model for text reading aloud by your computer.

0

stars

4

commits

Python

primary language

Apr 22, 2026

updated

README

TTS Reader

Read selected text aloud with AI voice synthesis.

Select text in any app, press a global shortcut, and listen.


Quick Start (from tts-reader folder)

Assumption: you already cloned this repo and your terminal is currently inside the project root:

pwd
# .../tts-reader

1. Create and activate a virtual environment

python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip

2. Get model code + install dependencies

# Clone LongCat repo inside tts-reader (if not present yet)
[ -d LongCat-AudioDiT ] || git clone https://github.com/meituan-longcat/LongCat-AudioDiT.git

# Install dependencies required by LongCat and this app
pip install -r LongCat-AudioDiT/requirements.txt
pip install -r requirements.txt

3. Run app (with audiodit import path)

PYTHONPATH="$PWD/LongCat-AudioDiT:$PYTHONPATH" python main.py

On first launch, model weights download from Hugging Face (roughly 2-7 GB depending on variant).

4. Grant macOS permissions

If hotkeys or text capture do not work, enable permissions for the app that launched Python:

  • System Settings -> Privacy & Security -> Accessibility
  • System Settings -> Privacy & Security -> Input Monitoring
  • System Settings -> Privacy & Security -> Automation (allow controlling System Events when prompted)

If you run from VSCode terminal, grant Visual Studio Code. If you run from Terminal/iTerm, grant Terminal/iTerm.


Daily Run

From the project root:

source .venv/bin/activate
PYTHONPATH="$PWD/LongCat-AudioDiT:$PYTHONPATH" python main.py

Optional (persist path once):

echo 'export PYTHONPATH="/ABSOLUTE/PATH/TO/tts-reader/LongCat-AudioDiT:$PYTHONPATH"' >> ~/.zshrc
source ~/.zshrc

Default Shortcuts

ActionShortcut
Read selected text / ResumeOption + W
Stop / PauseOption + S
Speed upOption + Up
Slow downOption + Down
Next sentenceOption + Right
Previous sentenceOption + Left

Typical Workflow

  1. Highlight text in any app.
  2. Press Option + W to read.
  3. Press Option + S to pause.
  4. Press Option + W again to resume.

Configuration

You can configure model, voice, speed, and inference from the settings window or by editing config.yaml.

Example:

model:
  name: "LongCatAudioDiT"
  variant: "1B"            # "1B" or "3.5B"

voice:
  prompt_file: ""          # file inside voices/

playback:
  speed: 1.0
  speed_step: 0.1
  speed_min: 0.5
  speed_max: 3.0

shortcuts:
  read_selected: "option+w"
  stop_reading:  "option+s"
  read_faster:   "option+up"
  read_slower:   "option+down"
  next_sentence: "option+right"
  prev_sentence: "option+left"

inference:
  steps: 16
  cfg_strength: 4.0
  guidance_method: "apg"   # "apg" or "cfg"

Custom Voices

  1. Put .wav files in voices/.
  2. Open settings window.
  3. Pick your file in the Voice dropdown.

Troubleshooting

Option + W does nothing

  1. Confirm permissions (Accessibility/Input Monitoring/Automation) for the launcher app (VSCode/Terminal).
  2. In the app, press Option + Up:
    • If speed changes, hotkeys work and issue is text capture/model.
    • If not, global key capture is blocked by permissions.

Model not loaded / audiodit import error

Run:

pip install -r LongCat-AudioDiT/requirements.txt
pip install -r requirements.txt
PYTHONPATH="$PWD/LongCat-AudioDiT:$PYTHONPATH" python main.py

No sound

Check audio devices:

python -c "import sounddevice as sd; print(sd.query_devices())"

System Notes

  • macOS (Apple Silicon): recommended.
  • Linux: requires xclip or xsel for selection capture.
  • Windows: supported.

Contributors

Severynson

4 commits

Languages

Python

100.0%