Fox Reader is a simple text-to-speech application built in Rust and GTK4 that converts text to speech using high-quality voices from Kokoros TTS.
-
AI Chat with LLM Integration
- Use local LLM solutions (Ollama/LM Studio)
- Connect to AI models via API keys (OpenAI, etc.)
- Voice-to-text capability using Whisper models
-
PDF Reader with Highlighting System
- Simple PDF render system
- Read PDF documents with real-time text highlighting
- Choose from where to start reading
-
Text-to-Speech with Highlighting System
- Convert any text to natural-sounding speech using Kokoros voices
-
Speech Dispatcher Compatibility
- Seamless integration with Linux accessibility tools
- Works with system-wide speech services
-
Firefox Read Aloud Integration
- Works directly with Firefox's built-in reading feature
- Use voices downloaded via app
-
Operating Systems: Primarily Linux-based distributions, tested on:
- Ubuntu 24.04
- Fedora 42
- Arch Linux (GNOME & Hyprland)
-
GTK4 ≥ 4.12, Check version with:
pkg-config --modversion gtk4- Adwaita >= 1.5, check version via
pkg-config --modversion libadwaita-1- Speech Dispatcher for reading via spd-say or browser (optional), example install on Arch Linux:
sudo pacman -S speech-dispatcher
- Rust toolchain (for building from source) Install rust
-
On Ubuntu 24.04, Fedora 42, and Arch Linux with GNOME, no extra dependencies are needed—required GTK4 and Adwaita libraries are already included.
-
On Hyprland (Arch Linux), libadwaita is not installed by default. You must install it manually:
sudo pacman -S libadwaita- Older versions of Ubuntu, Debian, Fedora etc. can have problem with running this as updating gtk4 to newer version can be a bit difficult.
- Download the latest release:
curl -sL $(curl -s https://api.github.com/repos/kopecmaciej/fox-reader/releases/latest \
| grep browser_download_url \
| grep .tar.gz \
| cut -d '"' -f 4) -o fox-reader.tar.gz
tar -xzf fox-reader.tar.gz
## Or other desired path
mv fox-reader ~/.local/bin/
rm fox-reader.tar.gz- Run the application:
fox-reader- Clone the repository:
# Clone repository
git clone https://github.com/kopecmaciej/fox-reader.git
cd fox-reader
# Build
cargo build --release
# Run
./target/release/fox-reader- Open the
Voice Listtab - Browse available voices from the Kokoros TTS repository
- Download desired voices; every downloaded voice is available in
PDF Reader,Text Reader, andSpeech Dispatcher - Set favorite voice as default for
Speech Dispatcherusage without specified model
Fox Reader integrates with Speech Dispatcher through the app's CLI mode.
A special script located in ~/.config/speech-dispatcher/fox-reader.sh
will forward data and options properly. If Fox Reader is missing in
$PATH you have to specify location by yourself in the script.
Fox Reader can be used via command line interface for quick text-to-speech conversion without launching the GUI.
fox-reader --cli --model <MODEL_PATH> --text <TEXT> [--rate <RATE>] [--output <OUTPUT_PATH>]--cli: Run in CLI mode without launching the GUI--textor-t: Text to synthesize
--voiceor-v: Voice name fromVoice Listtab, example:pm_alex--speedor-s: Speech rate adjustment (0.5 to 2)--outputor-o: Path to save the audio output in WAV format- If not specified, audio will play immediately
--list-voicesor-l: List all available voices
Play speech immediately:
fox-reader --cli --voice pm_alex --text "Hello, this is Fox Reader speaking."Adjust speech rate:
fox-reader --cli --voice pm_alex --text "This is faster speech." --speed 1.5Save to file instead of playing:
fox-reader --cli --voice pm_alex --text "This will be saved to a file." --output ~/output.wavFox Reader uses GSettings for storing user preferences and configuration options. These settings include:
- UI theme and appearance preferences
- Default speech parameters
- Window size and position
- Selected voice preferences
- AI chat configuration (model selection, api keys, temperature settings)
You can view and modify these settings using the built-in preferences dialog or through the gsettings command-line tool. All other assets like voices, the pdfium library, and whisper models are stored separately in ~/.local/share/fox-reader/.
-
Voice download fails
- Check your internet connection
- Ensure you have write permissions to the voices directory
-
PDF reader doesn't load
- Make sure pdfium is installed or let Fox Reader install it automatically
- Check if the PDF file is not corrupted or password-protected
-
Speech Dispatcher integration issues
- Verify Speech Dispatcher is installed and running
- Check the configuration in
~/.config/speech-dispatcher/
- Improve performance for better user experience on slow PCs
- Enhance the PDF reader with better text extraction
- Optimize voice processing for lower latency
- Experiment with higher-quality voice models
- Consider migration to another GUI Rust library for better cross-platform support
- Expand AI chat functionality
Contributions are welcome! Please feel free to submit a Pull Request.
- Kokoros TTS for providing high-quality TTS voices
- GTK4 team for the UI framework
- Speech Dispatcher project
- Pdfium-render After using multiple crates that work with PDFs, this one seems the best
- Whisper-rs seamless integration with Whisper models.



