77 lines
2.9 KiB
Markdown
77 lines
2.9 KiB
Markdown
# Telemovris 2.0 - Telegram TTS Call Bot
|
|
|
|
A dockerized application that converts text to audio (using Piper Neural TTS) and calls a Telegram user to play the message. Includes a modern Web Dashboard for management.
|
|
|
|
## Features
|
|
|
|
* **High Quality TTS**: Uses [Piper](https://github.com/rhasspy/piper) with `es_ES-sharvard-medium` model for human-like speech.
|
|
* **Web Dashboard**: Manage queue, view history, and test voices via browser.
|
|
* **Web-based Login**: Log in to your Telegram account directly from the UI (supports 2FA).
|
|
* **Web-based Configuration**: Set `API_ID`, `API_HASH`, and `Call Timeout` via the UI.
|
|
* **Flexible Inputs**: Auto-handles usernames with or without `@` prefix.
|
|
* **Real-time Queue**: Redis-backed queue with history and error reporting.
|
|
* **Smart Dialing**: Configurable timeout (default 15s), detects "Rejected" vs "No Answer", and watches for user hang-ups during playback.
|
|
* **Legacy API Support**: Compatible with simple GET requests.
|
|
|
|
## Prerequisites
|
|
|
|
* Docker & Docker Compose
|
|
|
|
## Installation
|
|
|
|
1. **Clone the repository**:
|
|
```bash
|
|
git clone https://gitlab.com/your/telemovris2.git
|
|
cd telemovris2
|
|
```
|
|
|
|
2. **Ensure Piper binaries are present**:
|
|
The project expects the Piper TTS binary and model in the `piper/` directory.
|
|
* `piper/piper/piper` (Executable)
|
|
* `piper/es_ES-sharvard-medium.onnx` (Model)
|
|
* `piper/es_ES-sharvard-medium.onnx.json` (Config)
|
|
|
|
3. **Start the container**:
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
|
|
## Configuration & Usage
|
|
|
|
### 1. Initial Setup
|
|
1. Open your browser and navigate to `http://localhost:8777`.
|
|
2. You will be prompted to enter your **Telegram API ID**, **API Hash**, **Phone Number**, and **Call Timeout**.
|
|
* Get API keys from [my.telegram.org](https://my.telegram.org).
|
|
* **Call Timeout**: Seconds to wait for the user to answer before cancelling (default 15s).
|
|
3. Click **Save Configuration**. The worker will restart.
|
|
|
|
### 2. Login
|
|
1. After configuration, the dashboard will verify calls.
|
|
2. Follow the simple 2-step process (Config -> Login) if not auto-logged in.
|
|
3. Enter the **Login Code** sent to your Telegram app.
|
|
4. If you have 2FA enabled, you will be prompted for your password.
|
|
|
|
### 3. Sending Messages
|
|
* **Via Dashboard**: Use the "Queue New Task" form.
|
|
* Username can be `@username` or just `username`.
|
|
* **Via Legacy API**:
|
|
```
|
|
GET http://localhost:8777/sendmessage?user=username&message=Hello+World&audio=yes
|
|
```
|
|
|
|
## Development
|
|
|
|
* **Reset Config**: If you need to change accounts, keys, or timeout settings, click the "Reset Config" button in the dashboard.
|
|
* **Logs**: Check worker logs for debugging:
|
|
```bash
|
|
docker logs -f telemovris_app
|
|
```
|
|
|
|
## Persistence
|
|
* **Session**: Telegram session is stored in `./data/session.madeline`.
|
|
* **Redis**: Job queue and history are persisted in `./redis_data`.
|
|
* **Config**: API credentials are stored in `./data/config.json`.
|
|
|
|
## License
|
|
MIT
|