- video-script.md, video-*.mp4 en .srt in de acht mappen - README-sectie Video's en CHANGELOG Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
7.8 KiB
titel: De Transcriptietool
ondertitel: Handleiding 5 · bouwen in Dify: van opname naar verslag
stem: nl-NL-FennaNeural
tempo: -5%
uitvoer: video-transcriptietool
reeks: Reeks AI Agents met Dify voor school
bron: git.lexconsultancy.nl/guido/dify-handleidingen
[titel] Welkom bij de vijfde handleiding van de reeks AI Agents met Dify voor school. Je bouwt de Transcriptietool: een workflow die een opname van een overleg omzet in tekst en er een verslag van maakt, met samenvatting, besluiten, actiepunten en wat is doorgeschoven.
Vier nodes, en één nieuwe bouwsteen: een tool in plaats van een taalmodel.
[kaart: Lees dit eerst | Een stem is een persoonsgegeven: geen opnames van echte mensen in Dify-cloud | We werken met een fictieve opname, voorgelezen door een computerstem | Opnemen van een overleg: vooraf toestemming van alle deelnemers | Audio verwijderen zodra het transcript er is | Een eigen OpenAI-sleutel is nodig: de gratis credits dekken alleen tekstmodellen] Eerst de afspraken, want deze use case is beoordeeld als risico middel. Een stem is een persoonsgegeven. Opnames van echte mensen gaan dus niet naar Dify-cloud; deze handleiding werkt met een fictief sectieoverleg van drie minuten, voorgelezen door een computerstem. Opnemen van een echt overleg vraagt vooraf toestemming van alle deelnemers, en de audio verwijder je zodra het transcript er is.
Je hebt een eigen OpenAI-sleutel nodig, ingesteld op Gebruiksprioriteit API-sleutel. Zonder eigen sleutel werkt de spraaktool niet. Kosten per run: ongeveer twee cent voor de transcriptie, minder dan een cent voor het verslag.
[beeld: a01-create-workflow.jpg | Stap 1. De workflow] Studio, Create, Create from Blank, Workflow. Naam: Transcriptietool. Klik op Create.
Zie je Upgrade to create more apps? Een sandbox-account mag vijf apps hebben, en agents tellen mee. Verwijder dan eerst een oude app.
[beeld: a05-veld-opname.jpg | Stap 2. Een invoerveld voor audio] Klik op User Input en op het plusje bij Input Field. Kies bij Field Type Single File. Het venster wordt langer: er verschijnen bestandstypen.
Variable Name opname, Label Name Opname van het overleg, mp3, m4a of wav. Bij Support File Types zet je Image uit en Audio aan. Upload File Types: Local Upload.
Let op: Image staat standaard aan. Zet hem uit, anders kan iemand straks een foto uploaden en loopt de workflow vast op de transcriptiestap. Klik op Save.
[beeld: a08-audio-tool.jpg | Stap 3. De transcriptiestap: een tool] Nu de nieuwe bouwsteen. Klik onder Next Step op Select Next Step en klik bovenin op het tabblad Tools. Klik onder All tools op Audio. Er klappen twee opties uit: Speech To Text en Text To Speech. Kies Speech To Text.
[beeld: a12-stt-klaar.jpg | Stap 3. Speech To Text ingesteld] Klik bij Audio File op Set variable en kies onder User Input de variabele opname. Klik bij Model op de keuzelijst; je ziet de spraakmodellen die via je sleutel beschikbaar zijn. Kies gpt-4o-transcribe-diarize. Diarize betekent dat het model sprekers uit elkaar houdt. Wil je goedkoper, kies dan whisper-1.
[beeld: a15-verslag-node.jpg | Stap 4. De verslagstap] Select Next Step, en nu onder Nodes de node LLM. Model op gpt-5-mini. Plak in System de instructie: begin je antwoord met de regel VERSLAG, maak een verslag van een overleg op een school op basis van het transcript hieronder. Het transcript komt van spraakherkenning en kan fouten bevatten in namen en getallen; zet een vraagteken tussen haakjes achter wat je niet zeker weet.
Dan de vijf kopjes: Overleg, Samenvatting van maximaal vijf zinnen, Besluiten, Actiepunten als tabel met wat, wie en wanneer, en Doorgeschoven. Laat zijpaden weg, verzin niets.
Typ na Transcript, dubbele punt, een schuine streep. Bovenaan de lijst staat nu Speech To Text met de variabele text. Kies die. Hernoem de node naar Verslag.
Die regel over het vraagteken is geen versiering. In onze test hoorde de spraakherkenning Karin de ene keer als Karen, en het verslag zette daar netjes een vraagteken bij. Een mens moet dat nakijken; de tool maakt zichtbaar waar.
[beeld: a18-output-klaar.jpg | Stap 5. Wat eruit komt] Select Next Step, Output. Twee uitvoervariabelen: verslag, met als bron Verslag text, en transcript, met als bron Speech To Text text. Zo krijgt de gebruiker het verslag én het volledige transcript.
[beeld: a19-overzicht.jpg | Stap 5. De hele workflow] Druk op Ctrl 1 en je ziet de hele workflow: User Input, Speech To Text, Verslag, Output. Vier nodes.
[beeld: a22-fout-te-groot.jpg | Stap 6. Testen: het bestand is te groot] Klik op Test Run en upload de opname. Gebruik het bestand met klein in de naam. Het andere bestand is dezelfde opname op 128 kilobit; die is 2,8 megabyte en dat is te groot. De tool stuurt audio als tekst naar de aanbieder, wat het bestand twee keer zo groot maakt, en de grens ligt op 5 megabyte. Je krijgt dan deze foutmelding: Payload Too Large.
Vuistregel: 3 megabyte per opname. Een half uur overleg past daar alleen in als je de opname eerst verkleint: mono, 16 kilohertz, 32 kilobit. Dat kan met elk audioprogramma of met ffmpeg; de opdracht staat in de handleiding.
[beeld: a25-verslag-schrijft.jpg | Stap 6. De workflow draait] Met het kleine bestand: Start Run. De transcriptie van drie minuten audio duurt ongeveer een minuut, daarna schrijft de Verslag-node.
[beeld: a26-resultaat.jpg | Stap 6. Het verslag] Onder Result: Overleg, Samenvatting, Besluiten. Controleer met het script dat bij de handleiding zit. In onze test: twee besluiten, vijf actiepunten met de juiste eigenaren en data, de leesmethode onder Doorgeschoven met de reden, en het koffieapparaat netjes weggelaten.
[beeld: a27-resultaat-vervolg.jpg | Stap 6. Actiepunten en transcript] Daaronder de actiepuntentabel, Doorgeschoven, en het volledige transcript.
[beeld: c02-drie-stemmen-tracing.jpg | Sprekers herkennen: wat het model wel en niet doet] Het model heet diarize, dus sprekers uit elkaar houden. Om te zien wat dat oplevert, zit er een tweede opname bij: hetzelfde script met drie verschillende computerstemmen. Draai de workflow daarmee en kijk in Logs, tabblad Tracing, bij de uitvoer van Speech To Text.
Dat is het eerlijke antwoord: het model knipt de tekst op sprekerwisselingen, met een regeleinde per stem, maar de tool geeft geen labels door, geen Spreker 1 of Spreker 2. Wie wat zei, leidt de Verslag-node af uit de inhoud. Dat lukt hier omdat de opening de namen noemt. In een overleg zonder zo'n opening worden de actiepunten niet genoemd.
Wil je echte sprekerlabels, dan staat in de handleiding een makkelijke route via de prompt en een precieze via een HTTP Request naar de spraak-API.
[beeld: a34-webapp-actiepunten.jpg | Stap 7. Publiceren] Publish, Publish, en Webapp openen. Upload de kleine opname en klik op Execute. Let op: na het uploaden schuift de knop Execute een stukje naar beneden.
In de webapp staat hetzelfde verslag, en rechtsboven bij de tabel een kopieerknop en een downloadknop. Daarmee zet een collega de actiepunten zo in een mail of een spreadsheet.
[kaart: Controleren of het gelukt is | Vier nodes: User Input, Speech To Text, Verslag, Output | Het invoerveld accepteert alleen audio | Test Run met de kleine opname geeft een verslag met vijf kopjes en daaronder het transcript | Onzekere namen staan met een vraagteken tussen haakjes | De webapp geeft hetzelfde resultaat met VERSLAG als kop] De controlelijst: vier nodes? Alleen audio als invoer? Vijf kopjes en het transcript? Vraagtekens bij onzekere namen? En werkt de webapp?
Wat je hier bouwt is een werkend prototype om te leren hoe het gaat. De stap naar echt gebruik, met opnames van echte collega's, is een aparte beslissing met een aparte omgeving.
[slot: Een tool in de keten, en een mens die naleest.] De handleiding, de testopnames en de beelden staan in de repository; de app staat live op udify punt app. In de volgende video bouwen we in de Agent Console de Lesmateriaal-check, met een eigen zoektool naar open leermateriaal. Tot dan.