상세 컨텐츠

본문 제목

KeywordSpotting

연구실

by myeongjaechoi 2024. 11. 12. 14:03

본문

연구실에서 무인 드라이브 스루 과제를 진행하고 있다.

1월부터 현재 까지 진행중이다.

내가 여기서 한 일은, 네트워크가 없는 환경에서 On-Device로 돌아가게 만드는 것이였다.

원래는 PicoVoice를 사용해서 구현했었는데, api key가 필요하기 때문에, 내가 직접 모델을 가져와서 파인튜닝을 진행하였다.

우선 모델은 Tc-ResNet8을 선택하였다. 선택한 이유는 경량화 모델에 적합하고, 실시간 스트림 처리 속도가 빠르기 때문이다.

고려해야 할 상황들이 굉장히 많았다.

  • 학습 데이터의 hz를 내가 Input으로 사용하는 MacOS 마이크의 hz와 통일시킨다.(48000hz로 통일시켰다.)
  • "Hi,Bean", "Cancel,Bean", "Okay,Bean"을 keywordspotting 하기 때문에, 음성 길이는 짧다. 따라서 음성 길이를 2초로 패딩, 슬라이스 했다.
  • end-to-end를 잡기 위해, fft_energy의 임계값을 10으로 잡고, 10이 넘었을 때부터 넘기지 못했을 때까지의 음성을 녹음하고 전처리 과정을 거쳤다.
  • 음성 길이를 1초, 2초로 나누고 train_rate를 0.01, 0.001로 나누고, layer를 2,3,4로 나누어서 총 12경우를 epoch 50으로 학습시키고 best_model을 뽑았다.
  • "Hi, Bean"이 detected 됐을 때, 주문 스레드로 넘어가는데, KeywordSpotting 스레드가 실행되지 않은 문제를 해결하였다.(start_recording 부분이 이중호출 돼서 스레드가 활성화 안 된 것이였다.)
  • 행렬곱 계산 식도 맞춰줬어야 했다.
  • 데이터가 400개로, 학습하기에 적은 데이터기 때문에 데이터 증강을 잘 활용해야 했다.
  • "Hi,Bean"이 detected 됐을 때, TTS로 나오는 음성이 keywordspotting에서 "Cancel,Bean"으로 오인식 돼 취소되는 상황을 record를 time.sleep()으로 늦추어 해결하였다.

이것이 나의 6월부터 11월의 일이였다.

1월부터 6월은 논문 2저자로 참여했다.

https://www.pressian.com/pages/articles/2024092715245331719

 

상명대 한국컴퓨터종합학술대회 우수논문상 수상

▲상명대 소프트웨어학과 학부생과 대학원생이 공동연구를 통해 새로운 방식의 무인커피주문시스템을 제안해 우수논문상을 수상했다 ...

www.pressian.com

우수논문상도 수상하였다.(맨 오른쪽이 나다.)

앞으로 한 달 동안은, 해당 무인 드라이브 스루의 GUI를 만들 예정이다.

(코드와 더 자세한 내용은 쓰면 안 될 것 같아서 안 썼다.)

'연구실' 카테고리의 다른 글

TTS(Text-to-Speech)  (0) 2024.11.26
GUI 만들기  (0) 2024.11.19
KCC 한국 정보과학회  (0) 2024.07.02
엔트로피  (1) 2024.01.28
손실함수  (0) 2024.01.27

관련글 더보기