sooftware / kospeech

Open-Source Toolkit for End-to-End Korean Automatic Speech Recognition leveraging PyTorch and Hydra.
https://sooftware.github.io/kospeech/
Apache License 2.0
581 stars 193 forks source link

예측된 문장의 단어들 타임스탬프를 구하는게 가능 할까요? #166

Closed Dripmaster closed 1 year ago

Dripmaster commented 1 year ago

Title

Description

안녕하세요, 공개해주신 오픈소스를 통해 많이 배우고 있습니다. 감사합니다. ListenAttendSpell 모델을 이용해 한국어 STT 모델을 학습하였습니다. 혹시 이 예측된 문장의 단어들이 스펙트로그램에서 어느 부분에 해당하는지 타임스탬프 라벨링이 가능 할까요? 어떻게 접근해야할지 막막해서 질문드립니다. 감사합니다.

원하는 결과 : image

Linked Issues

sooftware commented 1 year ago

CTC로 학습된 모델 같은 경우는 기술적으로 가능은 하지만, 현재 그런 기능을 제공하고 있지는 않습니다.

Dripmaster commented 1 year ago

CTC로 학습된 모델 같은 경우는 기술적으로 가능은 하지만, 현재 그런 기능을 제공하고 있지는 않습니다. @sooftware

deep_cnn_with_joint_ctc_listen_attend_spell 이 모델로 학습했다면 가능할까요? 가능하다면 ctcdecode 이 페이지에 있는 CTCBeamDecoder를 이용해 타임스탬프 생성을 해보려고 합니다.

Dripmaster commented 1 year ago

아, 제가 사용한 모델은 openspeech에 있는 모델이었네요. 답변감사했습니다.

Dripmaster commented 1 year ago

성급하게 이슈를 닫은 것 같네요. 만약 저와 같은 기능을 찾고 계신분들이 있다면 도움 되시라고 올립니다. 모델 : deepspeech2 criterion : ctc tokenizer unit : kspon_character 위 환경으로 테스트하였습니다.

ctcdecode에 구현된 CTCBeamDecoder 를 이용해 decoder.decode를 하면 beam_results, beam_scores, timesteps, out_lens가 나오는데요,(이 때, decode메서드의 파라미터는 logits를 넣어주세요) 이 때 음성 내에서 각 글자의 위치는 timesteps = timesteps[0][0][:out_lens[0][0]] 이렇게 구할 수 있었습니다. pytorch asr inference 가이드에 있는 시각화 코드도 참고하시면 좋을 것 같습니다. 해당 가이드에서 사용하는 ctcdecoder는 아직 beta버전이라서 사용해보진 못했습니다.

image

ctc attention LAS 모델에서는 작동되지 않아 좀 더 테스트 해보고 공유해드리겠습니다.

sooftware commented 1 year ago

좋은 기록 감사합니다. CTC-Attention 모델의 경우, CTC 모델과 작동방법이 꽤 상이해서, 같은 방법으로는 어려울 것 같습니다. 어텐션 맵을 이용해서 어느 정도는 유추 가능할 것 같지만, CTC처럼 모델 예측 => 타임 스탬프를 정확히 구하는건 어려울 것 같습니다.