juuuding

Chapter 03 기초 프로그램 만들기 #2, 3 본문

Python/파이썬과 40개의 작품들

Chapter 03 기초 프로그램 만들기 #2, 3

jiuuu 2023. 1. 12. 12:09

 #2 컴퓨터의 외부 및 내부 IP 확인하기

* 사전 지식: IP는 주소를 나타낸다. 외부 IP는 xx시 xx동 xxx아파트이고, 내부 IP는 동, 호수라고 표현할 수 있다. 외부 IP는 KT, LG등 인터넷 망 공급자가 주소를 할당하여 주고, 내부 IP는 집의 공유기가 주소를 할당하여 준다.

 

#내부, 외부 IP 한번에 출력

import socket
import requests		#사이트 접속 위한 모듈
import re		#IP 주소 찾기 위한 정규식 사용을 위해 re모듈 사용

#소켓 연결
in_addr = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

#구글 접속, https 접속 포트 443
in_addr.connect(("www.google.co.kr",443))

print("내부 IP: ",in_addr.getsockname()[0])

#ipconfig 사이트 접속
req = requests.get("http://ipconfig.kr")

#정규식 표현 사용하여 IP 주소를 가져와서 out_addr 변수와 바인딩
out_addr= re.search(r'IP Address : (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})',req.text)[1]

print('외부 IP: ',out_addr)

 

 

 #3 텍스트를 음성으로 변환하기

 

1. 라이브러리 설치

 - pip install은 pip라는 패키지 관리 장소이다. pip install [설치하는 모듈이름]으로 설치 가능하다. gtts 라이브러리는 문자를 음성으로 변환해주는 라이브러리이다. playsound는 mp3 파일을 파이썬에서 재생하기 위한 라이브러리이다.

pip install gtts
pip install playsound == 1.2.2

 

2. 텍스트를 음성으로 변환하는 코드 만들기

 (1) 

# gtts 라이브러리로부터 gTTS를 불러온다. gtts 안의 gTTS 기능만 불러와 사용한다.
from gtts import gTTS

text = "안녕하세요. 파이썬과 40개의 작품들입니다"

# text 변수의 문자열을 한글로 변환하여 tts 변수에 바인딩한다
tts= gTTS(text=text, lang='ko')

# 3. 폴더에 hi.mp3 파일이름으로 저장한다. 파이썬에서 \\은 특별한 명령어 형태를 가질 수 있는데, r을 붙이면 역슬래쉬 자체로만 해석한다.
tts.save(r"3. Converting text to speech\hi.mp3")

 

(2) 음성변환으로 생성되는 .mp3 파일을 바로 파이썬에서 실행

from gtts import gTTS
from playsound import playsound
import os

# 경로를 현재 .py파일을 실행하는 경로로 이동. 
os.chdir(os.path.dirname(os.path.abspath(__file__)))

text="안녕하세요. 파이썬과 40개의 작품들입니다."
tts=gTTS(text=text, lang='ko')
tts.save("hi.mp3")

# hi.mp3 파일 재생
playsound("hi.mp3")

 

 

3. 파일에서 문자를 읽어 음성으로 출력하는 코드

from gtts import gTTS
from playsound import playsound
import os

os.chdir(os.path.dirname(os.path.abspath(__file__)))

file_path='myText.txt'

# f의 이름으로 파일 오픈. 'rt', encoding='UTF8' 형식으로 파일을 열어 한글이 깨지지 않게 함.
with open(file_path, 'rt', encoding='UTF8') as f :
    read_file=f.read()

tts=gTTS(text=read_file, lang='ko')

tts.save("myText.mp3")

playsound("myText.mp3")