OpenAI에는 Whisper라는 강력한 Audio to Text 프로그램이 있습니다. 어떻게 만든 건지는 알 수 없지만 음성을 텍스트로 추출하는 기술은 구글의 유튜브 자동 자막보다 뛰어나다는 것이 체감이 됩니다. 특히 한글 인식에 있어서는 지금까지 본적없는 인식률이 아닌가 - 봅니다.

 

네이버의 클로바노트가 있지만 사용 시간 제한이 있는데 좀 짭니다. 반면 Whisper는 OpenAI의 API로 사용할 수 있는데 그래도 가격이 $0.006 / minute 으로 매우 저렴한 편입니다. (1분에 10원 정도 나간다) 그리고 Whisper는 Open Source로 본인의 PC에 설치해서 사용하면 무료입니다. 여러가지 장점들로 향후 발전 가능성이 매우 높은 AI 모델입니다.

 

98개의 언어를 훈련시켰으나 에러율을 고려하여 현재는 다음의 언어들만 지원합니다.

 

Afrikaans, Arabic, Armenian, Azerbaijani, Belarusian, Bosnian, Bulgarian, Catalan, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, Galician, German, Greek, Hebrew, Hindi, Hungarian, Icelandic, Indonesian, Italian, Japanese, Kannada, Kazakh, Korean, Latvian, Lithuanian, Macedonian, Malay, Marathi, Maori, Nepali, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swahili, Swedish, Tagalog, Tamil, Thai, Turkish, Ukrainian, Urdu, Vietnamese, and Welsh.

 

한국어도 당연히 들어가 있고 인식률이 좋습니다. 아직 많이 써보진 않았지만 대략적으로 API를 돌려보고 다른 리뷰들을 보니 네이버 클로바노트와 동급 혹은 그 이상의 성능으로 보이고요. 직접 설치해서 사용하면 할 수 있는게 더 많습니다. 물론 AI 프로그램은 기본적으로 무겁기 때문에 클라우드 컴퓨터에서 돌리면 비용적으로 부담이 될 수 있습니다만, 상업서비스를 론칭하려는 목적이라면 충분히 고려할 수 있겠지요.

 

Whisper를 직접 설치하는 방법은 약간 복잡하기 때문에 다음에 다뤄보기로 하고, 여기서는 단순히 openai의 API를 사용한 이용법을 알아보겠습니다.

 

예제 코드-1

speech to text 기능은 파이썬과 curl 라이브러리를 제공하고 있습니다. curl로 nodejs에서도 사용할 수 있는데 번거로우니까 아마 조만간 정식 npm 버전을 지원하지 않을까 싶습니다. 우선은 파이썬으로 해보지요.

 

import os
import openai

API_KEY = os.environ['OPENAI_SECRET_KEY']
openai.api_key = API_KEY

audio_file = open('audio\sample_kor.m4a', 'rb')
transcript = openai.Audio.transcribe('whisper-1', audio_file)

print(transcript['text'])

보면 openai 의 Completion 과 사용법이 유사합니다. 개념적으로 이해하면 openai에 요청을 보낼 때 필요한 인수들이 API 키가 들어가고, 오디오 파일(mp3, m4a 등)을 열어서 whisper-1 모델이 쓸 수 있게 넘겨줍니다. 응답을 받으면 Text Completion과 마찬가지로openai.openai_object.OpenAIObject 클래스를 반환합니다. text 로 꺼내오면 됩니다.

 

Completion이나 Transcribe나 텍스트를 가져오는 거라 파이썬의 문자열 함수들에 익숙하면 수월하게 요리할 수 있을 겁니다.

 

어제 산불이 난 뉴스 영상을 샘플로 처리해봤습니다. 보면 상당히 정확하게 인식합니다. 

Whisper API Transcribe speech to text

 

위에서 transcribe 메소드를 translate로 바꾸면 영어로 번역해줍니다. 이 기능이 대박인데 아쉽게도 현재는 타언어 -> 영어 번역기능만 제공하고 있습니다. 언어 번역은 DeepL과 같은 AI 번역기를 사용할 수도 있지만 Whisper 자체에서 다 처리된다면 효용이 더 클 것입니다. 지금은 Beta 버전인 만큼 정식 버전 출시 후 버전업하면 상당히 유용해질 것 같습니다.

 

여기 함수를 바꾸면...

translate = openai.Audio.translate('whisper-1', audio_file)
print(translate['text'])

 

바로 영문 번역까지 됩니다.

Whisper API Translation 번역

 

Whisper는 다른 것을 다 떠나서 언어 인식률에서 차원이 다르다고 알려져 있습니다. 거기다가 오픈소스라는 것도 충격이지요. speech to text라는 기능만 갖고 있는 모델이기에 약간은 주목도가 낮지만 향후 OpenAI의 기술접목에 하나의 축을 담당하리라는 것을 의심치 않습니다. chatGPT의 활용도를 극대화시키는 기술이 될 것으로 예상합니다.

 

Whisper 와 관련해서 다음에는 설치해서 사용하는 내용을 다뤄볼 생각입니다.

참고링크

 

OpenAI의 Speech to text 문서를 참고했습니다.

 

Speech to text - OpenAI API

 

OpenAI API

An API for accessing new AI models developed by OpenAI

platform.openai.com

 

공유하기

facebook twitter kakaoTalk kakaostory naver band