CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·아이포니앙 ·주식한당 ·MaClien ·방탄소년당 ·일본산당 ·자전거당 ·안드로메당 ·개발한당 ·이륜차당 ·소셜게임한당 ·AI당 ·나스당 ·소시당 ·디아블로당 ·골프당 ·가상화폐당 ·육아당 ·야구당 ·젬워한당 ·위스키당 ·오른당 ·노젓는당 ·걸그룹당 ·클다방 ·IoT당 ·키보드당 ·PC튜닝한당 ·달린당 ·찰칵찍당 ·맛있겠당 ·패셔니앙 ·3D메이킹 ·X세대당 ·ADHD당 ·AI그림당 ·날아간당 ·사과시계당 ·배드민턴당 ·농구당 ·블랙베리당 ·곰돌이당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·냐옹이당 ·문명하셨당 ·클래시앙 ·콘솔한당 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·개판이당 ·동숲한당 ·날아올랑 ·전기자전거당 ·e북본당 ·갖고다닌당 ·이브한당 ·물고기당 ·도시어부당 ·FM한당 ·포뮬러당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·KARA당 ·꼬들한당 ·덕질한당 ·어학당 ·가죽당 ·레고당 ·리눅서당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·영화본당 ·MTG한당 ·소리당 ·노키앙 ·적는당 ·방송한당 ·바다건너당 ·그림그린당 ·소풍간당 ·심는당 ·패스오브엑자일당 ·라즈베리파이당 ·품앱이당 ·리듬탄당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·나혼자산당 ·스타한당 ·스팀한당 ·파도탄당 ·퐁당퐁당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·여행을떠난당 ·터치패드당 ·트윗당 ·창업한당 ·VR당 ·시계찬당 ·WebOs당 ·와인마신당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

팁과강좌

기타 Open AI의 음성 받아쓰기 - Whisper 사용해보기 9

32
2022-11-10 14:16:25 수정일 : 2022-11-10 14:18:11 222.♡.78.70
리누

Whisper는 초거대 AI 언어모델인 GPT-3로 잘 알려져 있는 OpenAI사에서 MIT 라이센스로 배포한, 실시간 음성인식/번역 엔진입니다.

유튜브를 보다가 우연히 소개 영상을 보고는 사용해 보았습니다.


다음 링크에 가시면 소개를 보실 수 있습니다.

https://openai.com/blog/whisper/


흥미롭게도, 샘플에 K-POP 음악 (윤하의 '오르트 구름')을 듣고 영어로 실시간 번역해주는 예제가 올라와 있습니다.

whisper의 github 주소를 가보면 핵심 개발자 중에 한국인이 있던데 그 영향인 것 같습니다. ^^;


※ 캡처입니다. 재생버튼 눌러도 동작 안해요...!!!

?????.png




다음 방법은 파이썬을 설치 해 본 적 있는 분이라면 어렵지 않게 따라 하실 수 있을 것입니다.



환경 구축하기


1. Python 3.7 이상

https://www.python.org/downloads/

에서 적당한 버전을 다운로드 받아 설치합니다. 저는 3.8.10을 사용 하고 있습니다.


2. Pytorch

https://pytorch.org/get-started/locally/

을 참고하여  본인 PC의 여건에 맞는 버전으로 설치합니다.


nVIDIA GPU가 없는 분이라면 명령프롬프트에서 다음과 같은 명령어로 설치하면 됩니다.

   pip3 install torch torchvision torchaudio 


nVIDIA GPU가 있다면 파이토치의 CUDA 활성화 방법과 관련된 블로그를 참고하여,

CUDA 11.6 또는 11.7버전, 그리고 이에 맞는 CUDNN 파일을 다운로드 받아 CUDA를 활성화 시킵니다.



3. FFMPEG

https://www.gyan.dev/ffmpeg/builds/

위 주소에서  ffmpeg-release-essentials.7z   파일을 다운로드 받아 적절한 위치 (예: c:\program files\ffmpeg) 에 풉니다.

그리고 윈도우 환경변수의 Path에 위 경로의 \bin 경로를 넣어줍니다. (예: C:\Program Files\ffmpeg\bin)


명령 프롬프트 상에서 아무 경로에서나   ffmpeg를 입력하고 엔터를 쳤을 때 ffmpeg.exe가 실행 가능해야 합니다.



4. Whisper 모듈

  pip install git+https://github.com/openai/whisper.git  

위 명령어를 이용해 Whisper 모듈을 설치 해 줍니다.




사용에 앞서...

이제 사용 준비는 끝났습니다.


Whisper는 Python 스크립트를 통해서 구동할 수도 있지만, 실행파일 형태로도 제공되기 때문에 명령프롬프트에서 사용할수 있습니다.


usage: whisper [-h] [--model {tiny.en,tiny,base.en,base,small.en,small,medium.en,medium,large}]
               [--model_dir MODEL_DIR] [--device DEVICE] [--output_dir OUTPUT_DIR] [--verbose VERBOSE]
               [--task {transcribe,translate}]
               [--language {af,am,ar,as,az,ba,be,bg,bn,bo,br,bs,ca,cs,cy,da,de,el,en,es,et,eu,fa,fi,fo,fr,gl,gu,ha,haw,hi,hr,ht,hu,hy,id,is,it,iw,ja,jw,ka,kk,km,kn,ko,la,lb,ln,lo,lt,lv,mg,mi,mk,ml,mn,mr,ms,mt,my,ne,nl,nn,no,oc,pa,pl,ps,pt,ro,ru,sa,sd,si,sk,sl,sn,so,sq,sr,su,sv,sw,ta,te,tg,th,tk,tl,tr,tt,uk,ur,uz,vi,yi,yo,zh,Afrikaans,Albanian,Amharic,Arabic,Armenian,Assamese,Azerbaijani,Bashkir,Basque,Belarusian,Bengali,Bosnian,Breton,Bulgarian,Burmese,Castilian,Catalan,Chinese,Croatian,Czech,Danish,Dutch,English,Estonian,Faroese,Finnish,Flemish,French,Galician,Georgian,German,Greek,Gujarati,Haitian,Haitian Creole,Hausa,Hawaiian,Hebrew,Hindi,Hungarian,Icelandic,Indonesian,Italian,Japanese,Javanese,Kannada,Kazakh,Khmer,Korean,Lao,Latin,Latvian,Letzeburgesch,Lingala,Lithuanian,Luxembourgish,Macedonian,Malagasy,Malay,Malayalam,Maltese,Maori,Marathi,Moldavian,Moldovan,Mongolian,Myanmar,Nepali,Norwegian,Nynorsk,Occitan,Panjabi,Pashto,Persian,Polish,Portuguese,Punjabi,Pushto,Romanian,Russian,Sanskrit,Serbian,Shona,Sindhi,Sinhala,Sinhalese,Slovak,Slovenian,Somali,Spanish,Sundanese,Swahili,Swedish,Tagalog,Tajik,Tamil,Tatar,Telugu,Thai,Tibetan,Turkish,Turkmen,Ukrainian,Urdu,Uzbek,Valencian,Vietnamese,Welsh,Yiddish,Yoruba}]
               [--temperature TEMPERATURE] [--best_of BEST_OF] [--beam_size BEAM_SIZE] [--patience PATIENCE]
               [--length_penalty LENGTH_PENALTY] [--suppress_tokens SUPPRESS_TOKENS] [--initial_prompt INITIAL_PROMPT]
               [--condition_on_previous_text CONDITION_ON_PREVIOUS_TEXT] [--fp16 FP16]
               [--temperature_increment_on_fallback TEMPERATURE_INCREMENT_ON_FALLBACK]
               [--compression_ratio_threshold COMPRESSION_RATIO_THRESHOLD] [--logprob_threshold LOGPROB_THRESHOLD]
               [--no_speech_threshold NO_SPEECH_THRESHOLD] [--threads THREADS]
               audio [audio ...]



Size Parameters English-only model Multilingual model Required VRAM Relative speed
tiny 39 M tiny.en tiny ~1 GB ~32x
base 74 M base.en base ~1 GB ~16x
small 244 M small.en small ~2 GB ~6x
medium 769 M medium.en medium ~5 GB ~2x
large 1550 M N/A large ~10 GB 1x


모델은 위와 같이 tiny부터 large까지. 그리고 영문 전용 모델과, 다중언어 모델이 있습니다.

인식 가능한 언어가 굉장히 많고, 한국어도 지원합니다.


영어는 base, small로도 어느 정도 인식이 되지만 한국어는 small까지에서 품질이 나빠 medium은 되어야 괜찮은 품질이 나옵니다.

다만, GPU 메모리 용량 제한이 있다 보니, 제 랩탑에 들어 있는 1050Ti 4GB로는 small 모델까지만 CUDA 가속이 가능했습니다.


CPU로 구동할 경우 CUDA 가속이 뒷받침 되는 환경에 비해 매우매우!! 느립니다.


상세 사용방법은 다음 링크를 참고해주세요.

https://github.com/openai/whisper#readme


transcribe 기능과 translate 기능이 있는데

transcribe는 영상의 언어를 그대로 텍스트로 출력해 주는 기능이며,

translate 기능은 영상의 언어를 '영어'로 번역해주는 기능입니다.


한국어를 지원한다는 것은, 영상의 언어가 한국어일때 알아듣는다는 이야기이며, 번역을 한국어로 해 내지는 못합니다.



사용해보기


사용 방법은 기본적으로 다음과 같습니다.


whisper sample.mp3


사용할 모델을 특정하는 방법입니다.

처음 사용하는 모델은 다운로드 후 실행 됩니다.

whisper --model small sample.mp3


언어를 특정해 주는 기능입니다.

지정하지 않으면 초반 30초에서 언어를 자동으로 디텍팅합니다.


whisper --language ko sample.mp3


가속장치를 특정해 주는 기능입니다.

cuda가 사용 가능한 경우 cuda를 먼저 사용하려 하기 때문에 메모리 부족 상황에서 실행이 되지 않을 수 있습니다.

따라서 강제로 cpu를 사용하고자 하는 경우  --device cpu 옵션을 꼭 사용해줘야 했습니다.

whisper --device cuda sample.mp3
whisper --device cpu sample.mp3


태스크를 받아쓰기 / 영어번역 중에 고르는 기능입니다.

whisper --task transcribe sample.mp3
whisper --task translate sample.mp3



이제 응용을 해서 실제로 사용해 보겠습니다.


샘플은 유튜브 링크를 MP3 파일로 바꿔주는 사이트를 이용해서 뽑아냈습니다.


첫번째 샘플입니다. 

테슬라 AI Day 관련 Cnet에서 하이라이트를 뽑아놓은 영상 샘플입니다.

www.youtube.com/watch?v=Gm6dZ1q06ks


small.en 모델을 사용했습니다.


ai_day_small.png



두번째 샘플입니다.

윤하의 '사건의 지평선' 노래입니다.

small 모델에서는 인식률이 좋지 않은 것을 볼 수 있습니다.



??_small.png




medium 모델로 돌리니 한결 낫지만, 한국어는 영어보다는 인식률이 다소 떨어지는 모습입니다.

앞부분을 잘라먹는 모습도 보입니다.

??_medium.png



세번째 샘플입니다.

오늘자 MBC 뉴스입니다. www.youtube.com/watch?v=bVZl9keFdMo


small 모델과 medium 모델을 연달아 보시겠습니다.


kyong_small.png


kyong_medium.png



Medium이 훨씬 나은 모습인데, 인식률이 좋지 않은 부분은 실제 영상과 비교해서 들어보면 어느 정도 납득이 되는 수준입니다.

제가 직접 들으며 받아 써 봤는데,


에..., 저.., 그..., 이..  같은 부분은 알아서 걸러주는 모습을 보입니다.

'남탓'을  '난탓'이라고 잘못 적은 줄 알았던 부분은, 실제로 발언자가 그렇게 발음을 했습니다.


[기자] 대통령님, 그 순방 전부터 특정 언론사에 대해서 그, 전용기, 대통령 전용기 탑승을 배제하면서 쫌 논란이 되고 있는데, 대통령님 입장이 있으신지 궁금합니다.
[대통령] 대통령이 국민이, 그 이 많은 그 국민들의 그 세금을 써가며 에 이런 해외 순방을 하는 것은 것이 중요한 국익이 걸려있기 때문입니다.
       그리고 에 우리 기자 여러분께도 외교 안보 이슈에 관해서 에 취재 편의를 제공해 온 것이고 그런 차원에서 받아 들여주시면 되겠습니다.
[사라지는 대통령을 보며 기자가] 이상민 장관 경질론에 대해서는 의견 없으신가요?

[박홍근 원내대표 / 더불어민주당]
오만과 독선, 불통해의 국정 운영만 고집합니다.
야당 탓, 전 정부 탓, 언론 탓, 제도 탓 등
실적의 모든 원인을 난 탓으로 돌리기에 바쁩니다.
국제 외교 무대에서 자신이 비속어를 내뱉어
평지풍파를 일으켰으면서도 반성은 커녕 순방 전용기에 보도 언론사의 탑승을 치졸하게 불허하는
뒤끝작렬 소인배 같은 보복 행위마저 이어갑니다.



어디에 활용하면 좋을까..


아직 인식이 완벽하지 않고, 버그도 있습니다..  (인식하기 어려운 음성의 경우 메아리처럼 같은 문장이 반복해서 찍히는 현상 등)

그래도, 재미 삼아? 또는 누군가에게는 업무나 취미용으로 유용하게 사용될 것 같습니다.

MIT 라이센스라 회사에서 사용하더라도 문제가 없기도 하구요.


회의록 작성?

한국어로 회의를 한 내용을 정리할 목적이라면, 네이버의 클로바노트가 더 편리할 것입니다. 일단 처리 속도가 월등히 빠릅니다.

그런데, 회사에서 회의 한 내용이 보안사항이라면 네이버에 업로드 하는 것이 찝찝할 수 있을 것입니다.


Whisper는 내 PC 안에서 처리하는 것이다보니 보안 측면에서 좀 더 안전한 대안이 될 것 같습니다.

물론 사람이 초안을 보고 수정은 해줘야지요.


외국어로 된 강의 듣기

영어는 상당히 받아쓰기를 잘 합니다.

그리고 영상은 Full Time을 소비해서 들어야 하지만, 텍스트는 이보다 훨씬 빨리 읽을 수 있습니다.

관심 있는 외국어 영상이 있다면 일단 텍스트로 뽑아낸 다음 파파고/구글번역을 한 단계 거치면 꽤 수준 높은 번역본이 나와 유용하게 쓸 수 있습니다.


영상 자막 제작

whisper를 실행 시키면 자동으로 폴더 내에 .srt , .txt, .vtt 파일이 생성됩니다.

자막을 만들 때 가장 힘든 부분이 싱크를 맞추는 부분인데, 완성도가 약간 떨어지더라도 타임프레임이 찍힌 초안을 빠르게 만들어준다면 자막 제작에 도움이 많이 될 것으로 보입니다.


??.png


리누 님의 게시글 댓글
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [9]
딸자랑마스터
IP 175.♡.11.57
11-10 2022-11-10 15:02:52
·
바이든 날리면 이거 어떻게 구별 해주려나 궁금하네요
리누
IP 222.♡.78.70
11-10 2022-11-10 15:26:07
·
@딸자랑마스터님

안타깝게도 medium 모델까지는 인식을 전혀 못하네요.
large는 메모리 부족으로 구동해 보지 못했습니다.
여기까지오늘은
IP 125.♡.142.234
11-10 2022-11-10 15:23:13
·
한글 인식률이 아쉽네요
엉클머리
IP 220.♡.180.115
11-10 2022-11-10 22:27:27 / 수정일: 2022-11-11 00:35:40
·
애플 실리콘의 M1, M2 프로세스의 경우 GPU를 사용할 수 있다고 하는데 whisper 실행시 --device mps 옵션을 줘야합니다. 파이썬 크래쉬가 발생해 아직 성능 비교는 못해봤습니다. 또 large 모델의 경우, 대상이되는 음성 파일마다 다르지만 보통 6.5GB의 메모리를 사용합니다. 윈도우에서 nvidia의 cuda를 활용할 경우 8~9GB 이상의 메모리를 사용합니다. 맥에서는 메모리를 압축하죠. :-) 느립니다. 맥에서 뉴럴 엔진을 사용하는 미래의 무엇인가를 기다려봅니다.

한글 인식은 medium과 large 모델에서 차이가 납니다. 무엇이 더 좋다기 보다는 좀 다릅니다. 더 나쁠수도, 더 좋을수도 있습니다. 참고로, 경우에 따라서 large 모델로 100MB 이상의 일반적인 음성녹음 파일을 변환하면 64GB 맥북에서도 잠시나마 스왑이 발생하기도 합니다.

다른 분들도 경험을 공유해주시면 감사합니다.
삭제 되었습니다.
리누
IP 223.♡.146.204
11-11 2022-11-11 10:00:15
·
@purndal님

테스트는 해 보지 않았지만, OpenAI의 자료에 따르면 인식 잘 되는 순서대로 상위 6번째에 랭크 되어 있습니다. (스페인어, 이탈리아어, 영어, 포르투갈어, 독일어, 일어 순서.. 한국어는 21번째)
삭제 되었습니다.
오라질
IP 112.♡.56.53
11-11 2022-11-11 23:37:03
·
오 이걸로 집컴에서 돌리는 자작AI비서 업글할 수 있을거 같네요.
지금은 핫워드 감지로 동작하는데 그냥 계속 받아쓰기 상태로 해서 대화에 자연스레 끼어든다던가 하면 편하겠습니다.
고결
IP 211.♡.190.234
11-12 2022-11-12 10:23:13
·
잘읽었습니다.

감사합니다..
별명미개봉
IP 122.♡.82.122
11-18 2022-11-18 10:10:39 / 수정일: 2022-11-18 10:10:46
·
File not found 라고 에러가 뜨는데 음원을 어디다 넣어야 하나요?
별명미개봉
IP 122.♡.82.122
11-18 2022-11-18 10:15:36
·
자답 : ffmpeg을 못 찾은거 였습니다.
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.