如果我从一个完全日语的句子开始并通过 MeCab 运行它,我会得到如下内容:
$ echo "吾輩は猫である" | mecab
吾輩 名詞,代名詞,一般,*,*,*,吾輩,ワガハイ,ワガハイ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
猫 名詞,一般,*,*,*,*,猫,ネコ,ネコ
で 助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある 助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
EOS
如果我将最后一列中的所有内容组合在一起,我会得到“ワガハイワネコデアル”,然后我可以将其输入语音合成程序并获得输出。然而,所述程序不处理英文单词。
我把英语扔进 MeCab,它设法对其进行标记(可能在空格处很天真),但没有给出读数:
$ echo "I am a cat" | mecab
I 名詞,固有名詞,組織,*,*,*,*
am 名詞,一般,*,*,*,*,*
a 名詞,一般,*,*,*,*,*
cat 名詞,固有名詞,組織,*,*,*,*
EOS
我也想得到这些的读数,即使它们并不完美,这样我就能得到类似“アイアムアキャット”的东西。
我已经在网上搜索了解决方案,虽然我确实找到了一堆似乎足够音译的网站,但我无法在我自己的代码中找到任何方法。在某些情况下,我向网站作者发送了电子邮件,但在等待几周后仍未收到回复。(这些人的收件箱落后多少?)
我可以去很多方向,但到目前为止我都遇到了死胡同,所以这是我的复合问题:
- MeCab 采用自定义词典。是否有一个自定义词典可以在一定程度上补充英语知识?
- 有没有其他的图书馆或工具可以带英语并吐出片假名?
- 是否有一些图书馆或工具可以使用 IPA(国际音标)并吐出片假名?(我知道如何从英语到国际音标。)
顺便说一句,我发现“VOICEROID”软件可以说英文文本(很差,但足以满足我的目的)。该软件也使用 MeCab(或者至少它的 DLL 和字典文件包含在安装中。)它还使用另一个库,Cabocha,据我所知,运行它与 MeCab 完全相同。它可以使用这两个库中的任何一个的自定义词典来完成这项工作,或者执行它的代码可能在他们正在使用的专有 AITalk 库中。需要更多的研究,我还没有弄清楚如何针对他们的字典运行这两种工具来直接测试它。