Spaces:
Runtime error
Runtime error
File size: 1,800 Bytes
924f487 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import yaml
from translation import Translator
from tts_engine import TTSManager
from speech_input import SpeechInput
class VoiceTranslatorAssistant:
def __init__(self, config_file="config.yaml"):
with open(config_file, "r", encoding="utf-8") as f:
config = yaml.safe_load(f)
self.lang_a = config.get("default_language", "yoruba").lower()
self.lang_b = config.get("output_language", "english").lower()
self.n2n_enabled = config.get("features", {}).get("nigerian_to_nigerian_enabled", False)
self.translator = Translator(n2n_enabled=self.n2n_enabled)
self.tts = TTSManager(engine=config["speech"]["engine"], rate=config["speech"]["rate"], volume=config["speech"]["volume"])
self.speech = SpeechInput()
def run(self):
print(f"🌍 Two-Way Translator: {self.lang_a.upper()} ↔ {self.lang_b.upper()}")
while True:
# Speaker A
text_a = self.speech.listen(f"{self.lang_a.upper()} (Speaker A)")
if not text_a or text_a.lower() in ["quit", "exit", "stop"]:
break
trans_a = self.translator.translate(text_a, self.lang_a, self.lang_b)
print(f"👤 A said: {text_a}\n➡️ {trans_a}")
self.tts.speak(trans_a, lang=self.lang_b, speaker="B")
# Speaker B
text_b = self.speech.listen(f"{self.lang_b.upper()} (Speaker B)")
if not text_b or text_b.lower() in ["quit", "exit", "stop"]:
break
trans_b = self.translator.translate(text_b, self.lang_b, self.lang_a)
print(f"👤 B said: {text_b}\n➡️ {trans_b}")
self.tts.speak(trans_b, lang=self.lang_a, speaker="A")
print("👋 Session ended.")
|