I often found myself wanting to convert large text files (like book chapters or long articles) into audio using the excellent open-source Piper TTS engine. Handling very large inputs directly can be a bit tricky, and I wanted a smoother workflow.
So, I built this project:
1. A simple Flask/Gunicorn API server (`server/piper_api.py`) that wraps the Piper executable.
2. A PySide6 GUI client (`client/piper_api_gui.py`) that interacts with the server.
The key feature is that the client automatically splits large text files into smaller chunks (sentence-like segments), sends these chunks to the API server to be processed in parallel (using Python's `ThreadPoolExecutor`), and then combines the resulting WAV audio snippets back into a single file. This makes synthesizing long texts much more manageable and faster than doing it sequentially.
The tech stack is Python, Flask, Gunicorn, PySide6, and Requests. It's all open source on GitHub.
MaximosMK•3h ago
I often found myself wanting to convert large text files (like book chapters or long articles) into audio using the excellent open-source Piper TTS engine. Handling very large inputs directly can be a bit tricky, and I wanted a smoother workflow.
So, I built this project: 1. A simple Flask/Gunicorn API server (`server/piper_api.py`) that wraps the Piper executable. 2. A PySide6 GUI client (`client/piper_api_gui.py`) that interacts with the server.
The key feature is that the client automatically splits large text files into smaller chunks (sentence-like segments), sends these chunks to the API server to be processed in parallel (using Python's `ThreadPoolExecutor`), and then combines the resulting WAV audio snippets back into a single file. This makes synthesizing long texts much more manageable and faster than doing it sequentially.
The tech stack is Python, Flask, Gunicorn, PySide6, and Requests. It's all open source on GitHub.
Happy to answer any questions or hear feedback!