在Python脚本中,num2words
似乎会生成unicode文本。当将其用作pico2wave
的输入时,在文本前添加一个'u'。 num2words
如何生成ascii,以便pico2wave
可以正常工作?
打印输出,例如:
var1 = 12
numb = numb2words(var1)
print(numb)
输出:u'twelve'
用作微微输入时,会说“ uhtwelve”。
答案 0 :(得分:0)
您可以使用库unicodedata将您的unicode转换为ascii。
我们将使用unicodedata.normalize的“ NFKD”形式进行转换。根据{{3}}:
基于兼容性,还有两种其他的普通形式 等价。在Unicode中,支持某些字符,其中 通常会与其他字符统一。例如,U + 2160 (罗马数字ONE)与U + 0049(拉丁字母大写)完全相同 字母I)。但是,Unicode支持它与 现有字符集(例如gb2312)。
正常形式的KD(NFKD)将应用兼容性分解, 也就是说,将所有兼容字符替换为等效字符。
因此解决方案将是:
import unicodedata
var1 = 12
numb = numb2words(var1)
numb = unicodedata.normalize('NFKD', numb).encode('ascii','ignore')
print(numb)