{
  "$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"
}