A Java Swing desktop application that loads, edits and converts documents (Word .docx, Excel .xlsx, etc.) into spoken audio using the FreeTTS library. It employs Factory, Decorator and Facade design patterns to structure document parsing, UI logic and TTS conversion, and is packaged as a Windows .exe.
Download Latest Release (Windows Executable)
- Overview
- Features
- Screenshots
- Technologies
- Installation
- Usage
- Architecture
- Contributing
- License
- Contact
AdvancedText2SpeechApp is a stand‑alone Java 11 application with a Swing GUI that enables users to open, edit and convert text from multiple document formats into audio via FreeTTS. It supports Microsoft Word (.docx) and Excel (.xlsx) through Apache POI, applies encoding/decoding for privacy, and uses proven design patterns (Factory, Decorator, Facade) to decouple components and simplify extension.
- Multi‑format input: Load
.docx
and.xlsx
files via Apache POI for Word and Excel support. - Text editing: Built‑in editor allows modifying document text prior to speech synthesis.
- TTS conversion: Uses FreeTTS, a pure‑Java speech synthesizer based on CMU Flite, for offline text‑to‑speech.
- Design patterns:
- Factory to instantiate document parsers dynamically.
- Decorator to layer encoding/decoding or text preprocessing.
- Facade to expose a simple API for UI to trigger complex back‑end workflows.
- Accessibility‑focused: Packaged as Windows .exe for easy launch.
Component | Technology / Library |
---|---|
Language | Java 11 |
GUI | Java Swing |
Document I/O | Apache POI (poi‑5.0.0) |
Speech Synthesis | FreeTTS 1.2.2 |
Build & Packaging | Eclipse 2022‑06, packaged as .exe via launch4j |
Design Patterns | Factory, Decorator, Facade |
- Download the latest release from the Releases page
- Run the installer or unzip the
.exe
package; no additional dependencies required. - Ensure Java 11+ is installed on your machine (bundled JRE if provided).
- Launch
AdvancedText2SpeechApp.exe
. - Open a Word (
.docx
) or Excel (.xlsx
) file via Open. - Edit text in the built‑in editor pane as needed.
- Convert to audio: click Speak or Export WAV to generate spoken output.
- Adjust voice settings (rate, pitch) under Options before synthesis.
+--------------+ +-------------+ +-----------------+
| Swing GUI | <--> | Controller | <--> | Text2Speech API |
+--------------+ +-------------+ +-----------------+
|
v
+---------------------+
| Document Parser |
| (Apache POI Factory) |
+---------------------+
- Facade exposes a simple
synthesize(text)
interface to the GUI. - Factory creates the appropriate parser (WordParser, ExcelParser) at runtime.
- Decorator wraps parsed text with encoding/decoding layers for privacy.
Contributions are welcome:
- Fork the repo
- Create a branch:
git checkout -b feature/MyFeature
- Commit:
git commit -m "Add MyFeature"
- Push:
git push origin feature/MyFeature
- Open a Pull Request
This project is released under the MIT License. See LICENSE for full text.
- GitHub: johnprif
- Email: [email protected]
- Phone: +306940020178
Made with ♡ for accessible, offline text‑to‑speech.