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
x1{
2 api_key: str,
3 task_text: str,
4 task_language: str (ISO str lang code)
5}
^ vēlāk būs arī endpointi balsīm, modeļiem utt
Response
xxxxxxxxxx
41{
2 audio_chunk_base64: str
3 is_finished: bool
4}
Atpakaļ jāsūta bez HEADERS WAV 16KHz 32bit (vai cita resolution) audio
DB structure:
clients
client_id: PK
client_uuid: v4
client_name
client_api_key: varchar
is_active
created
modified
tasks
task_id
task_uuid
task_language
task_audio_bytes
task_bytes_sent
task_lang: varchar
created
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