import os from pydub import AudioSegment import speech_recognition as sr from fpdf import FPDF # 입력 및 임시 파일 경로 설정 audio_file_path = "54.m4a" # 첨부된 m4a 파일 경로 wav_file_path = "temp.wav" # 변환된 wav 파일을 위한 임시 경로 # 1. m4a 파일을 wav 파일로 변환 print("m4a 파일을 wav 파일로 변환 중...") audio = AudioSegment.from_file(audio_file_path, format="m4a") audio.export(wav_file_path, format="wav") print("변환 완료.") # 2. wav 파일의 음성을 텍스트로 변환 (Google Speech Recognition 사용) print("음성 인식 중...") recognizer = sr.Recognizer() with sr.AudioFile(wav_file_path) as source: audio_data = recognizer.record(source) try: # 한국어 인식을 위해 language="ko-KR" 사용 transcript = recognizer.recognize_google(audio_data, language="ko-KR") print("음성 인식 완료.") except sr.UnknownValueError: transcript = "음성을 인식할 수 없습니다." print("음성 인식 실패: 음성을 이해할 수 없음.") except sr.RequestError as e: transcript = f"음성 인식 서비스 요청 실패: {e}" print("음성 인식 실패:", e) # 3. 인식된 텍스트를 PDF 파일로 저장 (검색 가능한 텍스트 PDF) print("PDF 파일 생성 중...") pdf = FPDF() # 새 페이지 추가 pdf.add_page() # 유니코드(한글) 지원 TrueType 폰트 등록 # 현재 디렉토리에 "NotoSansCJKkr-Regular.ttf" 파일이 있어야 합니다. pdf.add_font("NotoSans", "", "NotoSansKR-VariableFont_wght.ttf", uni=True) pdf.set_font("NotoSans", size=12) # 텍스트를 여러 줄로 PDF에 기록 for line in transcript.split('\n'): pdf.multi_cell(0, 10, line) output_pdf_path = "output.pdf" pdf.output(output_pdf_path) print("PDF 파일이 생성되었습니다:", output_pdf_path) # 임시 wav 파일 삭제 os.remove(wav_file_path)