Week 26/01/26

1–2 minutes

This week marked the start of the final project for this unit, which involves developing an interactive machine learning artwork using ml5.js. We were given the option to either train a new model or use an existing one. Diana shared several example projects and links to the ml5.js documentation, which I found particularly helpful for understanding the range of possibilities and technical approaches available.

After exploring different examples, I decided to work with sound and focus on sound classification. I was inspired by the speechcommand18w example, as I liked the idea of creating an artwork that responds directly to spoken input. Through further research, I realised that I would need to train my own model to suit my specific set of words. I used Google’s Teachable Machine to create and train the model, which I found relatively straightforward and accessible, even with limited prior experience in training machine learning models.

Once the model was trained, I integrated it into my project by following a walkthrough from the ml5.js website, adapting the example code to load my custom model instead of the provided one. My aim was for the project to recognise a set of predefined spoken words, display the detected word on screen, and play an associated audio response. While the walkthrough provided a strong starting point, I needed to independently modify the styling, formatting, and logic, as the example assumed a larger set of labels than my model used.

const options = { probabilityThreshold: 0.3 };
  classifier = ml5.soundClassifier(
    "https://teachablemachine.withgoogle.com/models/uRBdnMMu7/",
    options
  );
}

I became very engaged with this project and was able to complete a working version within the same week. I am really pleased with the final outcome, as it behaves as intended and feels interactive and responsive. Next week, I plan to attempt the bonus goal by exploring how React could be incorporated, and I may also expand my dataset by adding more training samples to improve the model’s prediction accuracy.