Hvor mange stavelser er der i “Fire”?

X

Fortrolighed & Cookies

Dette websted bruger cookies. Ved at fortsætte accepterer du brugen af dem. Få mere at vide, herunder hvordan du styrer cookies.

Godt!

Annoncer

Jeg har kigget på programmet VirtualSinger, og en ting, som jeg finder interessant, er, hvordan det håndterer stavelser. Grundlæggende bruger det bindestreger til at regne ud, hvor mange toner et ord er fordelt på, men det ombytter automatisk bindestreger ved hjælp af reglen om, at hver tone får en enkelt kernevokallyd.

På overfladen er det en ret pæn løsning … men der er ord, der ser uskyldige ud, men som giver problemer med at finde ud af, hvordan de skal håndteres.

“Fire” er et af de ord, der giver problemer, fordi det fonetisk set er /F AY ER/, som har to “kerne”-vokaler – /AY/ og /ER/. Alligevel udtales det for det meste som en enkelt stavelse.

Så hvordan skal dette håndteres? I både VirtualSinger og synSinger kan man ty til at stave fonemerne ud, men det er en ret grim tilgang.

SynSingers tilgang er en hybrid. Først opbygger den ordet ud fra noter, og derefter kontrollerer den en lokal kopi af CMU-ordbogen. Hvis det stemmer overens: fantastisk! Problemet er løst.

Men hvis der ikke er noget match, kan tingene blive risikable. Den sender derefter ordet videre til en modificeret version af Reciter, som konverterer ordet til fonemer parret med de oprindelige bogstaver. For eksempel bliver ordet CATTLE til C:K A:AE T:T T:T T:T L:L E:EH. Derefter genopbygger den ordet med den oprindelige stavemåde og indsætter bindestregerne i forhold til den position, brugeren har valgt.

Ordet FIRE ville blive til F:F I:F I:AY R:ER E:. Så hvis brugeren har indtastet FIRE, bliver resultatet FAYER, og hvis han har skrevet FI-RE, bliver resultatet FAY-ER. Alt dette sker bag kulisserne, og for det meste fungerer det simpelthen som brugeren forventer.

Der er desværre noget, som synSinger ikke gør godt, som VocalWriter gør fint: at håndtere melismer. Det vil sige flere toner, der er tildelt en enkelt stavelse.

VocalWriter bruger tegnet ‘=’ til at repræsentere “udvide den sidste kerne”. Det er særligt rart, fordi det kan skrives som “THE FIG- =- =- =-“, og det vil automatisk blive udvidet til “DHAX FIH-IH-IH-IHG” med de afsluttende konsonanter placeret korrekt.

synSinger understøtter ikke dette, så hvis du vil skrive noget lignende, skal det gøres fonetisk. Og hvis man arbejder med en diftonge, skulle man finde en tilnærmelsesvis vokal for de indledende stavelser før den sidste diftonge.

Jeg har for nylig ændret synSinger, så hvis en diftonge følger efter sig selv, er det kun den sidste, der udvides fuldt ud. Det gør den lidt mindre besværlig at bruge, men stadig ikke lige så fin som VirtualVoice.

Så jeg overvejer at tilføje funktionen til synSinger, så det “bare virker” i stedet for at skulle ty til at skrive fonemer.

Annoncer

Leave a Reply