{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreidbxcl7cuyfsieuhm5ld6ytgafldyv5wpzjbltwwojxh65oftwqoq",
"uri": "at://did:plc:xyts6incftdyi5g2lym23hek/app.bsky.feed.post/3mkjoexhvqs22"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreihoysw5ctww54lhq6zjhzc3j4r4yj5e25cawrda4phdkuehxfhrri"
},
"mimeType": "image/jpeg",
"size": 125819
},
"path": "/videos/codingtrain-coding-challenge-188-voice-chatbot/",
"publishedAt": "2026-04-27T16:14:54.000Z",
"site": "https://nebula.tv",
"tags": [
"Coding",
"Tech"
],
"textContent": "In this coding challenge, I build a conversational voice chatbot entirely in the browser with p5.js. I combine three pieces: speech-to-text with OpenAI's Whisper model, text-to-speech with Kokoro TTS, and a \"brain\" for the bot. I also explore the transformers.js pipeline API and the Web Audio API. For the bot's brain, I start with a simple ELIZA-style therapist, then incorporate a RiveScript number-guessing game, and finally a local LLM. Code and References>",
"title": "Coding Challenge 188: Voice Chatbot"
}