docs: def init_cmu(filehandle=None):
      """Initialize the module's pronunciation data.
  
      This function is called automatically the first time you attempt to use
      another function in the library that requires loading the pronunciation
      data from disk. You can call this function manually to control when and
      how the pronunciation data is loaded (e.g., you're using this module in
      a web application and want to load the data asynchronously).
  
      :param filehandle: a filehandle with CMUdict-formatted data
      :returns: None
      """
      global pronunciations, lookup, rhyme_lookup
      if pronunciations is None:
          if filehandle is None:
              filehandle = cmudict.dict_stream()
          pronunciations = parse_cmu(filehandle)
          filehandle.close()
          lookup = collections.defaultdict(list)
          for word, phones in pronunciations:
              lookup[word].append(phones)
          rhyme_lookup = collections.defaultdict(list)
          for word, phones in pronunciations:
              rp = rhyming_part(phones)
              if rp is not None:
                  rhyme_lookup[rp].append(word)