PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2024/05/06 13:33:15
Name 삭제됨
Subject [삭제예정] 파이썬으로 구글 tts 사용 시 에러 (간단, 파일입출력 관련)
작성자가 본문을 삭제한 글입니다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
24/05/06 13:45
수정 아이콘
안녕하세요! 말씀하신 문제는 파일을 덮어쓰는 과정에서 발생하는 "Permission denied" 에러로, 이미 열려 있는 파일을 다른 프로세스에서 수정하려 할 때 나타나는 문제입니다. 몇 가지 해결 방법을 제시해 드릴게요.

1. 명시적인 파일 닫기:
playsound 라이브러리가 파일을 자동으로 닫아주지 않을 수 있습니다. playsound.playsound() 함수 호출 후에 명시적으로 파일을 닫는 코드를 추가해 보세요.

Python
from gtts import gTTS
import playsound

def play_text(text, lang):
tts = gTTS(text=text, lang=lang, slow=False)
tts.save("voice.mp3")
playsound.playsound("voice.mp3")

# 파일 명시적으로 닫기
import os
os.close(os.open("voice.mp3", os.O_RDONLY)) # 파일 열고 파일 디스크립터 얻기

# 사용 예시
play_text("안녕하세요! 반갑습니다!", 'ko')
play_text("hello! nice to meet you!", 'en')
Use code with caution.
play_circleeditcontent_copy

2. 컨텍스트 관리자 활용 (with open):

with open 구문을 사용하면 파일을 자동으로 닫아주는 장점이 있습니다. 다만, gTTS.save() 메서드는 파일 경로를 직접 받지 않고 내부적으로 파일을 처리하기 때문에, with open과 직접적으로 사용하기 어려울 수 있습니다. 다음과 같이 임시 파일을 활용하는 방식으로 해결할 수 있습니다.

Python
from gtts import gTTS
import playsound
import tempfile

def play_text(text, lang):
with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as temp_file:
tts = gTTS(text=text, lang=lang, slow=False)
tts.save(temp_file.name)
playsound.playsound(temp_file.name)

# 사용 예시
play_text("안녕하세요! 반갑습니다!", 'ko')
play_text("hello! nice to meet you!", 'en')
Use code with caution.
play_circleeditcontent_copy
3. 다른 라이브러리 활용:

playsound 대신 pygame.mixer와 같은 다른 라이브러리를 사용하는 것도 방법입니다. pygame.mixer는 파일을 자동으로 닫아주는 기능이 있어, 파일 관련 문제를 피할 수 있습니다.

Python
from gtts import gTTS
import pygame

def play_text(text, lang):
tts = gTTS(text=text, lang=lang, slow=False)
tts.save("voice.mp3")

pygame.mixer.init()
pygame.mixer.music.load("voice.mp3")
pygame.mixer.music.play()
while pygame.mixer.music.get_busy(): # 음악 재생이 끝날 때까지 대기
pygame.time.Clock().tick(10)

# 사용 예시
play_text("안녕하세요! 반갑습니다!", 'ko')
play_text("hello! nice to meet you!", 'en')
Use code with caution.
play_circleeditcontent_copy
주의 사항:

pygame 라이브러리를 사용하려면 pip install pygame 명령으로 설치해야 합니다.
위 예시 코드에서는 음악 재생이 끝날 때까지 대기하는 로직이 포함되어 있습니다. 필요에 따라 수정하여 사용하세요.
위 방법들을 시도해 보시고, 궁금한 점이 있다면 언제든지 다시 질문해주세요!


제미나이에게 본문 내용을 복사했더니 위와 같이 답변하네요. 이중 2번을 써보니 잘 됩니다.
뻥치시네
24/05/06 14:35
수정 아이콘
와 2번 써보니까 잘되네요. 직접 돌려도 봐주시고 정말 감사해요.
생성AI도 여러개 돌려야 하나 싶네요.
chatGPT에 제 질문글을 통으로 넣고 다시 돌려 보니, 한번은 위 2번과 같은 수준으로 정확하게 알려주는데,
한 번 외 다수 번은 계속 헛소리를 하네요.
생성AI 교차 검증 필수!
감사합니다!
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
176356 [질문] 미국 이민 관련해서 질문 올립니다. [6] 페라리5306 24/05/23 5306
176355 [질문] 엔비디아는 경쟁사가 없나요?? [11] 수지짜응7106 24/05/23 7106
176354 [질문] 요즘 한강에서 치맥 가능한가요? [7] 벤자민비올레이6201 24/05/23 6201
176353 [질문] 전세 보증금 반환 전 이사(+보증금 반환 관련 문의 글 후기) [7] 6140 24/05/23 6140
176352 [질문] 마른 사람 헬스하는데 아침 칼로리 얼마가 적절한가요 [4] 앗흥6256 24/05/23 6256
176351 [질문] 아버지께 돈을 빌려드렸는데 월이자는 얼마가 적당한가요? [10] 회전목마6659 24/05/22 6659
176350 [질문] 영어고수님들 문장 번역 질문입니다 [4] 도널드 트럼프5815 24/05/22 5815
176348 [질문] 클라우드 서비스하는 기업들은 용량을 어떻게 감당하나요? [6] WhiteBerry6407 24/05/22 6407
176347 [질문] 케이크 문의드려요(아버지 고희연) [3] 좌절금지4650 24/05/22 4650
176346 [질문] 퇴직연금 가입을 입사 1년 3개월차에 했습니다. [3] monkeyD6001 24/05/22 6001
176345 [질문] 게임을 하면 우울 무기력증에서 좀 벗어날수 있나요? [24] 내우편함안에6691 24/05/22 6691
176344 [질문] 전세 재계약 관련 문의 [2] About time4979 24/05/22 4979
176343 [질문] 공돌이의 진로 선택에 대한 고민이 있는데 가볍게 들어주실 분 있을까요? [6] 김유라6292 24/05/22 6292
176342 [질문] 드래곤 에이지 인퀴지션 싱글 플레이 질문드립니다 [2] 공놀이가뭐라고5464 24/05/22 5464
176341 [질문] 깔창 끼고 점프하면? [8] 만원의행복5857 24/05/22 5857
176340 [질문] 1년 중고차 탈때 제일 감가상각 없는 차 추천요청 [14] 6153 24/05/22 6153
176339 [질문] 아이폰 입문용 꼬다리 케이블 일체형 OTG 케이블 젠더 추천받습니다. [1] Pika485260 24/05/22 5260
176337 [삭제예정] [대학원 질문] 학술대회, 학술 논문지 질문 [8] 싸구려신사4688 24/05/22 4688
176336 [질문] 전남 해남쪽 숙소 문의드립니다. [2] 쉬군5227 24/05/22 5227
176335 [질문] 50대 남자 테니스 초보 라켓 추천 부탁드립니다. [27] 고우 고우6310 24/05/22 6310
176334 [질문] 국제학회 세션이 터질 상황인데 어떻게할까요? [13] 다크템플러5330 24/05/22 5330
176333 [질문] 신혼집 위치 추천부탁드립니다 [22] 노암6424 24/05/22 6424
176332 [질문] 트리플 모니터용 본체 추천 부탁드려도 될까요? [10] Red Key5498 24/05/22 5498
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기