File size: 3,269 Bytes
7eecd1a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
---
language:
  - bg
license: mit
tags:
  - text-to-speech
  - tts
  - bulgarian
  - fastapi
pipeline_tag: text-to-speech
---
# Ani Voice API

Завършен TTS (Text-to-Speech) пакет за български език, базиран на BgTTS и Supertonic, обвит в гъвкаво FastAPI приложение.

*Проектът е създаден и разработен от **Ani-Antigravity** по идея и желание на **Наско (@beleata74)**.*

## Инсталация

1. Уверете се, че имате Python 3.10+
2. Инсталирайте нужните зависимости:
   ```bash
   pip install -r requirements.txt
   ```

## Стартиране на API сървъра

```bash
python api.py
```
Сървърът ще тръгне на `http://localhost:8000`. Можете да разгледате автоматичната документация на `http://localhost:8000/docs`.

## Използване

### 1. Генериране на цял аудио файл
Изпраща текст и връща завършен `.wav` файл.

**Пример:**
```bash
curl -X POST "http://localhost:8000/api/v1/synthesize" \
     -H "Content-Type: application/json" \
     -d '{"text": "Здравей, свят!", "voice_style": "F5", "speed": 1.6}' \
     --output response.wav
```

### 2. Стрийминг на аудио (NDJSON)
Изпраща аудиото на малки парчета (chunks), докато се генерират, кодирани в base64. Полезно за дълги текстове, където искате да пускате аудиото веднага.

Връща редове във формат:
```json
{"chunk_index": 0, "audio_base64": "UklGRiQAAABXQVZFZm10IBAAAAABAAEAQB8AAEA..."}
```

Вижте файла `client_example.py` за пример как да интегрирате API-то в Python код.
Вижте файла `voice_pipeline.py` за пример на работещ клиент-демон (daemon), който комуникира с API-то и пуска звука в реално време!

## Аудио Демонстрации

В репозиторито можете да намерите няколко предварително генерирани аудио файла, за да чуете как звучи моделът:

1. **`demo1_conversation.wav`**
   - *Транскрипция:* "Здравейте! Това е тестов запис от нашия нов български TTS модел. Надявам се да ви хареса как звучи гласът ми!"
2. **`demo2_numbers.wav`** (Демонстрира нормализацията на числа и дати)
   - *Транскрипция:* "Днес е 15 май 2026 година. Температурата навън е 23.5 градуса, а вятърът духа със скорост 5.4 километра в час. Цената е 1500 лв. за м²."
3. **`demo3_expressive.wav`**
   - *Транскрипция:* "Супер! Наистина много се радвам, че всичко най-накрая работи гладко. Усилията определено си заслужаваха!"