OpenAI Whisper는 현재 Google 음성 텍스트를 대체할 수 있는 최고의 오픈 소스입니다. 기본적으로 100개 언어(자동 감지)로 작동하며 구두점을 추가하고 필요한 경우 결과를 번역할 수도 있습니다. 이 문서에서는 Whisper를 설치하고 프로덕션 환경에 배포하는 방법을 보여드리겠습니다.
Google의 자동 음성 인식(음성-텍스트 변환) API는 매우 인기가 높습니다. 이 API는 125개 언어로 오디오 및 비디오 파일을 트랜스크립션할 수 있으며 전화 통화 트랜스크립션, 의료 트랜스크립션 등을 위한 특정 AI 모델을 제안합니다.
이 API에는 콘텐츠 필터링, 자동 구두점(현재 베타 버전만 제공), 화자 일기 쓰기(이 역시 베타 버전) 등의 멋진 추가 기능도 있습니다.
마지막으로, API를 온프레미스에 설치할 수 있습니다. 하지만 온프레미스 AI 모델은 API 사용량을 보고하기 위해 Google에 데이터를 계속 전송하므로 개인정보 보호 관점에서 우려할 수 있습니다.
Google의 요금은 기본적으로 기본 음성-텍스트 변환의 경우 15초당 0.006달러, 비디오 트랜스크립션 또는 전화 트랜스크립션과 같은 특정 사용 사례의 경우 15초당 0.009달러입니다.
지원팀에 걸려온 전화 통화를 자동으로 분석하고 싶다고 가정해 보겠습니다(예를 들어 나중에 정서 분석이나 개체 추출을 수행하기 위해). 5명의 지원 상담원이 하루에 각각 4시간씩 고객과 통화하는 경우, Google의 음성-텍스트 API를 사용하면 월 1,400달러의 비용이 듭니다.
비용이나 개인정보 보호가 염려된다면 오픈소스 대안으로 전환하는 것이 좋습니다: OpenAI Whisper입니다.
Whisper는 OpenAI에서 방금 출시한 오픈 소스 AI 모델입니다.
OpenAI는 훌륭한 AI 프로젝트를 오픈소스화해온 역사를 가지고 있습니다. 예를 들어 몇 년 전 OpenAI가 개발한 GPT-2가 있습니다. 당시 이 모델은 지금까지 만들어진 자연어 처리 모델 중 가장 뛰어난 모델이었으며, GPT-3, GPT-J, OPT, Bloom 등과 같은 훨씬 더 발전된 모델의 기반을 닦았습니다. 최근에는 Triton이라는 멋진 CUDA 프로그래밍 프레임워크도 출시했습니다.
하지만 OpenAI의 모든 모델이 오픈소스로 공개된 것은 아닙니다. 가장 흥미로운 두 가지 모델: GPT-3와 DALL-E는 여전히 유료 API를 통해서만 사용할 수 있는 비공개 모델입니다.
입력 언어를 자동으로 감지한 다음 약 100개 언어로 텍스트를 텍스트로 변환하고, 결과에 자동으로 구두점을 표시하며, 필요한 경우 번역까지 할 수 있는 Whisper는 음성-텍스트 생태계에 큰 반향을 일으키고 있습니다. 정확도가 매우 뛰어나며 모든 종류의 입력(오디오, 비디오, 전화 통화, 의료 토론 등)에 이 모델을 적용할 수 있습니다.
물론 Whisper의 또 다른 큰 장점은 개인 서버에 직접 배포할 수 있다는 점인데, 이는 개인 정보 보호 측면에서 매우 유용합니다.
물론 Whisper는 무료이지만, 직접 설치하려면 사람의 시간을 들여야 하고 기본 서버와 GPU에 대한 비용을 지불해야 합니다. 관리형 버전의 이점을 누리고 싶다면 NLP Cloud와 같은 API를 사용할 수 있습니다: 지금 NLP Cloud에서 Whisper를 무료로 사용해 보세요!.
현재 Whisper를 설치 및 배포하려면 두 가지 옵션이 있습니다. 첫 번째는 OpenAI의 위스퍼 파이썬 라이브러리를 사용하는 것이고, 두 번째는 위스퍼의 허깅 페이스 트랜스포머 구현을 사용하는 것입니다. 두 가지 솔루션을 모두 살펴보겠습니다.
이 솔루션은 가장 간단한 솔루션입니다. 기본적으로 OpenAI의 지침을 따르기만 하면 됩니다. 위스퍼 프로젝트의 깃허브 리포지토리에 있습니다..
First install the whisper Python lib:
pip install git+https://github.com/openai/whisper.git
Then install ffmpeg on your system if it is not the case yet:
# on Ubuntu or Debian
sudo apt update && sudo apt install ffmpeg
# on Arch Linux
sudo pacman -S ffmpeg
# on MacOS using Homebrew (https://brew.sh/)
brew install ffmpeg
# on Windows using Chocolatey (https://chocolatey.org/)
choco install ffmpeg
# on Windows using Scoop (https://scoop.sh/)
scoop install ffmpeg
Several flavors of Whisper are available: tiny, base, small, medium, and large. Of course the bigger the better, so if you are looking for state of the art results we recommend the large version. Here is a very simply Python script that opens an mp3 audio file stored on your disk, automatically detects the input language, and transcribes it:
import whisper
model = whisper.load_model("large")
result = model.transcribe("audio.mp3")
print(result["text"])
Simple isn't it?
In order to use Hugging Face's implementation of Whisper you will first need to install HF Transfomers, librosa, and Pytorch:
pip install transformers
pip install librosa
pip install torch
You also need to install ffmpeg (see above).
Now, here is a Python script that does transcription in English:
from transformers import WhisperProcessor, WhisperForConditionalGeneration
import librosa
speech, _ = librosa.load("audio.mp3")
processor = WhisperProcessor.from_pretrained("openai/whisper-large")
model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-large")
model.config.forced_decoder_ids = processor.get_decoder_prompt_ids(language = "en", task = "transcribe")
input_features = processor(speech, return_tensors="pt").input_features
predicted_ids = model.generate(input_features)
transcription = processor.batch_decode(predicted_ids)
print(processor.batch_decode(predicted_ids, skip_special_tokens = True))
There are 2 limitations with this Hugging Face implementation. First you need to manually set the source language (no automatic input language detection is implemented yet). And secondly no automatic chunking is applied, which means that you cannot transcribe content that is larger than 30 seconds...
Maybe these limitations will be solved in future releases?
A nice thing though is that there is a Tensorflow implementation available too, which means that you can use XLA compilation and get much faster response times.
위에서 살펴본 것처럼 Whisper는 설치가 매우 쉽습니다. 하지만 고급 하드웨어가 필요합니다. 대형 버전의 모델을 사용하려면 GPU를 권장합니다.
위스퍼 파이썬 라이브러리(위 참조)를 사용하는 경우 약 10GB의 RAM과 11GB의 VRAM이 필요합니다. 즉, 실제로는 최소 16GB의 GPU가 필요합니다. 예를 들어 NVIDIA Tesla T4 또는 NVIDIA A10을 사용할 수 있습니다.
Tesla T4에서는 30초 분량의 오디오를 약 6초 만에 트랜스크립션할 수 있습니다.
위에서 언급한 기본 성능을 개선하려면 다음과 같은 몇 가지 전략을 살펴볼 수 있습니다:
OpenAI Whisper는 음성-텍스트 변환 분야의 혁명입니다. 이 오픈 소스 모델 덕분에 처음으로 누구나 최첨단 자동 음성 인식에 쉽게 액세스할 수 있게 되었으며, Whisper는 Google 음성-텍스트 변환 API를 대체할 수 있는 좋은 대안이 될 것입니다.
하지만 이러한 AI 모델을 설치 및 배포하는 것은 하드웨어가 필요하기 때문에 여전히 어려운 과제입니다. 대형 버전의 Whisper는 실제로 소비자 하드웨어에서 실행할 수 없습니다.
인프라를 고려하지 않고도 쉽게 Whisper를 사용해보고 싶으시다면 NLP 클라우드 API에서 사용해 보세요: 지금 NLP Cloud에서 Whisper를 무료로 사용해 보세요!.
Abhinav
NLP 클라우드의 Devops 엔지니어