Vorige pagina    PDFtoMusic    Volgende pagina 
 

Inleiding
Hoe maak ik een PDF-bestand aan?
Menu's
Document
Algemene instellingen
Zoeken met Kooplet
Hulpmiddelen
Mixer
Virtueel klavier
Annotations
Virtual Singer
Algemene punten
Technische achtergrond
Instellingen
Real Singer
Inleiding
Opnemen van de stem
Bijstellen van de stem
Geavanceerd opnemen
Fonetische bijstellingen
Technische achtergrond
Myriad HQ
Wat is er nieuw?
Begrenzingen
FAQ
File/Folder selector
Appendices
Probleemrapportage
Softwarelicentie
Bestellen
Bedankt
Afdrukbare handleiding


Gewijzigde hoofdstukken:

 

RealSinger

Technische achtergrond



Opmerking: Deze pagina geeft een kort overzicht van de wijze waarop RealSinger een stem produceert.
Voor het gebruik van RealSinger is het niet nodig om dit hoofdstuk door te lezen. Dit hoofdstuk is bedoeld om technische vragen die sommige gebruikers hebben over de interne algoritmen te beantwoorden. Om het product te gebruiken, is het niet nodig dit te kennen.

Inleiding


Om een realistische zangstem te synthetiseren, is het eerste dat bij een programmeur opkomt om hiervoor gebruik te maken van een verzameling van opgenomen fonemen. Hiermee kan een stem worden gegenereerd.
Drie problemen worden daarbij al snel zichtbaar:
  1. De algoritmen die gebruikt worden voor het genereren van een foneem bij een iedere toonhoogte (fundamentele frequentie).
    Het opnemen van ieder foneem bij alle toonhoogten is vrijwel niet haalbaar. Dit zou een langdurig een groot opnameproject worden, waarbij grote stembestanden ontstaan;
  2. Het algoritme moet in staat zijn om een foneem uit te kunnen rekken of te verlengen tot iedere tijdsduur;
  3. Het algoritme moet in staat zijn om een nette overgang te genereren van de ene foneem naar de volgende. Hiermee moet coarticulatie worden gesimuleerd (het volgende foneem wordt al gehoord voordat het huidige foneem afgelopen is).
Voor ieder probleem kan in de computerliteratuur een oplossing worden gevonden.
Er zijn efficiënte algoritmen die problemen 1 en 2 oplossen. Zij verwerken de digitaal opgenomen data onmiddellijk. De programmeur kan nu de frequentie (toonhoogte) en de tijdsduur aanpassen. Deze algoritmen worden in de meeste populaire geluidseditors gebruikt om de toonhoogte en snelheid van een geluid onafhankelijk aan te passen. Zij worden ook met succes in spraaksynthese gebruikt, omdat de variaties in frequentie (de toonhoogte) nogal klein zijn.
Maar in het geval van een zangstem kunnen deze algoritmen niet gebruikt worden. Zij zijn niet efficiënt genoeg als de toonverandering te groot is. Het resultaat is als zodanig niet "slecht", maar de stem wordt vervormd, ongeveer als een magnetische tape die te snel wordt afgedraaid (waardoor je eekhoornstemmetjes krijgt).

Voor probleem 3 worden niet alleen de individuele fonemen opgenomen. Ook worden alle mogelijke combinaties van twee of drie fonemen (twee- en drievoudige fonemen) opgenomen. Dit systeem slaat het effect van de coarticulatie op en maakt de gegenereerde stem realistischer. Maar ook hier geldt dat het proces van opnemen nogal moeilijk en intensief is. Het kost soms vele uren van de spreker of de zanger. Het resulterende stembestand is vaak ook behoorlijk groot (verschillende megabytes).

RealSinger gebruikt originele algoritmen om al deze problemen tegelijkertijd op te lossen. RealSinger manipuleert frequentie spectra.

Sommige spraakgeneratoren hebben in het verleden geprobeerd om de frequentie spectra van de stem te gebruiken om een nieuwe stem te genereren. Deze methode bleek helaas te lastig om hem werkend te krijgen. Dit kwam omdat het opnieuw opbouwen van het geluid vanuit een verwerkt spectrum gebruik moest maken van een omgekeerde (dus inverse) Fast Fourier Transform (IFFT). De oorspronkelijke fasewaarden moesten opnieuw correct worden samengesteld. Als dit niet nauwkeurig gebeurde, dan konden opeenvolgende stukken geluid niet netjes naast elkaar worden geplaatst en werd een ongewenste ruis op de achtergrond gehoord.

Het stemspectrum


In spraak of gezang is de trillingsvorm die uit de stemspleet voortkomt (dat is het geluid dat gemaakt wordt door de stembanden zodra zij gaan trillen als er lucht uit de longen langsstroomt) een combinatie van harmonieën (meervouden van de fundamentele frequentie f0).

Op een sterkte/frequentie (power/frequency) grafiek lijkt deze trillingsvorm eruit als een kam. Iedere tand van de kam staat precies op een frequentie die een meervoud is van de fundamentele f0:



Zodra de toonhoogte van de stem toeneemt, dan verschuift de fundamentele frequentie f0 naar rechts (dus naar een hogere frequentie). De start van de frequentie tussen de twee opeenvolgende harmonieën neemt eveneens toe, maar blijft gelijk aan f0.



Bij het passeren van het stemkanaal worden sommige frequenties versterkt door de resonanties in de holten, terwijl anderen juist weer worden verzacht. Het resultaat is dat sommige harmonieën luid klinken en andere wat zachter. Het spectrum van het stemkanaal hangt af van het foneem dat op dat moment wordt uitgesproken of gezongen. Hij verandert niet erg sterk als de frequentie (dus toonhoogte) toeneemt of afneemt.


De samensmelting van deze twee spectra (de stemspleet en het stemkanaal) resulteert in het hoorbare spectrum. De luisteraar kan dan onderscheid maken tussen zowel het foneem (dus wat er gezegd wordt) en de toonhoogte (de gezongen noot).

De grondslag van RealSinger


Het doel van RealSinger is om voor ieder foneem van een bepaalde taal een opsplitsing te maken in het opgenomen signaal. Daaruit kunnen dan de spectra van de stemspleet en het stemkanaal worden gehaald. Alleen het spectrum van het stemkanaal wordt opgeslagen. Dit spectrum kan later worden toegepast op een gegenereerd spectrum van de stemspleet om het originele geluid opnieuw op te kunnen bouwen. Dat kan dan bij iedere toonhoogte.

Het leerproces

  • Aan de spreker wordt gevraagd om een woord uit te spreken voor ieder foneem van de gekozen taal;
  • Ieder woord wordt als normale geluidsdata opgenomen;
  • Daarna wordt het foneem geïsoleerd binnen het woord. Het signaal wordt afgesneden om alleen dit gedeelte over te houden;
  • Een gemiddeld frequentiespectrum van het geluid wordt nu berekend;
  • Dit spectrum wordt uit elkaar gehaald om de invloed van de spectra van de stemspleet eruit te halen. Alleen de curve van het spectrum van het stemkanaal blijft dan over;
  • Dit pseudo-spectrum wordt dan opgeslagen (minder dan 100 gebroken getallen voor ieder foneem);
  • Voor fonemen die, zoals plosieven, in de tijd veranderen, zijn er meerdere pseudo-spectra opgeslagen om de informatie over veranderingen in het spectrum te kunnen behouden.
Dit algoritme zorgt ervoor dat RealSinger slechts enkele waarden voor ieder foneem hoeft op te slaan. Dit betekent dat de stembestanden erg klein zijn (kleiner dan 40kB zodra zij zijn gecomprimeerd).

Genereren van de stem

  • Van ieder foneem dat gezongen wordt, zal het bijbehorende pseudo-spectrum eruit gehaald worden. In overgangsgedeelten tussen twee fonemen, zijn beide pseudo-spectra vervormd om daarna samengebracht te worden om het proces van coarticulatie te simuleren;
  • Er wordt nu een spectrum voor de stemspleet gegenereerd, bij de gewenste toonhoogte. Dit spectrum kan eenvoudig worden veranderd door de algemeen geldende klankkleur te wijzigen (voor de equalizatie of voor het toepassen van verschillende vocoder effecten);
  • Dit spectrum van de stemspleet wordt nu opnieuw omgevormd met het pseudo-spectrum van het foneem;
  • Het spectrum wordt dan verwerkt door een derde fase omgekeerde transformatie om de normale geluidsdata te genereren.
Dit algoritme simuleert de coarticulatie effecten. Daarom is het niet nodig om de hele set van twee- of drieklanken op te nemen. Alleen de zuivere fonemen zijn nodig.



(c) Myriad 2007-2018 - Alle rechten voorbehouden