@kitn.ai/chat
Version:
Framework-agnostic, Shadow-DOM web components for building AI chat interfaces — works in React, Vue, Angular, Svelte, or plain HTML. Authored in SolidJS.
36 lines (27 loc) • 942 B
text/mdx
import { Meta } from '@storybook/addon-docs/blocks';
<Meta title="Docs/Recipes/Text-to-Speech" />
# Text-to-speech (TTS)
## Browser-native (zero dependencies)
Speak each reply once it finishes streaming — call `speak(answer)` right before `chat.loading = false`:
```js
function speak(text) {
if (!('speechSynthesis' in window)) return;
const utter = new SpeechSynthesisUtterance(text);
utter.lang = 'en-US';
speechSynthesis.cancel();
speechSynthesis.speak(utter);
}
```
## Cloud TTS (OpenAI, ElevenLabs, …)
For higher-quality voices, have your backend call a TTS API and return audio (keep the provider key server-side):
```js
async function speakCloud(text) {
const res = await fetch('/api/tts', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ text, voice: 'alloy' }),
});
const audio = new Audio(URL.createObjectURL(await res.blob()));
audio.play();
}
```