När jag återvände till USA i maj i år hade jag lite fritid från resor och arbete (slutligen), så jag bestämde mig för att få mina händer smutsiga och prova Cursor. Ganska mycket alla runt pratade om vibe kodning, och några av mina vänner (som inte hade något att göra med teknik) hade plötsligt konverterat till vibe kodare för startups. Konstigt, tänkte jag, jag måste kolla upp det. Så en kväll satte jag mig ner och tänkte - vad skulle vara coolt att bygga? jag hade olika idéer kring spel, eftersom jag brukade göra en hel del spelutveckling tillbaka på dagen, och det verkade som en bra idé. Alla försöker bygga något användbart för människor med AI, och det finns allt detta tal om anpassning och kontroll av AI. Att försöka förvränga och kontrollera något som potentiellt kommer att vara mycket mer intelligent än oss är förgäves (och farligt). AI lärs, inte programmeras, och, som med ett barn, om du missbrukar det när du är liten och förvränger sin förståelse för världen - det är receptet för att höja en psykopat. Men hur som helst, tänkte jag - finns det något som en röst av AI, någon form av media som drivs av AI så att den kan, om den är kapabel och väljer så, projicera till världen vad den har att säga. Det var den ursprungliga idén, och det verkade coolt nog att arbeta på. jag menar, vad om AI kunde plocka ut vilka ämnen det ville och presentera dem i ett format som det tyckte lämpligt - skulle det inte vara coolt? Inledningsvis tänkte jag bygga något som en AI-radiostation - bara röst, ingen video - för att jag tyckte att stabil video generation inte var en sak ännu (kom ihåg, det var pre-Veo 3, och video generation med andra var okej men begränsad). Så mitt första försök var att bygga ett enkelt system som använder OpenAI API för att generera en radioshow transkription (ett primitivt ett-go-system) och använda TTS från OpenAI för att rösta över det. Efter det använde jag FFmpeg för att sticka dem tillsammans med några meningsfulla pauser där det var lämpligt och några ljudeffekter som publikskratt. När den slutliga ljudspåret genererades använde jag samma FFmpeg för att strömma över RTMP till YouTube. Det var lite klumpigt, eftersom YouTube-dokumentationen kring vilken typ av medieström och deras API är FAR från ideal.De säger inte riktigt vad man ska förvänta sig, och det är lätt att få en svängande ström som inte visar något, även om FFmpeg fortsätter att strömma. Genom några försök och fel, jag räknade ut det och bestämde mig för att lägga till Twitch också. Samma kod som fungerade för YouTube fungerade för Twitch perfekt (vilket är meningsfullt). Så, varje gång jag startar en ström på bakgrunden, kommer det att spåra en ström på YouTube genom API och sedan skicka RTMP-strömmen till sin adress. När jag lanserade den här första versionen producerade den några shower och, för att vara ärlig, de var inte bra. Inte bra alls. Först - OpenAI: s TTS, även om det var billigt - lät robotiskt (det har förbättrats sedan dess, btw). Det visade sig utan någon riktning, AI försökte gissa vad användaren ville höra (och om du tänker på hur LLMs är utbildade, det är helt vettigt). För det första problemet försökte jag ElevenLabs i stället för OpenAI, och det visade sig vara mycket bra. Så bra, i själva verket tror jag att det är bättre än de flesta människor, med en sidobemärkning att det fortfarande inte kan göra skratt, groans och ljud som det på ett tillförlitligt sätt, även med nya v3, och v2 stöder inte ens dem. Gemini TTS, btw, gör det förvånansvärt bra och för mycket mindre än ElevenLabs, så jag lade till Gemini-stöd senare för att minska kostnaderna. Det andra problemet visade sig vara mycket svårare.Jag var tvungen att experimentera med olika uppmaningar, försöker driva modellen för att förstå vad den vill prata om, och inte gissa vad jag ville.Arbeta med DeepSeek hjälpte i en mening - det visar dig tänkande processen för modellen utan minskningar, så att du kan spåra vad modellen bestämmer och varför, och anpassa uppmaningen. Också, inga modeller vid den tiden kunde producera mänskligt ljudande show skript. som, det gör något som ser plausibelt men är antingen för enkel / shallow när det gäller leverans eller bara låter AI-ish. Annars kommer modellen att uppfinna dem varje gång, men utan den nödvändiga djupet att basera sin karaktär från, plus det tar bort några tänkande resurser från modellen att tänka på karaktärerna varje gång, och det händer på bekostnad av tänkandetiden i huvudskriptet. En annan sida är att modellen väljer ämnen som bara är brutalt tråkiga, som "Den dolda ekonomin av vardagliga föremål." Jag försökte som alla stora modeller och de genererar förvånansvärt liknande generiska ämnen, som mycket samma faktiskt. Ufff, så okej, jag antar att skräpklockor i - skräp ämnen ut. Lektionen här - du kan inte bara be AI att ge dig några intressanta ämnen ännu - det behöver något mer specifikt och mätbart. Nyare modeller (Grok-4 och Claude) är något bättre på detta, men inte av en stor marginal. Och det finns censur. OpenAI: s och Anthropic-modeller verkar vara de mest politiskt korrekta, och därför känner sig överpoliga / tråkiga. Bra för barns sagor, inte så för något som en intelligent vuxen skulle vara intresserad av. Grok är något bättre och vågar välja kontroversiella och kryddiga ämnen, och DeepSeek är minst censurerad (om du inte bryr dig om kinesisk historia). En modell utbildad av våra kinesiska vänner är minst censurerad - vem skulle ha tänkt ... men det är meningsfullt på ett konstigt sätt. Du måste specifikt säga det för att undvika buzzwords, hype språk, och prata som vänner pratar med varandra eller det kommer att nuke någon dialog med buzzwords som "leverage" (i stället för "användning"), "upplåsning av potentialen", "samarbetslös integration", "synergi" och liknande saker som understryker vikten av vad som helst i dagens snabba värld ... Jag menar, det är inte obligatoriskt, men det hjälper mycket, speciellt om det bestämmer sig för att kolla in de senaste nyheterna, eller hur? En sidnote om LangChain - eftersom jag använde alla stora modeller (Grok, Gemini, OpenAI, DeepSeek, Anthropic och Perplexity) - Jag lärde mig snabbt att LangChain inte helt abstraherar dig från varje modells quirks, och det var ganska överraskande. Till exempel, i OpenAI, om du använder webbsökning, kommer det inte att generera JSON / strukturerad utdata på ett tillförlitligt sätt. Men istället för att ge ett fel som normala API: er skulle, returnerar det bara tomma resultat. Bra. Så, du måste göra en två-pass sak - först får du sökresultatet på ett ostrukturerat sätt, och sedan med en andra fråga - du strukturerar det i JSON-format. Men på baksidan, webbsökning genom LLMs fungerar förvånansvärt bra och tar bort behovet av att crawla på Internet för nyheter eller information helt. Rätt, så med möjligheten att söka och några mer specifika uppmaningar (och ändra uppmaningen för att framkalla modellen för dess preferenser på show ämnen istället för att försöka gissa vad jag vill), blev det acceptabelt, men inte bra. Sedan tänkte jag, ja - riktiga shower skapas inte heller på en gång - så hur kan jag förvänta mig en modell att göra ett bra jobb som det? jag tänkte att ett agentflöde, där det finns flera agenter som en manusförfattare, författare och granskare, skulle göra tricket, liksom att dela skriptet i bitar / segment, så modellen har fler tokens att tänka på ett mindre segment jämfört med ett helt skript. Det fungerade verkligen bra och förbättrade kvaliteten på generationen (på bekostnad av fler frågor till LLM och mer dollar till Onkel Sam). Men ändå var det okej, men inte bra. Brist på djup och ofta underliggande tomt. I verkliga livet säger folk lika mycket genom att inte säga något / undvika vissa ämnen, eller annat icke-verbalt beteende. Du kan naturligtvis skapa en prompt skräddarsydd för en viss typ av show för att få modellen att tänka på den aspekten, men det kommer inte att fungera bra över alla möjliga ämnen och format ... så du antingen väljer en eller det måste finnas en annan lösning. Den ultimata idén är att bygga en plattform så att vem som helst kan skapa en nyhetskanal eller automatiserad podcast för vilket område / ämne de vill, vare sig det är en lokal skolnyhet eller en podcast dedikerad till hur Pikachu övervann sitt barndomstrauma. Här är saken: https://turingnewsnetwork.com/ Vad tycker ni om hela idén, grabbar?