MCPcopy Create free account
hub / github.com/FunAudioLLM/Fun-ASR / main_hydra

Function main_hydra

tools/scp2jsonl.py:69–139  ·  view source on GitHub ↗
(cfg: DictConfig)

Source from the content-addressed store, hash-verified

67
68@hydra.main(config_name=None, version_base=None)
69def main_hydra(cfg: DictConfig):
70 def to_plain_list(cfg_item):
71 if isinstance(cfg_item, ListConfig):
72 return OmegaConf.to_container(cfg_item, resolve=True)
73 elif isinstance(cfg_item, DictConfig):
74 return {k: to_plain_list(v) for k, v in cfg_item.items()}
75 else:
76 return cfg_item
77 kwargs = to_plain_list(cfg)
78 scp_file = kwargs["scp_file"]
79 transcript_file = kwargs["transcript_file"]
80 max_workers = kwargs.get("max_workers", os.cpu_count())
81 jsonl_file = kwargs["jsonl_file"]
82
83 with open(scp_file, "r") as f1, open(transcript_file, "r") as f2:
84 scp_lines = f1.readlines()
85 transcript_lines = f2.readlines()
86
87 if len(scp_lines) != len(transcript_lines):
88 print(
89 f"Warning: Line count mismatch - scp: {len(scp_lines)}, transcript: {len(transcript_lines)}"
90 )
91
92 tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-0.6B")
93 processor = LineProcessor(tokenizer)
94
95 data_pairs = list(zip(scp_lines, transcript_lines))
96
97 processed_count = 0
98 failed_count = 0
99 error_messages = []
100
101 with tqdm(total=len(data_pairs), desc="Processing") as pbar:
102 with ThreadPoolExecutor(max_workers=max_workers) as executor:
103 with open(jsonl_file, "w") as f_out:
104 futures = {
105 executor.submit(processor.process_line, pair): i
106 for i, pair in enumerate(data_pairs)
107 }
108
109 for future in as_completed(futures):
110 result = future.result()
111
112 if result and "success" in result:
113 with processor.lock:
114 json.dump(result["success"], f_out, ensure_ascii=False)
115 f_out.write("\n")
116 processed_count += 1
117 elif result and "error" in result:
118 failed_count += 1
119 error_messages.append(result["error"])
120
121 pbar.update(1)
122 pbar.set_postfix(
123 {"processed": processed_count, "failed": failed_count}
124 )
125
126 print(f"\nProcessing completed:")

Callers 1

scp2jsonl.pyFile · 0.70

Calls 3

LineProcessorClass · 0.85
from_pretrainedMethod · 0.80
to_plain_listFunction · 0.70

Tested by

no test coverage detected