De Circulaire #179: verslaafd aan AI 💉

Mijn ChatGPT Mastodon-bot, spraak naar tekst omzetten, hoe clip art ontstond en een kat die tandenborstels eet.

Ik heb het idee dat ik de afgelopen weken een beetje last heb van AI-verslaving. Plaatjes genereren met Stable Diffusion, chatten met ChatGPT en Bing’s Sydney (wel oppassen dat je geen privacygevoelige data invoert) en audio naar tekst omzetten met Whisper. Het is ongelofelijk hoe veel er de afgelopen maanden is gebeurd op dat gebied. In deze Circulaire vertel ik je over twee projecten waarin ik gebruik maak van AI: een Mastodon-bot en een tool om spraak naar tekst om te zetten.

Maar als je daar geen zin in hebt zijn er ook gewoon leuke linkjes (soms ook over AI) en gifjes (nog niet gegenereerd met AI).

Veel plezAIr met deze Circulaire! 

Rob Voxpop, de Mastodon-bot met kant-en-klare meningen

📷 HK / DALL-E 2

ChatGPT is, voor wie onder een steen heeft geleefd, een site waar je kan babbelen met een AI-chatbot. Maar je kan er ook als programmeur mee werken: met behulp van een zogenaamde API kun je de resultaten van ChatGPT gebruiken in je eigen programma.

Het leek me interessant om te kijken of je ChatGPT kon gebruiken om een Mastodonbot te schrijven. Bots waren ooit een typisch Twitter-fenomeneen, maar onder het nieuwe beleid van Elon Musk heeft Twitter de API afgesloten behalve als je minimaal $42.000 per maand betaalt (nee, dat is geen tikfout). Gelukkig is er Mastodon als alternatief, want daar kun je ook gewoon bots voor schrijven. En de API van Mastodon en het aanmaken van een bot blijkt ook nog eens veel eenvoudiger dan bij Twitter. Zeker als je een library gebruikt (ik gebruikte Mastodon.py voor Python) heb je echt letterlijk binnen tien minuten een bot draaiend.

De API van OpenAI voor ChatGPT is zo mogelijk nog makkelijker. Mits je een creditcard hebt kun je gebruik maken van de OpenAI-API en kun je teksten genereren met hetzelfde systeem dat ook door ChatGPT wordt gebruikt. Dat kost wat geld, maar heel weinig: voor 1000 ‘tokens’ (een token is grofweg een woord) betaal je 0,2 dollarcent. Als ChatGPT de complete werken van Shakespeare zou genereren (een stuk waarschijnlijker dan apen op typemachines) zou dat je zo’n 2 dollar kosten.

Voxpopjes

Maar wat laat ik ChatGPT genereren en post ik dan op Mastodon? Ik dacht opeens aan het welbekende voxpopje, de interviewtjes die nieuwsprogramma’s met ‘normale mensen’ afnemen. Met dat formaat heb ik weinig: de meningen zijn vaak zo kort en obligaat dat je net zo goed niks kan zeggen. Eigenlijk net zoals de meeste meningen op Twitter en andere sociale media. Ideaal dus om automatisch te genereren met behulp van AI!

In Python bouwde ik een bot die eerst een ‘karakter’ genereert (‘een boze vrouw van 56 uit Venlo’, ‘een spirituele man van 21 uit Geertruidenberg’). Dat karakter stuur ik dan naar ChatGPT samen met de laatste headline van de NOS en een schrijfopdracht zoals ‘schrijf alles in hoofdletters’ of ‘schrijf cynisch met veel emoji’s’. Zo’n prompt zou dus kunnen zijn:

Doe alsof je blije vrouw van 56 jaar uit Aalten bent en schrijf een tweet waarin je reageert op dit nieuwsbericht: "Laatste coronateststraten GGD sluiten vandaag: 'geen toegevoegde waarde'". Begin je zin met 'ik vind dat' en maak een tweet van maximaal 250 letters. Schrijf vanuit de eerste persoon. Schrijf niet wie je bent, herhaal geen persoonlijke details zoals je leeftijd en woonplaats. Vertel waarom dit de schuld is van big pharma.

De resultaten zijn vaak hilarisch en net zo zinloos als door mensen gegenereerde voxpopjes:

Het is fascinerend om te zien hoe ChatGPT de creatieve prompts verwerkt. De opdracht is om een tweet te schrijven dus er ontstaan automatisch bizarre hashtags als ‘#hummusnotbombs’.

Interessante toots volgen ook bij de meer extreme schrijfopdrachten als “schrijf cringy met veel afkortingen”:

Wilt u Rob ontmoeten? U vindt hem als @voxpoprob op Mastodon.nl. Rob stuurt vier keer per dag zijn voxpopjes rond de uitzendtijden van de NOS Journaals: om 7 uur ’s ochtends, 12 en 17 uur ’s middags en tijdens het achtuurjournaal.

Whisper

Een andere AI-technologie waar ik de afgelopen week mee speelde was Whisper. Dat is een systeem om spraak om te zetten naar tekst, net zoals ChatGPT gebouwd door OpenAI. Het model is getrained op 680.000 uur aan audio, waarvan een derde geen Engels is. Zowel de code als het model zijn open source. Je kunt, net zoals bij ChatGPT, gebruik maken van de API van OpenAI en je audio laten transcriberen (dat kost je zo’n 40 dollarcent per uur).

Ik doe een onderzoek samen met Sahra Mohamed van de Utrecht Data School naar podcasts, en daar willen we graag grote hoeveelheden audio met spraak gaan omzetten naar tekst. Een collega had haar gewezen op Whisper.cpp, een port van de code van Whisper naar C++. De port heeft als voordeel dat het een stuk makkelijker is om het draaiend te krijgen op verschillende machines. Zoals een minicomputer als de Raspberry Pi of een oude smartphone. En natuurlijk zit er ook een financieel en privacy-voordeel aan: je bent niet afhankelijk van een online partij waarvoor je moet betalen en waar mogelijk je data wordt gelekt.

Installeren van die software werkte vrij makkelijk op mijn Macbook. Vervolgens lieten we de software de recentste aflevering van NRC Vandaag transcriberen (dus het omzetten van audio naar tekst). We zagen iets geks in de output: het leek te werken maar alles was geschreven in het Engels. Had NRC Vandaag toevallig een Engelse aflevering vandaag? Nee, blijkbaar vertaalt Whisper als je de instellingen verkeerd hebt staan ook automatisch alles naar het Engels. Bizar. Vooral omdat de teksten in het Engels ook nog eens goed vertaald waren.

Ook fascinerend was dat Whisper niet alleen spraak omzet in tekst, maar ook geluiden. Dit zijn bijvoorbeeld de eerste paar seconden van dit bekende filmpje van Frans Bromet over de introductie van de mobiele telefoon in Nederland:

*Telefoon gaat over

Jezuite

Whisper werkt verbazingwekkend goed, maar het is zeker niet foutloos. Een bekend probleem is dat het model kan gaan ‘hallucineren’: dingen bedenken die er niet zijn. En ik heb ook al een aantal keer gezien dat het model blijft hangen en eindeloos dezelfde zin herhaalt:

Wil je me iets vertellen Whisper?

OpenAI biedt zelf dus geen tool aan om audio om te zetten naar tekst (behalve de API). Er zijn wel organisaties die op de code doorbouwen en er zelf een dienst omheen bouwen, zoals My Good Tape, een Deens initiatief van een lokale digitale krant, dat nu nog gratis is. Podcastnetwerk-lid Michiel testte het uit en meldde me dat er nog wat features misten zoals het kunnen herkennen van verschillende sprekers. Ook is er nog een beperkt aantal exportformats. Dingen die met een concurrent als Amberscript wel kunnen. Maar daar staat tegenover dat de transcriptie dus veel beter is dan die van de concurrent.

Ik ben ook zelf aan de slag gegaan met wat tooling te bouwen om Whisper. Mocht u een beetje handig zijn op de command line dan kunt u wellicht met audio2text uit de voeten om uw eigen audio (of video) te transcriberen. Als bonus kunt u ook nog makkelijk de transcripties die in het SRT-formaat worden opgeslagen omzetten naar CSV, JSON en andere dataformaten.

Nog meer AI

Het is makkelijk om te verzuipen in al het AI-nieuws, want ik heb van de week ook nog de nieuwe Bing-variant van ChatGPT uitgeprobeerd. Daarvoor moet je Edge downloaden (het grootste struikelblok voor Apple-adepten zoals ik). En dan heb ik het nog niet eens over de release van GPT-4, het nieuwe model van OpenAI.

Het enige wat ik eigenlijk nog mis is een AI om fear of missing out te verhelpen.

Mediadieet

📷 Atria Books

Wat ik de afgelopen tijd las.

  • Building a Second Brain. Zelfhulpboek van Tiago Forte waarin hij uitlegt hoe je een personal knowledge management-systeem voor jezelf kan bouwen met met een digitaal ‘tweede brein’. Forte vermijdt slim het noemen van specifieke software of tools, want die verouderen toch heel snel. In plaats daarvan legt hij een methode uit en laat hij zien hoe hijzelf en zijn studenten deze toepassen. Building a Second Brain werkt het beste als je het niet als een bijbel ziet maar als een gereedschapskist waar je delen uit overneemt die goed passen bij jouw manier van werken. Er is voor iedereen wel iets in dit boek te vinden om je te beschermen tegen de dagelijkse waterval van informatie. (★★★☆)

De beste linkjes

📷 Julian Hespenheide

Josephine Cochrane op een Roemeense postzegel uit 2013. 📷 PD / Wikimedia Commons

📷 Chris McCormick

De beste gifjes

De chef kattengifjes had afgelopen week haar laatste werkdag bij haar werkgever. Ze is dus weer beschikbaar voor nieuwe klussen en uitdagingen. Zoekt u een werkelijk fantastische digitaal projectleider met uitgebreide ervaringen in de culturele en educatieve sector? Laat het mij (of haar) weten!

Deze keer is het thema van de gifjes “afblijven”. Zoals deze kat die gewoon van je tandenborstel af moet blijven.

Deze aap moet van deze kerel afblijven. Of moet die kerel gewoon geen foto’s maken?

En deze vis wil graag dat mensen van z’n schubben afblijven!

En dat was het!

De volgende Circulaire komt uit op maandag 3 april 2022. Dan ben ik net terug van een lang weekend in London. Heeft u tips? Ik hoor het graag!

Tot dan!

Vier trouwe lezers doneerden de afgelopen twee weken aan deze nieuwsbrief, waarvoor hartelijk dank! Heeft u ook iets over voor deze nieuwsbrief? Dan doneert u gemakkelijk en snel via deze link. Ik dank u alvast hartelijk, net zoals uw partner, uw nageslacht en uw hele familie. Bedankt!