Spaces:
Build error
Build error
Commit ·
5f82d8a
1
Parent(s): 171115d
Shape fix
Browse files
app.py
CHANGED
|
@@ -3,6 +3,7 @@ from audioseal import AudioSeal
|
|
| 3 |
import gradio as gr
|
| 4 |
import soundfile as sf
|
| 5 |
import librosa
|
|
|
|
| 6 |
|
| 7 |
from pyharp.core import ModelCard, build_endpoint
|
| 8 |
from pyharp.media.audio import save_audio
|
|
@@ -19,24 +20,28 @@ model_card = ModelCard(
|
|
| 19 |
print("Initializing AudioSeal model...")
|
| 20 |
generator = AudioSeal.load_generator("audioseal_wm_16bits")
|
| 21 |
detector = AudioSeal.load_detector("audioseal_detector_16bits")
|
|
|
|
|
|
|
| 22 |
|
| 23 |
def load_audio(audio_path):
|
| 24 |
try:
|
| 25 |
wav, sr = librosa.load(audio_path, sr=16000, mono=True)
|
| 26 |
-
return wav
|
| 27 |
|
| 28 |
except Exception as e:
|
| 29 |
print(f"Audio preprocessing failed: {e}")
|
| 30 |
raise ValueError(f"Failed to load audio: {str(e)}")
|
| 31 |
|
| 32 |
def process_fn(inp_audio, option_text):
|
| 33 |
-
wav = load_audio(inp_audio)
|
| 34 |
sr = 16000
|
| 35 |
if option_text == "Generate Watermark":
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
|
|
|
|
|
|
| 40 |
else:
|
| 41 |
result, message = detector.detect_watermark(wav, sr)
|
| 42 |
|
|
|
|
| 3 |
import gradio as gr
|
| 4 |
import soundfile as sf
|
| 5 |
import librosa
|
| 6 |
+
import torch
|
| 7 |
|
| 8 |
from pyharp.core import ModelCard, build_endpoint
|
| 9 |
from pyharp.media.audio import save_audio
|
|
|
|
| 20 |
print("Initializing AudioSeal model...")
|
| 21 |
generator = AudioSeal.load_generator("audioseal_wm_16bits")
|
| 22 |
detector = AudioSeal.load_detector("audioseal_detector_16bits")
|
| 23 |
+
generator.eval()
|
| 24 |
+
detector.eval()
|
| 25 |
|
| 26 |
def load_audio(audio_path):
|
| 27 |
try:
|
| 28 |
wav, sr = librosa.load(audio_path, sr=16000, mono=True)
|
| 29 |
+
return wav[None, None, :]
|
| 30 |
|
| 31 |
except Exception as e:
|
| 32 |
print(f"Audio preprocessing failed: {e}")
|
| 33 |
raise ValueError(f"Failed to load audio: {str(e)}")
|
| 34 |
|
| 35 |
def process_fn(inp_audio, option_text):
|
| 36 |
+
wav = torch.from_numpy(load_audio(inp_audio))
|
| 37 |
sr = 16000
|
| 38 |
if option_text == "Generate Watermark":
|
| 39 |
+
with torch.no_grad():
|
| 40 |
+
watermark = generator.get_watermark(wav, sr)
|
| 41 |
+
output_audio = watermark + wav
|
| 42 |
+
output_audio = output_audio.detach().cpu().numpy()[0]
|
| 43 |
+
sig = AudioSignal(output_audio.astype("float32"), sample_rate=sr)
|
| 44 |
+
return save_audio(sig)
|
| 45 |
else:
|
| 46 |
result, message = detector.detect_watermark(wav, sr)
|
| 47 |
|