Update app.py
Browse files
app.py
CHANGED
@@ -24,15 +24,23 @@ def encode_audio(audio_path):
|
|
24 |
tokens = tokens.cpu().numpy()
|
25 |
|
26 |
# Save to a temporary file
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
|
31 |
-
|
|
|
|
|
|
|
|
|
32 |
|
33 |
@spaces.GPU(duration=60)
|
34 |
def decode_tokens(token_path):
|
35 |
"""Decode tokens to audio"""
|
|
|
|
|
|
|
|
|
36 |
tokens = np.load(token_path)
|
37 |
# Convert to torch tensor if needed by the model
|
38 |
if hasattr(semanticodec, 'decode_requires_tensor') and semanticodec.decode_requires_tensor:
|
@@ -47,6 +55,10 @@ def decode_tokens(token_path):
|
|
47 |
sf.write(output_buffer, waveform[0, 0], 32000, format='WAV')
|
48 |
output_buffer.seek(0)
|
49 |
|
|
|
|
|
|
|
|
|
50 |
return output_buffer, f"Decoded {len(tokens)} tokens to audio"
|
51 |
|
52 |
@spaces.GPU(duration=80)
|
@@ -69,6 +81,10 @@ def process_both(audio_path):
|
|
69 |
sf.write(output_buffer, waveform[0, 0], 32000, format='WAV')
|
70 |
output_buffer.seek(0)
|
71 |
|
|
|
|
|
|
|
|
|
72 |
return output_buffer, f"Encoded to {len(tokens)} tokens\nDecoded {len(tokens)} tokens to audio"
|
73 |
|
74 |
# Create Gradio interface
|
|
|
24 |
tokens = tokens.cpu().numpy()
|
25 |
|
26 |
# Save to a temporary file
|
27 |
+
temp_file = tempfile.NamedTemporaryFile(suffix='.oterin', delete=False)
|
28 |
+
temp_file.close() # Close the file before writing to it
|
29 |
+
np.save(temp_file.name, tokens)
|
30 |
|
31 |
+
# Ensure the file exists and has content
|
32 |
+
if os.path.exists(temp_file.name) and os.path.getsize(temp_file.name) > 0:
|
33 |
+
return temp_file.name, f"Encoded to {len(tokens)} tokens"
|
34 |
+
else:
|
35 |
+
raise Exception("Failed to create token file")
|
36 |
|
37 |
@spaces.GPU(duration=60)
|
38 |
def decode_tokens(token_path):
|
39 |
"""Decode tokens to audio"""
|
40 |
+
# Ensure the file exists and has content
|
41 |
+
if not os.path.exists(token_path) or os.path.getsize(token_path) == 0:
|
42 |
+
return None, "Error: Empty or missing token file"
|
43 |
+
|
44 |
tokens = np.load(token_path)
|
45 |
# Convert to torch tensor if needed by the model
|
46 |
if hasattr(semanticodec, 'decode_requires_tensor') and semanticodec.decode_requires_tensor:
|
|
|
55 |
sf.write(output_buffer, waveform[0, 0], 32000, format='WAV')
|
56 |
output_buffer.seek(0)
|
57 |
|
58 |
+
# Verify the buffer has content
|
59 |
+
if output_buffer.getbuffer().nbytes == 0:
|
60 |
+
return None, "Error: Failed to generate audio"
|
61 |
+
|
62 |
return output_buffer, f"Decoded {len(tokens)} tokens to audio"
|
63 |
|
64 |
@spaces.GPU(duration=80)
|
|
|
81 |
sf.write(output_buffer, waveform[0, 0], 32000, format='WAV')
|
82 |
output_buffer.seek(0)
|
83 |
|
84 |
+
# Verify the buffer has content
|
85 |
+
if output_buffer.getbuffer().nbytes == 0:
|
86 |
+
return None, "Error: Failed to generate audio"
|
87 |
+
|
88 |
return output_buffer, f"Encoded to {len(tokens)} tokens\nDecoded {len(tokens)} tokens to audio"
|
89 |
|
90 |
# Create Gradio interface
|