⌨️ ➜ 🔊 Offline Text to Speech Application
Your private offline Text-To-Speech app for Android, Linux, Windows. The application is made with Kivy and KivyMD on Python.
Overview: The app uses KivyMD and Kivy mainly for the AI Chatbot UI. It mainly uses PiperTTS on Desktop environments and native Android-TTS on
Androidplatform.
💰 Sponsor Me
You can buy me a coffee via
this link
or tap on below image. Thank you 🙏.
📽️ Demo
You can play below Video or click this
Youtube Link
to see the demo. Please let me know in the comments, how do you feel about this App.
🖧 Our Scematic Architecture
To be added...
🧑💻 Quickstart Guide
📱 Download & Run the Android App
Get the app from
Google Play Store
You can check the Releases and downlaod the latest version of the android app on your phone.
If you use the
Downloadbutton from the app, you can save the selected audio (.wav) in one of the mentioned folders:Downloads,Music,Podcasts,RecordingsorRingtonesdue android file access restrictions.If you have a
Samsungphone (or some other brand's phone) which doesn't haveSettings>Accessibility>Talkback>Settings>text-to-speech settings>Preferred engine> then choosetext-to-speech settingsinSettings.
💻 Download & Run the Windows or Linux App
Get the app from
Microsoft App Store
You can also check the
Releases
and downlaod the latest version of the application on your computer. If you are on
Windows
, download the
dlTTS_x.x.x.exe
file & double click to run it. If you are on
Linux
, download
dlTTS_Linux_XXX
file and run it.
Notes:
- Some Antivirus softwares might give you detection alert for the exe (happens for PyInstaller apps), you need to add an exception in that case.
- On Linux you may need to change file permission to execute it.
🐍 Run with Python
-
Clone the repo
-
Run the application as show below & you can download the voice models from settings of the app.
📥 More open-source apps from us
You may check our other apps from our app list
🦾 Build your own App
The Kivy project has a great tool named
Buildozer
which can make mobile apps for
Android
&
iOS
📱 Build Android App
A Linux environment is recommended for the app development. If you are on Windows, you may use
WSL
or any
Virtual Machine
. As of now the
buildozer
tool works on Python version
3.10
at maximum. I am going to use Python
3.9
# add the python repository
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
# install all dependencies.
sudo apt install -y ant autoconf automake ccache cmake g++ gcc lbzip2 libffi-dev libltdl-dev libtool libssl-dev make openjdk-17-jdk patch pkg-config python3-dev python3-pip unzip wget zip git python3.9 python3.9-venv
# optionally you may check the java installation with below commands
java -version
javac -version
# install python modules
git clone https://github.com/daslearning-org/text-to-speech-offline.git
cd text-to-speech-offline/kivy/
python3.9 -m venv .env # create python virtual environment
source .env/bin/activate
pip install -r req_android.txt
# build the android apk
buildozer android debug # this may take a good amount of time for the first time & will generate the apk in the bin directory
🖳 Build Computer Application (Windows / Linux / MacOS)
A
Python
virtual environment is recommended and please follow the same steps from above till the pip module installations (do not require buildozer for desktop apps). It builds a native app depending on the OS type i.e.
.exe
if you are running
PyInstaller
from a Windows machine. Build computer apps from
docker image
for any OS type.
# install pyinstaller
pip install pyinstaller
# generate the spec file
pyinstaller --name "dasLearningTTS" --windowed --onefile main.py # optional as it is already create in the repo
# then update the spec file as needed
# then build your app which will be native to the OS i.e. Linux or Windows or MAC
pyinstaller dasLearningTTS.spec
Build Windows exe from Linux
-
Install Wine
# Add the Wine repository key sudo mkdir -pm755 /etc/apt/keyrings sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key # Add the Wine repository for your Linux Mint version # For Linux Mint 21.x (Vanessa, Virginia, Victoria - based on Ubuntu 22.04 Jammy Jellyfish) # Replace 'jammy' with your Ubuntu base codename if different (e.g., 'focal' for Mint 20.x) sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources # Update package lists sudo apt update # Install Wine (Stable branch is usually recommended) sudo apt install --install-recommends winehq-stable # If you need 32-bit support (highly recommended for Python/PyInstaller compatibility) # This command typically handles it, but if you encounter issues later, ensure 32-bit architecture is enabled: sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32 # This might be pulled by winehq-stable, but good to ensure -
Download Windows Python from official page and then install
-
Then run the development
cd kivy/ wine pip install pyinstaller wine pip install -r requirements.txt # Also install kivy-deps.sdl2, kivy-deps.glew, kivy-deps.angle explicitly if not pulled by Kivy/KivyMD wine pip install kivy-deps.sdl2 kivy-deps.glew kivy-deps.angle # Replace 'Python39' with your installed Python version in Wine wine pyinstaller dasLearningTTS.spec # exe will be in the dist folder
🐞 Issues
There can be few issues & some solutions around it.
Android Issues
-
Sometimes the apk might not get installed. You may enable
Developer Options>USB Debuggingand run below command with adb tool .