스터디/Etc

모든 성경구절 동영상으로 만들어서 유튜브에 업로드 하기 (후기)

Dalmangyi 2023. 8. 8.

한 동안 유튜브 프로젝트를 했었습니다.

지금은 프로젝트를 마무리하고

깔끔하게 계정을 삭제한 상황입니다.

 

매일안녕바이블TV

아차,, 하는 순간엔 이미 유튜브 업로드용 구글 계정을 삭제해버려서

구글에 검색한걸로 이미지를 대신했습니다.

참고로 재생하면 유튜브 계정이 없어서 재생이 안됩니다.

 

 

 

 

 

 

 

 

 

프로젝트 목표

성경말씀을 소리내어 읽는 영상을 유튜브로 전부 올려보자.

그것도 한 절씩. 아니면 한 장씩. 아무튼 모든 구절을...

그리고 영상은 자연 배경물로 전부 다른 영상을 쓰면 좋겠다 싶었습니다.

성경 통독용 영상은 많았지만,

성경 어플처럼 한 장씩 찾아볼 수 있게 만든 영상은

유튜브에 업로드 되어있지 않아서 시도해 봤었습니다.

 

 

 

 

준비과정

1. 말씀 준비

성경말씀중에 저작권이 만료된 '개역개정' 판으로 db를 구했습니다.

총 31102구절로 되어있습니다.

좀 더 깊이 가자면, 66권, 구약이 39권, 신약이 27권.

구약의 모든 장 수는 929장, 신약은 260장, 총 1189장 입니다.

krv.db
13.53MB

각 권에 대한 명칭은 없으니 이정도는 일일히 타이핑.....

 

 

 

 

 

 

 

2. 배경음 준비

soundcloud에서 무료이면서 반복이 좋은 노래를 골랐습니다.

사운드클라우드는 한국의 소리바다처럼 누구나 노래를 업로드 할 수 있지만

저작권따윈 무시하고 올리는 곳이라서, 개인 작가가 직접 올린 음악을 찾는데 오래걸렸던 기억이 있습니다.

말은 간단하지만, 모든 음성을 다 다운받아서 직접 듣고 선별했었습니다.

진짜 스압.....

근데 결국 배경음도 랜덤하려다가

어떤 이상한 음악이 나올지 몰라서 1개로 선택했습니다..

dreams.mp3
4.82MB

 

 

 

 

 

 

3. 목소리 준비

AI가 판치는 세상에서 목소리로 쓸 수 있는 서비스는 정말 많았습니다.

하지만 그중에서 한글을 정말 자연스럽게 읽어야하고, 무엇보다 코딩으로 컨트롤이 가능해야했습니다.

거기다 저렴해야했습니다.. 토이 프로젝트에  돈을 쓰고싶진 않았거든요.

 

한참 해매다가 발견한게 KTCloud에 있는 AI-Voice를 이용했습니다.

네이버클라우드처럼 깔끔한 목소리도 아니지만 너무 기계음이 나지 않아서 좋았고

무엇보다도 KTCloud를 처음 가입하면 100만원을 주는데, AI-Voice를 사용해보니 모든 장을 읽는데 20만원이 안나올거 같아서 선택하게 되었습니다. 실제로 모든 구절을 읽는데 12만원정도 나온거같습니다.

 

KTCloud는 정말 구색만 맞춘 Cloud느낌이 나지만 그래도 동작은 합니다.. 하지만 매뉴얼 부재가 심하거나, 잘못된 경로도 많고, 무엇보다도 다른 회사들이 조금씩 개발에 참여해서 만들었는지, 이상하게 섬세한 부분에서 다 다른 동작을 요구하는경우가 많았습니다. 

정식명칭은 "KT-AI-Voice Studio" 입니다.

https://www.humelo.com/ 휴멜로 라는 회사에서 만든 서비스를 연동시켜놓은듯 합니다.

 

프로젝트 초반에는 각 절마다 랜덤 목소리를 선택했고, 

막상 듣는 사람 입장에서 목소리가 계속 달라지니 집중도가 분산되는거 같아서

이래저래 시도를 해보다가 결국에는 마음에 드는 목소리 번호를 찾아서 계속 1개의 목소리만 사용했습니다.

 

목소리도 계속 api로 호출하면 메모리도 좋은데

kt-ai-voice가 생각보다 느렸습니다. 그래도 돈 내고 쓰는 서비스.....인데....

동시 호출로는 15개가 최고 였고, 2개를 동시에 호출하는게 가장 안정적인 속도가 나왔고

텍스트는 한번 호출할때 n개의 엄청 긴 글자가 가능한게 아니라

80자씩 끊어서 호출해줘야했습니다.. 

 

거기다가 성경구절에는 요즘에 쓰지 않는 말투가 많이 있습니다.

"그리스도에게 복종하게 하니" 이런 구절이 있다면 

교회를 가본 사람은 "니" 부분에서 내려 읽겠지만 

아직 학습이 부족한 ai는... 질문을 하듯이 "니?!" 이렇게 올려서 읽어서 

어서 골치가 아팠는데....

다행히도 마침표를 구분해 내기에 "그리스도에게 복종하게 하니."로 변경해주니

쉽게 해결할 수 있었습니다.

 

그리고 성경 구절에는 대사집이 아니고, 상황을 전달하는 경우가 많기 때문에

한글만 있는게 아니고, 숫자와 소괄호와 대괄호가 많이 있습니다. 

그런 부분을 정규표현식으로 만들어서 없애거나 변형하여 읽어줘야 했습니다.

 

 

 

이러고 끝이면 좋겠지만!!

음성파일이 여러개가 합쳐질때, 인코더의 오류로 고주파수 대역의 소리가 생겨버려서...

FFT를 이용해서 고 주파수 영역만 필터링한 음성을 따로 만들어줌...

 

"1장 10절"을 대부분 교회에선 '일장 십절'로 읽는데

ai는 '한장 열절' 또는 '일장 일영절'로 읽곤 했습니다....

이걸 한글 발음으로 변경해주는 신경까지 써야될줄 상상도 못했습니다.

 

 

 

 

 

 

 

 

4. 배경영상 준비

이세상에 무료 이미지와 무료 영상이 엄청 많은 세상인걸 모두가 아실껍니다.

그리고 그런 이미지와 영상을 상업적으로도 무료로 제공하는 사이트도 존재합니다.

하지만 막상 상업적으로 쓸려고 보니, 영상의 경우 길이가 너무 가지각색이고,

찍는사람 스타일도 다르고, 거기다가 모델까지 나오는경우가 있어서 초상권으로 못 쓸 영상이 많았습니다.

 

거기다가 크롤링이 아닌 api로 제공해주는 사이트를 찾고싶었죠.

해매다가 2군데로 쫍혀졌습니다. 

pixels와 pixabay.

 

api 를 제공한다해도, 자연배경의 무료 영상이 성경구절만큼(31102)개가 넘지 않았습니다.

결국 4000개 정도 되는 영상을 잘게잘게 쪼개서 사용하게 되었습니다.

성경구절을 통해서 음성을 만들고, 그 음성의 길이를 측정해서

그 길이만큼 영상을 잘라서 썻습니다.

잘라쓴 영상을 겹치지 않게 하려면 db까지 다뤄야되서 굳이 그럴필요가 있나? 싶어서

모든건 랜덤에 맞겨보자 해서, 음성의 길이를 포함하는 영역이 재생가능한 위치를 랜덤으로 해서 잘라 썻습니다.

 

몇개 안되니까 전부 다운받아야지~~

자연 배경이니까 섬세한 영상이니까 더 고화질로 제공해야지~ (4K)

얼마나 모일까~ 하고 밥먹고 오는 사이에 2TB가량 차고 있는걸 보고 황급히 껏습니다;; 

(집 인터넷이 10기가급이라 그런지 쫌 빨리 다운됩니다)

 

비디오도 역시 스압.....

4k로 만들까하다가 제 하드가 남아나질 않고.. 

그래도 요즘 시대에 환경을 생각한 저화질이 대세 (??)여서

720p로만 모으니 500GB 밖에(?) 안했습니다.

 

 

 

 

 

 

 

 

 

5. 자막

자연배경영상에 음성만 들려줘도 되지만

우리는 이제 자막의 노예가 된것처럼 자막이 없으면

영상을 보지 못 하는 세대가 되어버렸습니다.

그리고 소리가 안들리는 상황에서 글자라도 볼 수 있게 하기 위해서

자막이 필수 입니다.

그렇다고 유튜브의 자막을 넣자니 유튜브 시스템이 잘 못알아 듣고 이상한 번역을 추가할게 뻔해서

직접 자막을 만들어 넣기로 했습니다.

 

영상과 상업용으로 사용이 가능한 폰트를 눈누 서비스로 구해서

직접 코딩에 쓸려고 했는데 적용이 안되서 힘들었음... 

 

폰트는 꼬불꼬불하면 이쁘긴 하지만 

전연령대가 읽는 텍스트다 보니 

가독성을 중요시해서 '함렡(함렛?,hahmlet)' 폰트로 선택하였습니다.

https://github.com/hyper-type/hahmlet

 

 

 

 

 

6. 타이틀

바로 성경구절을 읽으면 이상하니...

어떤 구간을 읽는지 조차는 나왔으면 좋겠다 해서

 

미리캔버스로 대충 꾸미고, 

거기에 들어갈 폰트와 텍스트 사이즈를 정해서 코딩으로 만들고,

그 타이틀에 해당하는 음성도 만들었습니다.

 

 

 

 

 

 

 

 

7. 합체 (영상편집)

위에서 구한 6가지를 합친다고 뿅 합쳐서 구현되는게 아니었습니다...

 

저는 조금 더 자연 스러운 연출을 하고 싶어서

음성과 영상에 fade-in, fade-out 기능까지 넣고 싶었죠.

 

음성을 합치고, 영상을 합치는건 간단했지만

fade-in/out 기능은 수학연산을 통해서 계산을 하고

음성코덱, 영상코덱에 맞게 인코딩/디코딩을 해야하기 때문에 

작업 시간이 많이 걸렸습니다.  

물론 이 과정도 직접 하나씩 하지 않고 일관되게 코딩으로 진행합니다.

 

요즘 같은 시대에 멀티코어로 하면되지~

라고 말하고 싶지만, 코덱 변환은 대부분 싱글 프로세서로 되어있어서

한 번에 한 개의 작업밖에 못해서 오래 걸렸습니다...

 

한 구절을 만드는데 1초정도 소모되고, 타이틀을 만들어서 영상편집으로 합치면

총 4초 정도 소모되었습니다. 

한 구절씩 영상을 만들다가, 한 장씩 계획을 변경하고, 1장을 만드는데 평균적으로 30초 정도 걸렸습니다.

30초*1189장 => 35700초 = 595분 = 9.9시간 

정도로 생각되지만, 실제로는 음성다운로드와 배경편집시간이 더 추가되어 한참 오래걸리게 되었습니다.

 

 

8. 썸네일

여기서 끝이 아닙니다...

영상을 만드는거 까지 좋았는데

이 유튜브 녀석이 추천 썸네일을 주는데

맨 앞 프레임만 선택되게 하면 좋았을것을.......

꼭 영상의 총 길이에서 듬성 듬성 골라서 추천을 해주니 도저히 못 써먹었습니다.

 

그래서 썸네일도 코딩으로 직접 만들었습니다....

거기다가!! 유튜브에서 썸네일 업로드 용량 제한도 있어서 직접 리사이징까지 해줍니다..

수많은 사람들이 사진을 무턱대로 업로드하니 서버에서 변환하는것도 무리가 있는지..

유튜버에게 직접 시키는 느낌이였습니다.

 

 

 

 

드디어 만들어진 모습

한구절씩 만든건 숏츠로 업로드했습니다.

솔직히 조회수가 잘 나오는데 싫어요도 많았습니다 ㅋㅋㅋ

어떤 모습인지 보실 수 있게 일부 숏츠용 세로 영상만 업로드 합니다.

창세기_38장_2절_#1122.mp4
6.58MB
창세기_38장_19절_#1139.mp4
2.74MB
창세기_38장_5절_#1125.mp4
3.39MB

 

 

이번엔 한 장씩 올린 가로용 영상 입니다.

숏바이블 에스더 10장.mp4
13.37MB
숏바이블 시편 117장.mp4
12.19MB
숏바이블 잠언 27장.mp4
8.25MB

 

 

 

 

 

 

 

마치며

머리속으로는 이거 구하고, 저거 구하고,

이러쿵 저러쿵 지지고 볶으면 금방 개발될줄알고

개발 기간을 10시간 정도로 잡았었습니다 ㅋㅋㅋ

 

여러가지 상황을 겪으면서 해결을 하다보니 

개발 기간은 5일 정도 소비되었고 .........

 

유튜브에 모든 영상을 업로드 하기까지는 17일 정도의 시간이 걸렸습니다.

(유튜브에 업로드 가능한 영상은 하루에 100개씩임, 삭제한거 포함)

 

아주 가볍게 시작한 프로젝트인데

생각보다 디테일을 생각하다보니 일이 커진 토이 프로젝트였습니다.

 

그래도 프로필까진 신경써야겠다 싶어서

캐릭터도 만들었었습니다. 

왼쪽은 성경책 통독용 캐릭터,

오른쪽은 찬송 듣기용 캐릭터,

찬송 버전 유튜브까지 만들려다가 음원 구하기도 힘들고 음원 저작권도 심해서 포기.

캐릭터 이름은 "순양이" 였습니다.

 

 

 

 

 

p.s. 유튜브 업로드 API도 개발했었는데, 유튜브가 봇으로 인식해서 업로드가 아예 제한되서 매일 영상 100개를 업로드하고, 재생목록만들고, 썸네일 세팅한건 안 비밀~.

 

p.s. 개발언어는 python.

 

 

 

 

이상, 별거 아닌걸로 끝까지 도전해보는 달망이였습니다.

글 읽어주셔서 감사합니다! 

댓글