code: def add_silent_audio(
      video_path: str,
      output_path: Optional[str] = None,
      duration: Optional[float] = None,
  ) -> None:
      local_video_path = pathmgr.get_local_path(video_path)
      if local_video_path != video_path:
          assert (
              output_path is not None
          ), "If remote video_path is provided, an output_path must be provided"
          video_path = local_video_path
      output_path = output_path or video_path
  
      if has_audio_stream(video_path):
          if video_path != output_path:
              shutil.copy(video_path, output_path)
          return
  
      duration = duration or float(
          get_video_info(video_path)["duration"]
      )
      video = ffmpeg.input(video_path).video
      silent_audio_path = pathmgr.get_local_path(SILENT_AUDIO_PATH)
      audio = ffmpeg.input(
          silent_audio_path, stream_loop=math.ceil(duration)
      ).audio
      output = ffmpeg.output(
          video, audio, output_path, pix_fmt="yuv420p", t=duration
      )
      output.overwrite_output().run(cmd=FFMPEG_PATH)
  
imports: import math
  import os
  import shutil
  import tempfile
  from typing import Any, Dict, List, Optional
  import ffmpeg
  import numpy
  from augly.audio import utils
  from augly.utils import pathmgr, SILENT_AUDIO_PATH
  from augly.utils.ffmpeg import FFMPEG_PATH, FFPROBE_PATH
  from vidgear.gears import WriteGear
label_desc: Use image node_id 9 for calling a global function with example usage: add_silent_audio(video_path, output_path, duration) without return types