code: def __init__(
      self,
      paraphrase_source: tp.Union[str, Path],
      paraphrase_p: float = 0.0,
  ):
      self.paraphrase_p = paraphrase_p
      open_fn = (
          gzip.open
          if str(paraphrase_source).lower().endswith(".gz")
          else open
      )
      with open_fn(paraphrase_source, "rb") as f:  # type: ignore
          self.paraphrase_source = json.loads(f.read())
      logger.info(
          f"loaded paraphrasing source from: {paraphrase_source}"
      )
  
imports: from dataclasses import dataclass, field, fields, replace
  import gzip
  import json
  import logging
  from pathlib import Path
  import random
  import typing
  import torch
  from .info_audio_dataset import InfoAudioDataset, AudioInfo, get_keyword_list, get_keyword, get_string
  from ..modules.conditioners import ConditioningAttributes, JointEmbedCondition, WavCondition
  from ..utils.utils import warn_once
label_desc: Use image node_id 1 to create a new Paraphraser object  with example: obj = Paraphraser(paraphrase_source, paraphrase_p)