Jag började mäta radioprat i sekunder, inte bara i kvalitet.
Ett banter kunde ta över hundra sekunder från start till färdigt resultat. Då spelar det ingen roll om texten är fantastisk om rätt radiolucka redan passerat.
Jag började dela upp tiden i separata steg: promptbyggnad, Gemma 3 via Ollama, Westin-AI, ljudpolish, queue och väntan på nästa säkra boundary.
Det ledde till idén om produktionstid före airtime. Show Engine ska på sikt kunna veta att ett tungt segment som ska höras 18:00 kanske måste börja renderas flera minuter tidigare.
Jag testade också warmup. Om röstmotorn hålls laddad slipper den kalla starten. Det kostar resurser men kan vara rätt under ett aktivt showblock.
Det här är fortfarande ett område jag förbättrar. Jag vill till slut ha en trace där ett enda segment visar exakt hur många millisekunder varje steg tog.
Latency gjorde queue-policy viktigare
Om ett klipp blir färdigt sent måste systemet avgöra om det fortfarande är relevant. Ett hourly som renderas tio minuter för sent kan inte alltid använda samma text. Ett showintro som kommer efter två låtar kanske ska kastas.
Det betyder att queue behöver förstå både ålder och typ, inte bara FIFO.
Jag började skilja generation deadline från air deadline
Det finns två tider som först såg ut som en: när text/röst måste vara färdig och när den ska höras. Om Broadcast bara kan spela ett visst segment på nästa track boundary måste renderingen vara klar före den boundaryn.
Det betyder att Kontrollcenter behöver planera med marginal. Ett klipp som blir klart två sekunder efter seam får kanske vänta fyra minuter på nästa. De två sekunderna kan alltså skapa flera minuters faktisk försening.
Det här gör prediction mycket värdefull. Jag behöver inte exakt veta hur lång nästa generering blir; jag behöver tillräckligt bra marginal för att inte missa rätt lucka.