code: def get_file_fingerprints(
      file_name: str, limit: int, print_output: bool = False
  ):
      channels, fs, file_hash = decoder.read(file_name, limit)
      fingerprints = set()
      channel_amount = len(channels)
      for channeln, channel in enumerate(channels, start=1):
          if print_output:
              print(
                  f"Fingerprinting channel {channeln}/{channel_amount} for {file_name}"
              )
  
          hashes = fingerprint(channel, Fs=fs)
  
          if print_output:
              print(
                  f"Finished channel {channeln}/{channel_amount} for {file_name}"
              )
  
          fingerprints |= set(hashes)
  
      return fingerprints, file_hash
  
imports: import multiprocessing
  import os
  import sys
  import traceback
  from itertools import groupby
  from time import time
  from typing import Dict, List, Tuple
  import dejavu.logic.decoder
  from dejavu.base_classes.base_database import get_database
  from dejavu.config.settings import DEFAULT_FS, DEFAULT_OVERLAP_RATIO, DEFAULT_WINDOW_SIZE, FIELD_FILE_SHA1, FIELD_TOTAL_HASHES, FINGERPRINTED_CONFIDENCE, FINGERPRINTED_HASHES, HASHES_MATCHED, INPUT_CONFIDENCE, INPUT_HASHES, OFFSET, OFFSET_SECS, SONG_ID, SONG_NAME, TOPN
  from dejavu.logic.fingerprint import fingerprint
label_desc: Use image node_id 12 for calling the Dejavu obj's underlying member method code with example usage: obj.get_file_fingerprints(file_name, limit, print_output) and returns: fingerprints,  file_hash