| --- |
| 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`** |
| - *Транскрипция:* "Супер! Наистина много се радвам, че всичко най-накрая работи гладко. Усилията определено си заслужаваха!" |
| |