import gradio as gr from gtts import gTTS # Simple dictionary for demonstration purposes translation_dict = { "passed": "지나가버린", "beam": "빛줄기", "electronic": "전자의", "fascinate": "마음을 사로잡다, 매료하다", "comply": "따르다", "tradition": "전통", "guard": "지키다, 보호하다, 경비를 보다", "peak": "절정, 정점, 최고조, 꼭대기", "maintenance": "유지, 생활비, 지속", "harbor": "항구, 항만", "condition": "상태, 조건", "storm": "폭풍, 태풍", "edged": "날이 있는, 가장자리가 있는", "decide": "결정하다", "elderly": "연세가 드신, 나이가 든", "realize": "깨닫다, 알아차리다, 인식하다", "modern": "현대적인", "grave": "무덤, 묘", "generation": "세대", "cheaper": "더 싼, 더 저렴한", "technology": "기술", "fail": "실패하다", "proving": "검증하다, 입증하다", "require": "요구하다, 필요하다, 요청하다", "climb": "오르다, 등반하다", "stood": "stand의 과거 분사, 서다, 일어서다", "council": "의회", "position": "위치, 자리, 배치하다", "navigation": "항해, 운항", "operation": "작동, 가동, 조작", "happen": "(사건 등이) 일어나다", "lighthouse": "등대", "lantern": "손전등, 랜턴", "vast": "어마어마한, 방대한, 막대한", "relief": "안도, 안도감", "importance": "중요성", "grandson": "손자, 외손자", "fierce": "사나운, 격렬한, 극심한", "panic": "극심한 공포, 겁에 질려 어쩔 줄 모르다", "proposed": "제안된", "mariner": "선원, 뱃사람", "ensure": "반드시 ~하게 하다, 보장하다", "responsibly": "책임감 있게", "flickering": "깜박거리는, 꺼질 것 같은, 약한", "cliff": "절벽", "humble": "겸손한, 겸허하게 만들다", "severe": "극심한, 가혹한, 엄한", "efficiency": "효율, 효율화", "familiar": "익숙한", "guiding": "인도하는, 안내하는", "jagged": "삐쭉삐쭉한, 들쑥날쑥한", "decision": "결정, 결단력", "disastrous": "처참한, 형편없는", "heartbroken": "비통해 하는, 슬픔에 잠긴, 비탄에 젖은", "wisdom": "지혜", "solution": "해결책", "miraculously": "기적적으로", "rush": "급히 움직이다, 혼잡, 치밀어 오르다", "brewed": "몰아치다", "reinstated": "복직하다, 복귀하다", "enduring": "오래가는", "winding": "구불구불한", "unthinkable": "상상도 할 수 없는" } # Define the translation and text-to-speech function def translate_and_speak(word): korean_translation = translation_dict.get(word.lower(), "Translation not found") tts = gTTS(word, lang='en') # Set lang to 'en' for English pronunciation tts.save("translation.mp3") return korean_translation, "translation.mp3" # Create the Gradio interface with a dropdown interface = gr.Interface( fn=translate_and_speak, inputs=gr.Dropdown(choices=list(translation_dict.keys()), label="Select an English word"), outputs=[gr.Textbox(label="Korean Translation"), gr.Audio(label="Pronunciation")], title="English to Korean Translator", description="Select an English word to get its meaning in Korean and listen to the pronunciation." ) # Launch the interface interface.launch()