TanStack

generateVoice

ts
function generateVoice<TAdapter, TStream>(options): VoiceActivityResult<TStream>;

Defined in: packages/ai/src/activities/generateVoice/index.ts:185

Voice activity - creates a reusable voice.

Providers create voices in one of two ways, and some support both: design a new voice from a text description, or clone one from reference audio. Either way the result carries voice ids you pass back to generateSpeech().

Type Parameters

TAdapter

TAdapter extends VoiceAdapter<string, VoiceProviderOptions<TAdapter>>

TStream

TStream extends boolean = false

Parameters

options

VoiceActivityOptions<TAdapter, TStream>

Returns

VoiceActivityResult<TStream>

Examples

Design a voice from a description

ts
import { generateVoice, generateSpeech } from '@tanstack/ai'
import { elevenlabsVoiceDesign, elevenlabsSpeech } from '@tanstack/ai-elevenlabs'

const designed = await generateVoice({
  adapter: elevenlabsVoiceDesign('eleven_ttv_v3'),
  prompt: 'A warm, gravelly narrator in his sixties with a slight Irish lilt',
})

const [preview] = designed.voices
if (!preview) throw new Error('No voice candidates returned')

const speech = await generateSpeech({
  adapter: elevenlabsSpeech('eleven_v3'),
  text: 'Once upon a time...',
  voice: preview.voiceId,
})

Save the voice to the provider's library

ts
const saved = await generateVoice({
  adapter: elevenlabsVoiceDesign('eleven_ttv_v3'),
  prompt: 'A bright, upbeat product demo host',
  name: 'Demo Host',
  description: 'Bright, upbeat, mid-30s',
})