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