Skip to content

Commit b546cb8

Browse files
authored
Update video details and examples for voice chatbot
Updated video ID and date for the voice chatbot challenge. Added new topics and modified code examples.
1 parent fcc1886 commit b546cb8

1 file changed

Lines changed: 29 additions & 40 deletions

File tree

  • content/videos/challenges/188-voice-chatbot

β€Žcontent/videos/challenges/188-voice-chatbot/index.jsonβ€Ž

Lines changed: 29 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
"title": "Voice Chatbot",
33
"description": "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.",
44
"videoNumber": "188",
5-
"videoId": "",
6-
"date": "2026-04-20",
5+
"videoId": "s2jm2Z22ibA",
6+
"date": "2026-04-27",
77
"nebulaSlug": "codingtrain-coding-challenge-188-voice-chatbot",
88
"languages": ["JavaScript", "p5.js"],
9-
"topics": ["text-to-speech", "speech-to-text", "chatbot", "Rivescript", "LLMS", "Agents", "AI"],
9+
"topics": ["text-to-speech", "speech-to-text", "chatbot", "Rivescript", "LLMS", "Agents", "AI", "transformers.js", "Web Audio API"],
1010
"canContribute": true,
1111
"relatedChallenges": ["42-markov-chain-name-generator", "43-context-free-grammar", "80-voice-chatbot-with-p5speech"],
1212
"timestamps": [
@@ -30,55 +30,55 @@
3030
{ "time": "0:26:56", "title": "Swapping in a RiveScript number-guessing brain" },
3131
{ "time": "0:31:22", "title": "Adding a language model (SmolLM2) as the brain" },
3232
{ "time": "0:38:33", "title": "Final demo: the random number chatbot" },
33-
{ "time": "0:39:03", "title": "Outro" }
33+
{ "time": "0:39:03", "title": "Goodbye!" }
3434
],
3535
"codeExamples": [
3636
{
37-
"title": "Graph Waveform of Recording",
38-
"description": "The sketch graphs the waveform from mic input.",
39-
"image": "waveform.jpg",
37+
"title": "LLM Chatbot",
38+
"description": "This final voice chatbot, prompted to only reply with random numbers.",
39+
"image": "img.jpg",
4040
"urls": {
41-
"p5": "https://editor.p5js.org/codingtrain/sketches/cck49wDub"
41+
"p5": "https://editor.p5js.org/codingtrain/sketches/RHhT9I4Nm"
4242
}
4343
},
4444
{
45-
"title": "Real Time Waveform",
46-
"description": "The sketch graphs the waveform from mic input in real time.",
47-
"image": "realtime.jpg",
45+
"title": "Number Guessing Bot",
46+
"image": "number_bot.jpg",
47+
"description": "Voice chatbot that uses RiveScript to play a number-guessing game.",
4848
"urls": {
49-
"p5": "https://editor.p5js.org/codingtrain/sketches/aaRIT-x6a"
49+
"p5": "https://editor.p5js.org/codingtrain/sketches/AJw7zMN9q"
5050
}
5151
},
5252
{
53-
"title": "Loading bars",
54-
"description": "The sketch graphs loading bars for the models.",
55-
"image": "loading_bars.jpg",
53+
"title": "Therapy Bot",
54+
"description": "Started voice chatbot with an ELIZA-style therapist brain.",
55+
"image": "img.jpg",
5656
"urls": {
57-
"p5": "https://editor.p5js.org/codingtrain/sketches/E9Ob3x8eJ"
57+
"p5": "https://editor.p5js.org/codingtrain/sketches/37LFEPUVV"
5858
}
5959
},
6060
{
61-
"title": "Therapy Bot",
62-
"description": "Basic chatbot",
63-
"image": "img.jpg",
61+
"title": "Model Loading Bars",
62+
"description": "The voice chatbot that displays loading bars for the models.",
63+
"image": "loading_bars.jpg",
6464
"urls": {
65-
"p5": "https://editor.p5js.org/codingtrain/sketches/37LFEPUVV"
65+
"p5": "https://editor.p5js.org/codingtrain/sketches/E9Ob3x8eJ"
6666
}
6767
},
6868
{
69-
"title": "Number Guessing Bot",
70-
"image": "number_bot.jpg",
71-
"description": "Voice bot that listens for a number and gives feedback.",
69+
"title": "Waveform of Recording",
70+
"description": "The sketch graphs a waveform from recorded mic input.",
71+
"image": "waveform.jpg",
7272
"urls": {
73-
"p5": "https://editor.p5js.org/codingtrain/sketches/AJw7zMN9q"
73+
"p5": "https://editor.p5js.org/codingtrain/sketches/cck49wDub"
7474
}
7575
},
7676
{
77-
"title": "LLM Chatbot",
78-
"description": "This chatbot has been prompted to only reply with random numbers.",
79-
"image": "img.jpg",
77+
"title": "Real Time Waveform",
78+
"description": "The sketch graphs a waveform from mic input in real time.",
79+
"image": "realtime.jpg",
8080
"urls": {
81-
"p5": "https://editor.p5js.org/codingtrain/sketches/RHhT9I4Nm"
81+
"p5": "https://editor.p5js.org/codingtrain/sketches/aaRIT-x6a"
8282
}
8383
}
8484
],
@@ -90,7 +90,7 @@
9090
"icon": "πŸ““",
9191
"title": "p5.2 Reference",
9292
"url": "https://beta.p5js.org",
93-
"description": "Reference page for the beta version of p5.2."
93+
"description": "Reference page for the beta version of p5.js 2.0"
9494
},
9595
{
9696
"icon": "πŸ““",
@@ -208,17 +208,6 @@
208208
}
209209
]
210210
},
211-
{
212-
"title": "Videos",
213-
"links": [
214-
{
215-
"icon": "πŸš‚",
216-
"title": "p5.js 2.0 async and await",
217-
"url": "/tracks/p5js-2.0/p5js-2.0/async-await",
218-
"description": "This video discusses loading data with async and await."
219-
}
220-
]
221-
},
222211
{
223212
"title": "Live Stream Archives",
224213
"links": [

0 commit comments

Comments
Β (0)