static LS flite_listVoices() { if (!flite_installed()) ret emptyList(); new TreeSet set; set.addAll(splitAtSpace(getColonProperty("Voices available", lines(backtick("flite -lv"))))); new Matches m; for (File dir : flite_voiceDirs()) for (S s : listFileNames(dir)) if (endsWith(s, ".flitevox", m)) set.add(m.rest()); ret asList(set); }