Agent.getVoice() ✅
The getVoice()
method retrieves the voice provider configured for an agent, resolving it if it’s a function. This method is used to access the agent’s speech capabilities for text-to-speech and speech-to-text functionality.
Syntax ✅
getVoice({ runtimeContext }: { runtimeContext?: RuntimeContext } = {}): CompositeVoice | Promise<CompositeVoice>
Parameters ✅
runtimeContext?:
RuntimeContext
Runtime context for dependency injection and contextual information. Defaults to a new RuntimeContext instance if not provided.
Return Value ✅
Returns a CompositeVoice
instance or a Promise that resolves to a CompositeVoice
instance. If no voice provider was configured for the agent, it returns a default voice provider.
Description ✅
The getVoice()
method is used to access the voice capabilities of an agent. It resolves the voice provider, which can be either directly provided or returned from a function.
The voice provider enables:
- Text-to-speech conversion (speaking)
- Speech-to-text conversion (listening)
- Retrieving available speakers/voices
Examples ✅
Basic Usage
import { Agent } from "@kastrax/core/agent";
import { ElevenLabsVoice } from "@kastrax/voice-elevenlabs";
import { openai } from '@ai-sdk/openai';
// Create an agent with a voice provider
const agent = new Agent({
name: "voice-assistant",
instructions: "You are a helpful voice assistant.",
model: openai("gpt-4o"),
voice: new ElevenLabsVoice({
apiKey: process.env.ELEVENLABS_API_KEY,
}),
});
// Get the voice provider
const voice = await agent.getVoice();
// Use the voice provider for text-to-speech
const audioStream = await voice.speak("Hello, how can I help you today?");
// Use the voice provider for speech-to-text
const transcription = await voice.listen(audioStream);
// Get available speakers
const speakers = await voice.getSpeakers();
console.log(speakers);
Using with RuntimeContext
import { Agent } from "@kastrax/core/agent";
import { ElevenLabsVoice } from "@kastrax/voice-elevenlabs";
import { RuntimeContext } from "@kastrax/core/runtime-context";
import { openai } from '@ai-sdk/openai';
// Create an agent with a dynamic voice provider
const agent = new Agent({
name: "voice-assistant",
instructions: ({ runtimeContext }) => {
// Dynamic instructions based on runtime context
const instructions = runtimeContext.get("preferredVoiceInstructions");
return instructions || "You are a helpful voice assistant.";
},
model: openai("gpt-4o"),
voice: new ElevenLabsVoice({
apiKey: process.env.ELEVENLABS_API_KEY,
}),
});
// Create a runtime context with preferences
const context = new RuntimeContext();
context.set("preferredVoiceInstructions", "You are an evil voice assistant");
// Get the voice provider using the runtime context
const voice = await agent.getVoice({ runtimeContext: context });
// Use the voice provider
const audioStream = await voice.speak("Hello, how can I help you today?");
Last updated on