innocentpeter commited on
Commit
cd12bbb
·
verified ·
1 Parent(s): 6aff7fa

Update tts_engine.py

Browse files
Files changed (1) hide show
  1. tts_engine.py +7 -11
tts_engine.py CHANGED
@@ -1,13 +1,12 @@
1
  import os
2
  from TTS.api import TTS
3
 
4
- # Map our app languages → Coqui TTS codes
5
  LANG_MAP = {
6
  "english": "en",
7
- "yoruba": "en", # no native Yoruba model, fallback to English phonemes
8
- "hausa": "en", # same here, fallback
9
- "igbo": "en", # same here
10
- "pidgin": "en", # close enough to English
11
  "esan": "en",
12
  "tiv": "en",
13
  "calabar": "en",
@@ -22,7 +21,6 @@ class TTSEngine:
22
  self.tts = None
23
 
24
  if self.use_coqui:
25
- # Multilingual model (limited codes available)
26
  self.tts = TTS(
27
  "tts_models/multilingual/multi-dataset/your_tts",
28
  progress_bar=False,
@@ -30,19 +28,16 @@ class TTSEngine:
30
  )
31
 
32
  def speak(self, text, lang="english", voice_clone=False):
33
- """
34
- Returns path to generated audio file (for Gradio playback).
35
- """
36
  if not text:
37
  return None
38
 
39
  out_file = "output.wav"
40
 
41
  if self.use_coqui:
42
- # normalize language
43
  lang_code = LANG_MAP.get(lang.lower(), "en")
44
 
45
  if voice_clone and os.path.exists("my_voice.wav"):
 
46
  self.tts.tts_to_file(
47
  text=text,
48
  file_path=out_file,
@@ -50,13 +45,14 @@ class TTSEngine:
50
  language=lang_code
51
  )
52
  else:
 
53
  self.tts.tts_to_file(
54
  text=text,
55
  file_path=out_file,
 
56
  language=lang_code
57
  )
58
  else:
59
- # Lazy import to avoid HF crash
60
  import pyttsx3
61
  engine = pyttsx3.init()
62
  engine.save_to_file(text, out_file)
 
1
  import os
2
  from TTS.api import TTS
3
 
 
4
  LANG_MAP = {
5
  "english": "en",
6
+ "yoruba": "en",
7
+ "hausa": "en",
8
+ "igbo": "en",
9
+ "pidgin": "en",
10
  "esan": "en",
11
  "tiv": "en",
12
  "calabar": "en",
 
21
  self.tts = None
22
 
23
  if self.use_coqui:
 
24
  self.tts = TTS(
25
  "tts_models/multilingual/multi-dataset/your_tts",
26
  progress_bar=False,
 
28
  )
29
 
30
  def speak(self, text, lang="english", voice_clone=False):
 
 
 
31
  if not text:
32
  return None
33
 
34
  out_file = "output.wav"
35
 
36
  if self.use_coqui:
 
37
  lang_code = LANG_MAP.get(lang.lower(), "en")
38
 
39
  if voice_clone and os.path.exists("my_voice.wav"):
40
+ # clone your own voice
41
  self.tts.tts_to_file(
42
  text=text,
43
  file_path=out_file,
 
45
  language=lang_code
46
  )
47
  else:
48
+ # fallback to a neutral synthetic voice
49
  self.tts.tts_to_file(
50
  text=text,
51
  file_path=out_file,
52
+ speaker_wav=None, # Let model pick default embedding
53
  language=lang_code
54
  )
55
  else:
 
56
  import pyttsx3
57
  engine = pyttsx3.init()
58
  engine.save_to_file(text, out_file)