Hur många stavelser finns det i ”Fire”?

X

Privacitet & Cookies

Denna webbplats använder cookies. Genom att fortsätta godkänner du att de används. Läs mer, bland annat om hur du kontrollerar cookies.

Got It!

Annonser

Jag har tittat på programmet VirtualSinger, och en sak som jag tycker är intressant är hur det hanterar stavelser. I grund och botten använder det bindestreck för att räkna ut hur många toner ett ord är fördelat på, men ombinder automatiskt med hjälp av regeln att varje ton får ett enda kärnvokalljud.

På ytan är detta en ganska snygg lösning… men det finns ord som ser oskyldiga ut men som orsakar problem när man försöker avgöra hur de ska hanteras.

”Fire” är ett av dessa ord som orsakar problem, eftersom det fonetiskt sett är /F AY ER/, som har två ”kärnvokaler” – /AY/ och /ER/. Ändå uttalas det oftast som en enda stavelse.

Så hur ska detta hanteras? I både VirtualSinger och synSinger kan man tillgripa stavning av fonemen, men det är ett ganska fult tillvägagångssätt.

synSingers tillvägagångssätt är en hybrid. Först byggs ordet upp från anteckningar och sedan kontrolleras en lokal kopia av CMU-ordboken. Om det stämmer: bra! Problemet är löst.

Men om det inte finns någon matchning kan det bli besvärligt. Då skickas ordet vidare till en modifierad version av Reciter som omvandlar ordet till fonem som är kopplade till de ursprungliga bokstäverna. Ordet CATTLE blir till exempel C:K A:AE T:T T:T T:T L:L E:EH. Därefter byggs ordet om med den ursprungliga stavningen och bindestrecken sätts in i förhållande till den position som användaren valde.

Ordet FIRE skulle bli F:F I:AY R:ER E:. Så om användaren skrev FIRE blir resultatet FAYER, och om han skrev FI-RE blir resultatet FAY-ER. Allt detta sker bakom kulisserna, och för det mesta fungerar det helt enkelt som användaren förväntar sig.

Tyvärr finns det något som synSinger inte gör bra som VocalWriter gör bra: att hantera melismer. Det vill säga flera toner som tilldelas en enda stavelse.

VocalWriter använder tecknet ”=” för att representera ”expand the last nucleus”. Det är särskilt trevligt, eftersom detta kan skrivas som ”THE FIG- =- =- =-” och det kommer automatiskt att expanderas till ”DHAX FIH-IH-IH-IHG” med de efterföljande konsonanterna placerade på rätt sätt.

synSinger har inte stöd för detta, så om du vill skriva något sådant måste det göras fonetiskt. Och om man arbetar med en diftonga var man tvungen att hitta en approximativ vokal för de inledande stavelserna före den sista diftongen.

Jag har nyligen modifierat synSinger så att om en diftonga följer på sig själv, expanderar bara den sista fullt ut. Detta gör det lite mindre jobbigt att använda, men fortfarande inte alls lika bra som VirtualVoice.

Så jag funderar på att lägga till funktionen i synSinger, så att det ”bara fungerar” istället för att behöva ta till att skriva fonem.

Annonser

Leave a Reply