Spaces:
Sleeping
Sleeping
stevenhillis
commited on
Commit
•
cb2b2ed
1
Parent(s):
1a5fb77
Configurable prompt seconds
Browse files
app.py
CHANGED
@@ -8,13 +8,13 @@ import numpy as np
|
|
8 |
|
9 |
base_url = "https://api.sandbox.deepgram.com/nlu"
|
10 |
token_str = os.environ['DG_TOKEN']
|
11 |
-
def tts_fn(text, prompt_audio,
|
12 |
texts = [text]
|
13 |
prompt_audio = np.reshape(prompt_audio[1], (1, 1, -1)).astype(np.float32, order='C') / 32768.0
|
14 |
response = requests.post(
|
15 |
f'{base_url}',
|
16 |
files=[('texts', ('texts', json.dumps(texts), 'application/json')), ('prompt_audio', ('prompt_audio', json.dumps(prompt_audio.tolist()), 'application/json'))],
|
17 |
-
params={'synthesize': 'true', 'pitch_steps': int(pitch_steps), 'soundstorm_steps': inference_steps, 'temperature': inference_temperature},
|
18 |
headers={
|
19 |
'Authorization': f'Token {token_str}'
|
20 |
},
|
@@ -37,16 +37,17 @@ with app:
|
|
37 |
pangram = "The beige hue on the waters of the loch impressed all, including the French queen, before she heard that symphony again, just as young Arthur wanted."
|
38 |
cherry = "Your request has been processed and the audio is ready for playback."
|
39 |
textbox = gr.TextArea(label="Text", placeholder="Type a sentence here", value=cherry)
|
40 |
-
prompt_audio = gr.Audio(label="Prompt Audio
|
41 |
examples = gr.Examples(label='Sample Speakers', examples=demo_files, inputs=prompt_audio)
|
42 |
# speed = gr.Slider(minimum=0.0, maximum=2.0, value=1.1, step=0.1, label="Speed")
|
43 |
-
pitch_steps = gr.Slider(minimum=-24, maximum=24, value=0, step=1, label="Pitch Steps: 12 to an octave")
|
44 |
# variability = gr.Slider(minimum=0.0, maximum=1.0, value=0.7, step=0.1, label="Variability")
|
45 |
inference_steps = gr.Slider(minimum=1, maximum=32, value=1, step=1, label="Inference Steps: quality vs latency tradeoff. Results are sometimes unstable for values >1.")
|
46 |
inference_temperature = gr.Slider(minimum=0.0, maximum=1.0, value=0.9, step=0.05, label="Temperature: fidelity vs variability tradeoff")
|
|
|
|
|
47 |
|
48 |
with gr.Column():
|
49 |
audio_output = gr.Audio(label="Output Audio", elem_id='tts-audio')
|
50 |
btn = gr.Button("Generate")
|
51 |
-
btn.click(tts_fn, inputs=[textbox, prompt_audio,
|
52 |
app.launch()
|
|
|
8 |
|
9 |
base_url = "https://api.sandbox.deepgram.com/nlu"
|
10 |
token_str = os.environ['DG_TOKEN']
|
11 |
+
def tts_fn(text, prompt_audio, prompt_seconds, inference_steps, inference_temperature, pitch_steps):
|
12 |
texts = [text]
|
13 |
prompt_audio = np.reshape(prompt_audio[1], (1, 1, -1)).astype(np.float32, order='C') / 32768.0
|
14 |
response = requests.post(
|
15 |
f'{base_url}',
|
16 |
files=[('texts', ('texts', json.dumps(texts), 'application/json')), ('prompt_audio', ('prompt_audio', json.dumps(prompt_audio.tolist()), 'application/json'))],
|
17 |
+
params={'synthesize': 'true', 'pitch_steps': int(pitch_steps), 'soundstorm_steps': inference_steps, 'temperature': inference_temperature, 'prompt_seconds': prompt_seconds},
|
18 |
headers={
|
19 |
'Authorization': f'Token {token_str}'
|
20 |
},
|
|
|
37 |
pangram = "The beige hue on the waters of the loch impressed all, including the French queen, before she heard that symphony again, just as young Arthur wanted."
|
38 |
cherry = "Your request has been processed and the audio is ready for playback."
|
39 |
textbox = gr.TextArea(label="Text", placeholder="Type a sentence here", value=cherry)
|
40 |
+
prompt_audio = gr.Audio(label="Prompt Audio", source='upload')
|
41 |
examples = gr.Examples(label='Sample Speakers', examples=demo_files, inputs=prompt_audio)
|
42 |
# speed = gr.Slider(minimum=0.0, maximum=2.0, value=1.1, step=0.1, label="Speed")
|
|
|
43 |
# variability = gr.Slider(minimum=0.0, maximum=1.0, value=0.7, step=0.1, label="Variability")
|
44 |
inference_steps = gr.Slider(minimum=1, maximum=32, value=1, step=1, label="Inference Steps: quality vs latency tradeoff. Results are sometimes unstable for values >1.")
|
45 |
inference_temperature = gr.Slider(minimum=0.0, maximum=1.0, value=0.9, step=0.05, label="Temperature: fidelity vs variability tradeoff")
|
46 |
+
prompt_seconds = gr.Slider(minimum=1.0, maximum=10.0, value=3.0, step=1.0, label="Use first N seconds of prompt audio")
|
47 |
+
pitch_steps = gr.Slider(minimum=-24, maximum=24, value=0, step=1, label="Pitch Steps: 12 to an octave")
|
48 |
|
49 |
with gr.Column():
|
50 |
audio_output = gr.Audio(label="Output Audio", elem_id='tts-audio')
|
51 |
btn = gr.Button("Generate")
|
52 |
+
btn.click(tts_fn, inputs=[textbox, prompt_audio, prompt_seconds, inference_steps, inference_temperature, pitch_steps], outputs=[audio_output])
|
53 |
app.launch()
|