|
import requests |
|
import gradio as gr |
|
import base64 |
|
|
|
speakers = [] |
|
with open('speakers.txt', 'r') as fp: |
|
for line in fp: |
|
speakers.append(line.strip()) |
|
|
|
def synthesize(key, sentence, speaker): |
|
headers = { |
|
'Authorization': 'Bearer {}'.format(key), |
|
'Content-Type': 'application/json', |
|
} |
|
|
|
json_data = { |
|
'text': sentence, |
|
'speaker': speaker, |
|
} |
|
|
|
response = requests.post('https://rjmopratfrdjgmfmaios.functions.supabase.co/rime-tts', headers=headers, json=json_data) |
|
audioContent = response.json()['audioContent'] |
|
decode_string = base64.b64decode(audioContent) |
|
with open('tmp.wav', 'wb') as fp: |
|
fp.write(decode_string) |
|
return 'tmp.wav' |
|
|
|
iface = gr.Interface(fn=synthesize, inputs=[gr.Textbox(type="password", info="This is where you put your Rime TTS API key."), |
|
gr.Textbox(info="Enter the text you want synthesized here. Check out our documentation for specifics and suggestions on text input!"), |
|
gr.Dropdown(list(speakers), info="Enter the code for the speaker you want to synthesize. (see docs/voices/)")], outputs=gr.Audio()) |
|
iface.launch() |