diff --git a/extensions/elevenlabs_tts/script.py b/extensions/elevenlabs_tts/script.py index ae4fe019..24741837 100644 --- a/extensions/elevenlabs_tts/script.py +++ b/extensions/elevenlabs_tts/script.py @@ -15,13 +15,14 @@ params = { 'api_key': '12345', 'selected_voice': 'None', } + initial_voice = ['None'] wav_idx = 0 user = ElevenLabsUser(params['api_key']) user_info = None -"Check if the API is valid and refresh the UI accordingly." +# Check if the API is valid and refresh the UI accordingly. def check_valid_api(): global user, user_info, params @@ -38,7 +39,7 @@ def check_valid_api(): print('Got an API Key!') return gr.update(value='Connected') -"Once the API is verified, get the available voices and update the dropdown list" +# Once the API is verified, get the available voices and update the dropdown list def refresh_voices(): global user, user_info @@ -73,6 +74,7 @@ def output_modifier(string): """ This function is applied to the model outputs. """ + global params, wav_idx, user, user_info if params['activate'] == False: @@ -89,18 +91,17 @@ def output_modifier(string): if string == '': string = 'empty reply, try regenerating' - output_file = Path('extensions/elevenlabs_tts/outputs/{}.wav'.format(wav_idx)) + output_file = Path(f'extensions/elevenlabs_tts/outputs/{wav_idx:06d}.wav'.format(wav_idx)) voice = user.get_voices_by_name(params['selected_voice'])[0] audio_data = voice.generate_audio_bytes(string) - save_bytes_to_path("extensions/elevenlabs_tts/outputs/{}.wav".format(wav_idx), audio_data) - + save_bytes_to_path(Path(f'extensions/elevenlabs_tts/outputs/{wav_idx:06d}.wav'), audio_data) string = f'' wav_idx += 1 return string - def ui(): + # Gradio elements with gr.Row(): activate = gr.Checkbox(value=params['activate'], label='Activate TTS') @@ -109,10 +110,10 @@ def ui(): with gr.Row(): api_key = gr.Textbox(placeholder="Enter your API key.", label='API Key') connect = gr.Button(value='Connect') + # Event functions to update the parameters in the backend activate.change(lambda x: params.update({'activate': x}), activate, None) voice.change(lambda x: params.update({'selected_voice': x}), voice, None) api_key.change(lambda x: params.update({'api_key': x}), api_key, None) connect.click(check_valid_api, [], connection_status) connect.click(refresh_voices, [], voice) -