GoGospelNow Real-Time Preaching Translator
Quick Start (read this first)
The GoGospelNow Translator program uses three background technologies to work: Docker, Kokoro-Fast-TTS, and Ollama. You will also need to download some AI models through Ollama.com for the translator to work. This gives you flexibility based on the processing power of your device. I would suggest something of 2–4 billion parameters for computers without a large GPU. There is a list of suggested models.
If you do not have Docker or Ollama installed, install them first. Then install some translation models and clone the repo from GitHub or download from gogospelnow.com and set up the Python environment.
Step 1: Install Docker and Ollama (once)
- Install Docker: https://www.docker.com/
- Desktop (macOS/Windows): https://www.docker.com/products/docker-desktop/
- Linux Engine docs: https://docs.docker.com/engine/install/
- Install Ollama: https://ollama.com/
- Verify installation:
docker --version
ollama run gemma3n:e2b
Check Ollama service at: http://localhost:11434
Step 2: Clone this repository - (If you do not have git on your system go to https://git-scm.com/downloads)
git clone https://github.com/kenschultz64/gogospelnow.git
cd gogospelnow
Verify: Ensure you see the project files by running:
ls # or dir on Windows
Step 3: Create and activate a virtual environment
Linux/macOS
python3 -m venv venv
source venv/bin/activate
Verify activation: your prompt should show (venv)
.
Windows
python -m venv venv
venv\Scripts\activate
Verify activation: your prompt should show (venv)
.
Step 4: Install Python dependencies
pip install -r requirements.txt
✅ Verify: No errors should appear, and you should see installed packages with:
pip list
Step 5: Install FFmpeg and PortAudio
The app needs FFmpeg for audio processing and PortAudio for microphone support.
macOS
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install ffmpeg portaudio libsndfile
ffmpeg -version | head -n1
python -c "import sounddevice as sd; print('PortAudio:', sd.get_portaudio_version())"
Linux
Debian/Ubuntu:
sudo apt-get update
sudo apt-get install ffmpeg portaudio19-dev libsndfile1
Fedora/RHEL:
sudo dnf install ffmpeg portaudio-devel libsndfile
Arch Linux:
sudo pacman -S ffmpeg portaudio libsndfile
ffmpeg -version | head -n1
python3 -c "import sounddevice as sd; print('PortAudio:', sd.get_portaudio_version())"
Windows
- Download FFmpeg from FFmpeg Builds (ffmpeg-release-full.7z), extract with 7-Zip, rename folder to
ffmpeg
and move toC:\ffmpeg
. - Add
C:\ffmpeg\bin
to your PATH. - Verify:
ffmpeg -version
- Install PortAudio:
pip install pyaudio
- Verify:
python -c "import sounddevice as sd; print('PortAudio:', sd.get_portaudio_version())"
Step 6: Install and Start Kokoro TTS
CPU:
docker run -d --restart unless-stopped --name kokoro-cpu -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu
GPU:
docker run -d --gpus all --restart unless-stopped --name kokoro-gpu -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-gpu
✅ Verify:
docker ps
curl http://localhost:8880/v1/voices
You should see a list of available voices.
Step 7: Pull Ollama Models
Choose one or more (smaller models = faster):
ollama pull llama3.2:3b-instruct-q4_K_M
ollama pull gemma3n:e2b
ollama pull gemma3:4b
ollama pull granite3.3:2b
✅ Verify:
ollama list
You should see your installed models listed.
Step 8: Run the App
- Activate your virtual environment (if not active).
- Start the app:
python main.py
- Open browser: http://localhost:7860 (tested with Chrome).
Verify: The translator UI should load in your browser.
Features
- Transcription: Faster-Whisper with configurable models and device/precision
- Translation: Local LLM via Ollama HTTP API
- TTS: Kokoro FastAPI server with many voices
- Real-time pipeline with buffering and VAD controls
- Presets for CPU, Balanced, and Quality
- Translation history logging
Avoid Audio Loopback
Note translation audio should be isolated from the microphone or the program will loop back trying to interpret again what has been translated. Suggested use would be using an aux send to the computer’s input for the mic signal. Then use another aux send to output audio to a transmitter to send the translated audio to individual receivers with headphones. Also could be used with Bluetooth headphones depending on the distance and devices needed. Have built a version that broadcasts audio to a phone app but it is not yet ready for release.