원문 캡처 · arxiv.org
원문 캡처 · arxiv.org

실제 ESP32-S3 보드에서 Oído는 음성 길이의 1.97배 시간이 걸려 인식 결과를 냈다. 4초짜리 명령은 말이 끝난 뒤 약 8.7초 후에야 문자로 나온다.

다니엘 바렐라 산체스(Daniel Varela Sánchez)와 기예르모 마르틴코엘요 후아레스(Guillermo Martín-Coello Juárez)는 신경망 가속기 없는 저가 마이크로컨트롤러에서 영어 음성을 받아쓰는 시스템 Oído를 발표했다. 기기 안에서 음성을 처리해야 하는 임베디드 기기 개발자에게 참고가 될 연구다.

Oído는 무엇을 하는가?

마이크로컨트롤러는 작은 기기 안에서 특정 작업을 수행하는 칩으로, 작은 주방 기기를 떠올리면 쉽다. Oído는 이 칩에서 단어 목록에 없는 말도 인식하는 음성 인식을 수행한다. 키워드나 정해진 명령만 찾던 저가 마이크로컨트롤러에서 자유로운 영어 음성을 받아쓰는 것이 목표다.

어떤 조건에서 결과를 냈나?

연구진은 240MHz 듀얼 코어 Xtensa LX7 프로세서와 SRAM 512KB, PSRAM 8MB, 플래시 메모리 16MB를 갖춘 ESP32-S3에서 1,300만 개 매개변수의 Conformer-CTC 모델을 실행했다. 신경망 가속기는 사용하지 않았다. 모델 가중치와 활성값, 주의 연산을 8비트 정수로 처리하고, 플래시와 PSRAM의 대역폭에 맞춰 실행 순서를 설계했다.

LibriSpeech 시험 데이터에서 단어 오류율은 test-clean 3.70%, test-other 8.23%였다. 단어 오류율은 인식 결과에서 틀린 단어가 차지하는 비율이다. 전체 정밀도 처리 결과와의 차이는 0.12%포인트 이내였다. 칩 안에서 실행하는 130만 매개변수 언어 모델을 더하면 각각 3.33%, 7.15%로 낮아졌다. 변환기 출력부를 쓰면 2.99%, 6.67%였고, 4비트 정수 버전은 8.3MB에 들어갔다.

연구진은 같은 칩에서 제조사 음성 인식기보다 오류가 2.3~2.8배 적었다고 보고했다. 또 실제 소음과 잔향이 있는 환경에서도, 노트북에서 전체 정밀도로 실행한 Whisper와 Moonshine tiny보다 오류가 적었다고 주장했다. 이는 논문이 보고한 비교 결과이며, 초록만으로 비교 실험의 세부 조건을 확인할 수는 없다.

실시간으로 쓸 수 있나?

아직은 아니다. 실제 보드의 단일 코어 실행은 음성 길이의 1.97배가 걸렸다. 두 코어를 쓰는 실행 방식은 실리콘에서 잘못된 결과를 내 비활성화했다. 보드에서 나온 결과는 명령어를 정확히 모사하는 에뮬레이터와 일치했다.

말하는 도중 부분 문자를 보여주는 스트리밍 버전도 제시했다. 3.6~10.6초 길이 음성의 최종 결과는 발화가 끝난 뒤 4.1~11.1초에 나왔다. 발화 단위 처리에서는 7.2~22.4초가 걸렸고, 단어 오류율은 test-clean 4.86%, test-other 11.03%였다. 스페인어 모델은 다국어 Whisper tiny보다 오류가 34~60% 적었다.

Oído의 코드와 모델은 공개됐다고 논문 초록은 밝힌다. 논문, PDF, HTML판을 확인할 수 있다. 다만 초록은 코드와 모델의 구체적인 배포 위치, 실제 보드 가격, 시험 환경별 세부 조건을 밝히지 않는다.