Analyze audio
analyze_audioAnalyze an audio file. Modes:
transcript: Speech-to-text with word-level timestamps — returns
{language, full_text, words}where each word is{word, start_ms, end_ms, punctuated_word}. ⚠ MILLISECONDS here; get_clip'svoiceover_wordsgives the same words in SECONDS as{word, start, end}. Use for caption timing, script editing, or word-level visual sync. Works on narration and on sung lyrics: the provider is picked from the content, and if it returns nothing the other one is tried automatically. So an emptywordsmeans the audio genuinely has no intelligible speech, not that the wrong engine ran.silences: returns
{silences, total_silence_ms}, each span{start_ms, end_ms, peak_db}. Use for auto-trim, smart-split, or pause-aware editing.beats: returns
{tempo_bpm, beats_ms}— beats_ms is an array of MILLISECOND positions. Empty for non-music. Use to align animations/zooms to a beat.features: returns
{duration_ms, peak_db, rms_db, lufs, has_music, has_speech}— loudness plus two INDEPENDENT hints —has_music(beats hold a steady period) andhas_speech(there is audible content above a loudness floor; it is not a speech detector). Both can be true at once, e.g. narration over a music bed. Cheap dispatcher — call once to pick a mode, or for duration_ms to pass as add_audio's source_duration. When the words matter, trust transcript rather than these flags.
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'. |