Defined in: packages/ai/src/activities/generateSpeech/adapter.ts:46
TTS adapter interface with pre-resolved generics.
An adapter is created by a provider function: provider('model') → adapter All type resolution happens at the provider call site, not in this interface.
Generic parameters:
TModel extends string = string
TProviderOptions extends object = Record<string, unknown>
~types: object;Defined in: packages/ai/src/activities/generateSpeech/adapter.ts:65
Internal
Type-only properties for inference. Not assigned at runtime.
providerOptions: TProviderOptions;readonly optional capabilities?: TTSCapabilities;Defined in: packages/ai/src/activities/generateSpeech/adapter.ts:60
Optional static capability declaration. Absent means "single voice, no timestamps" — the contract every adapter had before dialogue existed.
generateSpeech: (options) => Promise<TTSResult>;Defined in: packages/ai/src/activities/generateSpeech/adapter.ts:72
Generate speech from text
TTSOptions<TProviderOptions>
Promise<TTSResult>
readonly kind: "tts";Defined in: packages/ai/src/activities/generateSpeech/adapter.ts:51
Discriminator for adapter kind - used to determine API shape
optional listVoices?: (options?) => Promise<ListVoicesResult>;Defined in: packages/ai/src/activities/generateSpeech/adapter.ts:84
List the voices this account can use.
Optional, because only some providers have a catalog worth querying at runtime. A provider whose voices are a fixed list known at build time publishes that list from its own package instead (GeminiTTSVoices, or the OpenAITTSVoice union), which is strictly better than a network call. Implement this only when the catalog is per-account and can change, which is the case wherever generateVoice() can add to it.
Promise<ListVoicesResult>
readonly model: TModel;Defined in: packages/ai/src/activities/generateSpeech/adapter.ts:55
The model this adapter is configured for
readonly name: string;Defined in: packages/ai/src/activities/generateSpeech/adapter.ts:53
Adapter name identifier