@nodaro/sdk 1.3.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.cjs +185 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +395 -1
- package/dist/index.d.ts +395 -1
- package/dist/index.js +184 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -3387,10 +3387,16 @@ declare class VoicesResource {
|
|
|
3387
3387
|
voiceId: string;
|
|
3388
3388
|
audioUrl?: string;
|
|
3389
3389
|
videoUrl?: string;
|
|
3390
|
+
/** Speech-to-speech model id. Defaults to the server-configured default when omitted. */
|
|
3391
|
+
model?: string;
|
|
3390
3392
|
stability?: number;
|
|
3391
3393
|
similarityBoost?: number;
|
|
3392
3394
|
/** Style exaggeration (0–1). Default 0; >0 amplifies delivery at the cost of latency/stability. */
|
|
3393
3395
|
style?: number;
|
|
3396
|
+
/** ElevenLabs speaker boost — sharpens fidelity to the target speaker (small latency cost). */
|
|
3397
|
+
useSpeakerBoost?: boolean;
|
|
3398
|
+
/** Deterministic speech-to-speech seed (integer 0–4294967295) for reproducible output. Omit for random. */
|
|
3399
|
+
seed?: number;
|
|
3394
3400
|
removeBackgroundNoise?: boolean;
|
|
3395
3401
|
}): Promise<{
|
|
3396
3402
|
jobId: string;
|
|
@@ -3432,6 +3438,82 @@ declare class VoicesResource {
|
|
|
3432
3438
|
recast(input: VoiceChangerProInput): Promise<{
|
|
3433
3439
|
jobId: string;
|
|
3434
3440
|
}>;
|
|
3441
|
+
/**
|
|
3442
|
+
* Detect the speakers in a clip WITHOUT recasting yet
|
|
3443
|
+
* (`POST /v1/voice-changer-pro/analyze`) — the first step of the interactive
|
|
3444
|
+
* flow. Separates voice from music once and diarizes the vocals, returning the
|
|
3445
|
+
* speaker list so a user (or agent) can choose a voice per speaker before
|
|
3446
|
+
* committing to a paid recast. Poll `jobs.get(jobId)`: the completed job's
|
|
3447
|
+
* `output_data` carries the separated stem urls + the detected `speakers`
|
|
3448
|
+
* (each with `id`, time `segments`, `firstStartSec`, `wordCount`, `snippet`)
|
|
3449
|
+
* and the detected language — reshape it into a {@link VcpAnalysis} and pass it
|
|
3450
|
+
* as `recast({ ..., analysis })` to skip re-detection. With `suggestTitle`,
|
|
3451
|
+
* `output_data.suggestedTitle` also carries an LLM-proposed title.
|
|
3452
|
+
*
|
|
3453
|
+
* Cloud-only; costs credits and runs async.
|
|
3454
|
+
*/
|
|
3455
|
+
analyze(input: VcpAnalyzeInput): Promise<{
|
|
3456
|
+
jobId: string;
|
|
3457
|
+
}>;
|
|
3458
|
+
/**
|
|
3459
|
+
* Render a final video from a mixed set of stems
|
|
3460
|
+
* (`POST /v1/voice-changer-pro/export`) — the last step of the interactive
|
|
3461
|
+
* flow. After `recast({ output: "stems" })` hands back the dry per-track stems
|
|
3462
|
+
* and the user has set levels / mutes / an effect in your editor, pass those
|
|
3463
|
+
* `tracks` (plus the source `videoUrl`) here to mix and remux into the finished
|
|
3464
|
+
* video. The video is stream-copied (never re-encoded), so the export is
|
|
3465
|
+
* bit-identical to your preview. At least one track must be un-muted (all-muted
|
|
3466
|
+
* is a 400); `voiceFx` is applied to the voice tracks at render time.
|
|
3467
|
+
*
|
|
3468
|
+
* Cloud-only; costs credits and runs async — poll `jobs.get(jobId)` for the
|
|
3469
|
+
* result (`output_data.videoUrl`).
|
|
3470
|
+
*/
|
|
3471
|
+
exportMix(input: VcpExportInput): Promise<{
|
|
3472
|
+
jobId: string;
|
|
3473
|
+
}>;
|
|
3474
|
+
/**
|
|
3475
|
+
* Design a brand-new synthetic voice from a text description
|
|
3476
|
+
* (`POST /v1/voice-design`) — ElevenLabs text-to-voice. `text` (100–1000 chars)
|
|
3477
|
+
* is a preview line spoken in the designed voice; `voiceDescription` describes
|
|
3478
|
+
* the voice to create. Costs credits and runs async — poll `jobs.get(jobId)`
|
|
3479
|
+
* for the preview + the reusable voice id.
|
|
3480
|
+
*/
|
|
3481
|
+
design(input: VoiceDesignInput): Promise<{
|
|
3482
|
+
jobId: string;
|
|
3483
|
+
}>;
|
|
3484
|
+
/**
|
|
3485
|
+
* Generate speech in a voice described in natural language, without cloning
|
|
3486
|
+
* (`POST /v1/voice-remix`). `text` (1–5000 chars) is spoken in a voice matching
|
|
3487
|
+
* `voiceDescription`. Costs credits and runs async — poll `jobs.get(jobId)`.
|
|
3488
|
+
*/
|
|
3489
|
+
remix(input: VoiceRemixInput): Promise<{
|
|
3490
|
+
jobId: string;
|
|
3491
|
+
}>;
|
|
3492
|
+
/**
|
|
3493
|
+
* Dub an audio clip into another language while preserving each speaker's voice
|
|
3494
|
+
* (`POST /v1/dubbing`). `targetLanguage` is an ISO code (e.g. `"es"`, `"fr"`);
|
|
3495
|
+
* `sourceLanguage` is auto-detected when omitted. Costs credits and runs async
|
|
3496
|
+
* — poll `jobs.get(jobId)`.
|
|
3497
|
+
*/
|
|
3498
|
+
dub(input: DubbingInput): Promise<{
|
|
3499
|
+
jobId: string;
|
|
3500
|
+
}>;
|
|
3501
|
+
/**
|
|
3502
|
+
* Clone a voice from an audio FILE you hold in memory
|
|
3503
|
+
* (`POST /v1/voice-clones`, multipart) — the counterpart to
|
|
3504
|
+
* {@link VoicesResource.createClone}, which clones from an already-uploaded
|
|
3505
|
+
* URL. Pass the raw audio `file` (a `Blob`/`File` in the browser, or a
|
|
3506
|
+
* `Uint8Array`/`Buffer` in Node) plus a `name`. Costs credits. Returns the new
|
|
3507
|
+
* {@link VoiceClone} (`elevenlabsVoiceId` is the id to recast/synthesize with).
|
|
3508
|
+
*/
|
|
3509
|
+
createCloneFromFile(input: {
|
|
3510
|
+
name: string;
|
|
3511
|
+
file: Blob | Uint8Array | ArrayBuffer;
|
|
3512
|
+
/** File name for the upload part (default `sample`). */
|
|
3513
|
+
filename?: string;
|
|
3514
|
+
/** MIME type when `file` is a raw buffer (default `audio/mpeg`). */
|
|
3515
|
+
contentType?: string;
|
|
3516
|
+
}): Promise<VoiceClone>;
|
|
3435
3517
|
}
|
|
3436
3518
|
/**
|
|
3437
3519
|
* One entry in {@link VoiceChangerProInput.orderedVoices}. Either a bare voice id
|
|
@@ -3522,6 +3604,316 @@ interface VoiceChangerProInput {
|
|
|
3522
3604
|
/** Echo decay / feedback (0–1). Higher = more repeats. Used by the `echo` / `custom` presets. */
|
|
3523
3605
|
decay?: number;
|
|
3524
3606
|
};
|
|
3607
|
+
/**
|
|
3608
|
+
* Output mode. `"video"` (default) mixes the recast voices with the preserved
|
|
3609
|
+
* background and returns a finished merged video. `"stems"` returns the dry,
|
|
3610
|
+
* unleveled per-track stems instead (rendering nothing) so you can drive an
|
|
3611
|
+
* INTERACTIVE mix — adjust levels/mutes/effect in your own UI, then render the
|
|
3612
|
+
* final video with {@link VoicesResource.exportMix}. This is how an app builds
|
|
3613
|
+
* a full editor around VCP rather than a one-shot recast.
|
|
3614
|
+
*/
|
|
3615
|
+
output?: "video" | "stems";
|
|
3616
|
+
/**
|
|
3617
|
+
* A prior {@link VoicesResource.analyze} result. Pass it to SKIP re-detection:
|
|
3618
|
+
* the recast reuses the already-separated stems and speaker segments instead of
|
|
3619
|
+
* running separation + diarization again. This is the fast-path for the
|
|
3620
|
+
* detect → pick voices → recast interactive flow (analyze once, recast N times
|
|
3621
|
+
* as the user tweaks voice assignments). Omit to auto-detect from the source.
|
|
3622
|
+
*/
|
|
3623
|
+
analysis?: VcpAnalysis;
|
|
3624
|
+
}
|
|
3625
|
+
/** One detected speaker in a {@link VcpAnalysis} (from `analyze`). */
|
|
3626
|
+
interface VcpAnalysisSpeaker {
|
|
3627
|
+
/** Stable speaker id (first-appearance order). */
|
|
3628
|
+
id: string;
|
|
3629
|
+
/** The speaker's spoken time ranges (seconds). */
|
|
3630
|
+
segments: Array<{
|
|
3631
|
+
start: number;
|
|
3632
|
+
end: number;
|
|
3633
|
+
}>;
|
|
3634
|
+
/** When the speaker first speaks (seconds). */
|
|
3635
|
+
firstStartSec?: number;
|
|
3636
|
+
/** Rough word count across the clip — a proxy for how much this speaker says. */
|
|
3637
|
+
wordCount?: number;
|
|
3638
|
+
/** The first few transcribed words, to help a user tell speakers apart. */
|
|
3639
|
+
snippet?: string;
|
|
3640
|
+
}
|
|
3641
|
+
/**
|
|
3642
|
+
* The result of {@link VoicesResource.analyze}, reshaped to pass back into
|
|
3643
|
+
* {@link VoiceChangerProInput.analysis}. Read a completed analyze job's
|
|
3644
|
+
* `output_data` into this shape (it carries the separated stem urls + the
|
|
3645
|
+
* detected speakers) and thread it into `recast` to skip re-detection.
|
|
3646
|
+
*/
|
|
3647
|
+
interface VcpAnalysis {
|
|
3648
|
+
/** URL of the isolated vocal stem. */
|
|
3649
|
+
vocalsUrl: string;
|
|
3650
|
+
/** URL of the separated music/SFX stem (absent when the source had none). */
|
|
3651
|
+
backgroundUrl?: string;
|
|
3652
|
+
/** The detected speakers, in first-appearance order. */
|
|
3653
|
+
speakers: VcpAnalysisSpeaker[];
|
|
3654
|
+
/** Scribe's detected language code, round-tripped so the recast auto-selects the STS model. */
|
|
3655
|
+
languageCode?: string;
|
|
3656
|
+
/** Confidence (0–1) of {@link VcpAnalysis.languageCode}. */
|
|
3657
|
+
languageProbability?: number;
|
|
3658
|
+
}
|
|
3659
|
+
/** Input for {@link VoicesResource.analyze}. */
|
|
3660
|
+
interface VcpAnalyzeInput {
|
|
3661
|
+
/** URL of an audio file to analyze. Exactly one of `audioUrl` / `videoUrl` is required. */
|
|
3662
|
+
audioUrl?: string;
|
|
3663
|
+
/** URL of a video file to analyze (its audio track is used). Exactly one of `audioUrl` / `videoUrl` is required. */
|
|
3664
|
+
videoUrl?: string;
|
|
3665
|
+
/** Quality of the voice/music separation run before diarization: `"fast"` (default) or `"best"`. */
|
|
3666
|
+
separationQuality?: "fast" | "best";
|
|
3667
|
+
/** Also suggest a conversion title from the transcript (returned on the job's `output_data.suggestedTitle`). */
|
|
3668
|
+
suggestTitle?: boolean;
|
|
3669
|
+
}
|
|
3670
|
+
/** One track in a {@link VcpExportInput} mix. */
|
|
3671
|
+
interface VcpExportTrack {
|
|
3672
|
+
/** URL of the stem for this lane (a recast voice stem or the background stem). */
|
|
3673
|
+
url: string;
|
|
3674
|
+
/** Fader position as a percentage: 0 = silent, 100 = unity, 200 = +6dB. */
|
|
3675
|
+
gain: number;
|
|
3676
|
+
/** Whether this lane is muted in the mix. */
|
|
3677
|
+
muted: boolean;
|
|
3678
|
+
/**
|
|
3679
|
+
* Which bucket the track is in, and so whether `voiceFx` lands on it. Defaults
|
|
3680
|
+
* to `"voice"`. Set `"background"` for the music/SFX lane (the effect never
|
|
3681
|
+
* touches it).
|
|
3682
|
+
*/
|
|
3683
|
+
kind?: "voice" | "background";
|
|
3684
|
+
}
|
|
3685
|
+
/** Input for {@link VoicesResource.exportMix}. */
|
|
3686
|
+
interface VcpExportInput {
|
|
3687
|
+
/** The source video to remux the mixed audio onto (stream-copied — never re-encoded). */
|
|
3688
|
+
videoUrl: string;
|
|
3689
|
+
/** The mix: one entry per lane. At least one must be un-muted (all-muted is a 400). Max 16 tracks. */
|
|
3690
|
+
tracks: VcpExportTrack[];
|
|
3691
|
+
/**
|
|
3692
|
+
* A reverb/echo applied to the VOICE tracks only (not `"background"` lanes)
|
|
3693
|
+
* at render time — so iterating the effect in your editor is free until you
|
|
3694
|
+
* export. Same shape as {@link VoiceChangerProInput.voiceFx}.
|
|
3695
|
+
*/
|
|
3696
|
+
voiceFx?: VoiceChangerProInput["voiceFx"];
|
|
3697
|
+
}
|
|
3698
|
+
/** Input for {@link VoicesResource.design}. */
|
|
3699
|
+
interface VoiceDesignInput {
|
|
3700
|
+
/** A preview line (100–1000 chars) spoken in the designed voice. */
|
|
3701
|
+
text: string;
|
|
3702
|
+
/** Natural-language description of the voice to create. */
|
|
3703
|
+
voiceDescription: string;
|
|
3704
|
+
/** Voice-design model id. Defaults to the server-configured default. */
|
|
3705
|
+
model?: string;
|
|
3706
|
+
/** Output loudness (-1..1). */
|
|
3707
|
+
loudness?: number;
|
|
3708
|
+
/** How strongly the description steers the design (0–100). */
|
|
3709
|
+
guidanceScale?: number;
|
|
3710
|
+
/** Deterministic seed for a reproducible design. */
|
|
3711
|
+
seed?: number;
|
|
3712
|
+
/** Design quality knob (provider-specific). */
|
|
3713
|
+
quality?: number;
|
|
3714
|
+
/** Enhance the generated voice. */
|
|
3715
|
+
shouldEnhance?: boolean;
|
|
3716
|
+
/** Optional extra prompt context (≤8000 chars). */
|
|
3717
|
+
userPrompt?: string;
|
|
3718
|
+
}
|
|
3719
|
+
/** Input for {@link VoicesResource.remix}. */
|
|
3720
|
+
interface VoiceRemixInput {
|
|
3721
|
+
/** The text (1–5000 chars) to speak in the described voice. */
|
|
3722
|
+
text: string;
|
|
3723
|
+
/** Natural-language description of the voice to speak in. */
|
|
3724
|
+
voiceDescription: string;
|
|
3725
|
+
/** Optional extra prompt context (≤8000 chars). */
|
|
3726
|
+
userPrompt?: string;
|
|
3727
|
+
}
|
|
3728
|
+
/** Input for {@link VoicesResource.dub}. */
|
|
3729
|
+
interface DubbingInput {
|
|
3730
|
+
/** URL of the audio to dub. */
|
|
3731
|
+
audioUrl: string;
|
|
3732
|
+
/** Target language ISO code (2–10 chars), e.g. `"es"`, `"pt-BR"`. */
|
|
3733
|
+
targetLanguage: string;
|
|
3734
|
+
/** Source language ISO code; auto-detected when omitted. */
|
|
3735
|
+
sourceLanguage?: string;
|
|
3736
|
+
/** Expected number of speakers (1–20) — improves separation when known. */
|
|
3737
|
+
numSpeakers?: number;
|
|
3738
|
+
/** Keep the original voices instead of cloning them into the target language. */
|
|
3739
|
+
disableVoiceCloning?: boolean;
|
|
3740
|
+
/** Drop the background/music bed from the dubbed output. */
|
|
3741
|
+
dropBackgroundAudio?: boolean;
|
|
3742
|
+
}
|
|
3743
|
+
|
|
3744
|
+
/**
|
|
3745
|
+
* Media ingestion + trimming — the source-preparation steps a Voice Changer Pro
|
|
3746
|
+
* flow (or any pipeline) needs before it has a clip to work on: pull a social
|
|
3747
|
+
* video into storage, copy a remote URL into storage, trim a video/audio to a
|
|
3748
|
+
* range, and probe a video's metadata. Each generation-style op returns a job id
|
|
3749
|
+
* to poll (`jobs.get(jobId)`); `videoMetadata` is a direct read.
|
|
3750
|
+
*/
|
|
3751
|
+
declare class MediaResource {
|
|
3752
|
+
private client;
|
|
3753
|
+
constructor(client: NodaroClient);
|
|
3754
|
+
/**
|
|
3755
|
+
* Download a social video (YouTube / TikTok / Instagram / X / Facebook) into
|
|
3756
|
+
* your storage (`POST /v1/download-video`). `maxHeight` caps the resolution
|
|
3757
|
+
* (default "best"); `sectionStartSec` + `sectionEndSec` (both-or-neither) fetch
|
|
3758
|
+
* ONLY that time range instead of the whole video. Returns a `downloadId`;
|
|
3759
|
+
* progress streams from `GET /v1/download-video/progress/:downloadId`
|
|
3760
|
+
* (server-sent events) and the finished file lands in your library.
|
|
3761
|
+
*/
|
|
3762
|
+
downloadVideo(input: {
|
|
3763
|
+
url: string;
|
|
3764
|
+
maxHeight?: number;
|
|
3765
|
+
sectionStartSec?: number;
|
|
3766
|
+
sectionEndSec?: number;
|
|
3767
|
+
}): Promise<{
|
|
3768
|
+
downloadId: string;
|
|
3769
|
+
}>;
|
|
3770
|
+
/**
|
|
3771
|
+
* Copy an external media URL into your Nodaro storage (`POST /v1/save-to-storage`)
|
|
3772
|
+
* — a server-side fetch, so nothing round-trips through the client. Poll
|
|
3773
|
+
* `jobs.get(jobId)`.
|
|
3774
|
+
*/
|
|
3775
|
+
saveToStorage(input: {
|
|
3776
|
+
mediaUrl: string;
|
|
3777
|
+
filename?: string;
|
|
3778
|
+
mediaType?: "image" | "video" | "audio";
|
|
3779
|
+
}): Promise<{
|
|
3780
|
+
jobId: string;
|
|
3781
|
+
}>;
|
|
3782
|
+
/**
|
|
3783
|
+
* Trim a video to a range (`POST /v1/trim-video`). Give the range in whichever
|
|
3784
|
+
* unit fits: `startTime`/`endTime` seconds, `trim*Frames`, `trim*Seconds`, or
|
|
3785
|
+
* `keepFirst`/`keepLastSeconds`. Poll `jobs.get(jobId)`.
|
|
3786
|
+
*/
|
|
3787
|
+
trimVideo(input: {
|
|
3788
|
+
videoUrl: string;
|
|
3789
|
+
startTime?: number;
|
|
3790
|
+
endTime?: number;
|
|
3791
|
+
trimStartFrames?: number;
|
|
3792
|
+
trimEndFrames?: number;
|
|
3793
|
+
trimStartSeconds?: number;
|
|
3794
|
+
trimEndSeconds?: number;
|
|
3795
|
+
keepFirstSeconds?: number;
|
|
3796
|
+
keepLastSeconds?: number;
|
|
3797
|
+
}): Promise<{
|
|
3798
|
+
jobId: string;
|
|
3799
|
+
}>;
|
|
3800
|
+
/**
|
|
3801
|
+
* Trim (and extract) audio from a video or audio source
|
|
3802
|
+
* (`POST /v1/trim-audio`) to `[startTime, endTime]` seconds, in `audioFormat`
|
|
3803
|
+
* (`mp3` default / `wav` / `aac`). Poll `jobs.get(jobId)`.
|
|
3804
|
+
*/
|
|
3805
|
+
trimAudio(input: {
|
|
3806
|
+
videoUrl?: string;
|
|
3807
|
+
audioUrl?: string;
|
|
3808
|
+
audioFormat?: "mp3" | "wav" | "aac";
|
|
3809
|
+
startTime?: number;
|
|
3810
|
+
endTime?: number;
|
|
3811
|
+
}): Promise<{
|
|
3812
|
+
jobId: string;
|
|
3813
|
+
}>;
|
|
3814
|
+
/**
|
|
3815
|
+
* Probe a social video's metadata (`POST /v1/video-metadata`) — duration,
|
|
3816
|
+
* dimensions, title, live status — WITHOUT downloading it. A direct read, not a
|
|
3817
|
+
* job. Use it to decide whether to trim before importing.
|
|
3818
|
+
*/
|
|
3819
|
+
videoMetadata(input: {
|
|
3820
|
+
url: string;
|
|
3821
|
+
}): Promise<VideoMetadata>;
|
|
3822
|
+
}
|
|
3823
|
+
/** Result of {@link MediaResource.videoMetadata}. Fields are best-effort — a probe may omit some. */
|
|
3824
|
+
interface VideoMetadata {
|
|
3825
|
+
durationSec?: number | null;
|
|
3826
|
+
width?: number | null;
|
|
3827
|
+
height?: number | null;
|
|
3828
|
+
title?: string | null;
|
|
3829
|
+
isLive?: boolean;
|
|
3830
|
+
[key: string]: unknown;
|
|
3831
|
+
}
|
|
3832
|
+
|
|
3833
|
+
/**
|
|
3834
|
+
* Audio primitives — the building blocks Voice Changer Pro composes internally
|
|
3835
|
+
* (separation, isolation, effect, mix, level), exposed standalone so a consumer
|
|
3836
|
+
* can run any single step or assemble its own pipeline. Each returns a job id to
|
|
3837
|
+
* poll (`jobs.get(jobId)`).
|
|
3838
|
+
*/
|
|
3839
|
+
declare class AudioResource {
|
|
3840
|
+
private client;
|
|
3841
|
+
constructor(client: NodaroClient);
|
|
3842
|
+
/**
|
|
3843
|
+
* Separate an audio track into stems (`POST /v1/audio-separation`, Demucs).
|
|
3844
|
+
* `mode` `"vocal_instrumental"` (default) splits voice from music/SFX;
|
|
3845
|
+
* `"stems"` returns the full drums/bass/other/… breakdown. `quality`
|
|
3846
|
+
* `auto` (default) / `fast` / `best`.
|
|
3847
|
+
*/
|
|
3848
|
+
separate(input: {
|
|
3849
|
+
audioUrl: string;
|
|
3850
|
+
mode?: "vocal_instrumental" | "stems";
|
|
3851
|
+
quality?: "auto" | "fast" | "best";
|
|
3852
|
+
}): Promise<{
|
|
3853
|
+
jobId: string;
|
|
3854
|
+
}>;
|
|
3855
|
+
/** Isolate the primary voice and strip background noise (`POST /v1/audio-isolation`, ElevenLabs). */
|
|
3856
|
+
isolate(input: {
|
|
3857
|
+
audioUrl: string;
|
|
3858
|
+
}): Promise<{
|
|
3859
|
+
jobId: string;
|
|
3860
|
+
}>;
|
|
3861
|
+
/**
|
|
3862
|
+
* Apply a reverb / echo / telephone / megaphone effect to an audio track
|
|
3863
|
+
* (`POST /v1/audio-fx`) — the same presets VCP's `voiceFx` uses, standalone.
|
|
3864
|
+
* `mix` (0–100) is the reverb wet/dry; `delayMs` + `decay` drive `echo`/`custom`;
|
|
3865
|
+
* `eqLow`/`eqHigh` (dB) shape telephone/megaphone.
|
|
3866
|
+
*/
|
|
3867
|
+
applyFx(input: {
|
|
3868
|
+
audioUrl: string;
|
|
3869
|
+
preset?: AudioFxPreset;
|
|
3870
|
+
mix?: number;
|
|
3871
|
+
delayMs?: number;
|
|
3872
|
+
decay?: number;
|
|
3873
|
+
eqLow?: number;
|
|
3874
|
+
eqHigh?: number;
|
|
3875
|
+
}): Promise<{
|
|
3876
|
+
jobId: string;
|
|
3877
|
+
}>;
|
|
3878
|
+
/**
|
|
3879
|
+
* Layer multiple audio tracks into one (`POST /v1/mix-audio`). `audioUrls`
|
|
3880
|
+
* (2–20) are summed; optional `trackVolumes` (0–200% each, positionally) set
|
|
3881
|
+
* per-track level.
|
|
3882
|
+
*/
|
|
3883
|
+
mix(input: {
|
|
3884
|
+
audioUrls: string[];
|
|
3885
|
+
trackVolumes?: number[];
|
|
3886
|
+
}): Promise<{
|
|
3887
|
+
jobId: string;
|
|
3888
|
+
}>;
|
|
3889
|
+
/**
|
|
3890
|
+
* Adjust an audio (or a video's audio) level (`POST /v1/adjust-volume`):
|
|
3891
|
+
* `volume` % (default 100), `normalize` to loudnorm, and `fadeIn`/`fadeOut`
|
|
3892
|
+
* seconds. Provide `audioUrl` or `videoUrl`.
|
|
3893
|
+
*/
|
|
3894
|
+
adjustVolume(input: {
|
|
3895
|
+
audioUrl?: string;
|
|
3896
|
+
videoUrl?: string;
|
|
3897
|
+
volume?: number;
|
|
3898
|
+
normalize?: boolean;
|
|
3899
|
+
fadeIn?: number;
|
|
3900
|
+
fadeOut?: number;
|
|
3901
|
+
}): Promise<{
|
|
3902
|
+
jobId: string;
|
|
3903
|
+
}>;
|
|
3904
|
+
/**
|
|
3905
|
+
* Concatenate audio segments end-to-end (`POST /v1/combine-audio`). Each
|
|
3906
|
+
* segment is a `url` with an optional `[startTime, endTime]` sub-range.
|
|
3907
|
+
*/
|
|
3908
|
+
combine(input: {
|
|
3909
|
+
segments: Array<{
|
|
3910
|
+
url: string;
|
|
3911
|
+
startTime?: number;
|
|
3912
|
+
endTime?: number;
|
|
3913
|
+
}>;
|
|
3914
|
+
}): Promise<{
|
|
3915
|
+
jobId: string;
|
|
3916
|
+
}>;
|
|
3525
3917
|
}
|
|
3526
3918
|
|
|
3527
3919
|
/**
|
|
@@ -3959,6 +4351,8 @@ declare class NodaroClient {
|
|
|
3959
4351
|
readonly reduce: ReduceResource;
|
|
3960
4352
|
readonly promptHelper: PromptHelperResource;
|
|
3961
4353
|
readonly voices: VoicesResource;
|
|
4354
|
+
readonly media: MediaResource;
|
|
4355
|
+
readonly audio: AudioResource;
|
|
3962
4356
|
readonly credits: CreditsResource;
|
|
3963
4357
|
readonly uploads: UploadsResource;
|
|
3964
4358
|
readonly library: LibraryResource;
|
|
@@ -4053,4 +4447,4 @@ interface ApiErrorBody {
|
|
|
4053
4447
|
}
|
|
4054
4448
|
declare function throwFromResponse(status: number, body: ApiErrorBody): never;
|
|
4055
4449
|
|
|
4056
|
-
export { type AccessTokenResponse, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, type Auth, type BranchPipelineInput, type BranchPipelineResult, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, CommunityResource, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateProjectInput, type CreateWorkflowInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, CreaturesResource, CreditsResource, type DeleteAppRunResult, type DeveloperApp, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DuplicateCharacterInput, type EnhanceInput, type ExchangeCodeInput, type ExecutionStatus, type ExecutionTriggerType, ExecutionsResource, type FactoryPresetsResult, ForbiddenError, type GenerateAssetInput, type GenerateCharacterInput, type GenerateCharacterResult, type GenerateCreatureAssetInput, type GenerateCreatureAssetResult, type GenerateCreatureInput, type GenerateCreatureMotionInput, type GenerateCreatureMotionResult, type GenerateCreatureResult, type GenerateImageParams, type GenerateInput, type GenerateLocationAssetInput, type GenerateLocationInput, type GenerateLocationResult, type GenerateMotionInput, type GenerateObjectAssetInput, type GenerateObjectAssetResult, type GenerateObjectInput, type GenerateObjectMotionInput, type GenerateObjectMotionResult, type GenerateObjectResult, type GenerateSurroundContinuationInput, type GenerateVideoParams, type GetPickerCatalogOptions, InsufficientCreditsError, type Job, JobAbortedError, JobFailedError, type JobStatus, type JobStatusResult, JobTimeoutError, JobsResource, type LibraryAsset, LibraryResource, type ListAppRunsParams, type ListAppsParams, type ListAppsResult, type ListCharactersParams, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, type ModelCostsResult, NodaroClient, NodaroError, type NodeCategory, type NodeDescriptor, type NodeExecutionState, type NodeInputField, type NodeInputSchema, type NodeJobOutput, type NodePreset, type NodePresetGroup, NodesResource, NotFoundError, type OAuthAppInfo, OAuthResource, type Object$1 as Object, type ObjectCategory, type ObjectDetail, type ObjectReferencePhoto, type ObjectReferencePhotoKind, ObjectsResource, type OutputType, type PickerCatalog, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, PipelinesResource, PresetsResource, type Project, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type RotateSecretResult, type RunAndWaitOptions, type RunManyResult, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, StaticTokenAuth, StorageExceededError, type StructuredReferenceParams, UnauthorizedError, type UpdateCreatureInput, type UpdateCreatureResult, type UpdateDeveloperAppInput, type UpdateLocationInput, type UpdateLocationResult, type UpdateObjectInput, type UpdateObjectResult, type UpdateProjectInput, type UpdateWorkflowInput, type UploadResult, UploadsResource, type UpsertCharacterInput, type UpsertCharacterResult, type UpsertCreatureInput, type UpsertCreatureResult, type UpsertObjectInput, type UpsertObjectResult, type UserBalance, type UserIdentity, type VoiceChangerProInput, type VoiceChangerProVoice, VoicesResource, type Workflow, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };
|
|
4450
|
+
export { type AccessTokenResponse, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, AudioResource, type Auth, type BranchPipelineInput, type BranchPipelineResult, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, CommunityResource, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateProjectInput, type CreateWorkflowInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, CreaturesResource, CreditsResource, type DeleteAppRunResult, type DeveloperApp, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DubbingInput, type DuplicateCharacterInput, type EnhanceInput, type ExchangeCodeInput, type ExecutionStatus, type ExecutionTriggerType, ExecutionsResource, type FactoryPresetsResult, ForbiddenError, type GenerateAssetInput, type GenerateCharacterInput, type GenerateCharacterResult, type GenerateCreatureAssetInput, type GenerateCreatureAssetResult, type GenerateCreatureInput, type GenerateCreatureMotionInput, type GenerateCreatureMotionResult, type GenerateCreatureResult, type GenerateImageParams, type GenerateInput, type GenerateLocationAssetInput, type GenerateLocationInput, type GenerateLocationResult, type GenerateMotionInput, type GenerateObjectAssetInput, type GenerateObjectAssetResult, type GenerateObjectInput, type GenerateObjectMotionInput, type GenerateObjectMotionResult, type GenerateObjectResult, type GenerateSurroundContinuationInput, type GenerateVideoParams, type GetPickerCatalogOptions, InsufficientCreditsError, type Job, JobAbortedError, JobFailedError, type JobStatus, type JobStatusResult, JobTimeoutError, JobsResource, type LibraryAsset, LibraryResource, type ListAppRunsParams, type ListAppsParams, type ListAppsResult, type ListCharactersParams, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, MediaResource, type ModelCostsResult, NodaroClient, NodaroError, type NodeCategory, type NodeDescriptor, type NodeExecutionState, type NodeInputField, type NodeInputSchema, type NodeJobOutput, type NodePreset, type NodePresetGroup, NodesResource, NotFoundError, type OAuthAppInfo, OAuthResource, type Object$1 as Object, type ObjectCategory, type ObjectDetail, type ObjectReferencePhoto, type ObjectReferencePhotoKind, ObjectsResource, type OutputType, type PickerCatalog, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, PipelinesResource, PresetsResource, type Project, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type RotateSecretResult, type RunAndWaitOptions, type RunManyResult, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, StaticTokenAuth, StorageExceededError, type StructuredReferenceParams, UnauthorizedError, type UpdateCreatureInput, type UpdateCreatureResult, type UpdateDeveloperAppInput, type UpdateLocationInput, type UpdateLocationResult, type UpdateObjectInput, type UpdateObjectResult, type UpdateProjectInput, type UpdateWorkflowInput, type UploadResult, UploadsResource, type UpsertCharacterInput, type UpsertCharacterResult, type UpsertCreatureInput, type UpsertCreatureResult, type UpsertObjectInput, type UpsertObjectResult, type UserBalance, type UserIdentity, type VcpAnalysis, type VcpAnalysisSpeaker, type VcpAnalyzeInput, type VcpExportInput, type VcpExportTrack, type VideoMetadata, type VoiceChangerProInput, type VoiceChangerProVoice, type VoiceDesignInput, type VoiceRemixInput, VoicesResource, type Workflow, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };
|