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
- Construct the provider.
- Call initialize with provider-specific configuration (API keys, base URLs, etc.).
- Use generateMusic and/or generateSFX.
- 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?
readonlyoptionaldefaultModelId:string
Defined in: packages/agentos/src/core/audio/IAudioGenerator.ts:69
Default model used when the request omits modelId.
isInitialized
readonlyisInitialized:boolean
Defined in: packages/agentos/src/core/audio/IAudioGenerator.ts:66
Whether initialize has been called successfully.
providerId
readonlyproviderId: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
The music generation parameters.
Returns
Promise<AudioResult>
A result envelope containing one or more generated audio clips.
generateSFX()?
optionalgenerateSFX(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
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()?
optionalshutdown():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.