docs: def load_books_of_speaker(corpus, path, speaker):
          """
          Load all utterances for the speaker at the given path.
          """
          utt_ids = []
  
          for book_path in MailabsReader.get_folders(path):
              meta_path = os.path.join(book_path, 'metadata.csv')
              wavs_path = os.path.join(book_path, 'wavs')
  
              meta = textfile.read_separated_lines(meta_path,
                                                   separator='|',
                                                   max_columns=3)
  
              for entry in meta:
                  file_basename = entry[0]
                  transcription_raw = entry[1]
                  transcription_clean = entry[2]
  
                  if speaker is None:
                      idx = file_basename
                      utt_speaker = issuers.Speaker(idx)
                      speaker_idx = idx
                      corpus.import_issuers(utt_speaker)
                  else:
                      idx = '{}-{}'.format(speaker.idx, file_basename)
                      speaker_idx = speaker.idx
  
                  wav_name = '{}.wav'.format(file_basename)
                  wav_path = os.path.join(wavs_path, wav_name)
  
                  if os.path.isfile(wav_path):
                      corpus.new_file(wav_path, idx)
  
                      ll_raw = annotations.LabelList.create_single(
                          transcription_raw,
                          idx=audiomate.corpus.LL_WORD_TRANSCRIPT_RAW
                      )
  
                      ll_clean = annotations.LabelList.create_single(
                          transcription_clean,
                          idx=audiomate.corpus.LL_WORD_TRANSCRIPT
                      )
  
                      utterance = corpus.new_utterance(idx, idx, speaker_idx)
                      utterance.set_label_list(ll_raw)
                      utterance.set_label_list(ll_clean)
  
                      utt_ids.append(utterance.idx)
  
          return utt_ids