본문 요약, RAG 기반 QA 시스템을 개발하기 위해, 유튜브 영상에서 스크립트를 추출하는 과정이 필요했다.
초기에는 Whisper stt를 사용해서 음성을 텍스트로 변환하는 방식을 채택했지만, 몇 가지 현실적인 이유로 접근 방식을 바꾸게 되었다.
Whisper stt는 openAI에서 제공하는 STT 모델로, 다양한 언어 인식 정확도가 뛰어나다. 실제로 모델 테스트 과정에서도 매우 높은 정확도를 보여줬다.
❗️TIP. STT로 돌리기 전에 영상을 배속시켜서 저장한 후. 추출하면 비용을 줄일 수 있다.(2배속, 1.5배속으로 테스트해봤는데 2배속은 정확도가 조금 떨어지고 1.5배속은 1배속과 비슷하다.) 아래에 스크립트 첨부함
1배속 Whisper STT
사람을 유능해 보이게도 반대로 무능해 보이게도 만드는 가장 결정적인 자질이 뭔지 아시나요? 바로 리더십인데요. 이번 5분 레벨업에서는 세 권의 참고서를 바탕으로 한 번 알아두면 평생 써먹는 핵심적인 리더십 스킬 두 가지를 알려드릴게요. 리더십 스킬
첫 번째, 관계상황 효과. 평생 막내의 위치에서 막내의 역할만 하면 살아갈 게 아니라면 리더십은 누구에게나 필요한 능력입니다. 예를 들면, 우리가 이름 걸고 나가는 거니까 다들 잘해야 하는 거 알지? 지금 여기 요리 경연 프로그램 출연을 앞둔 젊은 요리사들이 있습니다.
2배속 Whisper STT
사람의 눈에 보이게도 반대로 눈에 보이게도 만드는 가장 결정적인 자질이 뭔지 아시나요? 바로 리더십인데요. 이번 호흡을 레벨업에서는 세 번의 참고사를 바탕으로 한 번 알아두면 평생 써먹는 핵심적인 리더십 스킬 두 가지를 알려드릴게요. 첫 번째, 관계상황 효과. 평생 막내의 위치에서 막내의 역할만 하면 살아갈 때 아니라면 리더십은 누구에게나 필요한 능력입니다. 예를 들면 우리 밖에 이름 걸고 나가는 거니까 다들 잘해야 하는 거 알지? 제의된 명지 요리 경영 프로그램 출연 앞둔 젊은 요리사들이 있습니다.
정확도는 높아서 결과물도 더 정확해지겠지만 다음과 같은 단점이 있었다.
whisper 대신 유튜브의 자동 자막을 직접 추출하는 방식으로 전환했다.
'youtube-transcript-api' 라이브러리를 활용하면 빠르게 스크립트를 가져올 수 있다.
from youtube_transcript_api import YouTubeTranscriptApi
video_id = '비디오ID'
transcription = YouTubeTranscriptApi().fetch(video_id=video_id, languages=['ko', 'en'])
for content in transcription:
print(content.text)
content에서 각 문장의 재생 시간 위치도 얻을 수 있다. 아래 추출된 스크립트를 첨부하겠다.
사람을 유능해 보이게도, 반대로 무능해 보이게도 만드는 가장 결정적인 자질이 뭔지 아시나요? 바로 리더십인데요. 이번 5븐 레벨업에서는 세건의 참고사를 바탕으로 한 알아두면 평생 써먹는 핵심적인 리더십 스킬 두 가지를 알려 드릴게요. 지트킥. 첫 번째 관계 상황, 효과 막내의 위치에서 막내의 역할만 하며 살아갈게 아니라면 리더십은 누구에게나 필요한 능력입니다. 예를 들면 우리가게 이름 걸고 나가는 거니까 다들 잘해야 하는 거 알지? 지금 여기 요리 경영 프로그램 출연을 앞둔 젊은 요리사들이 있습니다.
정확도 측면에서 whisper stt에 비해 부족하지만 문맥상 내용을 이해하기 어렵지않고 llm을 사용하여 충분히 보정할 수 있다고 판단되어 현재 상황에 적합한 방법인 것 같다.
서비스의 전체적인 로직을 생각할 때 llm 과정만 거치면 되기 때문에 속도도 한참 빠를 것이다.