[ubuntu+python] 이미지 속 문자 인식한 것을 음성 파일로 변환해주기

프로그래밍/python|2020. 1. 22. 02:36| bskyvision 심교훈

지난 포스팅에서 예고해드린대로, 오늘은 OCR을 통해 인식한 텍스트를 음성 파일로 바꿔주는 작업을 해보겠습니다. 텍스트를 음성 파일로 바꿔주기 위해서(Text to speech), 저는 여러 사용 가능한 Text to speech 툴 중에서 gTTS라는 모듈을 사용하도록 하겠습니다. gTTS 모듈은 Google Text to Speech API를 사용하기 때문에, gTTS라는 이름이 붙었습니다. 

 

gTTS는 다음과 같은 명령어로 설치할 수 있습니다. 

sudo pip3 install gTTS

 

 

오늘은 다음과 같은 이미지의 텍스트를 인식해서 사람 목소리로 읽어준 것을 mp3 파일로 저장해보겠습니다. 

 

 

 

 

작성한 코드는 다음과 같습니다. 코드를 실행하기 전에 Pillow 패키지 내의 Image 클래스를 활용하기 위해서 Pillow도 설치해주셔야 합니다.

sudo pip3 install Pillow

 

자, 그럼 아래 코드를 작성 또는 복.붙.하시고 실행해보세요. 

from gtts import gTTS
from PIL import Image
import pytesseract

# OCR 실행해서 찾아낸 문자열을 OCR_text라는 변수에 대입
OCR_text = pytesseract.image_to_string(Image.open('bskyvision.jpg'), lang = 'Hangul') 

# OCR_text를 터미널에 출력
print(OCR_text)

# OCR_text를 speech로 변환해서 mp3 파일로 저장
tts = gTTS(text=OCR_text, lang='ko')
tts.save("bskyvision.mp3")

 

 

우선 터미널에 출력된 텍스트는 다음과 같습니다. 글씨가 엉망이라 그런지 몰라도 웃기게 인식했네요.ㅋㅋ

 

 

 

 

자 그럼 text to speech를 실행해서 mp3 파일로 저장한 것을 확인해보겠습니다. 

 

 

bskyvision.mp3
0.02MB

 

 

들어보시면 아시겠지만, 인식된 문자열을 남자 목소리로 잘 읽어주죠? ㅎㅎ

 

OCR과 text to speech를 잘 활용하면 재밌는 어플리케이션을 많이 만들어낼 수 있을 것 같습니다. 또한 시각 장애가 있는 분들께 조금이나마 도움이 될만한 것들을 만들어낼 수 있을 것도 같구요. 

 

항상 질문과 지적은 환영입니다. 빠르게 답변하도록 노력하고 있으니, 댓글 남겨주세요.^^ 

 

 

 

<참고자료>

[1] https://kamang-it.tistory.com/entry/PIL-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-%ED%95%98%EA%B8%B0image-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-%ED%95%98%EA%B8%B0, PIL 다운로드하기(image 라이브러리 다운로드 하기, pillow 라이브러리 다운로드 하기)

[2] http://pythonstudy.xyz/python/article/406-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%B2%98%EB%A6%AC-Pillow