Socket 통신

Voice AI 모듈과 LTE CATM1을 이용한 작업 데모

장병남 2024. 2. 22. 06:07

 

양손을 사용하는 다양한 작업 환경에서 현재 상태를 확인하고 제어하고 결과를 전송해야 하는 경우, 갑작스러운 상황이 발생했을 때 손보다 음성을 통한 직관적인 제어가 효율적일 때가 있습니다. 

 

관련해서 Voice AI 모듈을 이용해서 음성을 통해 디바이스를 제어하고 제어 결과를 LTE CATM1을 이용해서 주변통신환경에 관계없이 서버에 실시간 보고하는 데모를 제작 했습니다.

 

코드주에서 개발 중인 Voice AI 모듈은 아래와 같은 특징을 가지고 있습니다.

- 네트워크에 접속하지 않고 오프라인 상태에서 음성인식을 할 수 있습니다.

- Phoneme-based modeling을 사용해서 음성명령을 빠르게 추가할 수 있습니다.

- 44+ 이상의 언어를 지원합니다. 

 

데모에서는 Voice AI 모듈에 한국어 음성명령을 아래와 같은 구조로 만들었습니다.

 

Voice Command Structure (by DGM)

1. Attention : 호출명령, 사용자 명령의 혼동을 막기 위해 Attention 명령("안녕 코드주") 음성 인식 후 다음단계(First Level)로 이동합니다. 

 

2. First Level : 현재 상태를 보고 받을 센서를 호출합니다. 센서 호출 명령("배터리 전압", 실내온도") 음성 인식 후 Second Level로 이동합니다. First Level 상태에서 타임아웃 될 때까지 센서 호출 명령이 인식되지 않으면 Attention 상태로 돌아갑니다.

 

3. Second Level : 이전 단계에서 확인한 센서값을 서버로 보낼지 결정합니다. 전송 명령("전송")을 인식할 경우 서버로 데이터를 전송하고 삭제 명령("삭제")을 인식할 경우 값을 버리게 됩니다.

Second Level 상태에서 타임아웃 될때까지 다음 명령이 인식되지 않으면 Attention 상태로 돌아갑니다.

 

Voice Command는 고객사의 요구사항에 맞춰서 코드주에서 펌웨어 제작 후 VoiceAI 모듈에 탑재해서 출고합니다. 현재 개발보드 상태에서 소프트웨어 기능 검증이 완료되어 개발보드 하드웨어의 불필요한 기능을 제거하고 소형화하는 작업을 진행하고 있습니다. 관련 문의는 코드주(rooney.jang@codezoo.co.kr)로 부탁드리겠습니다.

 

부팅 → 네트워크 접속 → "안녕 코드주" → "배터리 전압" → "전송"

 

 

"안녕 코드주" → "실내온도" → "삭제"  "안녕 코드주" → "실내온도" → "전송"

 

VoiceAI 개발보드의 LED를 통해서도 음성인식 상태를 확인할 수 있습니다. 

Red LED : "안녕 코드주"

Blue LED : "실내 온도"

Green LED : "배터리 전압"

LED ON →  LED OFF : "전송" or "삭제"

 

VoiceAI 모듈에서는 음성명령 인식 후 UART 포트로 결과를 전송합니다. 데모에서는 UART로 보내는 데이터를 아래와 같이 정의했습니다.

Voice Command UART 전송 데이터
배터리 전압 AT+CMD1
실내온도 AT+CMD2
전송 AT+CMD3
삭제 AT+CMD4

 

VoiceAI 모듈을 ESP32 IoT 보드에 연결한 사진입니다.

    

VoiceAI 모듈에서 전송하는 명령어를 처리하는 ESP32 IoT 보드 소스코드입니다. 

VoiceAI_ESP32_IoT.ino
0.01MB

 

주요 코드만 살펴보겠습니다.

line 21, HardwareSerial SerialPort(1)  : VoiceAI 모듈에서 음성인식한 결과를 전송받기 위해 사용하는 UART 1번 채널

line 29, int cmdIdx = 0 : UART1번에서 받은 결과를 구분하는 커맨드 인덱스 

 

line 75~99, 처리결과를 서버에 전송하는 TCP소켓 통신 코드

 

UART1을 통해 입력되는  AT+CMDx 명령을 \n까지 받아서 커맨드 인덱스값을 분리해서 각각 처리하는 메인 loop문입니다. 센서 호출 및 통신을 위한 함수가 호출되고 인덱스마다 OLED 화면을 비우기 위해서 form feed "\f" 문자열을 사용했습니다.

 

VoiceAI 모듈 구매 및 관련 문의

(주)코드주
장병남 대표 010-8965-1323 rooney.jang@codezoo.co.kr    

 

Murata Type1SC 모듈 구매, 자료 관련 문의
(주)아성코리아
전지만 이사 010-5418-8812 mlcc@asung.com
박상인 수석 010-6556-5405 sipark@asung.com

LTE-CATM1 내장형 모뎀 대량 구매 상담, 외주 개발, 협업 문의
(주)코드주
장병남 대표 010-8965-1323 rooney.jang@codezoo.co.kr

 

https://www.devicemart.co.kr/goods/view?no=14077527 

 

LTE-CatM1 내장형 모뎀 / 사물인터넷 통신모듈

사물인터넷 개발을 위한 LTE 모듈입니다. / CodeZoo / 사물인터넷 통신모듈 / 유심은 상품상세의 링크에서 별도 구매가 필요합니다.

www.devicemart.co.kr

https://smartstore.naver.com/codezoo/products/7153689192

 

Vodafone Global IoT SIM Card : codezoo

[codezoo] IoT Global SIM, IoT Connectivity, IoT Device

smartstore.naver.com

https://smartstore.naver.com/codezoo/products/8514695472

 

LTE CATM1 ESP32 IoT 보드 : codezoo

[codezoo] IoT Global SIM, IoT Connectivity, IoT Device

smartstore.naver.com