Uw computer verstaat u wel moe, boos of dronken tekst

Er komen binnenkort enkele sterke programma's op de markt die de menselijke stem redelijk kunnen verstaan. Ze luisteren alleen naar de gebruiker, maar die mag dan ook moe, boos of dronken zijn.

'He, computer, start Excel en laadt het jaaroverzicht, en, o ja, wil je De Vries in Leiden even voor me bellen?'' En daar verschijnt het spreadsheetprogramma al en even later staan de jaarcijfers 1995 op het scherm van de PC. Ondertussen gaat de telefoon over bij Jan de Vries op kantoor.

Er is geen PC die nu al zulke zinnen kan interpreteren. Computers reageren nu alleen nog maar op toetsenbord en muis, maar dat verandert snel. Primitieve spraakherkenning is de huiskamer van de PC-multimedia-hobbyist al binnengedrongen. Zij bouwen een 'geluidskaart' in hun computer, om bij spelletjes over realistisch stereogeluid te beschikken (een 'kaart' is een printplaat met elektronica die met een brede stekker aangesloten wordt op de PC).

Geavanceerde geluidskaarten hebben als extraatje dat ze gesproken woorden, opgevangen via een microfoontje, interpreteren als commando's. De spreker die de commando's geeft moet de computer eerst trainen: de toegestane woorden moet hij eerst inlezen. Ze worden daarbij gekoppeld aan een commando. Daarna 'verstaat' een computer wat hij doen moet, als tenminste de commando's woord voor woord en op dezelfde wijze als tijdens de training worden uitgesproken. Geluidskaarten met die mogelijkheden kosten rond 500 gulden.

Het programma 'Listen voor Windows' van het Amerikaanse bedrijf Verbex gaat een stap verder en kost zesmaal zoveel geld. 'Listen' herkent 'getrainde' woorden en zinsdelen uit normale spraak. 'Listen' bestaat uit een insteekkaart, een programma, woordenlijsten voor de belangrijkste kantoorsoftware en een koptelefoon-microfoonset. Het programma draait alleen op computers met een 486-chip of beter.

Verbex is een bedrijf dat aanvankelijk alleen spraakherkenningssystemen voor gespecialiseerde computersystemen ontwikkelde. Met 'Listen for Windows' betreedt het de publieks- en kantoormarkt. Ook dit programma moet worden getraind en herkent vervolgens alleen de stem van de trainer. Het programma herkent tegelijkertijd maximaal 300 woorden en zinnen. Het inlezen van zo'n lijst duurt even, vooral omdat het programma nogal eens om een herhaling vraagt.

Het aantal woordenlijsten wordt alleen beperkt door de harde-schijfcapaciteit van de computer. Bij een ander programma is snel een andere woordenlijst op te roepen, zodat het aantal commando's in principe onbeperkt is. Alle commando's voor het mondeling besturen van het programma Windows zijn bijvoorbeeld in drie lijsten vastgelegd. Voor een spreadsheet volstaat een lijst voor de veelgebruikte functies, terwijl het handig is voor het invoeren van getallen en het uitvoeren van berekeningen een andere lijst te gebruiken.

Identiek signaal

Primitieve spraakherkenners in de geluidskaarten reageren alleen als een commando net zo klinkt als het eerder ingesproken voorbeeld. Het programma zoekt naar een identiek signaal en als dat er niet is, faalt de spraakherkenning. Een veel langzamere of veel snellere uitspraak, een lichte aarzeling, of een heel andere toonhoogte, zorgen ervoor dat het woord niet wordt verstaan. Wie zich daar boos over maakt en driftiger spreekt, kan maar beter direct weer naar zijn muis grijpen, want de spraakherkenner weigert dan uiteraard steeds halsstarriger.

'Listen' is veel toleranter. De oorspronkelijke inspreker kan moe, boos of dronken zijn, het programma blijft goed reageren, terwijl een andere spreker er alleen met veel moeite in slaagt om het programma zijn wil op te leggen. 'Listen' reageert volgens de fabrikant op vloeiende spraak door alle binnengekomen geluid te bemonsteren. De samplefrequentie is 10 kHz, minder dan de 44 kHz voor geluid van CD-kwaliteit, maar ruim voldoende om spraakkarakteristieken te herkennen.

Een rekenprogramma middelt van de 10.000 per seconde binnenkomende monsters er steeds 256 tegelijk tot een kenmerkvector van 16 kengetallen. 80 van die kenmerkvectoren levert het programma per seconde en ze vormen de basis voor de statistische zoektocht in de lijst van maximaal 300 woorden. De 300 vastgelegde mogelijkheden slaat het programma trouwens op als een waarschijnlijkheidsverdeling van kenmerkvectoren, zowel in klank als in tijdsduur. Als de computer de eerste klanken opvangt zijn alle woorden uit de lijst nog even waarschijnlijk, maar na iedere nieuwe kenmerkvector veranderen de waarschijnlijkheden. Mogelijkheden met lage waarschijnlijkheid vallen af. De zoektocht stopt als de kenmerken met voldoende waarschijnlijkheid bij een woord of zinsdeel in de lijst van 300 passen. Het zoekalgoritme kan desgewenst de 32 overwogen woorden in volgorde van afnemende waarschijnlijkheid weergeven.

Te enthousiast

Gestotter, gebroddel, uh's en ah's, pauze's tussen woorden of zelfs in het woord, verandering van toonhoogte, ze beinvloeden de woordherkenning niet al te zeer. Wanneer 'volgende' is ingesproken met als gekoppeld commando dat het volgende kaartje van een elektronische kaartenbak op het scherm moet komen, leidt de zin 'laat het volgende kaartje maar eens zien' ook tot resultaat.

Maar soms luistert 'Listen' te enthousiast. Bij de proef met het mondeling bedienen van een kaartenbakje besloot het programma in reactie op mijn enthousiaste commentaar tot het printen van alle kaartjes.

Wie zijn handen ergens anders voor nodig heeft en toch (eenvoudige) gegevens in een computer moet invoeren kan veel gemak hebben van 'Listen'. Bestellingen klaarmaken en ondertussen de factuur inspreken, of trein- of bioscoopkaartjes verkopen en tegelijk afrekenen wordt makkelijker. Formulieren invullen met een beperkt aantal woorden is met dit soort spraakherkenning te verlichten. Veelgebruikte zinnen of alinea's kunnen met een paar trefwoorden worden opgeroepen en ingevoerd. Het starten van macro's (kleine commandoprogrammaatjes) kan heel goed mondeling gebeuren, in plaats van door het intypen van een naam of het gelijktijdig indrukken van drie toetsen.

Al snel loopt het programma tegen zijn grens van 300 woorden of zinnen per lijst. Vrije tekst inspreken en op het scherm toveren is onmogelijk, want daar zijn snel lijsten van 10.000 woorden voor nodig. Getallen invoeren is ook al moeilijk, behalve als alle getallen uitsluitend als cijferreeksen worden opgelezen (twee, drie, vijf, vier, komma, acht, vijf in plaats van tweeduizenddriehonderdvierenvijftig gulden en vijfentachtig cent.) En bij het geven van commando's aan Windows, Excel, Wordperfect en concurrenten maakt de Nederlandse versie het kreupele woordgebruik in de Nederlandstalige software pijnlijk duidelijk. De importeur van 'Listen' houdt zich aan de richtlijn om de fabrieksvertaling te geven, maar wie zegt er nu 'bestand afdrukken hele document afdrukken', als hij eigenlijk bedoelt 'print mijn tekst'. Een inventieve gebruiker die ook de extra software koopt om zelf woordenlijsten te koppelen aan commando's, kan die formele taal naar believen afschaffen.

Grootste bezwaar is dat computers nog steeds zo dom zijn. 'Listen' probeert krampachtig uit een brij van woorden een patroon te herkennen en zet dat bij overschrijden van een waarschijnlijkheidsdrempel om in een daad. Wie in het wilde weg gaat praten doet er goed aan een commando 'spraakherkenning uit' te geven. De importeur van 'Listen' laat zelfs het geluid van zijn rinkelende telefoon de spraakherkenning uitschakelen, want hij had er genoeg van om iemand door de telefoon een printje te beloven, om dan onmiddellijk de printer in actie te horen komen die een document afdrukt, waar de beller helemaal niet op zit te wachten.