본문 바로가기

AI

자막 생성 Whisper 미디엄 모델을 2GB VRAM NVIDIA 노트북에서 이용하기

요즘은 유튜브에서 실시간 생성 원어 자막 혹은 크리에이터가 제공한 번역된 자막을 제공하는 경우도 많아지고 있지만, 일부 제공이 안되는 경우 다운로드한 후 스스로 자막 추출 및 번역을 해서 보는 것도 좋습니다. 다만, Whisper는 영어로의 번역만 기본 제공이므로 자막 번역은 별도의 방법을 써야 합니다(가장 하단의 관련 글 참조).  

 

Open AI의 Whisper는 외국어로 된 비디오/오디오로부터 자막을 만드는 기능이 훌륭합니다. 물론, 클라우드로도 유무료 이용이 가능하겠지만, NVIDIA 그래픽카드가 있는 PC/노트북을 갖고 있다면 편하게 무료로 이용이 가능합니다. 다만, 초기에 설치하는 번거로움은 있습니다. 최근 페이스북에서도 speech to text 기능을 내 놓았지만 Whisper처럼 편리하게 로컬 PC에서도 잘 작동이 될 지는 아직 모르겠고 기다려 봐야 하겠습니다.  

 

빠른 추출 작업을 위해 CUDA를 쓰고, 쓸만한 자막 품질을 위해 인공지능 모델은 미디엄 이상을 사용해야 합니다. 하지만, Whisper의 medium 모델은 최소 8GB VRAM을 요구(실제로는 6GB도 되지 않을까 합니다)합니다. 아마 large-v2는 12GB이상이 필요할 거예요. 

 

whisper-ctranslate2는 추론 작업 시 단위를 int8(보통은 float16이나 float32 이용)로 낮추어서 더 적은 메모리를 사용할 수 있습니다. 테스트 해보면 자막 품질이 float32 -> int8로 해도 현저하게 떨어지는 것 같지는 않습니다. 

 

i7-8550U 와 MX150(2GB)에서 시험 삼아 medium모델을 가동해 보았는데 생각보다 잘 되었습니다. 속도는 2~3배속으로 나왔고, 자막도 나쁘지 않네요. 

 

whisper-ctranslate2 --device cuda --model medium --compute_type int8 --output_format srt --language ko --output_dir d:\video d:\video\20220902_131203.mp4

 

노트북이라 그런 지(?) GPU 공유 메모리도 있네요. 그래서, VRAM 2GB를 잠깐 초과해도 잘 작동이 되었습니다. 

 

whisper-ctranslate / cuda / medium 가동 중 GPU 메모리

Whisper-ctranslate2를 쓰려면, cuDNN과 cuBLAS가 필요하다고 알고 있습니다. cuDNN은 NVIDIA 개발자 계정이 있어야 다운로드가 가능한 것 같고, cuBLAS는 pip 명령으로 설치가 가능합니다. 

 

Whisper나 stable-ts는 pyTorch가 필요한데, whisper-ctranslate2는 CTranslate2 기반이라서 C++ / Python library로 작동된다고 하여 토치가 필요 없습니다. 

 

설치 순서는 

  1. 최신 NVIDIA 드라이버 설치(2번에서 같이 설치할 수도 있습니다).  
  2. CUDA 설치 : https://developer.nvidia.com/cuda-toolkit
  3. cuDNN 설치https://developer.nvidia.com/rdp/cudnn-download (개발자 계정 요구) 압축을 해제한 후, CUDA 디렉터리(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2) 에 덮어쓰기  
  4. Python 설치 : https://www.python.org/downloads
  5. 파워쉘(PowerShell)에서 파이썬 가상 환경 venv 설치(앞으로 디스크 사용량이 커질 수 있음을 감안하여 적당한 디렉터리에서 실행) : C:\> python -m venv venv  
  6. 관리자로 파워쉘 실행한 후, PS C:\Windows\System32> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 
  7. 파워쉘에서 PS C:\> .\venv\Scripts\Activate.ps1 실행 
  8. cuBLAS 설치 : (venv) PS C:\> pip install nvidia-cublas-cu12
  9. whisper-ctranslate2 설치: (venv) PS C:\> pip install -U whisper-ctranslate2 
  10. 테스트해보기 : (venv) PS C:\> whisper-ctranslate2 -h 
  11. 자막 만들어 보기 : (venv) PS C:> whisper-ctranslate2 --device cuda --model medium --language ko --output_format srt --output_dir d:\video d:\video\sample.mp4 

 

[관련 글]

자막 추출 및 번역API를 이용하는데 도움을 주는 유틸리티에도 적은 VRAM을 활용할 수 있도록 faster-whisper기능을 추가하였습니다. 아래 링크를 참고하여 주세요. 

https://github.com/sevengivings/subtitle-xtranslator

 

GitHub - sevengivings/subtitle-xtranslator: A Python script to extract text from audio/video and translate subtitle using Google

A Python script to extract text from audio/video and translate subtitle using Google Cloud, Naver Papago, DeepL and dpl-Rapidapi translation API. - GitHub - sevengivings/subtitle-xtranslator: A Py...

github.com

아래는 위 프로그램 등에 관한 히스토리 정보를 기록한 블로그 글 입니다. 

https://imky.tistory.com/61

 

stable-ts (Whisper)로 영상 자막을 파이썬 코드로 추출해 보기 및 DeepL 파일 번역 도우미

[최신 업데이트 소스 위치] 내용을 계속 수정 보완 중이라서, 최신 내용은 아래 링크를 참고해 주세요. 영상 자막 추출 후 DeepL 앱/웹으로 워드파일을 이용하여 수동 번역을 원할 경우: https://github

imky.tistory.com