import os import json import re def annotate_fillerwords(session_id, base_dir="session_data"): session_dir = os.path.join(base_dir, session_id) json_file = os.path.join(session_dir, f"{session_id}_transcriptionCW.json") if not os.path.exists(json_file): print(f"[Error] File not found: {json_file}") return with open(json_file, "r", encoding="utf-8") as f: data = json.load(f) for segment in data.get("segments", []): words = segment.get("words", []) fillerwords = [] for w in words: word_content = w.get("word", "").strip() if re.fullmatch(r"\[.*?\]", word_content): fillerwords.append({ "start": w.get("start"), "end": w.get("end"), "content": word_content, "duration": round(w.get("end", 0) - w.get("start", 0), 3) }) segment["fillerwords"] = fillerwords with open(json_file, "w", encoding="utf-8") as f: json.dump(data, f, ensure_ascii=False, indent=4) print(f"Session {session_id} fillerword annotation done: {json_file}") return data if __name__ == "__main__": annotate_fillerwords("000003")