Analyze audio
analyze_audioAnalyze an audio file. Modes:
transcript: Speech-to-text with word-level timestamps. Works on BOTH speech and sung lyrics — routes to a music-aware provider when content is detected as music. Use to get
words[{w,start_ms,end_ms}]for caption timing, script editing, or word-level visual sync. Note: features.has_speech may report false on pure music while transcript still successfully extracts lyrics.silences: list of silent regions with start/end/peak. Use for auto-trim, smart-split, or pause-aware editing.
beats: tempo (bpm) + beat positions for music tracks. Returns empty for non-music. Use to align animations/zooms to a beat.
features: duration, peak/rms/lufs loudness, speech-vs-music heuristic. Cheap dispatcher — call once to decide which other mode to use, or to get duration_ms for source_duration when calling add_audio.
Source: provide exactly one of mcp_upload_id (from upload tool) or file_url (already-public URL, e.g. a find(type='music') result or Clueso CDN file). Optional time range: range_start_ms / range_end_ms crops the analysis window.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Which analysis to run. | |
| file_url | No | Public http(s) URL to the audio. Use when the file is already accessible (e.g. find(type='music') result, Clueso CDN). Validated against private/loopback ranges. | |
| range_end_ms | No | End of analysis window in milliseconds. Default: whole file. | |
| mcp_upload_id | No | MCP upload ID from the upload_file tool. Use this OR file_url, not both. | |
| range_start_ms | No | Start of analysis window in milliseconds. Default 0 (beginning). | |
| silences_options | No | Options for mode='silences'. | |
| transcript_options | No | Options for mode='transcript'. |