Wromo's picture
Update app.py new preview with chosen language
1040619 verified
raw
history blame
2.08 kB
import gradio as gr
import os
import tempfile
from openai import OpenAI
def tts(text, model, voice, language, api_key):
if api_key == '':
raise gr.Error('Please enter your API Key')
else:
try:
client = OpenAI(api_key=api_key)
response = client.audio.speech.create(
model=model,
voice=voice,
language=language, # Parametrul adăugat pentru limbă
input=text,
)
with tempfile.NamedTemporaryFile(suffix=".mp3", delete=False) as temp_file:
temp_file.write(response.content)
temp_file_path = temp_file.name
return temp_file_path
except Exception as error:
print(str(error))
raise gr.Error("An error occurred while generating speech. Please check your API key and try again.")
with gr.Blocks() as demo:
gr.Markdown("# <center> Text-To-Speech API Key </center>")
with gr.Row(variant='panel'):
api_key = gr.Textbox(type='password', label='OpenAI API Key', placeholder='Enter your API key to access the TTS')
model = gr.Dropdown(choices=['tts-1', 'tts-1-hd'], label='Model', value='tts-1-hd')
voice = gr.Dropdown(choices=['alloy', 'ash', 'coral', 'echo', 'fable', 'onyx', 'nova', 'sage', 'shimmer'], label='Voice Options', value='echo')
language = gr.Dropdown(
choices=['en', 'fr', 'es', 'de', 'it', 'ro', 'tr', 'br', 'ru'],
label='Choose a language',
value='en'
)
text = gr.Textbox(label="Input text", placeholder="Enter your text and then click the 'Text-To-Speech' button or press Enter.")
btn = gr.Button("Text-To-Speech")
output_audio = gr.Audio(label="Speech Output")
text.submit(fn=tts, inputs=[text, model, voice, language, api_key], outputs=output_audio, api_name="tts_enter_key", concurrency_limit=None)
btn.click(fn=tts, inputs=[text, model, voice, language, api_key], outputs=output_audio, api_name="tts_button", concurrency_limit=None)
demo.launch()