2024-08-29 TTS API Task

Lūdzu websocket based FastAPI solution taisi šeit: https://github.com/asya-ai/tts-api

Paraugs WebSocket based FastAPI ar worker fonā https://github.com/asya-ai/api_gramatins.git

Jātaisa tā, ka worker fonā pa batches dinamiski ģenerē binary saturu, kuru glabā datu bāzē (piekļuvi tulīt iedošu), vietu kur uzstādīt ari vēlāk. Un savukārt API visu laiku stream back pēdējās izmaiņas katrā sesijā kā WAV datus, kurus klienta pusē uzreiz var atskaņot. Lai testētu jāizveido neliela frontend app ar HTML + JS, lai varētu ierakstīt tekstu un momentālīgi dabūt dzirdēt atpakaļ ģenerēto balsi.

Pirmajā versijā nav jābūt vēl voice conversion. Ja tev vēl nav sakarīgi mūsu pašu modeļi lūdzu uzliec kādu no publiskajiem modeļiem.

Websocket endpoint input būs JSON: /tts

^ vēlāk būs arī endpointi balsīm, modeļiem utt

Response

Atpakaļ jāsūta bez HEADERS WAV 16KHz 32bit (vai cita resolution) audio

 

DB structure:

  1. clients

    1. client_id: PK

    2. client_uuid: v4

    3. client_name

    4. client_api_key: varchar

    5. is_active

    6. created

    7. modified

  2. tasks

    1. task_id

    2. task_uuid

    3. task_language

    4. task_audio_bytes

    5. task_bytes_sent

    6. task_lang: varchar

    7. created

    8. modified

 

Vēlāk būs dažādi workers, piem vairākām valodām vai uz vienu vairāki workers, svaŗigi, ka nav nekādi sleep, bet tā vietā ir DB triggers worker pusē uz tasks tabulas izmaiņām šādi (Kristiana Heniņa jau izdarīja un Mārcis sāka implementēt savos API arī tā) https://www.perplexity.ai/search/psycopg2-how-to-trigger-python-WkfwHW.hRWaRzb13__rZvw