검색
검색
회원가입로그인

음성 인식 AI Whisper 사용법 - 동영상 자막 무료로 생성하기

Whisper는 OpenAI에서 만든 음성을 텍스트로 변환해주는 인공지능입니다. (Speech To Text) 내가 한 말을 텍스트로 바꿔줄 수 도 있고 음성 파일을 받아 자막 파일(srt 등)을 만들어서 활용할 수 도 있습니다.

이 위스퍼 활용법을 실습을 통해서 학습해 봅시다. 코드가 포함된 실습이기 때문에 난이도가 높게 느껴진다면 넘어가셔도 좋습니다. 동영상 파일을 받아서 자막 파일을 생성하는 것을 진행해 보겠습니다.

Whisper를 사용할 수 있는 방법은 다음과 같은 것들이 있습니다.

  1. 로컬 데스크탑에 설치 (난이도 비교적 높음, VRAM 필요)

  2. 구글 colab에서 사용하기

  3. OpenAI의 Whisper 사용하기 (비용 발생)

컴퓨터의 사양이 좋다면 로컬에 설치하는 것이 가장 좋은 방법입니다. 하지만 우리는 접근성이 가장 좋은 google colab으로 진행해 보겠습니다. google colab은 무료로 파이썬을 실행할 수 있는 노트북 환경이기 때문에 제한이 있지만 사용하기 편리합니다.

참고로 모델별로 필요한 사양은 다음과 같습니다.

SizeParametersEnglish-only modelMultilingual modelRequired VRAMRelative speed
tiny39 Mtiny.entiny~1 GB~32x
base74 Mbase.enbase~1 GB~16x
small244 Msmall.ensmall~2 GB~6x
medium769 Mmedium.enmedium~5 GB~2x
large1550 MN/Alarge~10 GB1x

구글 colab 사용해보기

이제 구글 콜랩에 Whisper를 설치하고 사용해 봅시다. 찾아보니 위스퍼를 웹에서 쉽게 사용할 수 있게 인터페이스를 한국 개발자 분들이 만들어 놓으셨더라구요. (Whisper-WebUI) 하지만 원리를 이해하면 내것으로 만들 수 있기 때문에 직접 사용해 보는 것으로 진행해 봅시다. 그렇게 어렵지 않습니다.

제가 Google Colaboratory 에 미리 노트북을 만들어 놓았습니다. tilnote-whisper

노트북 복사하기

이 해당 노트북을 복사해서 여러분의 것으로 만들어 주세요. 노트북을 복사하지 않으면 원본 노트북의 세션에 여러분이 올린 파일이 남을 수 있습니다. 상단 메뉴에서 파일 - Drive에 사본 저장 을 누르면 됩니다.

음성 인식 AI Whisper 사용법 - 동영상 자막 무료로 생성하기 image 1

혹시 메뉴가 보이지 않는다면 우측 상단 헤더 공개 버튼이 접혀져 있지 않은지 확인해 보세요.

음성 인식 AI Whisper 사용법 - 동영상 자막 무료로 생성하기 image 2

첫번째 코드 블록을 실행 버튼을 눌러 실행해 주세요.

음성 인식 AI Whisper 사용법 - 동영상 자막 무료로 생성하기 image 3

! pip install -U openai-whisper 라는 명령어는 콘솔에서(!) pip 매니저를 통해 openai-whisper를 설치하는 역할을 합니다.

GPU 확인하기

메뉴에서 런타임 - 런타임 유형 변경에서 하드웨어를 GPU가 되어있는지 확인해 주세요.

음성 인식 AI Whisper 사용법 - 동영상 자막 무료로 생성하기 image 4

파일 올리기

그 다음 '코드 블록의 재생 버튼'을 누른 후 파일 선택 버튼을 눌러 전사할 (transcribe) 음성 파일을 올려 주세요. (직접 파일을 올린 후 밑에 코드에서 경로만 바꿔주셔도 됩니다.)

음성 인식 AI Whisper 사용법 - 동영상 자막 무료로 생성하기 image 5

파일이 없으시다면 제가 파일 2개를 샘플로 준비해 놓았습니다. (브루로 생성한 인공지능 목소리입니다.)

짧은 버전으로 테스트해 봅시다. 참고로 파일을 올리면 좌측 상단의 파일 아이콘의 /content 폴더에 저장됩니다.

전사하기 (transcribe)

그 다음 코드 블록을 실행해 whisper를 실행해 봅시다.

! whisper '/content/{file_names[0]}' --language Korean --model large-v2

large-v2 처음 실행 시 다운로드를 받습니다. (약 2.87GB)

다운로드를 받는 동안 명령어는 중요하기에 같이 살펴보겠습니다. --language 는 Korean으로 선택을 했습니다. 영어의 경우 language 지정이 필요없고 다른 언어의 경우 마찬가지로 지정을 해주면 됩니다. 언어 모델은 large-v2를 선택했는데 이는 현재 최신 모델이며 Whisper API에서 사용하고 있는 것과 동일합니다.

음성 인식 AI Whisper 사용법 - 동영상 자막 무료로 생성하기 image 6

이런 식으로 음성 파일의 내용을 타임스탬프와 함께 받아쓰기한 결과를 받을 수 있습니다. 좌측의 파일 아이콘을 누르시면 다양한 자막 파일이 생성된 것을 확인할 수 있습니다.

음성 인식 AI Whisper 사용법 - 동영상 자막 무료로 생성하기 image 7

여기에서 srt 파일을 프리미어 프로나 다빈치 리졸브, 브루 등 동영상 편집프로그램으로 옮겨서 작업을 하면 됩니다.

진짜 엄청나지 않나요? 개인적인 경험으로 유료인 프리미어 프로의 자동이나 브루보다 더 잘 인식이 되는 것 같습니다. 이를 활용하면 회의록 녹취록이나 음성 메모를 텍스트로 바꾸는 등 다양한 일들을 수행할 수 있습니다.

지금 우리가 사용한 인터페이스는 데스크탑에 설치해서 커맨드라인 인터페이스를 사용한 것과 동일합니다. 데스크탑 설치 방법과 모든 사용법은 openai 공식 github에 있으니 참고해 주세요.

공식 github : GitHub - openai/whisper: Robust Speech Recognition via Large-Scale Weak Supervision

지금 우리가 만든 코드는 앞으로도 실제로 사용할 수 있는 코드입니다. 여러분의 동영상 파일에 자막을 만들 때 앞으로 활용해 보세요.

사용하면서 느낀점

다음은 제가 사용하면서 느낀점과 추가로 알아두면 좋은 것을 정리한 것입니다.

장점

  • 인식율이 정말 좋습니다. 프리미어 프로 자동자막, 브루는 언어가 섞여있을 때 인식을 잘 못하는데 위스퍼는 잘 구별해서 인식합니다.

  • 비싼 Whisper API와 동일한 기능을 무료로 사용할 수 있습니다.

  • Colab을 활용해 10GB VRAM 정도의 하드웨어가 필요한 large 모델을 무료로 사용할 수 있다.

단점

  • 파일을 올릴 때 시간이 오래 걸립니다. 영상 파일을 직접 올리는게 아니라 영상에서 음성 파일만 추출해서 올려주세요.

  • 세션이 초기화되면 다시 실행해야 합니다. 구글 colab의 세션 최대 유지 기간은 12시간입니다. 이 시간이 지나면 다운로드 받은 모델과 올린 파일이 사라집니다. 이 시간이 지나면 처음부터 다시 돌려줘야 합니다.

  • colab의 사용량 한도가 넘으면 사용할 수 없습니다. (물론 유료를 사용할 경우 사용량 한도를 높일 수 있습니다. 저는 필요할 때만 사용하기 때문에 무료로 사용하고 있습니다.) 이 때문에 조금 불안정합니다.

추가 기능 (선택 사항) : 마이크로 목소리 텍스트로 변환하기

추가로 하나를 더 진행해 보도록 하겠습니다. 목소리를 마이크로 입력받아 텍스트로 변환하는 것입니다. gradio 의 웹 인터페이스로 목소리를 입력받아 whisper로 텍스트로 변환해 보겠습니다. 이 기능이 필요하지 않으시거나 마이크가 없으시다면 이 파트는 넘어가셔도 좋습니다.

우리 노트북 끝에 다음과 같이 코드를 추가합니다.

import whisper
model = whisper.load_model("base")

# 음성을 받아서 텍스트로 처리하는 함수
def transcribe(audio):

    # load audio and pad/trim it to fit 30 seconds
    audio = whisper.load_audio(audio)
    audio = whisper.pad_or_trim(audio)

    # make log-Mel spectrogram and move to the same device as the model
    mel = whisper.log_mel_spectrogram(audio).to(model.device)

    # detect the spoken language
    _, probs = model.detect_language(mel)
    print(f"Detected language: {max(probs, key=probs.get)}")

    # decode the audio
    options = whisper.DecodingOptions()
    result = whisper.decode(model, mel, options)
    return result.text

whisper 모듈을 import 하고 모델을 추가했습니다. 모델은 빠른 속도를 위해 base 모델로 선택했습니다. 그리고 실제 음성을 처리하는 부분인 transcribe 함수를 정의했습니다.

다음 코드를 추가해 봅시다.

# gradio 설치 및 런칭
! pip install gradio -q

import gradio as gr
import time

gr.Interface(
  title = 'OpenAI Whisper ASR Gradio Web UI',
  fn=transcribe,
  inputs=[
      gr.Audio(source="microphone", type="filepath")
  ],
  outputs=[
      "textbox"
  ],
  live=True).launch()

두 코드를 실행을 하면 gradio의 web ui에 접속할 수 있는 링크가 나오게 됩니다. 해당 링크로 접속하면 다음과 같은 UI를 볼 수 있습니다.

음성 인식 AI Whisper 사용법 - 동영상 자막 무료로 생성하기 image 8

여기에서 마이크를 누르고 이야기를 하면 됩니다. 다음은 제가 영어와 한글을 받아쓰기한 내용입니다.

영어 : Hello, my name is Ryan. I'm so delighted to be here with you this afternoon.

한글 : 나는 아침에 일어난 커피를 마셨습니다

약간의 오타율은 존재합니다. 이렇게 인터페이스를 구축하면 음성으로 입력받아 ChatGPT API에게 처리를 시키는 등 다양한 기능을 구사할 수 있겠죠? 이렇게 하면 클로바 같은 받아쓰기 기능이나 음성 인터페이스를 구축하는 것도 가능해집니다.

Whisper는 정말 유용합니다. 잘 사용하시기를 바라겠습니다.

동영상 자동 자막 만들기

저는 위스퍼를 동영상의 자막을 만들 때 가장 많이 사용합니다. 유튜브 영상을 만들거나 강의의 자막을 만들 때 받아쓰기 (transcript) 를 할 때 정말 좋습니다. 한글과 영어가 섞여 있을 때도 인식율이 굉장히 좋습니다. 구글 colab에서 무료로 사용할 수 있습니다. 사용법은 코드와 함께 자세하게 틸노트 인공지능 공략집의 페이지에 정리하였습니다. 음성 인식 AI Whisper 사용법 - 동영상 자막 무료로 생성하기 - 틸노트 인공지능 공략집 (무료)

조회수 : 2129
공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기