https://youtu.be/vmt_WVBJMj4?si=OZlzEqfEvWjPakYV
생성형 AI를 사용하여 블로그 게시물에서 프레젠테이션 영상을 자동으로 만들고 유튜브에 업로드하는 시스템을 개발했습니다.
약간의 독창성을 발휘하면, 생성형 AI는 프레젠테이션의 스토리라인을 구상할 뿐만 아니라, 프레젠테이션 자료도 만들 수 있습니다.
더 나아가, 생성형 AI가 프레젠테이션 스크립트를 작성하게 한 다음, 텍스트 음성 변환 생성형 AI가 해당 스크립트를 소리 내어 읽도록 하면 음성 데이터도 생성할 수 있습니다.
프레젠테이션 자료와 음성 데이터를 결합하면 영상이 만들어집니다.
이러한 일련의 작업을 자동화함으로써, 클릭 한 번으로 프레젠테이션 영상을 자동으로 생성할 수 있게 되었습니다.
메커니즘
이 과정에서 가장 중요한 부분은 프레젠테이션 자료 생성입니다.
생성형 AI는 이미지 생성에 탁월하지만, 이는 일반적으로 사진이나 그림과 같은 유형에 국한됩니다. 프레젠테이션 자료처럼 텍스트와 도형이 중심이 되는 문서를 생성하는 것은 이미지 생성 AI에게는 어려운 일입니다.
따라서 저는 텍스트와 도형 중심의 자료를 프로그래밍 언어와 유사한 텍스트 기반 형식으로 생성합니다.
이러한 자료를 만드는 데는 여러 형식이 사용될 수 있습니다.
처음에는 프레젠테이션 자료 생성에 특화된 Marp 형식을 시도했지만, 그 기능이 제한적이었습니다. 그래서 더 일반적인 벡터 그래픽용인 SVG 형식을 사용하기로 결정했습니다.
SVG와 같은 텍스트 기반 형식의 경우, 일반적인 챗봇 기반 생성형 AI에게 "이 블로그 게시물의 내용을 소개하는 프레젠테이션 자료를 SVG 형식으로 만들어주세요"와 같은 요청을 하면 자료를 생성할 수 있습니다.
텍스트 오버플로우 문제
여기서 문제는 텍스트가 문서의 바깥 테두리나 문서 내 도형의 테두리를 자주 벗어난다는 것입니다.
사람이라면 완성된 문서를 보고 텍스트 오버플로우된 부분을 즉시 알아차릴 것입니다. 그러나 완성된 문서를 육안으로 확인하는 것이 아니라 SVG 텍스트 단계에서는 텍스트가 테두리나 도형을 벗어났는지 감지하기 어렵습니다.
결과적으로 챗봇 기반 생성형 AI는 텍스트 오버플로우가 빈번하게 발생하는 문서를 생성하는 경우가 많습니다.
물론 AI가 대부분의 내용을 잘 생성하기 때문에, 제가 텍스트 오버플로우를 수동으로 수정하면 잘 작동할 수 있습니다. 하지만 그렇게 되면 매번 수동 작업이 필요하게 됩니다.
따라서 SVG 문서를 생성할 때 텍스트 오버플로우를 방지하는 조치를 통합하고, 생성된 SVG에 텍스트 오버플로우가 있는지 자동으로 감지하는 메커니즘을 개발하는 것이 필요했습니다.
텍스트 오버플로우를 방지하기 위해, 생성형 AI에게 프레젠테이션 자료를 만들도록 지시할 때 기본적인 규칙, 작업 절차 및 주의 사항을 제공하는 접근 방식을 채택했습니다.
규칙으로, 복잡한 도형을 사용하지 않도록 지시하고 텍스트의 글꼴 크기를 고정했습니다.
나아가, 문서 내 문장의 문자 수를 세고, 글꼴 크기를 곱하여 너비와 높이를 추정하며, 텍스트가 프레임이나 도형을 벗어나지 않는지 사전에 확인하는 절차를 따르도록 지시했습니다.
이 과정에서 AI에게 확인된 과정과 결과를 SVG 파일 내에 사전 검토 코멘트로 기록하도록 지시했습니다.
이러한 지침을 추가하여 어느 정도 개선이 있었지만, 초기 정확도는 만족스럽지 않았습니다. 그래서 여러 변형을 반복적으로 생성하고, 흔한 오류 지점을 주의 사항으로 지침에 추가했으며, 규칙과 지침이 지켜지지 않으면 프롬프트 텍스트 내에서 반복적으로 강조했습니다.
이러한 프롬프트 개선을 시행착오를 통해 반복함으로써 텍스트 오버플로우를 어느 정도 억제할 수 있었습니다.
하지만 모든 노력에도 불구하고 완벽함은 달성하기 어렵기 때문에, 후반 단계에서 검사하는 방법을 도입하기로 결정했습니다.
이 후속 검사를 위해 이미지를 시각적으로 검사할 수 있는 생성형 AI를 사용해 보았지만, 텍스트 오버플로우를 효과적으로 감지하지 못해 이 접근 방식은 포기했습니다.
다음으로, SVG 텍스트를 챗봇 기반 생성형 AI에 다시 입력하여 검사하는 또 다른 방법을 시도했습니다.
이 방법은 시각적 검사 AI보다 텍스트 오버플로우를 더 잘 감지했지만, 감지 정확도는 여전히 높지 않았습니다. 여기에서도 오버플로우 감지 지침을 반복적으로 개선함으로써 어느 정도 정확도를 달성할 수 있었지만, 완벽한 수준에는 미치지 못했습니다.
따라서 텍스트 오버플로우를 더욱 엄격하게 감지하는 프로그램을 만들기로 결정했습니다. 이 프로그램은 생성형 AI에게 지시한 대로, 프레젠테이션 자료 내 문장의 길이와 글꼴 크기에서 너비와 높이를 계산하여 텍스트가 문서 프레임이나 내부 도형을 벗어나는지 확인합니다.
이 프로그램 개발은 힘들었지만, 궁극적으로는 정확하게 감지할 수 있게 되었습니다.
텍스트 오버플로우 외에도, AI가 복잡한 차트를 만들려고 시도하다가 왜곡된 결과물을 생성하는 경우도 있었습니다. 이러한 측면에 대해서는 챗봇 기반 생성형 AI가 규칙 위반 확인을 수행하는 방식을 유지했습니다.
이 확인은 AI가 규칙에 정의된 것보다 더 복잡한 도형을 생성했는지 여부를 판단하여, 허용할 수 없는 경우로 표시합니다.
이러한 오버플로우 확인 프로그램과 생성형 AI의 규칙 위반 확인 메커니즘을 통해 이제 대부분의 문제를 감지할 수 있게 되었습니다.
후속 처리
이러한 검사 중에 불합격이 감지되면 생성된 SVG 형식 자료는 폐기되고 다시 생성됩니다. 이는 문제가 있는 부분을 지적하고 수정하더라도 종종 다른 문제로 이어져 결국 더 많은 시간이 소요되기 때문입니다.
텍스트 오버플로우가 없는 프레젠테이션 자료가 완성되면 다음 단계는 이 자료와 원본 블로그 게시물을 생성형 AI에 입력하여 내레이션 스크립트를 생성하는 것입니다. 여기에는 특별한 독창성이 필요하지 않았습니다.
그런 다음, 내레이션 스크립트는 텍스트 음성 변환 생성형 AI를 사용하여 오디오 데이터로 변환됩니다. 이 역시 특별한 기술은 필요하지 않았습니다.
마지막으로, SVG 형식 프레젠테이션 자료는 PNG 이미지로 변환되고, 이어서 ffmpeg이라는 도구를 사용하여 오디오가 포함된 mp4 비디오로 변환됩니다. 이것으로 과정이 완료됩니다.
SVG 형식 슬라이드 생성 이후의 일련의 과정들은 생성형 AI와 상담하면서 프로그램을 작성하면 쉽게 자동화할 수 있습니다.
결론
이 자동 프레젠테이션 영상 생성 시스템을 직접 성공적으로 구축하고 개선한 후, 지난주부터 유튜브에 영상을 게시하기 시작했습니다.
하지만 이 시스템이 완성된 직후, 구글의 AI 도구인 NotebookLM에도 텍스트 문서를 설명하는 영상을 자동으로 생성하는 유사한 기능이 추가되었습니다.
따라서 앞으로는 AI 서비스를 제공하는 기업들이 유사한 서비스를 출시하여 개인이 이러한 시스템을 처음부터 구축할 필요가 없어질 것으로 예상됩니다.
그럼에도 불구하고, 생성형 AI를 활용한 실용적인 프로그램을 이렇게 진지하게 개발해본 것은 중요한 성과였으며, 생성형 AI를 효과적으로 활용하는 핵심 원리를 파악할 수 있게 해주었습니다.