Skip to main content

Interface: IAudioGenerator

Defined in: packages/agentos/src/core/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/core/audio/IAudioGenerator.ts:69

Default model used when the request omits modelId.


isInitialized

readonly isInitialized: boolean

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

Whether initialize has been called successfully.


providerId

readonly providerId: string

Defined in: packages/agentos/src/core/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/core/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/core/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/core/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/core/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/core/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.