
Steeds meer (openbare) systemen hebben naast displays en led aanduidingen ook audiosystemen ingebouwd om bijvoorbeeld slechtzienden en visueel gehandicapten er gebruik van te kunnen laten maken.
In deze tutorial laat ik zien hoe je tekst naar spraak omzet en er audiobestanden van maakt en hoe je deze in je python script kunt gebruiken.
Spraakgenerator
Natuurlijk kun je een microfoon gebruiken om zelf tekst in te spreken en deze met een script af te spelen, maar om een standaard stem te gebruiken kun je ook gebruik maken van een (gratis) online spraakgenerator. Het voordeel is dat je keuze hebt uit meerdere stemmen, je hoeft dus niet je vriend(in) meer te vragen om iets in te spreken als je je eigen stem niet mooi vindt.
Waar je snel achter zult komen is dat je bij gebruik van een spraakgenerator een stem moet gebruiken die op het Nederlands afgestemd is als je Nederlandse tekst wilt omzetten. Hieronder hoor je twee stemmen, een Nederlandse en een Engelse. Beiden hebben dezelfde tekst ‘welkom bij picademie punt nl‘ omgezet. De punt heb ik (fonetisch) moeten uitschrijven want de Nederlandse stem zet de punt niet om.
Je hoort direct het verschil. Voor de verstaanbaarheid moet je dus een stem kiezen die voor de taal bestemd is. Voor de Engelse stem wordt de tekst dus ‘welcome to picademie.nl‘.
Open de link naar de spraakgenerator en probeer wat tekst en selecteer verschillende stemmen. Bepaal de stem die je straks wilt gebruiken om jouw commando’s uit te laten spreken.

Mocht je een andere stem dan de Nederlandse mooi vinden, dan zal je merken dat de uitspraak van de Nederlandse tekst erg lastig blijkt. Zoals bij de zin ‘hallo hoe gaat het met jou?‘ voor de Engelse stem.
Zelf heb ik nog nooit een Engelse stem perfect Nederlands horen spreken. Je zou om kunnen kijken of er een spraakgenerator te vinden is waarbij je de stemmen zelf kunt modelleren. Mocht je een goede vinden? Laat het me weten!
Je kan het uitspraakprobleem een beetje oplossen door de tekst fonetisch te schrijven. Nadeel is wel dat er altijd een accent te horen zal zijn, een harde ‘g’ kent de Engelse stem niet. De tekst wordt dan ongeveer als volgt ‘hallo who gaat het met jow?‘. Je kunt zelf allerlei klankaanpassingen proberen om de zin zo mooi mogelijk uitgesproken te krijgen.
Audio opnameprogramma
Helaas hebben de meeste (gratis) spraakgeneratoren geen mogelijkheid om het audiobestand van de omgezette tekst te downloaden. Ik zal je laten zien hoe je met een opnameprogramma het audiobestand kunt maken.
Om audiobestanden te bewerken gebruik ik het (gratis) programma Audacity. Met Audacity ben je in staat de bron te selecteren. Ik heb bij mij de pc luidsprekers als bron gekozen. Daarmee kan ik alles opnemen wat als geluid uit de luidsprekers komt.
Om in Audacity de luidsprekers te selecteren ga je in het bovenstaande tabblad naar Bewerken -> Voorkeuren of geef je Ctrl-P. Het volgende venster opent zich.

Hierboven zie je dat onder Apparaten -> Opnemen – Apparaat: Stereo-Mix (Realtek High Defini..) en bij Kanalen: 2 (Stereo) geselecteerd is.
Check
Bovenstaande interface is dezelfde als die geselecteerd is bij de pc via Start -> Instellingen -> Systeem -> Geluid. Dit kun je ook controleren door op de pc met de rechtermuis op het volume symbooltje te klikken en op Geluidsinstellingen openen te klikken. De instellingen van Geluid opent zich. Je zou dezelfde geselecteerde interface (Realtek High Defini) moeten zien als bij de voorkeuren van Audacity.
Het enige nadeel bij het opnemen van de luidsprekers is dat je tijdens de opname geen andere programma’s kunt aanklikken, anders zouden er systeemgeluiden in de opname terecht kunnen komen. Om dit te voorkomen kan je de kanalen die je niet wilt opnemen uitzetten. Dit doe je door in MS Windows rechts onderin het scherm met de rechter muisknop op het volume symbooltje te klikken en vervolgens op Volumemixer openen te klikken.
In dit voorbeeld zet ik het kanaal Systeemgeluiden uit door op het luidsprekertje te klikken. Zo kun je tijdens de geluidsopname ongestoord andere dingen op je pc doen.

Opgelezen tekst opnemen met Audacity
Hieronder ga ik ervan uit dat de input in het opnameprogramma goed staat en dat je het geluid van je pc luidspreker kunt opnemen.
- Start Audacity op
- Start de opname (knop met rode bolletje)
- Open de spraakgenerator
- Geef hier de gewenste tekst in, bijvoorbeeld ‘Hallo wereld‘
- Druk in de spraakgenerator op Play
- Als de tekst uitgesproken is stop je de opname (knop met vierkant blokje)
- Ga in de opname staan en verwijder de ‘stille’ ruimte door hierin te slepen en deze te deleten
- Ga naar Bestand -> Exporteren -> Exporteren als MP3
- Geef het bestand een passende naam, zoals ‘hallo_wereld‘ en klik op Opslaan
Je bent nu klaar met opnemen. Je kunt het bestand dat op je pc staat afspelen en verwerken in een script.
Bestand op de Raspberry Pi met Python afspelen
Om het audiobestand af te kunnen spelen gebruik ik OMXplayer. OMXPlayer is een van de beste mediaspelers die je op de Raspberry Pi kunt gebruiken omdat hij is geoptimaliseerd voor de hardware van de Pi. In deze tutorial gebruiken we OMXplayer alleen om een audiobestand af te spelen.
Om OMXplayer te installeren moeten we eerst de Raspberry Pi OS bijwerken. Voer de volgende twee opdrachten uit op het systeem om de pakketlijst bij te werken en upgrade eventuele verouderde pakketten.
sudo apt update
sudo apt upgrade
Nadat je de Pi hebt bijgewerkt, kunnen we nu verder gaan met het installeren van OMXplayer. Omdat de mediaspeler beschikbaar is vanuit de officiële pakketrepository, is het installeren ervan net zo eenvoudig als het uitvoeren van een enkele opdracht. Om OMXplayer te installeren, hoef je alleen maar de volgende opdracht uit te voeren.
sudo apt install omxplayer
Je kan controleren of OMXplayer succesvol geïnstalleerd is door de volgende opdracht uit te voeren. Als je het pakket op je Raspberry Pi hebt geïnstalleerd, krijg je een lijst met opties die je kunt gebruiken om de mediaspeler te bedienen.
omxplayer
Om een audiobestand in de terminal, achter de prompt, af te spelen geef je het volgende commando:
omxplayer -o local pad_naar_bestand.mp3
Door de parameter -o te gebruiken, kunnen we de naam van het apparaat specificeren waarnaar we de audio-uitvoer willen. De mogelijke apparaat opties zijn:
hdmi – Door dit apparaat te gebruiken, wordt audio uitgevoerd naar de HDMI-aansluiting.
local – Het is ook mogelijk om de uitvoer naar de analoge hoofdtelefoonaansluiting (3mm) te forceren door deze optie te gebruiken.
both – Voert audio uit naar zowel de HDMI- als analoge verbindingen (3mm) op de Pi.
alsa[:device] – Je kan ook een bepaald ALSA-apparaat specificeren waarnaar je de audio wilt uitvoeren.
OMXplayer afspelen in Python
Om OMXplayer in Python te kunnen gebruiken, zal de os-bibliotheek geladen moeten worden. Vervolgens kan dezelfde opdrachtregel gebruikt worden zoals deze in de terminal gebruikt werd.
os.system('omxplayer -o local pad_naar_bestand')
Om het audiobestand op de achtergrond te draaien en geen commandostatus te ontvangen geef je het volgende (aangepaste) commando:
os.system('omxplayer -o local systeem.mp3 >/dev/null 2>&1 &')
Nu heb je alle informatie om je eigen script te maken. Hieronder heb ik een aantal audiobestanden en een script klaargezet om ze af te kunnen spelen.
Verhogen toegankelijkheid van de toepassing
Nu ben je in staat om de status van een toepassing op de Raspberry Pi ook via stemgeluid weer te geven. Hierdoor kunnen bijvoorbeeld slechtzienden horen of de door hun aangeboden toegangspas geaccepteerd is of niet of wat de status van het systeem is. Maak er iets moois van!
Have A Nice Day!
Laat een reactie achter