Audio
Generate speech and dialogue, design and change voices, dub, create sound effects, transcribe, and clean or trim audio with the Nodaro MCP audio tools.
The audio tools let an assistant make and change sound in Nodaro: speech and dialogue, new and changed voices, dubbing, sound effects, transcripts, and clean-up. Each tool except list_voices and the voice favorites tools starts a job and returns its id, and the result is saved to your library. Every audio tool needs the workflows:execute permission, except the voice favorites tools: list_voice_favorites needs assets:read and favorite_voice needs assets:write.
| Tool | What it does |
|---|---|
generate_speech | Text to speech with a voice |
generate_dialogue | A conversation between several voices, as one file |
list_voices | The premade voices |
list_voice_favorites | The voices the user starred |
favorite_voice | Stars a voice, or removes the star |
voice_design | A new voice from a description |
voice_remix | Speech in a voice you describe, without a voice id |
voice_changer | Changes the voice of a recording or a video |
voice_changer_pro | Changes several speakers' voices at once |
dubbing | Translates speech into another language, keeping the voices |
text_to_audio | Sound effects from a description |
transcribe | Speech to text, with word timings |
audio_isolation | Isolates the main voice or sound from a mix |
separate_audio | Splits audio into vocals and instrumental, or into stems |
apply_audio_fx | Reverbs and effects that place a voice in a space |
pitch_tempo | Shifts the pitch, or changes the tempo without changing the pitch |
trim_audio | Trims audio, or extracts it from a video |
mix_audio | Layers 2 to 20 tracks into one file, with a music bed that dips under the voice |
download_youtube_audio | The audio track of a YouTube video |
generate_speech
Turns text into speech with an ElevenLabs voice. It works like the Text to Speech node.
Permission: workflows:execute. Credits: the price of the model, below.
| Model | Maker | Modes | Credits | Details |
|---|---|---|---|---|
| ElevenLabs v4 | ElevenLabs | Text to speech | from 5 | Newest ElevenLabs TTS — [audio tags], stability and similarity control, up to 10,000 characters per request. Direct API. |
| ElevenLabs v4 Turbo | ElevenLabs | Text to speech | from 3 | Faster, cheaper ElevenLabs v4 at lower fidelity — [audio tags], stability and similarity control, at Turbo's credit price. Prefer v4 when quality matters. Direct API. |
| ElevenLabs v3 | ElevenLabs | Text to speech | from 5 | Expressive ElevenLabs TTS — supports [audio tags] for emotion / pacing. Direct API. |
| ElevenLabs Turbo v2.5 | ElevenLabs | Text to speech | from 3 | Fast, cheap ElevenLabs TTS via the direct ElevenLabs API. Good for narration. |
| ElevenLabs Multilingual v2 | ElevenLabs | Text to speech | from 5 | Multi-language ElevenLabs TTS via the direct ElevenLabs API. |
| Parameter | Type | Notes |
|---|---|---|
text | string | Required. What to say, up to 10,000 characters and at most the chosen model's limit: 5,000 on ElevenLabs v3. Longer text is refused, not cut. Split a longer script into several calls. |
voice_id | string | A premade voice name, or the id of a voice you cloned. Default Rachel. An unknown name fails. An unknown id falls back to Rachel, so the assistant still gets audio. With voice_type custom or library, an unknown id fails instead. |
voice_type | string | premade, custom or library. |
model | string | elevenlabs-v4 (default), elevenlabs-v4-turbo, elevenlabs-v3, elevenlabs-turbo or elevenlabs-multilingual. elevenlabs, the old id of elevenlabs-turbo, is also accepted. |
language_code | string | The language of the text. |
stability, similarity_boost, style | number | Delivery settings, from 0 to 1. |
speed | number | From 0.7 to 1.2. |
previous_text | string | The line spoken just before this one, as context for a continuous delivery across clips. It is not spoken. Up to 1,000 characters. ElevenLabs v3 ignores it. |
next_text | string | The line spoken just after this one, with the same rule as previous_text. |
output_format | string | The audio file: mp3_44100_128 (default), mp3_44100_192 for a higher MP3 bitrate, or wav_24000 for an uncompressed WAV. Every format costs the same credits. |
presetId | string | A delivery preset, such as Calm Narrator, Commercial Read or Audiobook, from list_node_presets. You still pass text. |
Choosing a model. ElevenLabs v4, the default, supports audio tags such as [laughs], [whispers] and [sighs] for emotion and pacing, and it is fully multilingual: use it for every language, including Hebrew, Arabic, Chinese, Japanese and Korean. It takes stability and similarity_boost, but not speed or style. ElevenLabs v3 is the previous model, with the same tags and stability only. ElevenLabs v4 Turbo is the faster v4, at Turbo's price. ElevenLabs Turbo is cheaper for plain narration. ElevenLabs Multilingual v2 is a legacy model; use it only for a voice known to work only on v2.
Choosing a voice. The premade voices are Rachel, Aria, Roger, Sarah, Laura, Charlie, George, Callum, River, Liam, Charlotte, Alice, Matilda, Will, Jessica, Eric, Chris, Brian, Daniel, Lily and Bill. For a warm female voice try Rachel, for a young female voice Aria or Lily, for a deep male voice Roger or Brian, for a neutral male voice George or Daniel, and for a British voice Charlie or Charlotte.
Returns: a job id. The card plays the audio when it is ready.
generate_dialogue
Voices a script of several speakers as one audio file, with natural turn-taking, on ElevenLabs Dialogue v3 or ElevenLabs Dialogue v4. Use it for conversations, interviews, podcast-style exchanges and scenes, instead of joining separate generate_speech clips. It works like the Text to Dialogue node.
Permission: workflows:execute. Credits: the price of ElevenLabs Dialogue v3 or ElevenLabs Dialogue v4, per started 100 characters of the script, with a minimum of 8 blocks.
| Parameter | Type | Notes |
|---|---|---|
model | string | elevenlabs-dialogue (Dialogue v3, the default) or elevenlabs-dialogue-v4. |
dialogue | array | Required. The lines in speaking order, 1 to 200, each { text, voice_id }. Reuse a voice for the same character. Lines can contain audio tags such as [laughs]. |
stability | number | On Dialogue v3: 0 (most varied), 0.5 (balanced) or 1 (most stable). On Dialogue v4: any value from 0 to 1. |
similarity_boost | number | Dialogue v4 only. How closely each line keeps the character of its voice, from 0 to 1. |
language_code | string | A language hint, such as en or he. Leave it out to detect the language. |
seed | integer | A fixed seed for a repeatable result. |
apply_text_normalization | string | Spells out numbers, dates and abbreviations: auto (default), on or off. |
The limits are 5,000 characters in total on Dialogue v3 and 10,000 on Dialogue v4, with 2,000 or fewer recommended for the best quality, and 10 different voices per call. Voices can be premade names and cloned voices in the same script.
Returns: a job id.
list_voices
Returns the premade voices, with their id, name, and any gender, accent and description details. generate_speech, voice_changer and voice_changer_pro need a voice id.
Permission: workflows:execute. Credits: free.
This tool has no parameters. It reads the catalog and starts no job.
list_voice_favorites
Returns the user's favorite voices, newest first. A favorite can be a premade voice, a Voice Library voice or one of the user's cloned voices. The user can star a voice from any client: an app, the SDK, the CLI or favorite_voice.
Permission: assets:read. Credits: free.
This tool has no parameters. It reads the list and starts no job.
Returns: JSON. Each voice carries its voiceId and voiceType, which you pass to generate_speech as voice_id and voice_type. It also carries the name and previewUrl it was starred with.
favorite_voice
Stars a voice for the user, with the name the favorites list shows it by. With favorite: false, it removes the star instead.
Permission: assets:write. Credits: free.
| Parameter | Type | Notes |
|---|---|---|
voice_id | string | Required. The voice's id: a premade or Voice Library voice_id, or the ElevenLabs voice id of a cloned voice. From 1 to 200 characters. |
voice_type | string | premade, library or custom, as generate_speech takes it for this voice. Required to star a voice, and not needed to remove a star. |
name | string | The voice's name, as the favorites list shows it. Required to star a voice. From 1 to 200 characters. |
preview_url | string | The voice's preview audio, as an https URL, up to 2,048 characters. "" clears a stored preview. |
favorite | boolean | false removes the star. Default true. |
Both actions are idempotent. Starring a voice that is already starred updates its name and preview. A user can star up to 500 voices. Past that limit, the star is refused with limit_reached.
voice_design
Designs a new voice from a description and returns a sample of it speaking your script. Use it to preview a voice before you save it. It works like the Voice Design node.
Permission: workflows:execute. Credits: 55.
| Parameter | Type | Notes |
|---|---|---|
voice_description | string | Required. The voice: gender, age, accent, tone and character, up to 1,000 characters. For example "warm female narrator with a soft British accent, low-pitched, calm pacing". |
text | string | Required. A sample script for the voice to speak, 100 to 1,000 characters. |
model | string | eleven_ttv_v3 (default, every language) or the legacy eleven_multilingual_ttv_v2. |
loudness, guidance_scale, quality, seed, should_enhance | Optional design settings. loudness is from -1 to 1, guidance_scale from 0 to 100. |
Returns: a job id. The result is an audio sample of the designed voice.
voice_remix
Speaks a text in a voice you describe in words, without a voice id. Use it for a one-off voice that you do not need to keep. It works like the Voice Remix node.
Permission: workflows:execute. Credits: 44.
| Parameter | Type | Notes |
|---|---|---|
text | string | Required. What to say, up to 5,000 characters. |
voice_description | string | Required. The voice, up to 1,000 characters, for example "a warm, mid-40s British woman with a calm news-anchor tone". |
Returns: a job id.
voice_changer
Replaces the voice in an audio track, or in a whole talking video, while keeping the delivery and the rhythm. It works like the Voice Changer node.
Permission: workflows:execute. Credits: 44.
| Parameter | Type | Notes |
|---|---|---|
voice_id | string | Required. The new voice: a premade name or the id of a voice you cloned. |
audio_url or audio_asset_id | string | An audio source. |
video_url or video_asset_id | string | A video source instead. The video wins when you pass both. |
remove_background_noise | boolean | true returns a clean voice only. false keeps the music and sound effects under the new voice. |
stability, similarity_boost, style | number | From 0 to 1. style exaggerates the original delivery; above 0 it is slower and can be less stable. |
Returns: a job id. For a video source, the card previews the new audio, and the new video lands in your library.
voice_changer_pro
Detects every speaker in a clip and gives each one a new voice, keeping the words and the timing. Speaker 1 gets the first voice in the list, speaker 2 the second, and so on, in the order they first speak. It works like the Voice Changer Pro node.
Permission: workflows:execute. Credits: as the Voice Changer Pro node. Nodaro Cloud only.
| Parameter | Type | Notes |
|---|---|---|
ordered_voices | array | Required. 1 to 8 entries, one per speaker. An entry is a voice id, an object with its own settings, or null to keep that speaker's own voice. At least one entry must not be null. |
audio_url, audio_asset_id, video_url or video_asset_id | string | The source: an audio track, or a video whose voices are changed. |
analysis | object | The output of an earlier voice_changer_pro_analyze job. The change then uses exactly the speaker list you mapped your voices to, instead of detecting the speakers again. |
preserve_background | boolean | Mixes the music and sound effects back under the new voices. Default true. |
music_volume_mode, music_volume | The level of the background: match (original), normalize or manual with a volume from 0 to 200. | |
voice_fx | object | A reverb or effect on the new voices, before the background returns: a preset such as room, hall, church, telephone or echo, with wetDryMix, delayMs and decay. |
separation_quality | string | fast (default) or best. |
remove_background_noise | boolean | Removes background noise first, for a clean voice-only result. |
output | string | video (default), a finished video, or stems, the separate tracks for your own mix with voice_changer_pro_export. |
model | string | A voice model override. |
A voice entry object takes voiceId and optional engine, stability, similarityBoost, style, useSpeakerBoost, seed, volumeMode and volume. The engine is sts (the default, which changes the voice of the original performance), v3 or v4. v3 and v4 re-speak the line from its transcript with ElevenLabs v3 or ElevenLabs v4, and accept audio tags. The v3 engine accepts a stability of 0, 0.5 or 1. The v4 engine accepts any stability from 0 to 1 and applies similarityBoost. Both read the transcript from the analysis; without an analysis, they use their own transcription.
Returns: a job id.
voice_changer_pro_analyze
Detects the speakers in a clip without changing them: the first step of the interactive flow. The job output holds the separated voice and background tracks, each speaker with its time segments, first appearance, word count and a text snippet, and the language. Check it to choose a voice for each speaker, and to spot "speakers" that are not people, such as applause.
Permission: workflows:execute. Nodaro Cloud only.
| Parameter | Type | Notes |
|---|---|---|
audio_url, audio_asset_id, video_url or video_asset_id | string | The source clip. |
separation_quality | string | fast (default) or best. |
suggest_title | boolean | Also suggests a title from the transcript, as suggestedTitle. |
Returns: a job id. Pass its output_data to voice_changer_pro as analysis.
voice_changer_pro_export
Renders a finished video from your own mix of tracks: the last step of the interactive flow, after voice_changer_pro with output: "stems". The video is copied without re-encoding.
Permission: workflows:execute. Nodaro Cloud only.
| Parameter | Type | Notes |
|---|---|---|
tracks | array | Required. 1 to 16 tracks, each with a url, a gain from 0 to 200 (100 is unchanged), muted, and a kind, voice (default) or background. At least one track must not be muted. |
video_url or video_asset_id | string | The source video. |
voice_fx | object | An effect applied to the voice tracks only. |
Returns: a job id.
dubbing
Translates speech into another language while keeping each speaker's voice and timing. A video source returns the dubbed video and its audio track. It works like the Dubbing node.
Permission: workflows:execute. Credits: priced per minute of the dubbed span.
| Parameter | Type | Notes |
|---|---|---|
target_language | string | Required. A language code, such as en, es, fr, de, ja, zh, ko or ar. |
audio_url, audio_asset_id, video_url, video_asset_id or source_url | string | Exactly one source. source_url is a public YouTube, TikTok or direct link that is fetched directly. |
source_language | string | A hint for the source language. It is detected when you leave it out. |
num_speakers | integer | The number of different voices, up to 20. 0 detects them. |
disable_voice_cloning | boolean | Uses a similar native voice instead of each speaker's own voice. |
drop_background_audio | boolean | Removes the background, for speech-only sources. |
start_time, end_time | number | Dubs only part of the source, in seconds. |
highest_resolution | boolean | Keeps the source resolution of a video. Slower. |
use_profanity_filter, target_accent, watermark | Optional. target_accent steers the voices toward an accent. |
A dub covers at most 30 minutes. Use start_time and end_time for part of a longer source.
Returns: a job id.
text_to_audio
Creates a sound effect from a description: foley, ambience, interface sounds. It is not for speech or music. It works like the Text to Audio node.
Permission: workflows:execute. Credits: the price of ElevenLabs Sound Effects, per second of duration, rounded up to a whole second. A call without a duration is billed as 5 seconds.
| Parameter | Type | Notes |
|---|---|---|
prompt | string | The sound, for example "thunderstorm with heavy rain", up to 2,000 characters. Required unless a preset supplies it. |
duration | number | From 0.5 to 30 seconds. By default the model decides. |
loop | boolean | Makes the sound loop seamlessly. |
prompt_influence | number | How closely the sound follows the prompt, from 0 to 1. |
presetId | string | A preset such as Rain Ambience, Whoosh Transition or Impact / Boom. |
Returns: a job id.
transcribe
Turns speech in an audio or video file into text. It runs on the ElevenLabs STT engine unless model names another. It works like the Transcribe node.
Permission: workflows:execute. Credits: the price of the engine, such as ElevenLabs STT. Nemotron 3.5 Transcribe is priced per started minute of the file.
| Parameter | Type | Notes |
|---|---|---|
audio_url or audio_asset_id | string | The source. The id can be an audio or a video job. |
model | string | The engine: elevenlabs-stt (default), incredibly-fast-whisper, whisper or nemotron-3-5-transcribe. |
language | string | A language code such as en. Detected when you leave it out. Nemotron always detects it. |
diarize | boolean | ElevenLabs STT only: labels each speaker. Default false. |
tag_audio_events | boolean | ElevenLabs STT only: marks sounds such as [laughter] or [music]. Default false. |
word_timestamps | boolean | Per-word timings. ElevenLabs STT returns them either way. Incredibly Fast Whisper and Nemotron return them only with true, and Nemotron adds a speaker to each word. Whisper never returns them. |
target_language | string | nemotron-3-5-transcribe only: translates the speech into this language, to or from English, such as en, ja or he. The translation is in text, with no word timings. Refused beside word_timestamps or on another engine. |
Returns: a job id. The transcript is in the job output. To caption a video with corrected text, map json.words into the captions of add_captions, one entry per word.
Nemotron 3.5 Transcribe takes a direct file link, up to 60 minutes and 200 MB.
audio_isolation
Removes background music and noise from a mix and returns the main voice, vocals or instrument as one clean track. It works like the Voice Extractor node.
Permission: workflows:execute. Credits: the price of ElevenLabs Voice Isolation, by length.
| Parameter | Type | Notes |
|---|---|---|
audio_url or audio_asset_id | string | The source. The id can be an audio or a video job. |
Returns: a job id.
separate_audio
Splits any audio into vocals and instrumental, or into full stems: drums, bass, guitar, piano and other. It runs Demucs, and it also works on commercially released recordings, which suno_separate_stems refuses. It works like the Audio Separation node.
Permission: workflows:execute. Credits: 33–88, by mode and quality.
| Parameter | Type | Notes |
|---|---|---|
audio_url or audio_asset_id | string | The source. audio_asset_id takes an audio job or an uploaded audio file, not a video. |
mode | string | vocal_instrumental (default) or stems. |
quality | string | auto (default), fast or best. |
Returns: a job id. Read each stem's URL, such as vocalUrl, instrumentalUrl or drumsUrl, with get_job.
apply_audio_fx
Applies a creative effect to a voice or a clip: a reverb that places a dry voice in a space, or a telephone, megaphone or echo effect. It works like the Audio FX node.
Permission: workflows:execute. Credits: 22.
| Parameter | Type | Notes |
|---|---|---|
audio_url or audio_asset_id | string | The source. The id can be an audio or a video job. |
preset | string | room (default), bathroom, car, hall, concert-hall, church, cave, arena, outdoor, telephone, megaphone, echo or custom. |
mix | number | How much reverb, from 0 to 100. |
Returns: a job id.
pitch_tempo
Shifts the pitch of a voice or a song by semitones, or changes its tempo without changing the pitch. It works like the Pitch & Tempo node.
Permission: workflows:execute. Credits: 22 per started minute of the input, up to 30 minutes.
| Parameter | Type | Notes |
|---|---|---|
audio_url, video_url or asset_id | string | Exactly one source. The id can be an audio or a video job, or an upload. A video keeps its picture. |
semitones | number | From -12 to 12. The default is 0. 12 is one octave up. |
tempo | number | From 0.5 to 2, with the pitch kept. The default is 1. Ignored for a video. |
preserve_formants | boolean | Keeps the voice's natural character. The default is true. Turn it off for a chipmunk or a giant voice. |
Returns: a job id.
trim_audio
Trims audio to a time window, or extracts the audio of a video and trims it. It works like the Trim Audio node.
Permission: workflows:execute. Credits: 11.
| Parameter | Type | Notes |
|---|---|---|
audio_url, audio_asset_id, video_url or video_asset_id | string | One source. A video source gives its audio track. |
start_time, end_time | number | The window in seconds. Leave both out to keep the whole track. |
audio_format | string | mp3 (default), wav or aac. |
Returns: a job id.
mix_audio
Layers 2 to 20 audio tracks into one file. With duck, a music bed dips under the voice while the voice speaks, and rises back in its pauses. It works like the Mix Audio node.
Permission: workflows:execute. Credits: 22, with or without ducking.
| Parameter | Type | Notes |
|---|---|---|
tracks | array | Required. 2 to 20 tracks, in mix order. Each is { audio_url } or { audio_asset_id }, with an optional volume from 0 to 200 percent. Default 100. An audio_asset_id can be a Nodaro audio or video job. |
duck | object | Ducks every other track under one key track. Leave it out for a plain mix. |
duck.under | integer | Required in duck. The position of the key track, usually the voice, in tracks, counted from 0. |
duck.amount | number | How far the other tracks dip, from 0 to 100. Default 75. |
duck.threshold_db | number | The level in dBFS the key track must pass to start the dip, from -60 to 0. Default -30. |
duck.ratio | number | A compressor ratio from 1 to 20. It overrides amount. |
duck.attack_ms, duck.release_ms | number | How fast the dip starts, from 1 to 2,000 ms (default 20), and how slowly the other tracks return, from 10 to 9,000 ms (default 500). |
end_at | string | Where the mix ends: longest (default) with its longest track, or voice when the duck.under track ends. voice needs duck. |
A ducked mix adds its tracks together instead of averaging them, so the voice keeps its level.
Returns: a job id. The mixed audio is the job's result.
download_youtube_audio
Extracts the audio track of a YouTube video.
Permission: workflows:execute.
| Parameter | Type | Notes |
|---|---|---|
youtube_url | string | Required. The YouTube video URL. |
A deployment can turn link imports off with imports.links: false. On such a deployment, this tool and every other tool that imports from a link answer 403 link_imports_disabled before a job is created.
Returns: a job id. The result is an audio file you can pass to other tools.
Frequently asked questions
Which voice does generate_speech use by default?
Rachel, on the ElevenLabs v4 model. Pass voice_id with a premade voice name such as Aria, Roger or Charlotte, or the id of a voice you cloned. list_voices returns the premade voices.
How do I make a conversation between two voices?
Use generate_dialogue with an ordered list of lines, each with its text and voice. It returns one audio file with natural turn-taking, which sounds better than joining separate speech clips.
Does ElevenLabs v4 speak languages other than English?
Yes. It is fully multilingual, including Hebrew, Arabic, Chinese, Japanese and Korean, so use it for every language. It also understands audio tags such as [laughs] and [whispers].
How do I get word timings for captions?
Call transcribe. On the default ElevenLabs STT engine, the word timings, in milliseconds, are always in the job's output_data.json.words, which is the shape add_captions accepts as captions.
Can I change several voices in one clip?
Yes, on Nodaro Cloud, with voice_changer_pro. It detects each speaker and gives each one the voice you list for it, in the order they first speak, while keeping the words and the timing.
Related
Text to Speech
Voice Changer Pro
Dubbing
Music
Audio models
Last updated on
Analysis and edit lists
Analyze a video scene by scene, find shots and silences, sync cameras, render edit decision lists, and cut podcasts into episodes, clips and trailers.
Music
Create songs and instrumentals with Suno and other music models, then extend, cover, mash up, edit, split and convert them with Nodaro's MCP music tools.