tg 모델은 3-gram으로 학습한 언어 모델, fg 모델은 4-gram으로 학습한 언어 모델이 맞습니다.
그러나 위에서 말씀하신 final.mdl이란 모델 파일은 이와는 별개로 학습이 된 음향 모델을 의미합니다.
이 모델들을 가지고 steps/mkgraph.sh 스크립트를 이용해 최종 디코딩 그래프인 HCLG.fst를 생성하게 됩니다.
zeroth 기본 레시피를 기준으로
언어 모델들(data/local/lm 아래의 zeroth.lm.*.arpa.gz 파일들)이 이미 있다고 가정할 때,
local/format_lms.sh 스크립트를 실행하면 3-gram 언어 모델을 디코딩 그래프에 합성할 수 있도록 생성합니다.(data/lang_test_tgsmall)
이와 별개로 4-gram 모델을 rescoring에 사용하시려면 utils/build_const_arpa_lm.sh 스크립트를 사용하면 됩니다. 이 또한 기본 레시피에서는 자동으로 생성하도록 되어 있습니다.
따라서 말씀하신대로 fglarge모델을 사용하고 싶으시면
일단 data/local/lm/run.sh를 참고하셔서 fglarge arpa LM 생성하시고(또는 다운로드받으시고)
이를 이용해 utils/build_const_arpa_lm.sh을 이용해 data/lang_test_fglarge를 만드시면 됩니다.
최종적으로 이 4-gram 언어 모델을 rescore에 사용하려면 steps/lmrescore_const_arpa.sh 를 사용하시면 됩니다. 이 스크립트들은 모두 기본 레시피(run.sh)를 보시면 어떻게 사용하는지 알 수 있으실 겁니다.
LM들이 정상적으로 생성이 완료되었다고 가정하고 아래 질문에 답변드리자면,
>>> 이때 export.sh에서
>>> 두개를 구분해서 사용하기 위해서는
>>> final_graph_dir, final_model_dir, small_lm, large_lm 중에서 바꿔주어야 할 부분이 있을까요?
zeroth 프로젝트가 위치한 경로를 제외하고는
small_lm과 large_lm을 굳이 구분짓지 않으셔도(아무것도 건드리지 않아도) 알아서 모델 파일들을 복사할 것입니다.
물론 생성 도중 파일 명이나 디렉터리 명을 임의로 변경하셨다면 그에 맞춰서 변경하시면 됩니다.
>>> 또 한가지 질문은
>>> decode.sh를 통해 decoding하고 문자가 나왔을때 wer을 확인하고 싶은데 이는 어디서 보아야할지 질문드립니다.
exp/chain_rvb/tdnn1n_rvb_online/decode_tgsmall_test_clean 아래의 wer* 파일들을 확인하시면 됩니다.