{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/finevoice/main/json-schema/finevoice-post-v1-enhancer-process-pipeline-request-schema.json",
  "title": "PostV1EnhancerProcessPipelineRequest",
  "x-generated": "2026-10-22",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_ae-authored/finevoice-openapi-generated.yml#/components/schemas/PostV1EnhancerProcessPipelineRequest",
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Audio file URL (http/https)."
    },
    "step_speech_enhancement": {
      "type": "boolean",
      "description": "Enable Speech Enhancement step (noise reduction)."
    },
    "step_remove_mouth_sounds": {
      "type": "boolean",
      "description": "Enable Remove Mouth Sounds step."
    },
    "step_remove_long_silences": {
      "type": "boolean",
      "description": "Enable Remove Long Silences step."
    },
    "step_super_resolution": {
      "type": "boolean",
      "description": "Enable Super Resolution step (8 kHz to 48 kHz)."
    },
    "step_filler_words_remove": {
      "type": "boolean",
      "description": "Enable Filler Words Removal step."
    },
    "step_stuttering_remove": {
      "type": "boolean",
      "description": "Enable Stuttering Removal step."
    },
    "step_audio_normalization": {
      "type": "boolean",
      "description": "Enable Audio Normalization step."
    },
    "enhancement_model": {
      "type": "string",
      "description": "Speech enhancement model: `MossFormer2_SE_48K`, `FRCRN_SE_16K`, or `MossFormerGAN_SE_16K`."
    },
    "enhancement_use_vad": {
      "type": "boolean",
      "description": "Enable VAD preprocessing for speech enhancement."
    },
    "silence_threshold_db": {
      "type": "number",
      "description": "Silence detection threshold in dBFS."
    },
    "long_silence_ms": {
      "type": "integer",
      "description": "Silences longer than this value (ms) are trimmed."
    },
    "keep_silence_ms": {
      "type": "integer",
      "description": "Silence padding to preserve at boundaries (ms)."
    },
    "filler_use_whisper": {
      "type": "boolean",
      "description": "Use Whisper for filler word detection."
    },
    "filler_language": {
      "type": "string",
      "description": "Language code for filler word detection (e.g. `en`, `zh`)."
    },
    "filler_words_list": {
      "type": "string",
      "description": "Comma-separated filler words to remove. Empty = built-in defaults."
    },
    "stutter_min_similarity": {
      "type": "number",
      "description": "Minimum similarity for stutter detection."
    },
    "norm_method": {
      "type": "string",
      "description": "Normalization method: `peak`, `rms`, or `both`."
    },
    "norm_peak_db": {
      "type": "number",
      "description": "Target peak level in dBFS."
    },
    "norm_rms_db": {
      "type": "number",
      "description": "Target RMS level in dBFS."
    },
    "output_format": {
      "type": "string",
      "description": "Output format: `wav`, `mp3`, `flac`, or `m4a`."
    }
  }
}