| #!/usr/bin/env python3 | |
| # Copyright 2023 Xiaomi Corp. (authors: Fangjun Kuang) | |
| from pathlib import Path | |
| import graphviz | |
| import kaldifst | |
| from prepare_lang import Lexicon, make_lexicon_fst_with_silence | |
| def test_yesno(): | |
| lang_dir = "/Users/fangjun/open-source/icefall/egs/yesno/ASR/data/lang_phone" | |
| if not Path(lang_dir).is_dir(): | |
| print(f"{lang_dir} does not exist! Skip testing") | |
| return | |
| lexicon = Lexicon(lang_dir) | |
| L = make_lexicon_fst_with_silence(lexicon) | |
| isym = kaldifst.SymbolTable() | |
| for i, token in lexicon.id2token.items(): | |
| isym.add_symbol(symbol=token, key=i) | |
| osym = kaldifst.SymbolTable() | |
| for i, word in lexicon.id2word.items(): | |
| osym.add_symbol(symbol=word, key=i) | |
| L.input_symbols = isym | |
| L.output_symbols = osym | |
| fst_dot = kaldifst.draw(L, acceptor=False, portrait=True) | |
| source = graphviz.Source(fst_dot) | |
| source.render(outfile="L_yesno.pdf") | |
| # See the link below to visualize the above PDF | |
| # https://t.ly/jMfXW | |
| def main(): | |
| test_yesno() | |
| if __name__ == "__main__": | |
| main() | |