def METHOD_NAME(
        root: Path, n_speakers: int = 10, min_n_tokens: int = 5
) -> pd.DataFrame:
    df = load_df_from_tsv(root / "validated.tsv")
    df["n_tokens"] = [len(s.split()) for s in df["sentence"]]
    df = df[df["n_tokens"] >= min_n_tokens]
    df["n_frames"] = [
        torchaudio.info((root / "clips" / p).as_posix()).num_frames
        for p in tqdm(df["path"])
    ]
    df["id"] = [Path(p).stem for p in df["path"]]
    total_duration_ms = df.groupby("client_id")["n_frames"].agg(["sum"])
    total_duration_ms = total_duration_ms.sort_values("sum", ascending=False)
    top_n_total_duration_ms = total_duration_ms.head(n_speakers)
    top_n_client_ids = set(top_n_total_duration_ms.index.tolist())
    df_top_n = df[df["client_id"].isin(top_n_client_ids)]
    return df_top_n