[Winection(1)] 수어 번역 화상채팅 프로젝트

Woo·2025년 3월 15일

Winection Project

목록 보기
1/6
post-thumbnail

대학교 4학년이 되면서 졸업설계를 수강하게 되었고, 자연스럽게 팀을 구성해 프로젝트를 진행하게 되었다. 팀원들은 모두 친했던 동생들이었기에 협업이 수월할 것이라 기대했지만, 막상 프로젝트의 주제를 정하는 과정에서 예상보다 많은 고민이 필요했다.

졸업설계는 단순한 과제가 아니라, 한 학기 동안 집중적으로 연구하고 개발해야 하는 중요한 프로젝트다. 따라서 각자의 관심 분야를 반영하면서도, 모두가 의미 있다고 느낄 수 있는 주제를 찾는 것이 중요했다. 처음에는 AI, 음악, 번역, TTS, 감정 인식 등 다양한 기술적 아이디어들이 나왔지만, 하나의 주제로 의견을 모으는 것이 쉽지 않았다.

📚 주제


나와 팀원들이 제안한 주제들은 다음과 같았다.

1. GPT 기반 음악 편곡

기존에 있는 곡을 생성형 AI를 사용해 다양한 장르로 변환하여 편곡을 해주는 서비스이다.

2. 실시간 인식 및 번역기

다양한 언어를 실시간으로 번역하고, 사용자의 필체를 인식하여 텍스트로 변환한 뒤, 번역 결과를 제공하는 서비스이다.

3. 캐릭터 이미지 기반 TTS

캐릭터 이미지를 업로드하면 AI를 통하여 캐릭터 이미지와 어울리는 TTS 추천 웹사이트이다.

4. 감정인식 기술을 활용한 연기력 평가 AI

배우가 연기하는 영상과 음성을 분석하여 감정을 제대로 표현했는지에 대해 연기력을 평가하는 AI이다.

팀원들은 여러 번 논의를 거듭한 끝에, 단순한 기술 구현을 넘어서 사회적 가치를 창출할 수 있는 프로젝트를 진행하기로 결정했다. 그렇게 탄생한 것이 바로 Winection, 농인과 청인을 연결하는 양방향 수어 변환 화상채팅 웹사이트다.

📚 Winection이란?


현재 우리가 진행한 Winection 프로젝트는 쉽게 말해 '농인을 위한 양방향 수어 변환 화상채팅 웹사이트'이다.

작품선정 배경 및 필요성

우리나라에서 청각 장애인(농인)의 주요 의사소통 방식은 수어지만, 많은 청인은 음성 언어를 사용한다. 따라서 농인과 청인 간의 의사소통이 원활하지 않아 관계 형성에 어려움을 겪는다. 필담(글을 써서 소통하는 방식) 역시 문해력 문제로 인해 소통이 어렵다. 이러한 문제를 해결하기 위해, 농인과 청인이 실시간으로 편하게 대화할 수 있는 화상채팅 서비스를 기획했다.

이 시스템의 주된 목적은 농인과 청인 간의 원활한 의사소통이 가능하게 하는 것이다. 농인에게 청인과의 소통의 어려움과 부담감을 덜어주는 것을 목표로 한다.

Winection은 다음과 같은 기능을 제공한다.

  • 청인의 음성을 실시간으로 수어로 변환하여 농인에게 제공
  • 농인의 수어를 인식하여 청인의 음성으로 변환
  • 긴급 상황 발생 시 농인이 위치 기반으로 병원, 경찰서, 소방서 등에 도움 요청 가능

이 프로젝트의 핵심 목표는 농인이 청인과 부담 없이 원활하게 소통할 수 있도록 하는 것이다.

현재 구현된 프로젝트들을 조사해 본 결과, 대부분의 연구는 지화(자음·모음 조합으로 표현하는 수어) 기반 번역이 주를 이루었다. 하지만 우리는 행동 자체를 의미하는 수어를 번역하여 음성으로 출력하는 시스템이 부족하다는 점을 발견했다.

이를 화상채팅 프로그램 'Zoom'에서 떠오른 발상으로 화상채팅 시스템으로 농인이 수어를 하면 청인에게는 수어에 대한 음성이 들리도록 하고, 청인의 음성은 농인에게 수어로 보여지게 한다. 따라서 농인과 청인 간 각자 편한 소통 방법으로 원활한 양방향 소통이 가능하도록 한다.

일부 사람들은 “농인들은 시각적 정보에 익숙하니 음성을 텍스트로 변환하면 되지 않나?“라고 생각할 수 있다. 하지만 이는 잘못된 가정이다.

'Why do we need a sign language translation system?'
=> 왜 수어 번역 시스템이 필요한가요?

이건 쉬운 영어 문장이지만 우리는 이 문장을 머릿속으로 한국어로 번역하는 과정을 거친다. 농인에게 텍스트는 제2의 언어다. 우리가 영어 문장을 볼 때 머릿속으로 한국어로 번역하는 과정을 거치듯, 농인은 텍스트를 보면 머릿속에서 수어로 변환하는 과정이 필요하다. 따라서 단순한 텍스트 변환만으로는 충분한 의사소통이 어렵다. 이를 해결하기 위해, Winection은 텍스트가 아닌 수어 애니메이션으로 변환하는 방식을 채택했다.

이러한 이유로 인하여 이 프로젝트를 시작해보자 팀원들과 정하게 되었다.

📚 SW 구성도


프로젝트 계획 수립 후, 아래와 같은 SW 구성도를 작성하고 이를 기반으로 구현을 진행했다.

프로젝트 진행 중 여러 번 수정하며 최적화된 구성도를 완성했다.

📚 주요 기능 플로우


to_speech 기능

수어를 음성으로 바꾸는 기능이다.

  1. 로컬 웹캠으로 받아온 수어하는 영상을 MediaPipe를 적용해 손의 좌표를 추출

  2. 추출한 손 좌표를 WebSocket을 사용해 to_speech API에 넘겨준다.

  3. Fast API - to_speech API

    1. Fast API는 받은 손 좌표와 기존 학습시킨 딥러닝 모델과 비교하여 받은 손 좌표가 어떤 수어 단어를 취하고 있는지 판단한다.
    2. 계속해서 수어 단어를 판단하고, 만약 3초동안 아무 동작이 없으면 한 문장으로 취급(또는, 문장 종료 동작 추가)
    3. 생성형 AI인 ChatGPT API에게 이 단어들을 합쳐서 한 문장을 만들어달라고 요청
    4. 만들어진 문장 텍스트를 TTS 과정을 거쳐 나온 Speech 생성 후 인코딩
    5. 문장 텍스트와 인코딩된 Speech를 프론트에 전송
  4. WebRTC를 사용해 상대방 클라이언트에게 내 로컬 웹캠 영상을 넘겨주고, 내 영상과 상대방 클라이언트의 수어 아바타 영상(아래 to_sign기능) 내 웹 화면에 송출

to_sign 기능

  1. 로컬 마이크로 받아온 내 목소리를 인코딩하여 to_sign API에게 넘겨준다.

  2. Fast API - to_sign API

    1. Google Web STT로 목소리를 텍스트로 변환한다.
    2. 변환된 텍스트를 미리 생성해논 수어 DB에 일치하는 의미를 가진 수어 동작을 찾아낸다.
      • 수어 동작의 의미 찾는 과정
        • 텍스트 분석 및 변환 작업(KoNLPy) → KoNLPy의 정확도가 중요!
          • 불필요한 조사 제거
          • 단어를 원형으로 변환(ex. 걸었다 → 걷다)
        • 단어 유사도 계산(Word2Vec, FastText)을 통해 수어 DB와 비교 후 유사도 높은 단어를 찾아내어 매칭
    3. 찾은 단어의 수어 동작을 유니티에 넘겨줘서 수어 아바타가 해당 수어 동작을 수행하는 영상을 인코딩한다.
    4. 변환된 텍스트와 인코딩한 영상을 프론트로 보낸다.
  3. WebRTC를 사용해 상대방 클라이언트에게 내 수어 아바타 영상을 넘겨주고, 내 수어 아바타 영상과 상대방 클라이언트의 웹캠 영상(위의 to_speech 기능)을 내 웹 화면에 송출


이렇게 구현 계획을 잡았고, 이후 글에서는 구현 과정에 대해 자세히 다룰 예정이다.

profile
다덤벼

1개의 댓글

comment-user-thumbnail
2025년 3월 16일

열심히 사는 모습 멋져용

답글 달기