Python을 사용하여 비디오에서 텍스트 내보내기

오늘의 게시물에서는 비디오에서 텍스트를 내보내는 방법을 보여 드리겠습니다. 우리는 사용할 것입니다 SpeechRecognition : 이것은 Google Speech Recognition API를 사용하여 음성 인식을 수행하거나 수행하는 라이브러리입니다.
또한 moviepy 라이브러리를 사용할 것입니다. MoviePy는 자르기, 연결, 제목 삽입, 비디오 합성(일명 비선형 편집), 비디오 처리 및 사용자 정의 효과 생성과 같은 비디오 편집을 위한 Python 라이브러리입니다. MoviePy는 GIF를 포함하여 가장 일반적인 모든 오디오 및 비디오 형식을 읽고 쓸 수 있으며 Python 2.7+ 및 3(또는 v.1.0의 Python 3.4+만)을 사용하여 Windows/Mac/Linux에서 실행됩니다.
시작하자

import speech_recognition as sr
import moviepy.editor as me

video_file , output_audio_file , output_text_file를 지정해야 합니다.

VIDEO_FILE = "test.mp4"
OUTPUT_AUDIO_FILE = "converted.wav"
OUTPUT_TEXT_FILE = "recognized.txt"


개념은 다음과 같습니다. 스크립트는 mp4 filewav file로 변환하고 해당 파일에서 텍스트 파일을 출력합니다.
그렇게 하자 - 비디오에서 오디오 추출

video_clip.audio.write_audiofile(r"{}".format(OUTPUT_AUDIO_FILE))


다음으로 해야 할 일은 인식자를 정의하는 것입니다.

recognizer =  sr.Recognizer()


인식을 위해 오디오 파일을 가져와야 합니다.

audio_clip = sr.AudioFile("{}".format(OUTPUT_AUDIO_FILE))


이제 마법이 시작됩니다. 텍스트로 변환을 시작하겠습니다.

    with audio_clip as source:
        audio_file = recognizer.record(source)
    print("Please wait ...")

    result = recognizer.recognize_google(audio_file)


    with open(OUTPUT_TEXT_FILE, 'w') as file:
        file.write(result)
        print("Speech to text conversion successfull.")

except Exception as e:
    print("Attempt failed -- ", e)


이것은 전체 코드입니다:

import speech_recognition as sr
import moviepy.editor as me

VIDEO_FILE = "video.mp4"
OUTPUT_AUDIO_FILE = "converted.wav"
OUTPUT_TEXT_FILE = "recognized.txt"
try:
    video_clip = me.VideoFileClip(r"{}".format(VIDEO_FILE))
    video_clip.audio.write_audiofile(r"{}".format(OUTPUT_AUDIO_FILE))
    recognizer =  sr.Recognizer()
    audio_clip = sr.AudioFile("{}".format(OUTPUT_AUDIO_FILE))
    with audio_clip as source:
        audio_file = recognizer.record(source)
    print("Please wait ...")
    result = recognizer.recognize_google(audio_file)
    with open(OUTPUT_TEXT_FILE, 'w') as file:
        file.write(result)
        print("Speech to text conversion successfull.")
except Exception as e:
    print("Attempt failed -- ", e)


메모
더 긴 비디오의 경우 오디오 데이터를 청크로 분할할 수 있습니다.

이것은 테스트 목적으로 사용하는 비디오입니다: video .
동영상은 원래 Youtube에 업로드되었으며 여기에서 찾을 수 있습니다. .

모두 감사합니다.

좋은 웹페이지 즐겨찾기