diff --git a/webui.py b/webui.py
index 1b30ecc..15e6dbb 100755
--- a/webui.py
+++ b/webui.py
@@ -436,8 +436,9 @@ def check_for_updates():
     return False
 
 def reload_tts():
+    global tts
     del tts
-    tts = setup_tortoise()
+    tts = setup_tortoise(restart=True)
 
 def cancel_generate():
     tortoise.api.STOP_SIGNAL = True
@@ -535,11 +536,12 @@ def setup_args():
     
     return args
 
-def setup_tortoise():
+def setup_tortoise(restart=False):
     global args
+    global tts
     global voicefixer
 
-    if args.voice_fixer:
+    if args.voice_fixer and not restart:
         try:
             from voicefixer import VoiceFixer
             print("Initializating voice-fixer")
@@ -555,6 +557,7 @@ def setup_tortoise():
 
 def setup_gradio():
     global args
+    
     if not args.share:
         def noop(function, return_value=None):
             def wrapped(*args, **kwargs):
@@ -863,13 +866,17 @@ def setup_gradio():
                     progress
                 )
             except Exception as e:
-                raise gr.Error(e)
+                message = str(e)
+                if message == "Kill signal detected":
+                    reload_tts()
+
+                raise gr.Error(message)
             
 
             return (
                 outputs[0],
                 gr.update(value=sample, visible=sample is not None),
-                gr.update(choices=outputs, visible=len(outputs) > 1, interactive=True),
+                gr.update(choices=outputs, value=outputs[0], visible=len(outputs) > 1, interactive=True),
                 gr.update(visible=len(outputs) > 1),
                 gr.update(value=stats, visible=True),
             )