Update app.py
Browse files
app.py
CHANGED
@@ -31,39 +31,26 @@ snac_model = None
|
|
31 |
def load_model():
|
32 |
global model, tokenizer, snac_model
|
33 |
try:
|
34 |
-
|
35 |
snac_model = SNAC.from_pretrained("hubertsiuzdak/snac_24khz")
|
36 |
snac_model = snac_model.to(device)
|
37 |
-
|
38 |
-
if snac_model is None:
|
39 |
-
raise ValueError("Failed to load SNAC model")
|
40 |
-
|
41 |
-
logger.info("Loading Orpheus model...")
|
42 |
-
model_name = "canopylabs/orpheus-3b-0.1-ft"
|
43 |
|
44 |
-
|
45 |
-
|
46 |
-
raise ValueError("HUGGINGFACE_TOKEN environment variable is not set")
|
47 |
-
|
48 |
-
login(token=hf_token)
|
49 |
|
50 |
snapshot_download(
|
51 |
repo_id=model_name,
|
52 |
-
use_auth_token=
|
53 |
allow_patterns=["config.json", "*.safetensors", "model.safetensors.index.json", "vocab.json", "merges.txt", "tokenizer.json"],
|
54 |
ignore_patterns=["optimizer.pt", "pytorch_model.bin", "training_args.bin", "scheduler.pt"]
|
55 |
)
|
56 |
|
57 |
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.bfloat16)
|
58 |
model.to(device)
|
59 |
-
|
60 |
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
61 |
-
|
62 |
-
raise ValueError("Failed to load tokenizer")
|
63 |
-
|
64 |
-
logger.info(f"Orpheus model and tokenizer loaded to {device}")
|
65 |
except Exception as e:
|
66 |
-
|
67 |
raise
|
68 |
|
69 |
@spaces.GPU()
|
@@ -167,6 +154,11 @@ def redistribute_codes(code_list, snac_model):
|
|
167 |
|
168 |
@spaces.GPU()
|
169 |
def generate_speech(text, voice, temperature, top_p, repetition_penalty, max_new_tokens):
|
|
|
|
|
|
|
|
|
|
|
170 |
if not text.strip():
|
171 |
return None
|
172 |
|
@@ -191,7 +183,7 @@ def generate_speech(text, voice, temperature, top_p, repetition_penalty, max_new
|
|
191 |
|
192 |
return (24000, audio_samples) # Return sample rate and audio
|
193 |
except Exception as e:
|
194 |
-
|
195 |
return None
|
196 |
|
197 |
@spaces.GPU()
|
|
|
31 |
def load_model():
|
32 |
global model, tokenizer, snac_model
|
33 |
try:
|
34 |
+
print("Loading SNAC model...")
|
35 |
snac_model = SNAC.from_pretrained("hubertsiuzdak/snac_24khz")
|
36 |
snac_model = snac_model.to(device)
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
|
38 |
+
print("Loading Orpheus model...")
|
39 |
+
model_name = "canopylabs/orpheus-3b-0.1-ft"
|
|
|
|
|
|
|
40 |
|
41 |
snapshot_download(
|
42 |
repo_id=model_name,
|
43 |
+
use_auth_token=os.environ.get("HUGGINGFACE_TOKEN"),
|
44 |
allow_patterns=["config.json", "*.safetensors", "model.safetensors.index.json", "vocab.json", "merges.txt", "tokenizer.json"],
|
45 |
ignore_patterns=["optimizer.pt", "pytorch_model.bin", "training_args.bin", "scheduler.pt"]
|
46 |
)
|
47 |
|
48 |
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.bfloat16)
|
49 |
model.to(device)
|
|
|
50 |
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
51 |
+
print(f"Orpheus model and tokenizer loaded to {device}")
|
|
|
|
|
|
|
52 |
except Exception as e:
|
53 |
+
print(f"Error loading model: {str(e)}")
|
54 |
raise
|
55 |
|
56 |
@spaces.GPU()
|
|
|
154 |
|
155 |
@spaces.GPU()
|
156 |
def generate_speech(text, voice, temperature, top_p, repetition_penalty, max_new_tokens):
|
157 |
+
global tokenizer
|
158 |
+
if tokenizer is None:
|
159 |
+
print("Tokenizer is not initialized. Please ensure the model is properly loaded.")
|
160 |
+
return None
|
161 |
+
|
162 |
if not text.strip():
|
163 |
return None
|
164 |
|
|
|
183 |
|
184 |
return (24000, audio_samples) # Return sample rate and audio
|
185 |
except Exception as e:
|
186 |
+
print(f"Error generating speech: {e}")
|
187 |
return None
|
188 |
|
189 |
@spaces.GPU()
|