Pingtype tries to solve all these problems. If there's a need for it to be ported to Python/etc then I'd be happy to do so!
Re: Projecting Unicode to ASCII
#41Romanising Chinese is not as easy as unidecode would made it seem! "銀行" is pronounced "yin hang", but the second character "行" is "xing" when it's alone. This problem is made worse by the lack of spaces when writing Chinese.