Tekst naar spraak streamen
Deze handleiding behandelt drie manieren: spraak genereren als bestand, het audioantwoord rechtstreeks streamen en gegenereerde audio optioneel uploaden naar een AWS S3-bucket om deze te delen via een ondertekende URL.
Deze handleiding gaat ervan uit dat je je API-sleutel en SDK hebt ingesteld. Voltooi eerst de quickstart als je dat nog niet hebt gedaan. Voor het optionele gedeelte over S3-upload heb je ook een AWS-account met toegang tot S3 nodig.
Benieuwd waarom streaming werkt zoals het werkt? Audio-streaming begrijpen legt het protocol, buffering en de afwegingen rond latency uitgebreid uit.
Tekst omzetten naar spraak (bestand)
Om tekst om te zetten naar spraak en deze als bestand op te slaan, gebruiken we de methode convert van de ElevenLabs SDK en slaan we deze vervolgens lokaal op als een .mp3-bestand.
Je kunt deze functie vervolgens uitvoeren met:
Tekst omzetten naar spraak (streaming)
Als je de audio liever rechtstreeks streamt zonder deze op te slaan in een bestand, kun je onze streamingfunctie gebruiken.
Je kunt deze functie vervolgens uitvoeren met:
Extra - Uploaden naar AWS S3 en een beveiligde deellink krijgen
Zodra je audiogegevens zijn gemaakt als bestand of stream, wil je deze misschien delen met je gebruikers. Een manier om dit te doen, is ze uploaden naar een AWS S3-bucket en een beveiligde deellink genereren.
Je AWS-inloggegevens maken
Om de gegevens naar S3 te uploaden, moet je je AWS access key ID, secret access key en AWS-regionaam toevoegen aan je .env-bestand. Volg deze stappen om de inloggegevens te vinden:
- Log in bij je AWS Management Console: ga naar de AWS-homepagina en log in met je account.

- Open het IAM-dashboard (Identity and Access Management): je vindt IAM onder “Security, Identity, & Compliance” in het servicesmenu. Het IAM-dashboard beheert de toegang tot je AWS-services op een veilige manier.

- Maak een nieuwe gebruiker (indien nodig): selecteer in het IAM-dashboard “Users” en daarna “Add user”. Voer een gebruikersnaam in.

- Stel de rechten in: koppel policies rechtstreeks aan de gebruiker volgens het toegangsniveau dat je wilt verlenen. Voor S3-uploads kun je de policy AmazonS3FullAccess gebruiken. Het is echter een best practice om het principe van least privilege toe te passen, dus alleen de minimale rechten te verlenen die nodig zijn om een taak uit te voeren. Misschien wil je een aangepaste policy maken die specifiek alleen de benodigde acties voor je S3-bucket toestaat.

- Controleer en maak de gebruiker: controleer je instellingen en maak de gebruiker. Na het maken krijg je een access key ID en een secret access key te zien. Download deze inloggegevens en bewaar ze veilig; je kunt de secret access key na deze stap niet opnieuw ophalen.

- Vraag de AWS-regionaam op: bijv. us-east-1

Als je geen AWS S3-bucket hebt, moet je een nieuwe maken door deze stappen te volgen:
- Open het S3-dashboard: je vindt S3 onder “Storage” in het servicesmenu.

- Maak een nieuwe bucket: klik in het S3-dashboard op de knop “Create bucket”.

- Voer een bucketnaam in en klik op de knop “Create bucket”. Je kunt de andere bucketopties op de standaardwaarden laten staan. De nieuw toegevoegde bucket verschijnt in de lijst.


De AWS SDK installeren en de inloggegevens toevoegen
Installeer boto3 om met AWS-services te werken via pip en npm.
Voeg vervolgens de omgevingsvariabelen als volgt toe aan het .env-bestand:
Uploaden naar AWS S3 en de ondertekende URL genereren
Voeg de volgende functies toe om de audiostream naar S3 te uploaden en een ondertekende URL te genereren.
Je kunt vervolgens de uploadfunctie aanroepen met de audiostream uit de tekst.
Genereer na het uploaden van het audiobestand naar S3 een ondertekende URL om toegang tot het bestand te delen. Deze URL is tijdelijk en verloopt na een bepaalde periode, waardoor deze veilig is voor tijdelijk delen.
Je kunt nu een URL uit een bestand genereren met:
Als je het bestand meerdere keren wilt gebruiken, moet je het S3-bestandspad in je database opslaan en de ondertekende URL telkens opnieuw genereren wanneer je die nodig hebt, in plaats van de ondertekende URL rechtstreeks op te slaan, want deze verloopt.
Alles samenbrengen
Om alles samen te brengen, kun je het volgende script gebruiken:
Conclusie
Je weet nu hoe je tekst omzet in spraak en een ondertekende URL genereert om het audiobestand te delen. Deze functionaliteit biedt veel mogelijkheden om dynamisch content te maken en te delen.
Hier zijn enkele voorbeelden van wat je hiermee kunt bouwen.
-
Educatieve podcasts: maak gepersonaliseerde educatieve content die studenten op aanvraag kunnen beluisteren. Docenten kunnen hun lessen omzetten naar audioformaat, uploaden naar S3 en de links delen met studenten voor een boeiendere leerervaring buiten het traditionele klaslokaal.
-
Toegankelijkheidsfuncties voor websites: verbeter de toegankelijkheid van websites door tekstcontent in audioformaat aan te bieden. Zo wordt informatie op websites toegankelijker voor mensen met een visuele beperking of voor mensen die liever via audio leren.
-
Geautomatiseerde klantenserviceberichten: maak geautomatiseerde en gepersonaliseerde audioberichten voor klantenservice, zoals veelgestelde vragen of bestelupdates. Dit kan een boeiendere klantervaring bieden dan traditionele e-mails met tekst.
-
Luisterboeken en vertelling: zet volledige boeken of korte verhalen om naar audioformaat en bied je publiek een nieuwe manier om literatuur te beleven. Auteurs en uitgevers kunnen hun contentaanbod uitbreiden en een publiek bereiken dat liever luistert dan leest.
-
Hulpmiddelen voor taalonderwijs: ontwikkel hulpmiddelen voor het leren van talen die cursisten audiolessen en oefeningen bieden. Daarmee kunnen ze gericht uitspraak en luistervaardigheid oefenen.