Skip to main content

Interface: IAudioGenerator

Defined in: packages/agentos/src/io/media/audio/IAudioGenerator.ts:61

Abstraction over an audio generation backend (Suno, Udio, Stable Audio, ElevenLabs, Replicate, etc.).

Capability negotiation​

Not every provider supports every sub-modality. The supports method lets callers (and the FallbackAudioProxy) query whether a given capability is available before invoking it.

Lifecycle​

  1. Construct the provider.
  2. Call initialize with provider-specific configuration (API keys, base URLs, etc.).
  3. Use generateMusic and/or generateSFX.
  4. Optionally call shutdown to release resources.

Example​

const suno: IAudioGenerator = new SunoProvider();
await suno.initialize({ apiKey: process.env.SUNO_API_KEY! });

if (suno.supports('music')) {
const result = await suno.generateMusic({ prompt: 'Ambient piano loop' });
console.log(result.audio[0].url);
}

await suno.shutdown?.();

Properties​

defaultModelId?​

readonly optional defaultModelId: string

Defined in: packages/agentos/src/io/media/audio/IAudioGenerator.ts:69

Default model used when the request omits modelId.


isInitialized​

readonly isInitialized: boolean

Defined in: packages/agentos/src/io/media/audio/IAudioGenerator.ts:66

Whether initialize has been called successfully.


providerId​

readonly providerId: string

Defined in: packages/agentos/src/io/media/audio/IAudioGenerator.ts:63

Unique identifier for this provider (e.g. 'suno', 'elevenlabs-sfx').

Methods​

generateMusic()​

generateMusic(request): Promise<AudioResult>

Defined in: packages/agentos/src/io/media/audio/IAudioGenerator.ts:88

Generate music from a text prompt.

Providers that do not support music generation should throw an error and have supports return false for 'music'.

Parameters​

request​

MusicGenerateRequest

The music generation parameters.

Returns​

Promise<AudioResult>

A result envelope containing one or more generated audio clips.


generateSFX()?​

optional generateSFX(request): Promise<AudioResult>

Defined in: packages/agentos/src/io/media/audio/IAudioGenerator.ts:100

Generate a sound effect from a text prompt.

This method is optional — providers that do not support SFX generation should either omit it or have supports return false for 'sfx'.

Parameters​

request​

SFXGenerateRequest

The SFX generation parameters.

Returns​

Promise<AudioResult>

A result envelope containing one or more generated audio clips.


initialize()​

initialize(config): Promise<void>

Defined in: packages/agentos/src/io/media/audio/IAudioGenerator.ts:77

Initialise the provider with runtime configuration.

Parameters​

config​

Record<string, unknown>

Provider-specific key/value pairs (API keys, endpoints, model overrides, etc.).

Returns​

Promise<void>


shutdown()?​

optional shutdown(): Promise<void>

Defined in: packages/agentos/src/io/media/audio/IAudioGenerator.ts:114

Release any resources held by the provider (HTTP connections, polling loops, temp files, etc.).

Returns​

Promise<void>


supports()​

supports(capability): boolean

Defined in: packages/agentos/src/io/media/audio/IAudioGenerator.ts:108

Query whether this provider supports a given capability.

Parameters​

capability​

The capability to check ('music' or 'sfx').

"music" | "sfx"

Returns​

boolean

true if the provider can handle the requested capability.