Kolik slabik má slovo „oheň“?
Soukromí & Soubory cookie
Tato stránka používá soubory cookie. Pokračováním souhlasíte s jejich používáním. Zjistěte více, včetně toho, jak cookies ovládat.
Podíval jsem se na program VirtualSinger a jedna věc mi připadá zajímavá – jak pracuje se slabikami. V podstatě pomocí pomlček zjišťuje, na kolik tónů je slovo rozloženo, ale automaticky přechyluje podle pravidla, že každý tón dostane jednu jádrovou samohlásku.
Na první pohled je to docela elegantní řešení… ale jsou slova, která vypadají nevinně a způsobují problémy při určování, jak by se s nimi mělo zacházet.
„Oheň“ je jedno z těch slov, které způsobuje potíže, protože foneticky je to /F AY ER/, které má dvě „jádrové“ samohlásky – /AY/ a /ER/. Přesto se většinou vyslovuje jako jedna slabika.
Jak by se to tedy mělo řešit? Ve VirtualSingeru i synSingeru se můžete uchýlit k hláskování fonémů, ale to je poněkud ošklivý přístup.
Přístup synSingeru je hybridní. Nejprve sestaví slovo z poznámek a pak kontroluje místní kopii slovníku CMU. Pokud se shoduje: skvělé! Problém vyřešen.
Ale pokud se neshoduje, může to být ošemetné. Pak předá slovo upravené verzi Reciteru, která slovo převede na fonémy spárované s původními písmeny. Například ze slova CATTLE se stane C:K A:AE T:T T:T L:L E:EH. Poté slovo přestaví pomocí původního hláskování a vloží pomlčky vzhledem k pozici, kterou uživatel zvolil.
Slovo OHEŇ by se stalo F:F I:AY R:ER E:. Pokud tedy uživatel zadal FIRE, výsledkem je FAYER, a pokud napsal FI-RE, výsledkem je FAY-ER. To vše se děje za scénou a většinou to prostě funguje tak, jak uživatel očekává.
Naneštěstí je tu něco, co synSinger neumí dobře a co VocalWriter umí pěkně: zpracovávat melizmy. Tedy více tónů přiřazených jedné slabice.
VocalWriter používá znak ‚=‘, který představuje „rozbalit poslední jádro“. Je to obzvlášť pěkné, protože to lze napsat jako „THE FIG- =- =-“ a automaticky se to rozšíří na „DHAX FIH-IH-IHG“ se správně umístěnými koncovými souhláskami.
synSinger to nepodporuje, takže pokud chcete něco takového napsat, musíte to udělat foneticky. A pokud pracuješ s diftongem, musel jsi najít přibližnou samohlásku pro původně slabiky před koncovým diftongem.
Nedávno jsem upravil synSinger tak, že pokud následuje diftong sám za sebou, plně se rozvine jen ten poslední. Díky tomu je jeho používání o něco méně otravné, ale pořád to není zdaleka tak pěkné jako VirtualVoice.
Chci tedy do synSingeru přidat funkci, aby to „prostě fungovalo“, místo abych se musel uchylovat k psaní fonémů.
Leave a Reply