1. m4a -> wav로 변환
변환한 곳 : m4a파일_wav로_변환 (URL첨부했습니다.)
2. 필요한 라이브러리 import
import os
from pydub import AudioSegment
from pydub.playback import play
import speech_recognition as sr
3. 음성 -> 텍스트 변환코드
# 음성파일 경로
path = r"C:/Users/sou54/Desktop/"
filePath = "기말과제_wav.wav"
# 현재 작업 디렉토리를 ' C:/Users/sou54/Desktop/ '로 변경
os.chdir(path)
# 주어진 디렉토리의 모든 파일 및 폴더를 반환해서 audio_files에 저장
audio_files = os.listdir()
# path와 filePath를 조합하여 오디오 파일의 전체 경로를 만든다.
# os.path.join() 함수는 경로 및 파일 이름을 결합하여 전체 경로를 만들어준다.
harvard_audio_path = os.path.join(path, filePath)
# 음성 데이터를 처리하고 텍스트로 변환해준다.
recognizer = sr.Recognizer()
# 어떠한 에러도 발생하지 않았을 때
try:
# 'AudioFile'사용해서 음성파일 열기
with sr.AudioFile(harvard_audio_path) as source:
audio = recognizer.record(source) # 오디오 파일에서 음성을 추출한다.
# Google API를 통해 음성을 텍스트로 변환한다.(설정 언어는 한국어이다.)
text = recognizer.recognize_google(audio, language='ko-KR')
print(text)
# 텍스트를 text_change파일에 text형식으로 쓰기
with open('text_change.txt', 'w', encoding='utf-8') as f:
f.write(text)
# 음성인식을 안될때 알림
except sr.UnknownValueError:
print("음성을 인식할 수 없습니다.")
# google 클라우드 api에 접근하지 못할 때 알림
except sr.RequestError as e:
print(f"Google API에 접근할 수 없습니다. 오류: {e}")
# 그 외에 error가 발생했을 때 알림
except Exception as e:
print(f"오류 발생: {e}")
[output]
안녕하세요 저는 데이터과학부 3학년 21학번 장수진곰탕
따로 텍스트 파일로 저장했습니다.
녹음된건 '~진입니다.'인데 '곰탕'으로 나왔습니다. 위와같은 텍스트를 수정해보겠습니다.
* 음성파일 경로는 알 맞게 설정해주세요.
4. '곰탕' -> '입니다.'로 치환하는 함수
def replace_text(file_path,old_str,new_str):
# 파일 읽어오기
f = open(file_path,'r', encoding='utf-8')
lines = f.readlines()
f.close()
# old_str -> new_str 치환
fw = open(file_path, 'w', encoding='utf-8')
for line in lines:
fw.write(line.replace(old_str, new_str))
fw.close()
# old_str -> 바꿔야하는 것 // new_str -> 바꿀것
5. 파일 호출 및 변환
# 파일 경로 지정 및 변환
file_path = " C:/Users/sou54/Desktop/text_change.txt"
replace_text(file_path, "곰탕", "입니다.")
6. 치환확인
result_f = open(file_path, encoding='utf-8')
for line in result_f:
print(line)
result_f.close()
[output]
안녕하세요 저는 데이터과학부 3학년 21학번 장수진입니다.
사용된 음성파일1(m4a)
사용된 음성파일2(wav변환)