새소식

반응형
AI/models

Whisper

  • -
728x90
반응형

 

We’ve trained and are open-sourcing a neural net called Whisper that approaches human level robustness and accuracy on English speech recognition.

Whisper는 openAI 에서 22년 9월 22일에 공개한 자동 음성 인식(ASR) 모델이다. 

  • 웹에서 수집된 68만 시간의 다양한 언어 데이터로 학습
    크고 다양한 데이터셋을 사용함으로써 악센트, 배경 소음, 전문 언어 등에 대한 robustness를 향상시켰음을 보였다.
  • 다양한 언어를 영어로 번역할 수 있다.

 

  • Whisper Architecture는 encoder-decoder Transformer로 구축된 end-to-end 접근 방식
    • 입력 오디오를 30초 청크로 분할하고, log-Mel 스팩토그램으로 변환하고, 인코더로 전달된다.
    • 디코더는 언어 식별, 구문 수준 타임스탬프, 다국어 음성 전사 및 영어 음성 번역과 같은 작업을 수행하도록 지시하는 스페셜 토큰과 혼합된 텍스트 캡션을 예측하도록 훈련된다.

 

한국어는 medium은 되어야 괜찮은 품질이 나온다고 한다. 1050Ti 4GB로는 small 모델까지만 CUDA 가속이 가능했다고 한다. 

CPU로 돌려도 medium 까지는 돌릴 수 있지만, 꽤 느리다. large 모델은 1분의 곡을 변환하는데 1시간이 걸렸다. 

 

✅ API 사용하기

  • 음성 파일의 길이(분당 $0.006(약 8원))에 따라 과금
  • 오픈 AI 플랫폼에서 API key 발급 받아야 한다.
 pip install openai
 pip install pytube
 pip install moviepy
 import openai
 from pytube import YouTube
 from moviepy.editor import VideoFileClip
 ​
 # openai 불러오기
 OPENAI_API_KEY = "발급받은 API Key"
 openai.api_key = OPENAI_API_KEY
 ​
 # 유투브 영상 다운로드
 DOWNLOAD_FOLDER = './whisper'
 url = "유투브에서 다운받고 싶은 영상 URL"
 yt = YouTube(url)
 stream = yt.streams.get_highest_resolution()
 stream.download(DOWNLOAD_FOLDER)
 ​
 # 비디오 파일을 오디오 파일로 변환
 video_file_path = "./whisper/video.mp4"
 video = VideoFileClip(video_file_path)
 audio_file_path = "./whisper/audio.mp3"
 video.audio.write_audiofile(audio_file_path)
 audio_file = open("./whisper/audio.mp3", "rb")
 ​
 # 오디오 파일을 텍스트 파일로 변환 (Whisper)
 transcript = openai.Audio.transcribe("whisper-1", audio_file)
 text = transcript['text']
 print(text)
 ​
 # 오디오 파일을 영문 텍스트로 변환 (Whisper)
 transcript = openai.Audio.translate("whisper-1", audio_file)
 text_eng = transcript['text']
 print(text_eng)

 

 설치해서 사용하기

 pip3 install torch torchvision torchaudio 
 brew install ffmpeg
 pip install git+https://github.com/openai/whisper.git  
 whisper --model small --language ko --device cpu --task transcribe sample.mp3
  • model
    tiny, base, small, medium, large 중 선택
  • device
    기본 설정은 cuda 이므로 cpu 로 사용시 반드시 설정할 것
  • task
    • Transcibe : 영상 언어를 그대로 텍스트로 출력하기
    • Translate : 영상 언어를 영어로 번역하기

 

 

👩‍💻 한국어 테스트

맥북 M1 Air 8GB, Thank you Lord 영상을 mp3로 변환해 사용

참고로 CPU 사용 기준 medium은 느리고, large는 매우매우매우 느리다. 아래 결과 내는데 약 1시간 걸렸다.

 

한국어의 경우 large 를 사용해야 될 것 같다. 물론 large를 사용해도 결과가 완벽하지 않다. 영어는 small 만 사용해도 결과가 제대로 나온다. 발음이 조금 뭉개지더라도 어느정도 보정이 되는 것 같다.

 

small

 

medium

 

large

 

 

 

References

반응형

'AI > models' 카테고리의 다른 글

Text-To-Speech models  (0) 2023.05.09
Vicuna : ChatGPT 90% 성능을 가진 오픈 소스 챗봇  (0) 2023.05.06
Bark : 트랜스포머 기반 text-to-audio 모델  (0) 2023.04.27
KeyBERT  (0) 2023.04.21
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.