import gradio as gr from transformers import AutoModelForCausalLM, AutoTokenizer from TTS.api import TTS # Coqui TTS 라이브러리 # 불가리아어 텍스트 생성 모델 로드 model_name = "mradermacher/SambaLingo-Bulgarian-Base-i1-GGUF" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) # 불가리아어 TTS 모델 로드 (Coqui TTS) tts = TTS(model_name="tts_models/bg/cv/vits", progress_bar=False) # 텍스트 생성 및 TTS 변환 함수 def generate_audio(input_text): # 텍스트 생성 inputs = tokenizer.encode(input_text, return_tensors="pt") outputs = model.generate(inputs, max_length=100, num_return_sequences=1) generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True) # TTS 변환 audio_path = "output.wav" tts.tts_to_file(text=generated_text, file_path=audio_path) return audio_path # Gradio 인터페이스 생성 interface = gr.Interface( fn=generate_audio, inputs=gr.Textbox(lines=5, label="불가리아어 텍스트 입력"), outputs=gr.Audio(label="생성된 음성"), title="불가리아어 텍스트 생성 및 음성 변환", description="불가리아어 텍스트를 입력하면 모델이 텍스트를 생성하고 이를 음성으로 변환합니다." ) # 웹 앱 실행 interface.launch()