xxxxxxxxxx
let classifier;
let label = 'listening...';
let confidence;
let bitte = 12;
let danke = 8;
let img, img_bitte, img_danke;
// Teachable Machine model URL:
let soundModel = 'https://teachablemachine.withgoogle.com/models/G_4j_LZ_n/';
function preload() {
// Load the model
classifier = ml5.soundClassifier(soundModel + 'model.json');
img = loadImage("Sprechen_Zeichenfläche 1.png"); // Gespräch
img_bitte = loadImage("Bitte_Negativ.png"); // Bitte
img_danke = loadImage("Danke_Negativ.png"); // Danke
}
function setup() {
createCanvas(windowWidth, windowHeight);
// Start classifying
// The sound model will continuously listen to the microphone
classifier.classify(gotResult);
}
function draw() {
background(255);
imageMode(CENTER);
let icon_size = 80;
// colums
let colums = 5;
push();
translate(width/2 - colums*icon_size - icon_size, height/4);
for (i=1; i<=danke; i++) {
image(img_danke, ((i-1)%colums)*icon_size, 0, icon_size, icon_size);
if (i%colums == 0)
translate(0, icon_size); // next row
}
pop();
push();
translate(width/2 + icon_size, height/4);
for (i=1; i<=bitte; i++) {
image(img_bitte, ((i-1)%colums)*icon_size, 0, icon_size, icon_size);
if (i%colums == 0)
translate(0, icon_size); // next row
}
}
// The model recognizing a sound will trigger this event
function gotResult(error, results) {
if (error) {
console.error(error);
return;
}
// The results are in an array ordered by confidence.
// console.log(results[0]);
label = results[0].label;
confidence = nf(results[0].confidence, 0, 2);
//print(label + " / " + confidence);
if (label.indexOf("bitte") > -1 && confidence > 0.8) {
bitte += 1;
}
else if (label.indexOf("danke") > -1 && confidence > 0.8) {
danke += 1;
}
}