I'm trying to make a fun little "Halloweenify" feature where a user types in his or her name and gets a scary version. (Julie becomes "Ghoulie", Robert becomes "Macabert").
I have a huge list of Halloween works and a huge list of names, all with their phonemes from CMUDict. (Let's put aside for a second uncommon names.) For example:
"julie": "JH UW1 L IY0"
"ghoul": "G UW1 L"
It's relatively easy to write some code to align the "UW1 L" in these words. But since I don't explicitly know that the "IY0" in "Julie" corresponds to "ie," I can't get from "Ghoul" to "Ghoulie."
I think what I need is a version of CMUDict, or any other robust grapheme-to-phoneme dictionary, that splits up both the orthography and the phonemes, like so:
"j u l ie": "JH UW1 L IY0"
"r o b er t": "R AA1 B ER0 T"
That way, it would be easy to reconstruct the original name after adulterating it to make it scary.
Has anyone seen such a dictionary? I'm also open to more generic g2p solutions, but since this runs in a browser I can use any live heavy-duty ML methods. Thanks!