useVoiceAssistant
function useVoiceAssistant(): {
state: VoiceAgentState;
level: number;
micLevel: number;
vadActive: boolean;
lastError: VoiceError | null;
agent: VoiceAgent;
};Defined in: packages/react/src/hooks/session/useVoiceAssistant.ts:33
The agent, its state, and output level for the current <VoiceRoom>.
(level is an Valora convenience.)
Returns
{
state: VoiceAgentState;
level: number;
micLevel: number;
vadActive: boolean;
lastError: VoiceError | null;
agent: VoiceAgent;
}state
state: VoiceAgentState;level
level: number;micLevel
micLevel: number;vadActive
vadActive: boolean;lastError
lastError: VoiceError | null;agent
agent: VoiceAgent;Example
// Basic — read the assistant state and level.
const { state, level } = useVoiceAssistant();
return <meter value={level} max={1}>{state}</meter>;
// Advanced — pair visualization with turn control.
function AssistantPanel() {
const { state, level, agent } = useVoiceAssistant();
return (
<VoiceRoom agent={agent}>
<BarVisualizer barCount={7} />
<meter value={level} max={1}>{state}</meter>
<button disabled={state !== "speaking"} onClick={() => agent.interrupt()}>
Interrupt
</button>
<VoiceAssistantControlBar controls={{ microphone: true, leave: true }} />
</VoiceRoom>
);
}