Subot 프로젝트에 대하여 (v1)

Subot 프로젝트에 대하여 (v1)

2024년 11월 10일

소개 #

계기 #

내 분야에서는 중국에 고수가 정말 많다.
일하다가 정말 좋은 정보가 많은 kanxue 라는 중국 사이트를 찾게됐고, 그 사이트에서 강의도 올라오는 것을 확인했다.

3cdc4310-e218-4382-80b6-15f58dc02fc5

강의 목차만 봐도 지금까지 봐온 모든 강의, 정보 중에서 제일 고급 강의였고 꼭 듣고야 말겠다는 생각이 들었다.

처음에는 영상을 받아서 whisper라는 STT AI를 사용했지만 자막 추출이 정말 오래걸렸고 추출된 자막도 udemy의 발음 안좋다는 강의의 자동생성 자막을 가져온 느낌이라 돈내고 돈 값 못할 것 같다는 생각만 들었다.

두번째는 삼성 갤럭시탭의 통역 기능을 이용해봤는데, 이것도 통역이 엉성했고 글씨크기 조절도 안되는 것처럼 보여서 사용하기엔 어려움이 있었다.

결국 직접 만드는게 ai도 중국어에 특화된 원하는 모델을 쓸 수 있고, 나에게 맞는 용도로 커스텀해서 쓸 수 있을것 같아서 시작했다.


진짜 소개 #

이제는 정말 중국어 강의를 듣고싶기 때문에 구글 삼성 페이스북이 해주기 전에 먼저 시작하는 프로젝트 입니다.

다른 회사가 먼저 만들어낸다고 하더라도 그게 제가 원하는 중-한 실시간 번역일지는 잘 모르겠고, 원하는 모델을 입맛에 맞게 적용할 수 있다면 이 프로젝트의 의미는 충분합니다.

이 프로젝트의 목적은 아래와 같습니다.

  • OCR 로 영상에 있는 자막 실시간 인식 후 번역
  • STT 로 자막이 없는 강의에 자막을 달아주는 기능 (중요)

OCR #

901abaf7-0c1d-4077-bb94-ba152fbd60b9

제가 원하는건 중-한 번역이기 때문에 중국어의 인식률이 높은 OCR이 필요했고 baidu의 paddleocr을 사용하기로 결정했습니다. (이런걸 만들어주다니 압도적 감사)

STT #

PaddleSpeech, Wenet 등 여러가지 고민을 많이 해봤는데 기존 paddleocr과 하루종일 설정을 맞추다가 하루를 날렸습니다.
Whisper stream

번역 #

일단 meta의 nllb-200-distilled-600M 을 사용했습니다. IT 업계의 용어를 번역해버리는 상황을 피해야 되기 때문에 임시로 사용하는 모델입니다.


사용법 #

환경 세팅 #

개발자의 환경 세팅이기 때문에 본인에 맞는 환경을 설치하면 좋습니다.

  1. 그래픽카드가 지원하는 cuda 버전 확인

    1nvcc -V       # cuda 설치 확인
    2nvidia-smi    # 지원되는 cuda 버전 확인
    

    1cb42dc1-bacc-4111-b5c5-80f4edb064ee

  2. cuda 설치
    https://developer.nvidia.com/cuda-downloads aa23c840-765c-4a7a-8754-cee9ea25470d

  3. pytorch gpu 버전 명령어 확인 및 설치
    https://pytorch.org/get-started/locally/ 1af7c3b3-e1d1-4912-9da8-beddb05e6af9

  4. python 3.12.7 설치

  5. pip 나머지 패키지 설치

    1git clone <this project>
    2# pip install pyautogui transformers paddlepaddle-gpu paddleocr
    3pip install -r requirements.txt
    

실행 #

1python ./subot.py

실행을 해보면 보이는 OCR Scanner 버튼으로 번역할 자막이 있는 범위를 지정하고, Translator 기능을 이용해 인식한 자막을 번역하는 것이 전부이다.

3902279e-34e6-46ea-bcec-2d361ad1249f

comments powered by Disqus