AI Docs
API
Class References
Function References
- text
- textOptions
- combineStrategies
- convertMessagesToModelMessages
- convertZodToJsonSchema
- createReplayStream
- embedding
- generateMessageId
- maxIterations
- messages
- modelMessageToUIMessage
- modelMessagesToUIMessages
- normalizeToUIMessage
- parsePartialJSON
- summarize
- toServerSentEventsStream
- toServerSentEventsResponse
- toolDefinition
- uiMessageToModelMessages
- realtimeToken
- untilFinishReason
Interface References
- AIAdapter
- AIAdapterConfig
- AgentLoopState
- AudioPart
- AudioVisualization
- BaseStreamChunk
- TextCompletionChunk
- TextOptions
- ChunkRecording
- ChunkStrategy
- ClientTool
- ContentPartSource
- ContentStreamChunk
- DefaultMessageMetadataByModality
- DocumentPart
- DoneStreamChunk
- EmbeddingOptions
- EmbeddingResult
- ErrorStreamChunk
- ImagePart
- InternalToolCallState
- JSONParser
- ModelMessage
- ProcessorResult
- ProcessorState
- RealtimeAdapter
- RealtimeClientOptions
- RealtimeConnection
- RealtimeMessage
- RealtimeSessionConfig
- RealtimeToken
- RealtimeTokenAdapter
- RealtimeTokenOptions
- ResponseFormat
- ServerTool
- StreamProcessorEvents
- StreamProcessorHandlers
- StreamProcessorOptions
- SummarizationOptions
- SummarizationResult
- TextPart
- ThinkingPart
- ThinkingStreamChunk
- Tool
- ToolCall
- ToolCallPart
- ToolCallStreamChunk
- ToolConfig
- ToolDefinition
- ToolDefinitionConfig
- ToolDefinitionInstance
- ToolInputAvailableStreamChunk
- ToolResultPart
- ToolResultStreamChunk
- UIMessage
- VideoPart
Type Alias References
- AgentLoopStrategy
- AnyClientTool
- TextStreamOptionsForModel
- TextStreamOptionsUnion
- ConstrainedContent
- ConstrainedModelMessage
- ContentPart
- ContentPartForModalities
- ExtractModalitiesForModel
- ExtractModelsFromAdapter
- InferToolInput
- InferToolName
- InferToolOutput
- MessagePart
- RealtimeEvent
- RealtimeMessagePart
- RealtimeMode
- RealtimeStatus
- ModalitiesArrayToUnion
- Modality
- StreamChunk
- ToolCallState
- ToolResultState
Variable References
AI/LLM: This documentation page is available in plain markdown format at/ai/latest/docs/reference/functions/generateVoice.md
generateVoice
ts
function generateVoice<TAdapter, TStream>(options): VoiceActivityResult<TStream>;Defined in: packages/ai/src/activities/generateVoice/index.ts:188
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'),
threadId: 'narrator',
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_v4'),
threadId: 'narrator',
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'),
threadId: 'demo-host',
prompt: 'A bright, upbeat product demo host',
name: 'Demo Host',
description: 'Bright, upbeat, mid-30s',
})