import gradio as gr from gtts import gTTS from pydub import AudioSegment from io import BytesIO def bulgarian_tts(bulgarian_text): # gTTS를 이용해 불가리아어 텍스트를 음성으로 변환 tts = gTTS(text=bulgarian_text, lang="bg") # 메모리 버퍼에 mp3로 저장 후, pydub 오디오 세그먼트로 로딩 audio_buffer = BytesIO() tts.write_to_fp(audio_buffer) audio_buffer.seek(0) tts_audio = AudioSegment.from_file(audio_buffer, format="mp3") # mp3 파일로 내보내기 output_file = "bulgarian_output.mp3" tts_audio.export(output_file, format="mp3") return output_file with gr.Blocks() as demo: gr.Markdown("## Bulgarian Text-to-Speech (TTS)") # 단일 불가리아어 입력만 받도록 구성 bulgarian_input = gr.Textbox(label="Enter Bulgarian Text:", placeholder="Здравейте") output_audio = gr.Audio(label="Generated Speech", type="filepath") generate_button = gr.Button("Generate Speech") # 불가리아어 텍스트만 받아 TTS 오디오 파일 생성 generate_button.click( bulgarian_tts, inputs=bulgarian_input, outputs=output_audio ) if __name__ == "__main__": demo.launch()