unijoh commited on
Commit
0083046
1 Parent(s): 514fc2c

Update tts.py

Browse files
Files changed (1) hide show
  1. tts.py +13 -3
tts.py CHANGED
@@ -16,9 +16,15 @@ try:
16
  logging.info("Model and processor loaded successfully.")
17
  except Exception as e:
18
  logging.error(f"Error loading model or processor: {e}")
 
19
 
20
  def synthesize_speech(text):
21
  try:
 
 
 
 
 
22
  inputs = processor(text, return_tensors="pt")
23
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
24
  model.to(device)
@@ -26,14 +32,18 @@ def synthesize_speech(text):
26
 
27
  with torch.no_grad():
28
  speech = model.generate(**inputs)
29
-
30
  logging.info("Speech generated successfully.")
31
 
32
  # Decode the generated speech and save to an audio file
33
  waveform = speech.cpu().numpy().flatten()
 
 
 
34
  # Convert waveform to audio format that Gradio can handle
35
- sf.write("output.wav", waveform, 16000)
36
- return "output.wav"
 
37
  except Exception as e:
38
  logging.error(f"Error during speech synthesis: {e}")
39
  return None
 
16
  logging.info("Model and processor loaded successfully.")
17
  except Exception as e:
18
  logging.error(f"Error loading model or processor: {e}")
19
+ raise
20
 
21
  def synthesize_speech(text):
22
  try:
23
+ # Ensure text is not empty
24
+ if not text.strip():
25
+ logging.error("Text input is empty.")
26
+ return None
27
+
28
  inputs = processor(text, return_tensors="pt")
29
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
30
  model.to(device)
 
32
 
33
  with torch.no_grad():
34
  speech = model.generate(**inputs)
35
+
36
  logging.info("Speech generated successfully.")
37
 
38
  # Decode the generated speech and save to an audio file
39
  waveform = speech.cpu().numpy().flatten()
40
+ # Normalize waveform to the range [-1, 1]
41
+ waveform = np.clip(waveform, -1.0, 1.0)
42
+
43
  # Convert waveform to audio format that Gradio can handle
44
+ audio_path = "output.wav"
45
+ sf.write(audio_path, waveform, 16000)
46
+ return audio_path
47
  except Exception as e:
48
  logging.error(f"Error during speech synthesis: {e}")
49
  return None