1. **필요한 도구 및 라이브러리 설치**
음성 인식을 위해 Python 환경이 필요합니다. 필요한 Python 패키지를 설치하려면 터미널에서 다음 명령어를 실행하세요:
```bash
pip install pydub speechrecognition
```
여기서 `pydub`는 오디오 파일 처리를, `speechrecognition` 패키지는 음성 인식을 담당합니다.
2. **오디오 파일 준비**
음성 인식은 오디오 파일을 입력으로 받습니다. 동영상 파일의 경우에는 오디오로 변환해야 합니다. `pydub` 라이브러리를 사용하여 mp4 파일을 mp3로 변환할 수 있습니다.
```python
from pydub import AudioSegment
# MP4 파일을 MP3로 변환
video = AudioSegment.from_file("example.mp4", "mp4")
video.export("converted.mp3", format="mp3")
```
3. **음성 인식 및 텍스트 추출**
`speechrecognition` 라이브러리를 사용하여 오디오 파일의 음성을 텍스트로 변환합니다. 여기서는 Google Web Speech API를 사용합니다.
```python
import speech_recognition as sr
# Recognizer 객체 생성
recognizer = sr.Recognizer()
# 오디오 파일 읽기
audio_file = sr.AudioFile("converted.mp3")
with audio_file as source:
audio = recognizer.record(source)
# 구글 웹 음성 API를 사용하여 음성 인식
text = recognizer.recognize_google(audio, language='ko-KR')
print(text)
```
4. **srt 파일 생성**
텍스트를 srt 형식으로 변환하여 저장합니다. srt 파일은 자막의 시작과 끝 시간을 지정해야 합니다. 여기서는 간단한 예제로 일정 간격으로 자막을 나누어 srt 파일로 저장하는 방법을 설명합니다.
```python
timestamps = [(0, 5), (5, 10), (10, 15)] # 각 자막의 시간 범위 (초 단위)
lines = text.split('. ') # 텍스트 분할
with open("output.srt", "w", encoding="utf-8") as srt_file:
for i, (start, end) in enumerate(timestamps):
start_time = f"{start//60}:{start%60},000"
end_time = f"{end//60}:{end%60},000"
srt_file.write(f"{i+1}\n{start_time} --> {end_time}\n{lines[i]}\n\n")
```
이와 같이 적절한 도구를 설치하고 단계를 밟으면 음성 인식을 통해 동영상이나 오디오 파일의 srt 자막 파일을 손쉽게 생성할 수 있습니다. 각각의 단계에서 오류가 발생할 수 있으므로, 오류 메시지를 잘 읽고 수정하는 것이 중요합니다.