Computergegenereerde zang heeft veel aanpassingen nodig om het acceptabel te laten klinken. Nu leren de computerwetenschappers van Microsoft een AI om te zingen als een persoon.
Zingen is een buitengewone menselijke vaardigheid. Het vereist de mogelijkheid om woorden te vormen, vervolgens de mogelijkheid om ze op een bepaalde toonhoogte te vocaliseren en ten slotte de mogelijkheid om dit met de noten te synchroniseren. Voor velen komt het vanzelf – mensen leken hardwired om te zingen.
Niet zo machines. Een computer leren zingen – om een partituur om te zetten in een gezongen lied – bleek enorm frustrerend.
Ten eerste moeten deze apparaten de mogelijkheid beheersen om tekst om te zetten in spraak, wat op zichzelf een voortdurende uitdaging is in de informatica. Ze moeten de woorden dan matchen met de noten op het niveau van lettergrepen en zelfs op het niveau van fonemen. Ten slotte moeten deze fonemen, lettergrepen en woorden op de juiste toonhoogte en voor de juiste duur worden uitgesproken.
Zingende bot
Dat zou op het punt staan te veranderen dankzij het werk van Peiling Lu en collega’s van het Microsoft Technology Center Asia. Het team heeft gewerkt aan een manier om de chatbot van het bedrijf, Xiaoice (uitgesproken als Shao-ice), de mogelijkheid te geven om te zingen. De nieuwe zingende bot heet XiaoiceSing en de resultaten zijn indrukwekkend.
Eerst wat achtergrondinformatie. De taak bij “zingende stemsynthese” is om van een partituur een stemmetje te maken dat niet te onderscheiden is van een menselijke inspanning. Lu en collega’s wijzen erop dat een partituur bestaat uit de songteksten, de songnoten en de nootduur. Voor een professionele menselijke zanger is het eenvoudig om deze geschreven informatie om te zetten in een liedje.
Maar voor een computer begint de taak met het vertalen van de score naar een machineleesbare vorm. XiaoiceSing doet dit door de werelden in fonemen te verdelen en vervolgens aan elk een toonhoogte en duur toe te wijzen. Dit kan worden uitgedrukt in de vorm van een vector die een computer kan ‘lezen’.
Maar dit vertaalproces is lastig. Elk woord bestaat uit lettergrepen en deze worden op hun beurt gevormd door fonemen. Het woord ‘zingen’ is bijvoorbeeld een enkele lettergreep die uit drie fonemen bestaat.
Grondfrequentie
Over het algemeen is de eigenlijke noot het geluid met de laagste frequentie – de grondfrequentie. Dit is meestal het luidst en degene die het menselijk oor het gemakkelijkst kan onderscheiden. Maar de kwaliteit van het geluid wordt bepaald door de andere frequenties die een soort omhulsel vormen rond de grondfrequentie.
Het is niet eenvoudig om de juiste envelop voor een bepaald foneem en de juiste toonhoogte te produceren. En elke fout geeft de indruk van vals zingen.
Pu en collega’s pakken dit allemaal aan met behulp van verschillende technieken voor machine learning en deze toe te passen op bewezen technologieën. XiaoiceSing gebruikt bijvoorbeeld een tekst-naar-spraaksysteem genaamd FastSpeech, een technologie die veel van het team bij Microsoft heeft ontwikkeld.
De uitvoer van FastSpeech moet vervolgens worden gedecodeerd en gestemd, of ‘vocoded’. En hiervoor gebruikt XiaoiceSing een spraaksynthese vocoder genaamd WORLD, die moet worden getraind om een mensachtig geluid te produceren.