Update app.py
Browse files
app.py
CHANGED
@@ -49,9 +49,11 @@ def encode_audio(audio_file_path):
|
|
49 |
# Convert tokens to NumPy and save to .owie file
|
50 |
tokens_numpy = tokens.detach().cpu().numpy()
|
51 |
|
52 |
-
# Ensure tokens_numpy is
|
53 |
-
if tokens_numpy.ndim
|
54 |
-
|
|
|
|
|
55 |
|
56 |
# Create temporary .owie file
|
57 |
temp_fd, temp_file_path = tempfile.mkstemp(suffix=".owie")
|
@@ -67,10 +69,18 @@ def encode_audio(audio_file_path):
|
|
67 |
|
68 |
except Exception as e:
|
69 |
print(f"Encoding error: {e}")
|
70 |
-
return
|
71 |
|
72 |
finally:
|
73 |
cancel_encode = False # Reset cancel flag after encoding
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
|
75 |
@spaces.GPU(duration=250)
|
76 |
def decode_audio(encoded_file_path):
|
@@ -156,8 +166,13 @@ with gr.Blocks() as demo:
|
|
156 |
encode_button = gr.Button("Encode")
|
157 |
cancel_encode_button = gr.Button("Cancel")
|
158 |
encoded_output = gr.File(label="Encoded File (.owie)", type="filepath") # Using "filepath" mode
|
|
|
159 |
|
160 |
-
encode_button.click(
|
|
|
|
|
|
|
|
|
161 |
cancel_encode_button.click(lambda: globals().update(cancel_encode=True), outputs=None) # Set cancel_encode flag
|
162 |
|
163 |
with gr.Tab("Decode"):
|
@@ -178,4 +193,4 @@ with gr.Blocks() as demo:
|
|
178 |
stream_button.click(stream_decode_audio, inputs=input_encoded_stream, outputs=audio_output)
|
179 |
cancel_stream_button.click(lambda: globals().update(cancel_stream=True), outputs=None) # Set cancel_stream flag
|
180 |
|
181 |
-
demo.queue().launch()
|
|
|
49 |
# Convert tokens to NumPy and save to .owie file
|
50 |
tokens_numpy = tokens.detach().cpu().numpy()
|
51 |
|
52 |
+
# Ensure tokens_numpy is 2D
|
53 |
+
if tokens_numpy.ndim == 1:
|
54 |
+
tokens_numpy = tokens_numpy.reshape(1, -1)
|
55 |
+
elif tokens_numpy.ndim > 2:
|
56 |
+
raise ValueError("Tokens array must be 1D or 2D")
|
57 |
|
58 |
# Create temporary .owie file
|
59 |
temp_fd, temp_file_path = tempfile.mkstemp(suffix=".owie")
|
|
|
69 |
|
70 |
except Exception as e:
|
71 |
print(f"Encoding error: {e}")
|
72 |
+
return None # Return None instead of the error message
|
73 |
|
74 |
finally:
|
75 |
cancel_encode = False # Reset cancel flag after encoding
|
76 |
+
if 'temp_wav_file_path' in locals():
|
77 |
+
os.remove(temp_wav_file_path) # Clean up temporary WAV file
|
78 |
+
|
79 |
+
# Add this function to handle the output
|
80 |
+
def handle_encode_output(file_path):
|
81 |
+
if file_path is None:
|
82 |
+
return None, gr.Markdown("Encoding failed. Please check the input file and try again.", visible=True)
|
83 |
+
return file_path, gr.Markdown(visible=False)
|
84 |
|
85 |
@spaces.GPU(duration=250)
|
86 |
def decode_audio(encoded_file_path):
|
|
|
166 |
encode_button = gr.Button("Encode")
|
167 |
cancel_encode_button = gr.Button("Cancel")
|
168 |
encoded_output = gr.File(label="Encoded File (.owie)", type="filepath") # Using "filepath" mode
|
169 |
+
encode_error_message = gr.Markdown(visible=False)
|
170 |
|
171 |
+
encode_button.click(
|
172 |
+
lambda x: handle_encode_output(encode_audio(x)),
|
173 |
+
inputs=input_audio,
|
174 |
+
outputs=[encoded_output, encode_error_message]
|
175 |
+
)
|
176 |
cancel_encode_button.click(lambda: globals().update(cancel_encode=True), outputs=None) # Set cancel_encode flag
|
177 |
|
178 |
with gr.Tab("Decode"):
|
|
|
193 |
stream_button.click(stream_decode_audio, inputs=input_encoded_stream, outputs=audio_output)
|
194 |
cancel_stream_button.click(lambda: globals().update(cancel_stream=True), outputs=None) # Set cancel_stream flag
|
195 |
|
196 |
+
demo.queue().launch()
|