Spaces:
Runtime error
Runtime error
| import threading | |
| import argparse | |
| import subprocess | |
| from models.nllb import nllb | |
| from models.parakeet import parakeet_ctc_model | |
| from models.es_fastconformer import stt_es_model | |
| from models.TTS_utils import load_manual_xtts_v2 | |
| from stream_VAD import stream | |
| def main(xtts_path, xtts_config_path, language="en", record_temp="record_temp.json", record_per="record_per.json", record_path="audio_segments/", result_dir="results", segments_dir="audio_segments"): | |
| """ | |
| Main function to run the ASR stream and initiate the TTS stream production. | |
| Args: | |
| xtts_path (str): Path to the xtts model file. | |
| Example: "path/to/xtts_model.pt" | |
| xtts_config_path (str): Path to the xtts configuration file. | |
| Example: "path/to/xtts_config.json" | |
| language (str, optional): Language for the ASR model. Must be either 'en' for English or 'es' for Spanish. | |
| Default: 'en' | |
| Example: "en" | |
| record_temp (str, optional): Path to the temporary record JSON file. | |
| Default: "record_temp.json" | |
| Example: "path/to/record_temp.json" | |
| record_per (str, optional): Path to the periodic record JSON file. | |
| Default: "record_per.json" | |
| Example: "path/to/record_per.json" | |
| record_path (str, optional): Path to the directory where audio segments are recorded. | |
| Default: "audio_segments/" | |
| Example: "path/to/audio_segments/" | |
| result_dir (str, optional): Path to the directory where results are stored. | |
| Default: "results" | |
| Example: "path/to/results" | |
| segments_dir (str, optional): Path to the directory where audio segments are stored. | |
| Default: "audio_segments" | |
| Example: "path/to/audio_segments" | |
| """ | |
| model_nllb, tokinizer_nllb = nllb() | |
| if language == "en": | |
| asr = parakeet_ctc_model() | |
| stream_thread = threading.Thread(target=stream, args=(asr, model_nllb, tokinizer_nllb, "english", "spanish", record_temp, record_per, result_dir, segments_dir)) | |
| elif language == "es": | |
| asr = stt_es_model() | |
| stream_thread = threading.Thread(target=stream, args=(asr, model_nllb, tokinizer_nllb, "spanish", "english", record_temp, record_per, result_dir, segments_dir)) | |
| else: | |
| raise ValueError("Language not supported") | |
| # Start the stream thread | |
| stream_thread.start() | |
| # Call the other script to start stream_prod | |
| subprocess.Popen(['python', 'stream_prod_main.py', xtts_path, xtts_config_path, record_temp, record_path]) | |
| # Wait for the stream thread to complete | |
| stream_thread.join() | |
| if __name__ == "__main__": | |
| parser = argparse.ArgumentParser(description="Run stream and initiate stream_prod.") | |
| parser.add_argument("xtts_path", type=str, help="Path to the xtts model.") | |
| parser.add_argument("xtts_config_path", type=str, help="Path to the xtts config.") | |
| parser.add_argument("language", type=str, choices=["en", "es"], help="Language (en or es).") | |
| parser.add_argument("--record_temp", type=str, default="record_temp.json", help="Path to the record temp file.") | |
| parser.add_argument("--record_per", type=str, default="record_per.json", help="Path to the record per file.") | |
| parser.add_argument("--record_path", type=str, default="audio_segments/", help="Path to the record directory.") | |
| parser.add_argument("--result_dir", type=str, default="results", help="Path to the result directory.") | |
| parser.add_argument("--segments_dir", type=str, default="audio_segments", help="Path to the segments directory.") | |
| args = parser.parse_args() | |
| main(args.xtts_path, args.xtts_config_path, args.language, args.record_temp, args.record_per, args.record_path, args.result_dir, args.segments_dir) | |