이 프로젝트는 Edge Impulse Studio를 사용해 아두이노 나노 33 BLE 센스에서 TinyML 언어 감지기를 구축하는 방법을 보여줍니다. 장치는 지속적으로 세 가지 음성 단어 — 이탈리아어 "si", 프랑스어 "oui", 영어 "yes" — 를 감지하고, 해당 단어가 인식되면 서보 모터로 제어되는 깃발을 작동시킵니다.
워크플로
데이터셋 생성 및 샘플링
모델 설계 및 훈련
성능 평가
EON 튜너를 통한 하드웨어 최적화
배포 및 서보 제어 깃발과의 통합
샘플링 및 데이터셋 생성
데이터셋은 총 30분 녹음으로 구성됩니다: 목표 단어당 10분씩 30분, 주변 배경 소음 3분. 각 1초 클립은 단일 발화를 담으며, Edge Impulse에서 적절히 라벨링됩니다. 배경 샘플은 모델이 음성과 비음성을 구분하는 데 도움을 줍니다.
모델 설계
Edge Impulse는 대부분의 전처리 단계를 자동화합니다. 오디오는 시계열로 변환되고, 윈도우잉을 거쳐 MFCC 특징으로 변환됩니다. 그런 다음 경량 CNN이 각 윈도우를 "si", "oui", "yes", "배경" 4개 클래스 중 하나로 분류합니다.
훈련 및 아두이노 최적화
EON 튜너가 수십 가지 모델 구성을 자동 탐색하며, 정확도, 추론 시간, RAM, 플래시 사용량을 기준으로 평가합니다. 이 프로젝트에서는 상위 5개 정확도 모델 중 가장 빠른 모델을 선택했습니다.
테스트
훈련 후 새로운 테스트 세트로 검증한 결과, 목표 단어에 대해 분류 신뢰도가 일관되게 80%를 초과했습니다.
배포
배포는 Edge Impulse 아두이노 라이브러리를 통해 간소화됩니다. 생성된 헤더 파일을 아두이노 IDE에 추가하고, 세 개의 SG90 서보로 깃발을 제어하도록 커스터마이징합니다.
코드 개요
소스 코드(GitHub)는 Edge Impulse 템플릿에 서보 제어 로직을 확장한 것입니다. 주요 추가 사항: