Reflectie blog 2

Dit is een reflectie blog over de periode van 24-3-2025 t/m 11-4-2025.

In deze periode heb ik aan 2 verschillende projecten gewerkt namelijk:

  • Een SSO project (single sign on).
  • AI onderzoek.

SSO:

Ik heb in mijn vorige blog al wat verteld over het SSO project. Ik heb vooral gewerkt aan het automatisch inloggen met de Google FedCM API dit is nog niet klaar dit komt vooral omdat de API van google erg ingewikkeld in elkaar zit en de applicatie niet is gebouwd op deze API dus ik zou het halve project moeten omgooien om dit goed te laten werken en hier ga ik nog verder aan werken en dit goed overleggen met mijn collega maar voor nu staat de basis. Voor de rest heb ik kleine fixes gedaan zoals spellings fouten verbeteren of de styling consistent houden zoals bijvoorbeeld de kleuren aanpassen als die niet in het kleuren pallet van de site zat.

Ik heb weer veel overlegd met mijn andere collega, verder kon ik ook weer bij hem terecht als ik hulp of een nieuwe taak nodig had.

Ik heb door hier aan te werken dingen over de FedCM API van Google geleerd, ook heb ik hiervan weer wat van .NET geleerd.

AI onderzoek

In mijn vorige blog heb ik al een kleine introductie gegeven over dit project. Nu loopt dit project al iets langer als 3 weken en heb ik hier voornamelijk mijn tijd aan besteed. Ik heb 2 dingen onderzocht binnen AI namelijk STT (Speech to text) en TTS (Text to speech) mijn onderzoek naar STT is klaar en met TTS ben ik nu nog bezig.

STT:

Dit was het eerste onderzoek wat ik heb gedaan. Ik heb eerst onderzoek gedaan naar verschillende modellen en toen elk model wat ik lokaal kon draaien getest. De opties waren:

  • Whisper
  • Faster-whisper
  • Vosk
  • Deepgram
  • Google STT API

Whisper:

Whisper was makkelijk om draaiend te krijgen, na een pip install was het werkend. Daarna kon ik met een command een audio bestand naar tekst omzetten.

Dit werkt goed alleen het probleem was dat het niet super snel was maar het was alsnog een goede optie en leuk omdat dit mijn eerste test was en het zo snel al goed werkte. Ook is het handig dat Whisper zelf de taal detecteert en zo veel verschillende talen kan verwerken zonder veel verschillende modellen.

Faster-whisper:

Faster-whisper is een aangepaste versie van whisper die veel sneller is. Het duurde even om deze werkend te krijgen omdat ik met een videokaart moest werken. Maar na een conda environment aan te maken met Cuda werkte alles goed.

Zoals je hier ziet zet dit het bestand om in tekst in 0.073 seconden dus dat is super snel. Ook heb ik met grotere bestanden gevonden dat het soms zelf accurater is als de normale Whisper dus het is en sneller en accurater.

Vosk:

Vosk is een iets kleiner model, het is redelijk snel en accuraat en vooral heel licht om te draaien. Het enige nadeel is dat je per taal een ander model moet gebruiken dus al zou je Vosk gebruiken zou je daar ook een oplossing voor moeten vinden.

Deepgram:

Deepgram is een cloud API voor STT. Het voordeel van een API gebruiken is dat je niks lokaal moet draaien. Het nadeel wat ik gevonden heb is dat de delay van de API hoog is.

hier zie je dat het 2,11 seconden duurt wat veel te langzaam is.

Google STT API:

Met de API van google heb ik eigenlijk hetzelfde probleem gevonden als Deepgram het duurt te lang. Voor de rest is het eigenlijk hetzelfde alleen een ander model. Het model van google is wel heel goed in het onderscheiden van verschillende sprekers alleen dit heb ik niet nodig.

Conclusie STT:

Ik heb voor Faster-whisper gekozen door de snelheid en de accuratie. Ik vond dit onderzoek erg leuk en heb er ook veel van geleerd.

TTS:

TTS is het tweede onderzoek wat ik doe, hier ben ik nog niet mee klaar maar ik heb al heel wat onderzocht. Hier zijn alle resultaten:

  • Sesame
  • Riva
  • XTTS
  • TTS

Sesame:

Sesame is een TTS model waarmee je heel accuraat mensen hun stem kan namaken door alleen wat audio bestanden te uploaden. Sesame draait lokaal en klinkt heel goed het enige probleem is dat het lang duurt om een audio bestand uit sesame te krijgen.

Er staat geen tijd bij maar dit duurde ongeveer 30/60 seconden.

Riva:

Riva is een TTS model van nvidia het is erg accuraat en snel alleen mijn laptop is niet krachtig genoeg om Riva snel te laten draaien ik heb wel wat goeie resultaten gezien van Riva alleen duurde dit te lang om voor mij bruikbaar te zijn.

XTTS:

XTTS is een model wat goed is in verschillende talen het draait ook op je eigen pc alleen duurde het bij mij tussen de 2/10 seconden voor dat ik iets van een output had wat te lang is.

hier kan je zie dat de real-time factor bijna 1.5 is dus om een bestand van 10 seconden te maken duurt het ongeveer 15 seconden dit is te langzaam dus dit kan ik niet gebruiken.

TTS:

Ik kwam er achter dat er in de library van XTTS heel veel verschillende modellen zitten. Deze library heet TTS ik ben nu bezig met al deze verschillende modellen te testen en ik zal doorgaan met het testen van deze modellen.

Ik heb veel geleerd van dit project tot nu toe. Ik heb hier alleen aan gewerkt maar mijn 2 andere collega’s hebben ook hun eigen onderzoek gedaan binnen AI alleen dan andere onderwerpen. Ik vind dit goed aansluiten op mijn PAP omdat ik veel nieuwe dingen leer zoals hoe ik lokaal AI modellen moet testen en draaien en hoe een TTS model precies werkt.

Conclusie TTS:

Op dit moment heb ik nog niet een goede optie gevonden die ik kan gebruiken als TTS model. Ik ga verder zoeken en ook nog de genoemde modellen verder testen.

Conclusie periode 2

Al zou ik deze taken opnieuw moeten uitvoeren zou ik het onderzoek anders aanpakken. Ik zou korter bij een model vast blijven hangen want soms heb ik hier te lang over gedaan voor het resultaat wat ik er mee heb bereikt. Bij SSO zou ik eerst beter plannen om te kijken hoe een API samen zou moeten werken met een project voordat ik meteen ga proberen om het meteen in het project te bouwen.

3 reacties op “Reflectie blog 2”

  1. Paul Schooneman avatar
    Paul Schooneman

    Dit is iets wat ik in stages nauwelijks op deze manier heb gezien, nl dat de stagiair alleen maar het onderzoek doet, geen implementatie in de applicatie. Of moet dat nog komen? Wanneer?

    Mail mij svp.

  2. Paul Schooneman avatar
    Paul Schooneman

    Ik zie in deze blog, dat je bezig bent met testen, en je meldt, dat je daar in een volgende blog op terugkomt.
    Een stage reflectiepost betekent, dat je binnen die blog reflecteert op je handelen. Door te schuiven naar andere blogs wordt jouw verhaal verwarrend. Ik ben dit niet eerder tegengekomen.

    SSO
    Je meldt, dat je bepaalde dingen hebt gemaakt, en dat zijn statements over activiteiten. Dus geen reflectie op activiteiten. Je hebt activiteiten niet afgerond, het waarom is onduidelijk. Wat heeft daar gespeeld? Wat was opvallend, waar heb je van geleerd? Hoe?

    Onderzoek
    Je laat resultaten zien van het onderzoek dat je hebt gedaan, en je conclusie is juist. Prima gedaan.

  3. Paul Schooneman avatar
    Paul Schooneman

    OK, kijk ook even verder in laatste Blog comment.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *