Spraaksynthese, of het kunstmatig genereren van spraak, geeft een stem aan personen met ernstige spraakbeperkingen. Helaas is die kunstmatige stem nu vaak expressieloos. Dat terwijl we via onze manier van spreken ook onze emoties, meningen, en zaken als ironie uitdrukken. In mijn masterproef ging ik daarom op zoek naar een manier om gegenereerde spraak expressiever te maken en om gebruikers toe te laten deze expressiviteit zelf te sturen.
Veel belangrijke uitvindingen zijn eerst tot stand gekomen om mensen met een beperking te helpen. Pellegrino Turrino vond de typemachine uit voor een vriendin die blind aan het worden was, zodat ze weer brieven kon schrijven. Vint Cerf stond aan de wieg van de e-mail om beter met zijn vrouw te communiceren, aangezien ze beiden slechthorend zijn. Voordat spraaksynthese ons met onze slimme apparaten liet praten, heeft de technologie ook al decennialang mensen met beperkingen geholpen.
Stephen Hawking, een van de bekendste gebruikers van een spraakcomputer ("Stephen Hawking with New Computer" door Intel Free Press, CC BY 2.0)
Een van de oudste succesvolle technieken om spraak te genereren is "concatenatieve synthese", een soort knip-en-plaktechniek. Stemacteurs spreken daarbij kleine stukjes tekst apart in, die door de computer aan elkaar geplakt worden om spraak te genereren. De stukjes worden best monotoon opgenomen zodat ze beter bij elkaar passen. Dit zorgt echter expressieloze gegenereerde spraak.
De laatste jaren worden neurale netwerken vaker gebruikt voor spraaksynthese. Met deze technologie kan een computer zelf uit een groot aantal voorbeelden iets leren (bv. of er een kat op een foto staat). Als je genoeg voorbeelden van tekst met de overeenkomstige spraak aan de computer geeft, kan deze tekst op spraak leren mappen. Die mapping kan dan gebruikt worden om nieuwe spraak te genereren. Het voordeel van neurale tekst-naar-spraakmodellen is dat ze veel realistischere spraak kunnen genereren. Toch bevat de gegenereerde spraak nog vaak weinig expressie, omdat men dikwijls de monotone opnames van eerdere technieken hergebruikt als voorbeelden.
Om expressieve spraak te genereren, hebben we dus een dataset met expressieve spraakopnames nodig. Die kunnen we bijvoorbeeld halen uit audioboeken. Dit brengt echter wel een probleem mee: een stukje tekst kan op veel verschillende manieren uitgesproken worden. De prosodie - de muzikale aspecten van spraak (zoals intonatie, klemtoon, en ritme) - wordt ook niet aangeduid in de tekst. De computer moet daarom tussen de lijntjes leren lezen en zelf een geloofwaardige prosodie verzinnen.
Om dit moeilijke probleem te verhelpen, zijn er technieken ontwikkeld om de prosodie apart te modelleren. Deze technieken stellen de prosodie dan voor als een set van parameters, die ofwel met gekende aspecten van spraak overeenkomen (bv. de toonhoogte en duur van elke klank), ofwel abstract zijn en geleerd kunnen worden door de computer. Wanneer we dan nieuwe spraak willen genereren, moeten de computers deze parameters voorspellen, op basis van de ingevoerde tekst.
Zelfs als een computer een geloofwaardige prosodie kan voorspellen, kan het nog steeds zijn dat die niet overeenkomt met wat de gebruiker in gedachten had. Daarom zou het nuttig zijn als de gebruiker de prosodie achteraf zou kunnen aanpassen. Op die manier kan zij haar boodschap overbrengen in de gewenste spreekstijl, met de gewenste nadruk, enz.
Er bestaan al technieken die het mogelijk om spraak te genereren in een bepaalde stijl, zoals die van een ander fragment. Het nadeel van deze technieken is dat ze niet gebruikt kunnen worden om de prosodie plaatselijk aan te passen. Er bestaan ook technieken die de prosodie per woord of nog fijner voorstellen, maar dan is het weer moeilijk om al deze aparte voorstellingen aan te passen om een consistente spreekstijl te krijgen. Momenteel is er geen techniek die controle over beide zaken toelaat.
Om controle over de spreekstijl en lokale prosodie te bieden, bedacht ik ConEx, een neuraal netwerk voor spraaksynthese, en een methode om de prosodie lokaal aan te passen. ConEx bouwt verder op FastSpeech, een neurale netwerkarchitectuur die erg snel spraak kan genereren. Dit is nodig om achteraf de prosodie interactief aan te passen. ConEx voegt twee nieuwe componenten toe aan FastSpeech om prosodie te modelleren . Het ene leert de globale spreekstijl voor te stellen, en de ander stelt de prosodie op een fijner niveau voor.
Om spraak te genereren in een bepaalde stijl, kan de gebruiker de stijl van een van de voorbeelden hergebruiken, of kan de stijl gehaald worden uit een ander spraakfragment (zoals bv. een stem uit een filmtrailer). Vervolgens wordt de fijnschalige prosodie voorspeld, en wordt er een eerste spraakfragment gegenereerd. De gebruiker kan dan de prosodie lokaal nog aanpassen. Om dit te doen, geeft ze eerst aan tot waar de prosodie in orde is. Vervolgens geeft het systeem drie slimme suggesties van mogelijke aanpassingen. Wanneer een suggestie gekozen wordt, genereert het systeem een nieuw spraakfragment, en wordt de rest van de prosodie ook opnieuw berekend, om consistente prosodie te bewaren.
Om te evalueren hoe goed het voorgestelde model erin slaagt om een spreekstijl na te bootsen, en welk effect de lokale aanpassingen hebben, werden er experimenten op twee datasets uitgevoerd. Audiofragmenten van de experimenten zijn beschikbaar op de demo webpagina.
De experimenten tonen aan dat het model in staat is om spraak in een gewenste spreekstijl te genereren. De methode om de prosodie lokaal aan te passen laat toe om de klemtoon te verleggen, en een deel sneller of trager uit te spreken. Het succes van de methode hangt wel af van welke dataset er gebruikt wordt.
De afgelopen jaren hebben neurale netwerken realistische spraaksynthese mogelijk gemaakt. Toch is de gegenereerde spraak vaak niet expressief en niet makkelijk te bewerken. ConEx, het ontwikkelde model, laat gebruikers toe om spraak in een bepaalde stijl te genereren, en achteraf de prosodie aan te passen. Op die manier krijgen personen met spraakbeperkingen meer controle over hun kunstmatige stem.