본문 바로가기
인공지능(AI)

Open AI Whisper API 활용하여 유튜브에서 스크립트 추출하기

by 친절한에릭 2023. 3. 15.

이번에는 Open AI 의 Whisper API를 활용하여 좀더 실용적인 예제를 진행해 보겠습니다.

 

Whisper API의 기본 사용 예제는 이전 글을 참조해 주세요.

 

2023.03.02 - [인공지능] - Open AI Whisper API 찍먹해보기

 

Open AI Whisper API 찍먹해보기

https://openai.com/blog/introducing-chatgpt-and-whisper-apis Introducing ChatGPT and Whisper APIs Developers can now integrate ChatGPT and Whisper models into their apps and products through our API. openai.com 최근 Open AI 사에서 오픈한 Whisper AP

hackyourlife.tistory.com

 

Youbube video 추출을 위해 다음 라이브러리를 설치합니다.

 

pip install pytube
pip install moviepy

 

오디오 추출을 위해 extract_autio() 함수를 아래와 같이 구현합니다.

 

먼저, YouTube 비디오의 URL과 MP3 파일의 출력 경로를 인수로 받습니다. 그런 다음 pytube 라이브러리를 사용하여 비디오를 다운로드하고, only_audio=True를 설정하여 오디오 스트림만 필터링합니다. 스트림 중 첫 번째 오디오 스트림을 선택하고, 해당 스트림을 다운로드합니다.

다음, moviepy 라이브러리를 사용하여 다운로드한 오디오 파일을 MP3 파일로 변환합니다. 오디오 파일을 AudioFileClip 객체로 로드한 다음, write_audiofile() 메서드를 사용하여 MP3 파일로 저장합니다.

 

def extract_audio(url, output_file):
    # Download the YouTube video
    video = YouTube(url)
    audio_stream = video.streams.filter(only_audio=True).first()
    audio_stream.download(output_path='./')

    # Convert the audio file to MP3
    input_file = './' + audio_stream.default_filename
    audio_clip = AudioFileClip(input_file)
    audio_clip.write_audiofile(output_file)

    # Remove the original audio file
    os.remove(input_file)

 

앞서 구현해 놓은 extract_autio() 함수를 이용하여 youtube_to_script() 함수를 구현합니다.

먼저, OpenAI API key를 환경 변수로 설정하고, openai 모듈을 사용하여 API 클라이언트를 만듭니다.

그 다음, extract_audio 함수를 사용하여 YouTube 동영상에서 오디오를 추출합니다. 추출된 오디오 파일을 openai.Audio.transcribe 함수를 사용하여 자동으로 텍스트로 변환합니다. transcribe 함수의 첫 번째 인수는 whisper-1으로 설정했습니다.

이는 인간의 소리에 가장 가까운 음성 모델을 사용한다는 의미입니다.

마지막으로, 변환된 텍스트를 출력 파일로 쓰기 위해 output_file 매개 변수로 지정된 파일에 씁니다.

 

def youtube_to_script(url, output_file):
    # First, set your OpenAI API key as an environment variable
    os.environ["OPENAI_API_KEY"] = API_KEY

    # Create the OpenAI API client
    openai.api_key = os.environ["OPENAI_API_KEY"]

    # Extract the audio from the YouTube video
    extract_audio(url, 'audio.mp3')

    # Open the audio file
    file = open("audio.mp3", "rb")

    # Transcribe the audio file
    transcription = openai.Audio.transcribe("whisper-1", file)

    # Write the transcription to a file
    with open(output_file, "w") as file:
        file.write(transcription['text'])

 

이제 youtube_to_script() 함수를 사용하여 실제 유튜브 영상에서 스크립트를 추출해 보겠습니다.

다음과 같이 코드를 작성하고 실행해 봅니다.

제공한 유뷰트 링크의 영상에서  스크립트를 추출하고 script.txt 파일에 저장합니다.

기본적으로 the Whisper API 의 경우  25 MB 사이즈 이하의 오디오 파일만 지원합니다.

더 큰 사이즈의 오디오 파일을 지원하기 위해서는 추가 pydub 라는 third party 라이브러리를 이용해야합니다.

 

def main():
    url = input('Enter the URL of the YouTube video: ')
    youtube_to_script(url, 'script.txt')

    with open('script.txt', "r") as file:
        content = file.read()
        print(f"The extracted script is : {content}")

좀더 자세한 설명은 하기 링크를 참조하세요.

 

https://platform.openai.com/docs/guides/speech-to-text/supported-languages

 

OpenAI API

An API for accessing new AI models developed by OpenAI

platform.openai.com

 

github: https://github.com/stevelee0503/youtubetoscript

 

GitHub - stevelee0503/youtubetoscript: The new project

The new project. Contribute to stevelee0503/youtubetoscript development by creating an account on GitHub.

github.com

 

'인공지능(AI)' 카테고리의 다른 글

챗GPT 가입 방법  (0) 2023.03.24
트랜스포머란 무엇인가?  (0) 2023.03.20
OPEN AI ChatGPT4 공개  (0) 2023.03.15
다음 주 ChatGPT4 출시 소식  (0) 2023.03.12
머신러닝에서 파이프라인(Pipeline) 은 무엇일까?  (0) 2023.03.08

댓글