<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def utterances_from_dir(eaf_dir: Path, """ Returns the utterances found in ELAN files in a directory. Recursively explores the directory, gathering ELAN files and extracting utterances from them for tiers that start with the specified prefixes. Args: eaf_dir: A path to the directory to be searched tier_prefixes: Stings matching the start of ELAN tier names that are to be extracted. For example, if you want to extract from tiers "xv-Jane" and "xv-Mark", then tier_prefixes = ["xv"] would do the job. Returns: A list of Utterance objects. """


    logger.info(
        "EAF from directory: {}, searching with tier_prefixes {}".format(
            eaf_dir, tier_prefixes))

    utterances = []
    for eaf_path in eaf_dir.glob("**/*.eaf"):
        eaf_utterances = utterances_from_eaf(eaf_path, tier_prefixes)
        utterances.extend(eaf_utterances)
    return utterances