Vorige pagina    Harmony Assistant    Volgende pagina 
 

Inleiding
Producten
Wat is er nieuw ?

Handleiding
Notatie
Geluidsweergave
Apparaten/scripting
Virtual Singer
Algemene punten
Snelle werkwijze
Nootvormen
Gregoriaans
Jazz Scat
MIDI & ABC
Regels voor het schrijven
Technische achtergrond
Instellingen
Palet
Basis instellingen
Effect instellingen
Klankkleur instellingen
Bewerken van fonemen
SAMPA notatie
FAQ
Overzicht van de commando's
Real Singer
Spoken voice
Bibliografie en dankwoord
Myriad HQ
FAQ
Software licentie
Technische ondersteuning
Appendices
Afdrukbare handleiding


Gewijzigde hoofdstukken:
In het Engels:

 
 

Virtual Singer

Bewerken van fonemen

 
    Zeer belangrijk: Dit hoofdstuk gaat over geavanceerde concepten van de digitale signaal verwerking. Enige kennis van akoestiek en van digitale signaal verwerking is nodig om daarvan gebruik van te kunnen maken.

Eerder zag u al dat fonemen onderdeel zijn van de basis akoestische elementen voor de sprekende of zingende stem (zie hierover de hoofdstukken in de "Technische achtergrond voor stemgeluid").
Virtual Singer gebruikt ingewikkelde algoritmen om deze fonemen te kunstmatig voort te brengen.
Deze voortbrenging, die formanten (of geluidsfrequenties) worden genoemd, gebruikt originele interne algoritmen. Zij zijn vooral geïnspireerd door de documenten van D. Klatt en andere informatieve bronnen.
Het algoritme werd ontworpen en verfijnd volgens ons eigen onderzoek naar de reproductie van de zangstem.
Als de klankkleur van een stem wordt bewerkt, dan opent een "Geavanceerd" knop de dialoog waarin de individuele fonemen kunnen worden ingesteld. Veranderingen die in hier worden aangebracht, wijzigen alleen de huidige zangstem. Andere stemmen blijven ongewijzigd.

Een paar technische details


 
Vraag: Hoe genereert Virtual Singer een foneem?
Er wordt een excitatie digitaal signaal (historisch wordt dit een "glotted source" genoemd) gegenereerd. Hij is afhankelijk van de kracht en de fundamentele frequentie van het foneem dat gezongen moet worden. Het signaal is samengesteld uit parabolische halve perioden, gevolgd door een stille halve periode (glottal stop). De eerste harmonische (de fundamentele frequentie), de tweede harmonische (tweemaal de fundamentele frequentie) en de derde harmonische (drie keer de fundamentele frequentie) worden nu versterkt. Dit wordt gedaan om ongeveer zo dicht mogelijk bij de mogelijke mondelinge voortbrenging van de zangstem te kunnen komen. Dit signaal wordt dan versterkt in een grotere of kleinere mate, die afhankelijk is van de stem waarde.

Vervolgens wordt het verwerken gesplitst in twee onderdelen:

Cascade verwerking: een geluid, aspiratie geluid genoemd, wordt toegevoegd aan de bron van de excitatie. Dit signaal wordt dan verwerkt door een seriële filter sequentie (cascade), waarbij ieder filter overeenkomt met een formant.

Parallelle verwerking: een geluid, fricatie geluid genoemd, wordt toegevoegd aan de bron van excitatie. De eerste graad afgeleide van dit signaal wordt verwerkt door een parallelle groep filters, waarbij ieder filter overeenkomt met een formant. De versterking van ieder formant wordt verwerkt, om de respectievelijke invloeden van iedere formant in het uitvoersignaal te vergroten of te verkleinen.

De resultaten van de twee bovenstaande verwerkingsstappen worden dan toegevoegd. Als het nodig is worden zij aangepast door een laag frequente (20Hz) oscillator om het rollende effect te kunnen simuleren (zoals in de Spaanse "R"ren).
Na het toepassen van de output gain en de treble/bas instelling, is het uitvoersignaal compleet.

Concreet gezien heeft dit algoritme grote implicaties op hoe een foneem wordt verwerkt:

  • De amplitude voor ieder formant wordt allen verwerkt door het parallelle deel van het verwerkende algoritme. Dus zelfs als de formant amplitude nul is, dan heeft dit formant nog steeds een effect op het resulterende signaal. Dit komt door zijn acties in de cascade verwerking.
  • Aspiratie geluid gaat door groep van de cascade filters. Hij wordt dan flink vervormd door de formanten van de fonemen. Zijn uitvoer is een meer gefilterd (zachter) geluid, dat gebruikt kan worden om het effect van ademhaling te simuleren, die achteraan het stemkanaal plaatsvindt.
  • De eerste graad afgeleide van het fricatie geluid wordt doorgegeven door de groep van de parallelle filters. Dit zorg voor een geluid met een hogere toon, dat gebruikt kan worden om de sissende, fluitende geluiden te simuleren. Zij worden door het eerste deel van de mond gevormd.

Fragmenten


Het basis fonetische element is de foneem. Maar u heeft ook gezien dat sommige, complexe fonemen, zoals tweeklanken, opgebouwd kunnen worden uit verschillende opeenvolgende staten.
Dit is de reden dat we de notie van een fragment definiëren, dat een "statische" staat binnen een foneem voorstelt. Dit betekent dus dat een foneem opgebouwd is uit één of meerdere fragmenten.

De lijst aan de linkerkant van het venster geeft de complete lijst van alle fragmenten weer die nodig zijn om ieder foneem in iedere taal uit te kunnen spreken. Fragmenten die vetgedrukt zijn weergegeven, worden door de nu gekozen taal gebruikt.


Belangrijke opmerking: In dit venster kunt u de uitspraak van één of meerdere fragmenten wijzigen. Deze wijzigingen worden alleen toegepast op de zangstem die op dat moment wordt bewerkt. Wijzigingen van een fragment in dit venster hebben alleen gevolgen voor de uitspraak van deze zangstem en niet op dat van anderen.

Zodra een fragment gewijzigd is, wordt het met een kleur in de lijst aangegeven. Als u een gewijzigd fragment kiest, dan is het mogelijk om hem naar zijn standaard waarden terug te brengen, door op de "Origineel" knop onderaan de lijst te klikken.
Aan de rechterkant van het venster vindt u een grafisch deel. Hierin kunt u de data van het fragment wijzigen.

Bovenaan het venster toont een pop-up menu het type fragment:
Klinker betekent dat dit fragment gerekt kan worden als de lettergreep waarin hij zit in de tijd verlengd wordt.
Als de lettergreep geen klinkers bevat, dan zal Virtual Singer proberen om de fragmenten met transitionele klinkers te verlengen.
Als beide niet aanwezig zijn, dan worden de gevocaliseerde medeklinkers gerekt en daarna de niet gevocaliseerde medeklinkers.

De tijdsduur van het fragment kan worden veranderd met een schuifbalk.
Deze waarde is de natuurlijke tijd voor het fragment. Als dit fragment wordt gerekt, dan wordt zijn tijdsduur vergroot.

Opmerking: Als een waarde grafisch wordt gewijzigd (bijvoorbeeld met een schuifbalk), dan verschijnt zijn digitale waarde rechtsonder in het venster.


Het statische deel van een fragment

Dit is een groep van waarden die gebruikt wordt in het statische deel van het fragment - dus in het deel dat niet afhangt van iedere overgang naar of van naastliggende fragmenten. Deze parameters kunnen worden gewijzigd door gebruik te maken van de het grote grafische gebied aan de rechterkant van het venster.

Formanten worden weergegeven als driehoeken met gekleurde lijnen. Van ieder formant kunnen de centrale frequentie (in Hertz), Amplitude (dB) en de bandbreedte (breedte van de onderste lijn van de driehoek in Hz) worden gewijzigd. Een groep checkboxen onder de grafiek helpt u om iedere formant te kunnen activeren of deactiveren in het parallelle gedeelte van de stemgenerator.

Opmerking: Zoals hierboven uitgelegd, geldt dat van iedere formant die niet actief is, en niet meer op de grafiek staat, zijn frequentie en bandbreedte nog steeds gebruikt wordt in het cascade deel van de stemgenerator.

Helemaal rechts staat een groep verticale schuifbalken. Zij helpen u om de niveaus van het stemmen (av), rollen (Rl), aspiratie (asp) en fricatie (af) in te kunnen stellen.  
Tip: Als u de middelste frequentie of de bandbreedte van een formant grafisch wijzigt, dan worden er twee verticale lijnen weergegeven. Zij tonen van de gewijzigde parameter de bovenste en onderste grenzen, tussen alle andere fonemen in de lijst. Dit helpt om te voorkomen dat u de parameter in een al te "exotische" waarde instelt.
 

Overgangscurven voor fragmenten


Gedurende een gesproken of gezongen deel geldt dat de overgang van het ene fragment naar het andere niet onmiddellijk plaatsvindt. Het volgende fragment start al voordat het vorige volledig beëindigd is. Deze soepele overgang tussen fragmenten wordt coarticulatie genoemd. 

Voor iedere parameter (formant frequentie, amplitude, bandbreedte en verschillende niveaus) geldt dat het grafisch gebied onderaan het venster u helpt bij het definiëren van de overgangscurve in de tijd. De parameter waarvan de curve wordt weergegeven, is in het bovenste venster rood omcirkeld.

Conventioneel wordt op de overgangscurve de vorige waarde van de parameter weergegeven door de laagste waarde op de verticale as van de grafiek. De statische waarde voor het huidige, geselecteerde fragment (in de bovenste grafiek geselecteerd) wordt weergegeven door de hoogste waarde op de verticale as.

Opmerking: dit is een schematische weergave, die niet direct gekoppeld is aan de effectieve of relatieve waarden van de beschreven parameter.

De overgang van de parameter van zijn vorige waarde naar de huidige statische waarde, wordt weergegeven in de vorm van twee segmenten
Het eerste segment links heeft een tijdsduur die "gestolen" is van de tijdsduur van het vorige fragment. Dit segment zorgt ervoor dat de parameter overgaat van de vorige statische waarde naar een intermediaire waarde, die gedefinieerd wordt door de twee verticale schuifbalken aan de linkerzijde van de curve.
De ratio schuifbalk (Ra) helpt u bij het kiezen van het belang van de vorige parameterwaarde, gerelateerd aan dat van de huidige statische waarde van het fragment (dat is de waarde die bereikt wordt tijdens de overgang).
Een voorbeeld: een 0% ratio stelt de intermediaire waarde gelijk aan de waarde die bereikt moet worden.
Een 100% ratio stelt de intermediaire waarde gelijk aan de vorige parameterwaarde.
Een 50% ratio stelt de intermediaire waarde gelijk aan het gemiddelde van de vorige en de huidige waarden.

Het start offset (Od) helpt u om een vaste waarde toe te kennen aan de intermediaire waarden.

Een voorbeeld: met een ratio (Ra) van 50% en een offset (Od) van 100 wordt de intermediaire waarde gelijk gesteld aan 100 + het gemiddelde van de vorige en de huidige waarden.

Op de curve geeft het tweede segment de tijd weer van de overgang tussen de intermediaire waarde en de waarde die bereikt moet worden (de statische waarde van deze parameter voor het huidige fragment). Zijn tijd is "gestolen" van het huidige fragment.

Symmetrisch gezien geven de twee segmenten rechts, met een bijbehorend paar aan schuifbalken, u de mogelijkheid om de overgang te definiëren tussen de huidige statische waarde en de statische waarde van het volgende fragment.

Dit betekent dat een overgangscurve gedefinieerd kan worden vanuit de statische waarde van het
vorige fragment, maar ook naar de statische waarde van het volgende fragment.

De overgangscurve voor de segmenten die gebruikt zal worden, hangt af van welk fragment een hogere prioriteit heeft gekregen. Als het huidige fragment een hogere prioriteit heeft gekregen dan het vorige, dan zal zijn "overgang van de vorige" segmenten gebruikt worden. Uiteraard in plaats van de "overgang naar de volgende" segmenten vanuit het vorige fragment. De prioriteit wordt gegeven door de volgorde van de fragmenten in de fragmentenlijst: hoe hoger in de lijst, hoe groter de prioriteit.

Voorbeeld:
Als de lijst slechts drie fragmenten bevatte, "a, b, c" in deze volgorde, en de lettergreep die gezongen moet worden "babc" luidt, dan worden de volgende overgangen gemaakt voor iedere fragmentparameter:

  • statische waarde van fragment "b",
  • overgang naar de waarde van fragment "a", waarbij gebruik wordt gemaakt van de eerste twee segmenten van de "a" overgangscurve (omdat "a" een grotere prioriteit heeft dan "b").
  • statische waarde van fragment "a",
  • overgang naar de waarde van fragment "c", waarbij gebruik wordt gemaakt van de laatste twee segmenten van de "a" overgangscurve (omdat "a" een grotere prioriteit heeft dan "c"),
  • statische waarde van fragment "c",
  • overgang naar de waarde van fragment "b", waarbij gebruik wordt gemaakt van de laatste twee segmenten van de "b" overgangscurve (omdat "b" een grotere prioriteit heeft dan "c"),
  • statische waarde van fragment "b".

Actie knoppen

Deze knoppen, die rechtsonder in het venster staan, zorgen voor verschillende acties:

Proberen knop

U kunt het gewijzigde fragment proberen door een eenvoudige zin in het bijbehorende tekstvak te typen. Daarna klikt u op de knop. Er wordt nu een lijst van fragmenten gebruikt voor het uitvoeren van de zin die u heeft opgegeven. De symbolen > en < tussen de namen van de fragmenten geven de relatieve prioriteit weer van ieder fragment vergeleken met de naastliggende fragmenten.
Opmerking: zodra u een fragment in de lijst van fragmenten selecteert, dan wordt een voorbeeldwoord voor dat fragment in het tekstvak getoond.
Pop-up menu voor de taal
Als er een andere taal geselecteerd is, dan worden de fragmenten die in die taal gebruikt worden vetgedrukt in de lijst weergegeven.
Kopiëren/Plakken knoppen
Deze knoppen helpen u om alle parameters en overgangscurven van een fragment te kopiëren, om hen vervolgens bij een ander fragment te kunnen plakken.


(c) Myriad - Alle rechten voorbehouden