feat: uitlegvideo bij elke handleiding (schermafbeeldingen, Nederlandse stem, ondertitels)

- 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>
This commit is contained in:
Guido van Dijk
2026-09-21 17:31:45 +02:00
parent 9c6a9c9a49
commit f134e29625
26 changed files with 5008 additions and 0 deletions
+84
View File
@@ -0,0 +1,84 @@
# 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.
Binary file not shown.
@@ -0,0 +1,448 @@
1
00:00:00,000 --> 00:00:05,639
Welkom bij de vijfde handleiding van de reeks AI Agents met Dify voor school.
2
00:00:05,689 --> 00:00:07,781
Je bouwt de Transcriptietool:
3
00:00:07,831 --> 00:00:19,085
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.
4
00:00:19,135 --> 00:00:21,744
Vier nodes, en één nieuwe bouwsteen:
5
00:00:21,794 --> 00:00:24,528
een tool in plaats van een taalmodel.
6
00:00:25,328 --> 00:00:30,501
Eerst de afspraken, want deze use case is beoordeeld als risico middel.
7
00:00:30,551 --> 00:00:32,855
Een stem is een persoonsgegeven.
8
00:00:32,905 --> 00:00:44,698
Opnames van echte mensen gaan dus niet naar Dify-cloud; deze handleiding werkt met een fictief sectieoverleg van drie minuten, voorgelezen door een computerstem.
9
00:00:44,748 --> 00:00:54,114
Opnemen van een echt overleg vraagt vooraf toestemming van alle deelnemers, en de audio verwijder je zodra het transcript er is.
10
00:00:54,164 --> 00:01:00,293
Je hebt een eigen OpenAI-sleutel nodig, ingesteld op Gebruiksprioriteit API-sleutel.
11
00:01:00,343 --> 00:01:03,677
Zonder eigen sleutel werkt de spraaktool niet.
12
00:01:03,727 --> 00:01:04,780
Kosten per run:
13
00:01:04,830 --> 00:01:10,568
ongeveer twee cent voor de transcriptie, minder dan een cent voor het verslag.
14
00:01:11,368 --> 00:01:15,721
Studio, Create, Create from Blank, Workflow.
15
00:01:15,771 --> 00:01:16,222
Naam:
16
00:01:16,272 --> 00:01:17,923
Transcriptietool.
17
00:01:17,973 --> 00:01:19,424
Klik op Create.
18
00:01:19,474 --> 00:01:22,927
Zie je Upgrade to create more apps?
19
00:01:22,977 --> 00:01:29,232
Een sandbox-account mag vijf apps hebben, en agents tellen mee.
20
00:01:29,282 --> 00:01:32,584
Verwijder dan eerst een oude app.
21
00:01:33,384 --> 00:01:38,018
Klik op User Input en op het plusje bij Input Field.
22
00:01:38,068 --> 00:01:40,901
Kies bij Field Type Single File.
23
00:01:40,951 --> 00:01:43,153
Het venster wordt langer:
24
00:01:43,203 --> 00:01:45,765
er verschijnen bestandstypen.
25
00:01:45,815 --> 00:01:52,341
Variable Name opname, Label Name Opname van het overleg, mp3, m4a of wav.
26
00:01:52,391 --> 00:01:57,115
Bij Support File Types zet je Image uit en Audio aan.
27
00:01:57,165 --> 00:01:58,737
Upload File Types:
28
00:01:58,787 --> 00:01:59,908
Local Upload.
29
00:01:59,958 --> 00:02:00,538
Let op:
30
00:02:00,588 --> 00:02:02,880
Image staat standaard aan.
31
00:02:02,930 --> 00:02:12,339
Zet hem uit, anders kan iemand straks een foto uploaden en loopt de workflow vast op de transcriptiestap.
32
00:02:12,389 --> 00:02:13,560
Klik op Save.
33
00:02:14,360 --> 00:02:16,358
Nu de nieuwe bouwsteen.
34
00:02:16,408 --> 00:02:23,305
Klik onder Next Step op Select Next Step en klik bovenin op het tabblad Tools.
35
00:02:23,355 --> 00:02:25,977
Klik onder All tools op Audio.
36
00:02:26,027 --> 00:02:28,382
Er klappen twee opties uit:
37
00:02:28,432 --> 00:02:31,321
Speech To Text en Text To Speech.
38
00:02:31,371 --> 00:02:33,152
Kies Speech To Text.
39
00:02:33,952 --> 00:02:40,813
Klik bij Audio File op Set variable en kies onder User Input de variabele opname.
40
00:02:40,863 --> 00:02:48,918
Klik bij Model op de keuzelijst; je ziet de spraakmodellen die via je sleutel beschikbaar zijn.
41
00:02:48,968 --> 00:02:51,562
Kies gpt-4o-transcribe-diarize.
42
00:02:51,612 --> 00:02:56,425
Diarize betekent dat het model sprekers uit elkaar houdt.
43
00:02:56,475 --> 00:02:59,632
Wil je goedkoper, kies dan whisper-1.
44
00:03:00,432 --> 00:03:04,212
Select Next Step, en nu onder Nodes de node LLM.
45
00:03:04,262 --> 00:03:05,808
Model op gpt-5-mini.
46
00:03:05,858 --> 00:03:08,122
Plak in System de instructie:
47
00:03:08,172 --> 00:03:18,096
begin je antwoord met de regel VERSLAG, maak een verslag van een overleg op een school op basis van het transcript hieronder.
48
00:03:18,146 --> 00:03:30,065
Het transcript komt van spraakherkenning en kan fouten bevatten in namen en getallen; zet een vraagteken tussen haakjes achter wat je niet zeker weet.
49
00:03:30,115 --> 00:03:31,581
Dan de vijf kopjes:
50
00:03:31,631 --> 00:03:41,396
Overleg, Samenvatting van maximaal vijf zinnen, Besluiten, Actiepunten als tabel met wat, wie en wanneer, en Doorgeschoven.
51
00:03:41,446 --> 00:03:43,949
Laat zijpaden weg, verzin niets.
52
00:03:43,999 --> 00:03:48,098
Typ na Transcript, dubbele punt, een schuine streep.
53
00:03:48,148 --> 00:03:53,205
Bovenaan de lijst staat nu Speech To Text met de variabele text.
54
00:03:53,255 --> 00:03:53,923
Kies die.
55
00:03:53,973 --> 00:03:56,237
Hernoem de node naar Verslag.
56
00:03:56,287 --> 00:04:00,147
Die regel over het vraagteken is geen versiering.
57
00:04:00,197 --> 00:04:09,802
In onze test hoorde de spraakherkenning Karin de ene keer als Karen, en het verslag zette daar netjes een vraagteken bij.
58
00:04:09,852 --> 00:04:14,400
Een mens moet dat nakijken; de tool maakt zichtbaar waar.
59
00:04:15,200 --> 00:04:17,375
Select Next Step, Output.
60
00:04:17,425 --> 00:04:19,421
Twee uitvoervariabelen:
61
00:04:19,471 --> 00:04:26,896
verslag, met als bron Verslag text, en transcript, met als bron Speech To Text text.
62
00:04:26,946 --> 00:04:32,552
Zo krijgt de gebruiker het verslag én het volledige transcript.
63
00:04:33,352 --> 00:04:37,978
Druk op Ctrl 1 en je ziet de hele workflow:
64
00:04:38,028 --> 00:04:42,762
User Input, Speech To Text, Verslag, Output.
65
00:04:42,812 --> 00:04:44,008
Vier nodes.
66
00:04:44,808 --> 00:04:47,977
Klik op Test Run en upload de opname.
67
00:04:48,027 --> 00:04:51,544
Gebruik het bestand met klein in de naam.
68
00:04:51,594 --> 00:04:59,636
Het andere bestand is dezelfde opname op 128 kilobit; die is 2,8 megabyte en dat is te groot.
69
00:04:59,686 --> 00:05:10,338
De tool stuurt audio als tekst naar de aanbieder, wat het bestand twee keer zo groot maakt, en de grens ligt op 5 megabyte.
70
00:05:10,388 --> 00:05:13,035
Je krijgt dan deze foutmelding:
71
00:05:13,085 --> 00:05:14,601
Payload Too Large.
72
00:05:14,651 --> 00:05:15,558
Vuistregel:
73
00:05:15,608 --> 00:05:17,472
3 megabyte per opname.
74
00:05:17,522 --> 00:05:23,910
Een half uur overleg past daar alleen in als je de opname eerst verkleint:
75
00:05:23,960 --> 00:05:26,608
mono, 16 kilohertz, 32 kilobit.
76
00:05:26,658 --> 00:05:33,792
Dat kan met elk audioprogramma of met ffmpeg; de opdracht staat in de handleiding.
77
00:05:34,592 --> 00:05:36,341
Met het kleine bestand:
78
00:05:36,391 --> 00:05:37,124
Start Run.
79
00:05:37,174 --> 00:05:44,840
De transcriptie van drie minuten audio duurt ongeveer een minuut, daarna schrijft de Verslag-node.
80
00:05:45,640 --> 00:05:46,644
Onder Result:
81
00:05:46,694 --> 00:05:49,320
Overleg, Samenvatting, Besluiten.
82
00:05:49,370 --> 00:05:53,617
Controleer met het script dat bij de handleiding zit.
83
00:05:53,667 --> 00:05:54,671
In onze test:
84
00:05:54,721 --> 00:06:07,288
twee besluiten, vijf actiepunten met de juiste eigenaren en data, de leesmethode onder Doorgeschoven met de reden, en het koffieapparaat netjes weggelaten.
85
00:06:08,088 --> 00:06:14,352
Daaronder de actiepuntentabel, Doorgeschoven, en het volledige transcript.
86
00:06:15,152 --> 00:06:19,196
Het model heet diarize, dus sprekers uit elkaar houden.
87
00:06:19,246 --> 00:06:23,513
Om te zien wat dat oplevert, zit er een tweede opname bij:
88
00:06:23,563 --> 00:06:27,682
hetzelfde script met drie verschillende computerstemmen.
89
00:06:27,732 --> 00:06:34,678
Draai de workflow daarmee en kijk in Logs, tabblad Tracing, bij de uitvoer van Speech To Text.
90
00:06:34,728 --> 00:06:36,837
Dat is het eerlijke antwoord:
91
00:06:36,887 --> 00:06:47,407
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.
92
00:06:47,457 --> 00:06:51,278
Wie wat zei, leidt de Verslag-node af uit de inhoud.
93
00:06:51,328 --> 00:06:54,702
Dat lukt hier omdat de opening de namen noemt.
94
00:06:54,752 --> 00:06:59,912
In een overleg zonder zo'n opening worden de actiepunten niet genoemd.
95
00:06:59,962 --> 00:07:10,904
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.
96
00:07:11,704 --> 00:07:14,459
Publish, Publish, en Webapp openen.
97
00:07:14,509 --> 00:07:17,906
Upload de kleine opname en klik op Execute.
98
00:07:17,956 --> 00:07:18,467
Let op:
99
00:07:18,517 --> 00:07:23,596
na het uploaden schuift de knop Execute een stukje naar beneden.
100
00:07:23,646 --> 00:07:31,771
In de webapp staat hetzelfde verslag, en rechtsboven bij de tabel een kopieerknop en een downloadknop.
101
00:07:31,821 --> 00:07:37,672
Daarmee zet een collega de actiepunten zo in een mail of een spreadsheet.
102
00:07:38,472 --> 00:07:39,951
De controlelijst:
103
00:07:40,001 --> 00:07:40,940
vier nodes?
104
00:07:40,990 --> 00:07:43,099
Alleen audio als invoer?
105
00:07:43,149 --> 00:07:45,797
Vijf kopjes en het transcript?
106
00:07:45,847 --> 00:07:48,585
Vraagtekens bij onzekere namen?
107
00:07:48,635 --> 00:07:50,294
En werkt de webapp?
108
00:07:50,344 --> 00:07:56,410
Wat je hier bouwt is een werkend prototype om te leren hoe het gaat.
109
00:07:56,460 --> 00:08:06,264
De stap naar echt gebruik, met opnames van echte collega's, is een aparte beslissing met een aparte omgeving.
110
00:08:07,064 --> 00:08:15,145
De handleiding, de testopnames en de beelden staan in de repository; de app staat live op udify punt app.
111
00:08:15,195 --> 00:08:24,515
In de volgende video bouwen we in de Agent Console de Lesmateriaal-check, met een eigen zoektool naar open leermateriaal.
112
00:08:24,565 --> 00:08:25,184
Tot dan.