반응형
구글 API에 올라와있는 샘플코드를 응용하여 만들었습니다.
Python 코드
from google.cloud import texttospeech
client = texttospeech.TextToSpeechClient()
voice_eng = texttospeech.types.VoiceSelectionParams(
language_code='en-US',
ssml_gender=texttospeech.enums.SsmlVoiceGender.NEUTRAL)
voice_kor = texttospeech.types.VoiceSelectionParams(
language_code='ko-KR',
ssml_gender=texttospeech.enums.SsmlVoiceGender.NEUTRAL)
audio_config = texttospeech.types.AudioConfig(
audio_encoding=texttospeech.enums.AudioEncoding.MP3)
-> 기본적으로 음성변화 기능을 불러오는 코드입니다.
def exchange_eng(input_text): # 영어를 음성으로 변형하기
synthesis_input = texttospeech.types.SynthesisInput(text=input_text)
response = client.synthesize_speech(synthesis_input, voice_eng, audio_config)
return response.audio_content
def exchange_kor(input_text): # 한국어를 음성으로 변형하기
synthesis_input = texttospeech.types.SynthesisInput(text=input_text)
response = client.synthesize_speech(synthesis_input, voice_kor, audio_config)
return response.audio_content
-> 텍스트를 음성으로 변형시키는 함수입니다.
def makeFile(textList, *adder):
if len(adder) == 0: adder = 'output'
else : adder = adder[0]
for i, text in enumerate(textList):
if type(text) == type(list()):
with open('/Users/youngQ/tts_output/'+str(adder)+str(i)+'_eng.mp3', 'wb') as out:
out.write(exchange_eng(text[0]))
with open('/Users/youngQ/tts_output/'+str(adder)+str(i)+'_kor.mp3', 'wb') as out:
out.write(exchange_kor(text[1]))
else:
with open('/Users/youngQ/tts_output/'+str(adder)+str(i)+'.mp3', 'wb') as out:
out.write(exchange_eng(text))
-> 음성으로 변환된 파일을 저장하는 코드입니다.
다음은 위의 코드를 실행하는 부분입니다.
: makeFile( 변환할 텍스트 리스트, 저장할 파일명 ) 입니다.
1) 단순 영어를 음성으로 변형시키는 경우
location = ['in front of a fountain', 'in a clothing store', 'at a construction site', 'at a plaza',
'in a parking lot', 'in a shopping district', 'at a crosswalk']
makeFile(location, 'location')
2) [영어 + 한국어] 텍스트를 음성으로 변형하는 경우
behavior = [['he is sitting arm in arm', '그는 팔짱을끼고 앉아있다.'], 'they are holding hands',
['he is holding up someting', '그는 무언가를 들고있다.'],
['they are smiling at each other', '그들을 서로를 보며 웃고있다.'],
['he is legs crossed', '그는 다리를 꼬고있다.'],
['A man is raising his hand', '한 남자가 손을 들고있다.'],
['he is taking a walk', '그는 산책을 하고있다.'],
['A man is crossing a street','한 남자가 길을 건너고있다.'],
['A man is working at a construction site','한 남자가 건설현장에서 작업하고있다.'],
['They are having a meeting at work', '그들은 직장에서 회의중이다.'],
['They are looking at something', '그들은 무언가를 보고있다.'],
]
makeFile(behavior, 'behavior')
실행결과
반응형
'프로그래밍 > Python 3 - 응용' 카테고리의 다른 글
[맥 아나콘다 에러] 아나콘다 경로 에러 (5) | 2019.11.22 |
---|---|
Conda 환경 셋팅 (0) | 2019.10.29 |
[Python] 구글 API로 문자 읽어주기 (1/2) (0) | 2019.05.29 |
[파이썬 함수] #1. startswith (0) | 2019.03.15 |