Spaces:
Running
Running
File size: 2,125 Bytes
aa95dd5 bc18a34 a2087de a160271 a2087de bc18a34 699ea5d 02665d5 7d0efdb bc18a34 699ea5d 02665d5 bc18a34 2796462 2d9d2d5 a9616a3 2d9d2d5 a2087de 2796462 a2087de 2796462 bc18a34 a2087de |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
import gradio as gr
import requests
def generate_audio(text, voice_name):
MAX_CHARS = 100
# μ
λ ₯λ ν
μ€νΈ κΈΈμ΄ κ²μ¦
if len(text) > MAX_CHARS:
text = text[:MAX_CHARS] # μ΅λ κΈμμλ‘ ν
μ€νΈ μλ₯΄κΈ°
voices = {
"μ°¨μΉμ": "SKwm0HLYsVDCM2ruvw2p",
"κΉμ μ": "YPWL3nQPzBN1XaiZF4aj",
"κΆμ": "4kFrgJPCTjA6DyPM5Gr5"
}
voice_id = voices[voice_name]
url = f"https://api.elevenlabs.io/v1/text-to-speech/{voice_id}"
model_id = "eleven_multilingual_v2"
payload = {
"model_id": model_id,
"text": text,
"voice_settings": {
"similarity_boost": 0.75,
"stability": 0.5,
"style": 0,
"use_speaker_boost": True
}
}
headers = {
"Content-Type": "application/json",
"xi-api-key": "c5fb99a2b25402f104d246379bcf819a"
}
response = requests.post(url, json=payload, headers=headers, stream=True)
if response.status_code == 200:
chunks = []
for chunk in response.iter_content(chunk_size=CHUNK_SIZE):
chunks.append(chunk)
return b''.join(chunks)
else:
raise Exception(f"μ€λ₯ λ°μ. μν μ½λ: {response.status_code}")
CHUNK_SIZE = 1024
# Gradio μΈν°νμ΄μ€ μ μ
with gr.Blocks() as demo:
gr.Markdown(""λ°λΌ 보μ΄μ€: AI μμ± λ³΅μ , μμ± Playground" ")
gr.Markdown("AIκ° λ³΅μ ν μ λͺ
μΈμ μμ±μΌλ‘, ν
μ€νΈλ§ μ
λ ₯νλ©΄ μμ°μ€λ½κ² ν΄λΉ μΈλ¬Όμ μμ±μΌλ‘ μμ±ν©λλ€.")
text_input = gr.Textbox(label="μμ±μΌλ‘ μμ±ν ν
μ€νΈλ₯Ό μ
λ ₯νμΈμ.(100κΈμ μ΄λ΄ μ ν μ€μ λμ΄, μ΄κ³Όμ μμ± μμ±μ΄ μ νλ©λλ€.)")
voice_choice = gr.Dropdown(choices=["μ°¨μΉμ", "κΉμ μ", "κΆμ"], label="μμ± μ ν")
submit_button = gr.Button("μμ±")
audio_output = gr.Audio(label="μμ±λ μ€λμ€")
submit_button.click(
fn=generate_audio,
inputs=[text_input, voice_choice],
outputs=audio_output
)
if __name__ == "__main__":
demo.launch()
|