Whisper-WebUI에 대한 정말 조금 긴 글

Whisper-WebUI를 활용한 음성인식 자막 생성을 근 2주 정도 파고들어 봤음 

결론만 말하자면 언어의 장벽을 헐어버리고, 취미의 지평을 열어버렸다고 볼 수 있을 것 같다


주로 실사용에 따른 후기와 결과물 일부, 그리고 구드 링크 공유하는 두서없는 내용으로 구성해 보았으며 내용의 구성이 핫산과는 거리가 멀기 때문에 정보글에 업로드함

주기적으로 업데이트할 링크도 같이 첨부하겠음.


해당 목록에 관심 있는 콘텐츠가 있다면 다들 한 번 정도 체험해 보는 게 어떨까 해서 글을 작성하게 되었다.


Whisper는 드라마 CD와 너무나도 시너지가 좋다는 점을 꼭 알리고 싶다. 드라마CD 관련 내용은 게시물 최하단에 작게 기술해두었다. 향후 개선하면 변경된 사항과 함께 목록과 폴더를 재작성할예정


개인 자료저장소 (동기화 된 링크)

https://drive.google.com/drive/folders/1P5AamhpUGpG7Z-Z82_3nv3RlL8dikgDd?usp=sharing




1. WebUI를 사용하기에 앞서 고려해야 하는 주요 내용

(1) 생성 시 모델은 LargeV2 쓰자

가장 중요한 점은 어떻게든 LargeV2 혹은 그에 준하는 모델을 사용하여 자막을 생성해야 한다는 것

수 배 가까이 빠른 Base모델을 사용해서라도 쾌적하게 자막을 생성하고 싶었지만, 그 품질이 매우 크게 뒤쳐지며 LargeV2도 이상적일 수준으로 완벽하지 않은데 그에 대한 리소스적인 타협판인 하위 모델들의 결과물은 사용하기에 적합하지 않았다.


드라마CD가 아닌 뮤지컬, MV, 영화 등등에서 실용적으로 사용하기 어려운 점을 크게 체감하게 됨


마지노선을 Medium모델로 잡고 가능한 한 LargeV2모델을 사용할 것을 권고

구동 시 VRAM이 가장 중요함. 코어 클럭보다 메모리 클럭이 더 중요할 정도

CUDNN 전용 모델이 아니라 라데온도 돌릴 수 있던거같은데, WebUI기반에서 확실히 돌아가는지는 모르겠다


4GB VRAM의 GTX1050 전후 라인업의 그래픽카드로 어떻게든 Whisper를 돌리고 싶다면 Medium 쓰면 될거같다. 실제로 매우 큰 성능저하 없이 잘 돌아가긴 하더라. 이 부분은 오히려 그래픽카드 별 특화된 연산 방식을 전혀 사용하지를 않은 것 같다.



(2) T2T Translation의 facebook 3.3 모델은 요구 VRAM이 16GB지만 VRAM 12GB여도 구동 가능

한없이 느려지지만 번역 품질이 무엇보다도 중요하다면 채택해볼만함


그래도 파파고 유료 API, DeepL을 추천하고 싶다




아래의 예시 비디오들은 모두 음원이 있는 사양이기 때문에 음소거 끄면 싱크가 얼마나 정확한지 감은 잡힐것같음


(3) 예시 - MV / 보컬

 아래 영상을 통해 특정 언어에 대한 자막 생성 후 크롬 자동 번역, 파파고, T2T Translation v3.3을 비교

하얀색 - 구글 크롬

청록색 - 파파고

노란색 - facebook/nllb-200-3.3B



(4) 예시 - 뮤지컬

현대 뮤지컬 중 하나인 지킬 앤 하이드는 음성인식 모델을 끝장나게 고문하기에 최적화되어있다

음성인식 성능 / 내장된 번역기와 타 번역기 간 벤치마킹으로 써먹어도 될 지경



(5) 예시 영상 (Small모델 / Medium모델)

음성인식 자막 생성 기능에는 5개의 모델 분류가 있는데 Tiny/Base/Small/Medium/Large

Large모델은 VRAM을 최소 10GB 이상 요구하며, 11.6GB씩 무조건 가져감


드라마CD같은 구성인 라이브러리 오브 루이나 스토리 정리 영상

영상 재생은 팟플레이어에 링크 복붙 or 드래깅

자막은 드래깅 or 자막 - 자막 열기

https://youtu.be/EVVsI01nZ3g


10시간짜리 자막인데다 10시간짜리 영상이고, 또 영상에 대화문이 제공됨에도 자막 생성을 시도해봄

철저히 리소스 낭비지만 비교를 위해 생성한 자막임

Small은 Medium에 비해 크게는 2배까지 더 빠르게 생성가능

눈에 띄는 품질 차이와 다른 상위 모델에서 보다 개선된 자막 생성도 가능하지만, Medium 모델은 저사양에서 매우 합리적인 선택

또, 고유 명사에 대한 잘못된 표기가 상위 모델에서 일부 개선되는 점을 감안하면 싱크도 밀리고 정확도도 떨어지는 small 이하 모델들은 채택할 필요가 없는것같다.

초저사양 임베디드 시스템에서 이 악물고 쓴다고 해도 Tiny 모델은 채택할 필요가 없다.



Small모델로 생성한 자막

https://drive.google.com/file/d/1uwlE8Om02bDQCgA92cjYtIhhpkCxU6kT/view?usp=sharing


Medium모델로 생성한 자막

https://drive.google.com/file/d/17s2WulK8CSxW5lIgQkwb9P5CRwkbKGkl/view?usp=sharing



예시

Small 모델

1
00:00:00,000 --> 00:00:16,219
 이곳은 아직 나갈 수는 없지. 나는 끝까지 자유롭지 못하네. 분수에 맞지 않는 꿈을 품어서는 안된다는 거야.

2
00:00:16,219 --> 00:00:28,339
 젠장 불안음물. 이딴 방식으로 일을 처리할 줄이야. 뭐가 어떻게 된 거야? 이 연기들은 뭐고. 하... 믿을 수밖에...

3
00:00:28,339 --> 00:00:40,759
 한번만 말할게. 난 복잡하게 돌려서 말하는 것을 정말 싫어해. 그러니까 괜히 말 늘리지 말고 묻는 말을만 대답해. 물론 질문도 하지마.

4
00:00:40,759 --> 00:00:46,260
 넌 어디서 그리고 어떤 목적을 가진 채 이곳에 어떻게 들어왔지?

5
00:00:46,260 --> 00:00:51,359
 뭐야? 넌 누군데? 아... 속이 맺을 것 같고 얼렁거리는데...

6
00:00:51,359 --> 00:00:55,840
 으악! 내 다리!

7
00:00:55,840 --> 00:01:06,560
 난 경고했고 넌 어겼어. 다시 한번 물어볼게. 넌 어디서 그리고 어떤 목적으로 이곳에 그리고 어떻게 들어왔지?

...


Medium 모델

1
00:00:00,000 --> 00:00:05,000
 이곳에 나갈 수는 없어. 끝까지 나는 자유롭지 못하네.

2
00:00:05,000 --> 00:00:09,000
 분수에 맞지 않는 꿈을 품어서는 안 된다는 거야.

3
00:00:10,000 --> 00:00:15,000
 젠장 불안움물... 이 딴 방식으로 일을 처리할 줄이야.

4
00:00:15,000 --> 00:00:18,000
 뭐가 어떻게 된 거야? 이 연기들은 뭐고?

5
00:00:18,000 --> 00:00:21,000
 하... 믿을 수밖에...

6
00:00:21,000 --> 00:00:23,000
 한번만 말할게.

7
00:00:23,000 --> 00:00:25,760
 이 자식이

8
00:00:25,760 --> 00:00:29,760
 난 복잡하게 돌려서 말하는 것을 정말 싫어해.

9
00:00:29,760 --> 00:00:33,760
 그러니까 괜히 말 늘리지 말고 묻는 말에만 대답해.

10
00:00:33,760 --> 00:00:35,760
 물론 질문도 하지 마.

11
00:00:35,760 --> 00:00:41,760
 넌 어디서 그리고 어떤 목적을 가진 채 이곳에 어떻게 들어왔지?

12
00:00:41,760 --> 00:00:43,760
 뭐야? 넌 누군데...

13
00:00:43,760 --> 00:00:46,760
 아... 속이면 할 수가 없고 울렁거리는데...

14
00:00:48,760 --> 00:00:49,760
 메달이...

15
00:00:49,759 --> 00:00:53,759
 난 경고했고 넌 어겼어. 다시 한 번 물어볼게.

16
00:00:53,759 --> 00:00:59,759
 넌 어디서 그리고 어떤 목적으로 이곳에 그리고 어떻게 들어왔지?

17
00:00:59,759 --> 00:01:05,759
 하... 그냥 길을 걷다가 정신을 차려보니 어기였어.

...


(6) 드라마 CD - 타입문

All Around Type Moon Drama CD


https://youtu.be/2NqazdEYQe4


자막 링크

https://drive.google.com/file/d/1IslIGLW8f54nDgK62VrX2xePukxcw_1B/view?usp=sharing



(7) TTS실황에서의 Whisper-WebUI

 [1]

Elona - 갈색 긴 귀를 가진 힐러의 티리스 방랑기#1 -1, 2 (10분, 17개)

https://www.nicovideo.jp/watch/sm39604359



TTS/보이스로이드 실황은 본 음성인식 모델의 성능을 최대한 살릴 수 있는 대상이라고 생각중

그래도 내장된 기계 번역은 품질에 비해 들이는 시간이 너무 많이듦


[2]

위 영상물 시리즈 단위로 만든 자동번역 자막 영상

https://www.youtube.com/playlist?list=PLW0X7CyzqvgWEPQ6FqtRb_hC5rBoGIFPA


의외로 보이스로이드 디폴트 세팅에서는 몰라도 범용[커뮤니티용]  TTS엔진 영상에서는 제한이 있다.
20개 중 1개는 음역대 증폭 등의 최소한의 수정이 필수적인 경우가 있었다.

4분 미만의 짧은 영상에서는 그 빈도가 짧은 편



2. 소요 시간

(1) 생성

LargeV2 기준 오차범위 내에서 설명하자면

VRAM 4GB ~ 6GB에서는 구동 어려움

3060 기준 2분동안 240초~260초 처리가능

4080 기준 2분동안 약 600초 처리가능


그렇지만 무손실 음원과 손실 음원 수 백 개, 수 십 시간을 한 번에 처리하려면 말 그대로 40시간 이상 걸리는 경우도 종종 있으며, 지속적으로 렉이 발생하여 멀티태스킹 시 작업 효율이 떨어짐


6코어/12쓰레드 or 보편적인 작업용 컴퓨터 구성 (램 32GB 이상)에서 게이밍을 포기하고 싶지 않다면 요구 성능이 낮은 모델을 사용하는 것이 요구됨


(2) 백그라운드 작업

백그라운드에 VRAM 2GB이하를 먹는 저사양 게임을 돌려도 속도가 3할 가까이 깎임, 그 이외 작업을 해도 동일함

3.3B모델을 사용하여 기계 번역을 실행하면 시스템이 툭툭 끊기면서 작업이 불편하니 수 시간 이상 분량을 백그라운드에 켜두고 작업할거라면 그래픽카드 불문 1.3B모델을 사용하여 번역할 것


(3) 포맷

동영상에서 음원을 추출해서 음원만으로 자막을 생성하는 것보다 동영상 통째로 자막을 생성하는게 시간이 더 오래걸림

1시간 4GB를 마지노선으로 잡고, 그 이상부터는 음원 추출이 필요함. 1시간 이상의 음원에 대해선 Wav나 Flac보단 m4a나 mp3 사용, 무손실 음원은 품질과 직접적인 관련 없이 더 오랜 시간이 걸리는 것으로 확인됨

명확하게 느리다. 손실 음원 포맷으로 타협하지 않으려면 더 많은 시간을 쓰거나, 더 좋은 컴퓨터 환경이거나 둘 중 하나


추정컨데 비트레이트의 영향을 받는 것 같지만, 손실 음원의 노이즈가 결과물에 영향을 주는 것 같지가 않다

그리고 컴퓨터의 Temp폴더에 모든 작업 대상을 가져오는데, 컴퓨터 스펙과 무관하게 매---------우 느리다


매우 큰 용량의 동영상은 인코딩을 통해 음원을 추출하고 자막만 활용할 수 있도록 하는게 생성 시간에 무엇보다 중요

유튜브 링크에 대한 자막 생성은 이 제약에서 비교적 자유로움 -> (추정컨데 OPUS 2.0만 가져오는듯)



3. 발견된 문제점

(1) 일부 특수기호 소거

일본어에서 쓰이는 괄호 등은 소거된다. BatchNamer를 통한 일괄 파일명 변경이 필수화되서 불편함

자막 생성 시 뒤에 -11자리의 숫자가 붙는데 이것을 안붙게 할 수 있는 내부 설정은 보이질 않고


(2) 주기적으로 먹통

재접속이 필요할 정도로 먹통이 되는 상황이 종종 발생함


(3) 작업 끝난 뒤에도 VRAM 사용

비교적 높은 강도의 작업을 실시하고 그것이 끝났을 때, 길게는 수 십 분에 걸쳐 꾸준히 VRAM을 점유

다른 작업을 실행하거나 그래픽카드에 부하가 가할 때 정상화되는거 보면 편의성을 위해 일부러 이렇게 세팅한걸지도


(4) 코어 점유율 낮다

이 증상으로 말미암아 속도 편차가 크다

개발자 말에 따르면 더 빠른 작업을 위해선 Gradio 기반 말고 다른 방식으로 Whipser를 돌려보라던데


이 속도 편차라는게 말 그대로 꾸준히 60s/it 이상을 유지하다 갑자기 평균값이 40s/it로 고정되곤 한다는 점

여기서 더 내려갈 수 있어도, 더 오르는 일은 없다

전부 비슷한 음원에 비슷한 비트레이트여도 그러함

꾸준히 속도를 비정기적으로 조져놔서 무엇이 원인인지 모르겠다

클럭을 올리는 수 %사이의 평균값 차이가 확인되는 하지만 작업에서는 클럭 조정은 금물이니 원


시간 계산해서 Whisper-WebUI를 활용한다는 것은 쉬운 일이 아닌것같다



일련의 내용들은 경험에서 나온거고, 시행착오는 현재진행형이지만 그나마 정론에 가까울 것 같은 내용들만 기재했다

절반 가까이 지운 내용이라 빈 부분도 좀 있을것같다


지속적으로 만들다보면 노하우도 생기겠고, 적당한 자막 공유 플랫폼도 만들어질거같던데 당분간은 개인적으로 필요한 음원에 대한 정리만 계속할듯




끝내며

개인 자료저장소 링크

https://drive.google.com/drive/folders/1P5AamhpUGpG7Z-Z82_3nv3RlL8dikgDd?usp=sharing


대부분 LargeV2 모델에 1.1B, 3.3B 모델로 기계번역 처리한거라 취향에 맞다면 유용할지도 모르겠다.

최상단에 올라온 목록에 관심있는 콘텐츠가 없다면 본 자료저장소에서 얻을만한 값진 결과는 없을것같다.


채널 규칙 상 요청은 따로 받지는 못할것같다.

그래픽카드가 일정 수준 이상이라면 이런 자급자족도 괜찮아보인다.

대부분의 드라마 CD 자막은 따로 빼두었다. 정확한 내용은 아래 작게 기술해두며 글을 마치고자 한다.


폴더 분류가 깨져서 모든 파일이 한 폴더에 들어가버림. 정리되 안된거 업로드했다가 유저들 시간만 뺏을것같아서

자신의 자료가 방대하고, 데이터 서치에 재능있는 사람들이 있다면 아래 링크에서 필요한 것만 찾아서 사용해보길 바람

대부분 R18자료들에 대한 자막들이고, 진짜 무분별하게 정리했으니 꼭 사용할 필요는 없을것같다

https://drive.google.com/drive/folders/1wyCk9MRq-B6ksYrtTb4ZMXhdqQBg6W03?usp=sharing