IBMTTS GO Server
About this project
IBMTTS Android Bridge (Eloquence for Termux)
A high-performance bridge server that allows running the 32-bit Windows ETI Eloquence (IBMTTS) engine on Android devices via Termux, Box86, and Wine.
🚀 Overview
This project solves the “No source code” problem for porting legacy Windows TTS engines to Android. It uses a Go-based server to load the 32-bit Windows DLLs and provides a low-latency TCP socket for Android applications to stream real-time audio.
Features
- Ultra-Low Latency: Direct PCM streaming via TCP.
- Self-Contained: The Go binary can embed the entire engine (
ECI.DLL+.SYNfiles). - Termux Ready: Optimized for headless execution in Termux using Box86 and Wine.
- JSON Protocol: Simple command structure for
speak,stop, and parameter adjustments (speed, pitch, volume).
🛠️ Installation (Termux)
- Download the
setup_eloquence.shscript to your Termux home directory. - Make it executable:
chmod +x setup_eloquence.sh - Run the setup:
./setup_eloquence.sh - Start the engine:
start-eloquence
💻 Development & Building
Prerequisites
- Go (1.16 or higher)
- The engine files (
ECI.DLLand.SYNfiles) placed in alib/folder.
Building for 32-bit Windows
To build the server for use in Wine/Termux:
# Windows
$env:GOARCH='386'; $env:GOOS='windows'; go build -ldflags='-s -w' -o ibmtts_server_32bit.exe main.go
Testing (Python)
You can test the server using the provided test_client.py:
python test_client.py
📡 API Protocol
The server listens on 127.0.0.1:5555.
Speak Command
{
"cmd": "speak",
"text": "Hello world"
}
Set Parameters
{
"cmd": "set_param",
"param": "speed",
"value": 100
}
Supported params: speed, pitch, volume, voice.
Stop Command
{
"cmd": "stop"
}
⚖️ License
This bridge code is released under the MIT License. Note that the ETI Eloquence / IBMTTS engine components are proprietary and are not included in the source code. You must provide your own licensed DLLs.