Spaces:
Sleeping
Sleeping
import gradio as gr | |
import requests | |
import os | |
import tempfile | |
from scipy.io import wavfile | |
demo_keys = os.environ['DEMO_KEYS'] | |
tts_url = "https://translation-api.ghananlp.org/tts/v1/tts" | |
translation_url = "https://translation-api.ghananlp.org/v1/translate" | |
headers ={ | |
# Request headers | |
'Content-Type': 'application/json', | |
'Cache-Control': 'no-cache', | |
'Ocp-Apim-Subscription-Key': demo_keys | |
} | |
def synthesize(text, language): | |
data = { | |
"text": text, | |
"language": language | |
} | |
audio = requests.post(tts_url, headers=headers, json=data).content | |
# Write bytes to a temporary file | |
with tempfile.NamedTemporaryFile(delete=True) as temp_wav: | |
temp_wav.write(audio) | |
temp_wav.flush() | |
# Read the wav file | |
rate, audio_array = wavfile.read(temp_wav.name) | |
return (rate, audio_array) | |
def translate(text, source_language, target_language): | |
data = { | |
"in": text, | |
"lang": source_language + "-" + target_language | |
} | |
response = requests.post(translation_url, headers=headers, json=data).text | |
return response | |
gr.Interface( | |
fn=synthesize, | |
inputs=[ | |
gr.Text(label="Input Text"), | |
gr.Radio(label="Language", choices=[ | |
"tw", | |
], | |
value="tw"), | |
], | |
outputs=[ | |
gr.Audio(label="Generated Speech", type="numpy"), | |
], | |
title="ACity TTS Demo", | |
).launch() |