code: def sample_paraphrase(self, audio_path: str, description: str):
      if random.random() >= self.paraphrase_p:
          return description
      info_path = Path(audio_path).with_suffix(".json")
      if info_path not in self.paraphrase_source:
          warn_once(logger, f"{info_path} not in paraphrase source!")
          return description
      new_desc = random.choice(self.paraphrase_source[info_path])
      logger.debug(f"{description} -> {new_desc}")
      return new_desc
  
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 2 for calling the Paraphraser obj's underlying member method code with example usage: obj.sample_paraphrase(audio_path, description) and returns: new_desc, description, description