ttlig.py's from_furi method fails on words that contain kanji, end with kana, and where the ending kana is same as the last kana of the preceding kanji.
e.g.:
可愛い (かわいい)
憎く (にくく)
低く (ひくく)
from speach import ttlig
ttlig.RubyToken.from_furi(surface='可愛い',kana='かわいい').to_code()
# it returns {可愛/かわ}い
# but the correct result should be {可愛/かわい}い
@larvata pointed this out downstream in a yomikata issue. I fixed this in yomikata by stripping surface and kana of trailing overlapping trailing characters before running them through the main logic, a pretty ugly hack.