<snapdata remixID="11459913"><project name="MachineLearningProject" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="MachineLearningProject"><notes></notes><palette><category name="Machine Learning" color="0,199,117,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="Load Image Libraries" type="command" category="Machine Learning"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRepeat"><l>2</l><script><block s="doRun"><block s="reportJSFunction"><list></list><l>   let script = document.createElement("script");&#xD;   script.type = "text/javascript"; &#xD;   script.src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.3.1/dist/tf.min.js";  &#xD;   document.head.appendChild(script);&#xD;   let script2 = document.createElement("script");&#xD;   script2.type = "text/javascript";&#xD;   script2.src = "https://cdn.jsdelivr.net/npm/@teachablemachine/image@0.8/dist/teachablemachine-image.min.js";&#xD;   document.head.appendChild(script2);  </l></block><list></list></block><block s="doWait"><l>1</l></block></script></block></script></block-definition><block-definition s="Load Image Model %&apos;URL&apos;" type="command" category="Machine Learning"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>URL</l></list><l>const when_loaded = (loaded_model) =&gt; {&#xD;  console.log("loading model")&#xD;  window.imageModel = loaded_model;&#xD;};&#xD;&#xD;const modelURL = URL + "model.json"; // model topology&#xD;const metadataURL = URL + "metadata.json"; // model metadata&#xD;&#xD;const recognizer = tmImage.load(modelURL, metadataURL).then(when_loaded);     </l></block><list><block var="ImageModelURL"/></list></block></script></block-definition><block-definition s="Image Model Predict" type="command" category="Machine Learning"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>predictionJS</l></list></block><block s="doDeclareVariables"><list><l>predictionList</l></list></block><block s="doRun"><block s="reportJSFunction"><list><l>videoCapture</l></list><l>const report_predictions = (prediction) =&gt; {&#xD;   let class_names = window.imageModel.getClassLabels();&#xD;   let names_and_scores = prediction.map((score, index) =&gt; [class_names[index], score.probability]);&#xD;   &#xD;   //console.log(class_names)&#xD;&#xD;   var predictionList = []&#xD;&#xD;   // This loop is for outer array&#xD;   for (var i = 0; i &lt; names_and_scores.length; i++) {&#xD;      if (names_and_scores[i].length &gt; 1) {&#xD;         predictionList.push([class_names[i],names_and_scores[i][1]]) &#xD;         //console.log([class_names[i], predictionList[i]])&#xD;      }&#xD;   }&#xD;&#xD;   window.prediction = predictionList&#xD;};&#xD;&#xD;const prediction = window.imageModel.predict(videoCapture.contents).then(report_predictions);   &#xD;//console.log(prediction)        </l></block><list><block s="reportVideo"><l><option>snap</option></l><l>Stage</l></block></list></block><block s="doSetVar"><l>predictionJS</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>return window.prediction</l></block><list></list></block></block><block s="doSetVar"><l>predictionList</l><block s="reportTextSplit"><block s="reportJoinWords"><list><block var="predictionJS"/></list></block><l>,</l></block></block><block s="doSetVar"><l>ImageModelTable</l><block s="reportReshape"><block var="predictionList"/><list><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="predictionList"/></block><l>2</l></block><l>2</l></list></block></block><block s="doSetVar"><l>ImageModelPrediction</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>2</l><l/></block></autolambda><list></list></block><block var="ImageModelTable"/></block></block></script></block-definition><block-definition s="Load Audio Libraries" type="command" category="Machine Learning"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRepeat"><l>2</l><script><block s="doRun"><block s="reportJSFunction"><list></list><l>let script = document.createElement("script");&#xD;script.type = "text/javascript";&#xD;script.src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.3.1/dist/tf.min.js";&#xD;document.head.appendChild(script);&#xD;let script2 = document.createElement("script");&#xD;script2.type = "text/javascript";&#xD;script2.src = "https://cdn.jsdelivr.net/npm/@tensorflow-models/speech-commands@0.4.0/dist/speech-commands.min.js";&#xD;document.head.appendChild(script2);  </l></block><list></list></block><block s="doWait"><l>1</l></block></script></block></script></block-definition><block-definition s="Load Audio Model %&apos;URL&apos;" type="command" category="Machine Learning"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>URL</l></list><l>const checkpointURL = URL + "model.json"; // model topology&#xD;const metadataURL = URL + "metadata.json"; // model metadata&#xD;&#xD;const recognizer = speechCommands.create("BROWSER_FFT", undefined, checkpointURL, metadataURL);&#xD;&#xD;// check that model and metadata are loaded via HTTPS requests.&#xD;while (!recognizer.ensureModelLoaded()){}&#xD;&#xD;// Set a global variable for the recognizer&#xD;window.recognizer = recognizer&#xD;     </l></block><list><block var="AudioModelURL"/></list></block></script></block-definition><block-definition s="Stop Listening" type="command" category="Machine Learning"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>window.recognizer.stopListening()</l></block><list></list></block></script></block-definition><block-definition s="Audio Model Predict" type="command" category="Machine Learning"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>predictionJSAudio</l></list></block><block s="doDeclareVariables"><list><l>predictionListAudio</l></list></block><block s="doRun"><block s="reportJSFunction"><list></list><l>const report_predictionsAudio = (predictionAudio) =&gt; {&#xD;   let class_names = recognizer.wordLabels()&#xD;   let names_and_scores = Array.prototype.slice.call(predictionAudio.scores).map((score, index) =&gt; [class_names[index], score]);&#xD;&#xD;   //console.log(class_names)&#xD;&#xD;   var predictionListAudio = []&#xD;&#xD;   // This loop is for outer array&#xD;   for (var i = 0; i &lt; names_and_scores.length; i++) {&#xD;      if (names_and_scores[i].length &gt; 1) {&#xD;         predictionListAudio.push([class_names[i],names_and_scores[i][1]]) &#xD;         //console.log([class_names[i], predictionList[i]])&#xD;      }&#xD;   }&#xD;&#xD;   window.predictionAudio = predictionListAudio&#xD;   //console.log(predictionList)&#xD;};&#xD;&#xD;// listen() takes two arguments:&#xD;// 1. A callback function that is invoked anytime a word is recognized.&#xD;// 2. A configuration object with adjustable fields&#xD;window.recognizer.listen(report_predictionsAudio, {invokeCallbackOnNoiseAndUnknown: true});&#xD;           </l></block><list></list></block><block s="doUntil"><block s="reportKeyPressed"><l><option>x</option></l></block><script><block s="doSetVar"><l>predictionJSAudio</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>return window.predictionAudio</l></block><list></list></block></block><block s="doSetVar"><l>predictionListAudio</l><block s="reportTextSplit"><block s="reportJoinWords"><list><block var="predictionJSAudio"/></list></block><l>,</l></block></block><block s="doSetVar"><l>AudioPredictionTable</l><block s="reportReshape"><block var="predictionListAudio"/><list><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="predictionListAudio"/></block><l>2</l></block><l>2</l></list></block></block><block s="doSetVar"><l>AudioPrediction</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>2</l><l/></block></autolambda><list></list></block><block var="AudioPredictionTable"/></block></block></script></block><block s="doRun"><block s="reportJSFunction"><list></list><l>window.recognizer.stopListening()</l></block><list></list></block></script></block-definition><block-definition s="Load Pose Libraries" type="command" category="Machine Learning"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRepeat"><l>2</l><script><block s="doRun"><block s="reportJSFunction"><list></list><l>   let script = document.createElement("script");&#xD;   script.type = "text/javascript"; &#xD;   script.src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.3.1/dist/tf.min.js";  &#xD;   document.head.appendChild(script);&#xD;   let script2 = document.createElement("script");&#xD;   script2.type = "text/javascript";&#xD;   script2.src = "https://cdn.jsdelivr.net/npm/@teachablemachine/pose@0.8/dist/teachablemachine-pose.min.js";&#xD;   document.head.appendChild(script2);  </l></block><list></list></block><block s="doWait"><l>1</l></block></script></block></script></block-definition><block-definition s="Load Pose Model %&apos;URL&apos;" type="command" category="Machine Learning"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>URL</l></list><l>const when_loaded = (loaded_model) =&gt; {&#xD;  console.log("loading model")&#xD;  window.poseModel = loaded_model;&#xD;};&#xD;&#xD;const modelURL = URL + "model.json"; // model topology&#xD;const metadataURL = URL + "metadata.json"; // model metadata&#xD;&#xD;const recognizer = tmPose.load(modelURL, metadataURL).then(when_loaded);     </l></block><list><block var="PoseModelURL"/></list></block></script></block-definition><block-definition s="Pose Model Predict" type="command" category="Machine Learning"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>posePredictionJS</l></list></block><block s="doDeclareVariables"><list><l>posePredictionList</l></list></block><block s="doRun"><block s="reportJSFunction"><list><l>videoCapture</l></list><l>const report_predictionsPose = (posePrediction) =&gt; {&#xD;   let class_names = window.poseModel.getClassLabels();&#xD;   let names_and_scores = posePrediction.map((score, index) =&gt; [class_names[index], score.probability]);&#xD;   &#xD;   //console.log(posePrediction)&#xD;&#xD;   window.posePrediction = names_and_scores&#xD;};&#xD;&#xD;const make_pose_prediction = (pose) =&gt; {&#xD;   poseModel.predict(pose.posenetOutput).then(report_predictionsPose);&#xD;} &#xD;&#xD;// Have to estimate the pose and then run it through the teachable machine&#xD;window.poseModel.estimatePose(videoCapture.contents).then(make_pose_prediction);&#xD;     </l></block><list><block s="reportVideo"><l><option>snap</option></l><l>Stage</l></block></list></block><block s="doSetVar"><l>posePredictionJS</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>return window.posePrediction</l></block><list></list></block></block><block s="doSetVar"><l>posePredictionList</l><block s="reportTextSplit"><block s="reportJoinWords"><list><block var="posePredictionJS"/></list></block><l>,</l></block></block><block s="doSetVar"><l>PoseModelTable</l><block s="reportReshape"><block var="posePredictionList"/><list><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="posePredictionList"/></block><l>2</l></block><l>2</l></list></block></block><block s="doSetVar"><l>PoseModelPrediction</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>2</l><l/></block></autolambda><list></list></block><block var="PoseModelTable"/></block></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="327"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="328"></list></costumes><sounds><list struct="atomic" id="329"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="334"><costumes><list struct="atomic" id="335"></list></costumes><sounds><list struct="atomic" id="336"></list></sounds><blocks></blocks><variables></variables><scripts><script x="45" y="33.166666666666686"><block s="receiveKey"><l><option>i</option></l><list></list></block><block s="doSetVar"><l>ImageModelURL</l><l></l></block><custom-block s="Load Image Libraries"></custom-block><custom-block s="Load Image Model %txt"><block var="ImageModelURL"/></custom-block></script><script x="50" y="165"><block s="receiveKey"><l><option>a</option></l><list></list></block><block s="doSetVar"><l>AudioModelURL</l><l></l></block><custom-block s="Load Audio Libraries"></custom-block><custom-block s="Load Audio Model %txt"><block var="AudioModelURL"/></custom-block></script><script x="63" y="343.1666666666667"><block s="receiveKey"><l><option>p</option></l><list></list></block><block s="doSetVar"><l>PoseModelURL</l><l></l></block><custom-block s="Load Pose Libraries"></custom-block><custom-block s="Load Pose Model %txt"><block var="PoseModelURL"/></custom-block></script><script x="355" y="345.1666666666667"><block s="receiveKey"><l><option>2</option></l><list></list></block><block s="doUntil"><block s="reportKeyPressed"><l><option>x</option></l></block><script><custom-block s="Pose Model Predict"></custom-block></script></block></script><script x="352" y="181.16666666666669"><block s="receiveKey"><l><option>1</option></l><list></list></block><custom-block s="Audio Model Predict"><comment w="151" collapsed="false">repeat until x pressed is built into this block.</comment></custom-block></script><script x="346" y="32.166666666666686"><block s="receiveKey"><l><option>0</option></l><list></list></block><block s="doUntil"><block s="reportKeyPressed"><l><option>x</option></l></block><script><custom-block s="Image Model Predict"></custom-block></script></block></script></scripts></sprite><watcher var="ImageModelURL" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="ImageModelTable" style="normal" x="10" y="31.000001999999995" color="243,118,29"/><watcher var="ImageModelPrediction" style="normal" x="10" y="52.00000399999999" color="243,118,29" hidden="true"/><watcher var="AudioModelURL" style="normal" x="10" y="73.00000599999998" color="243,118,29" hidden="true"/><watcher var="AudioPrediction" style="normal" x="10" y="94.00000799999998" color="243,118,29" hidden="true"/><watcher var="PoseModelURL" style="normal" x="10" y="115.00000999999997" color="243,118,29" hidden="true"/><watcher var="PoseModelPrediction" style="normal" x="10" y="157.00001399999996" color="243,118,29" hidden="true"/><watcher var="PoseModelTable" style="normal" x="267" y="34.00001199999997" color="243,118,29"/><watcher var="AudioPredictionTable" style="normal" x="18" y="201.00000999999997" color="243,118,29"/></sprites></stage><variables><variable name="ImageModelURL"><l>0</l></variable><variable name="ImageModelTable"><l>0</l></variable><variable name="ImageModelPrediction"><l>0</l></variable><variable name="AudioModelURL"><l>0</l></variable><variable name="AudioPrediction"><l>0</l></variable><variable name="AudioPredictionTable"><l>0</l></variable><variable name="PoseModelURL"><l>0</l></variable><variable name="PoseModelTable"><l>0</l></variable><variable name="PoseModelPrediction"><l>0</l></variable></variables></scene></scenes></project><media name="MachineLearningProject" app="Snap! 7, https://snap.berkeley.edu" version="2"></media></snapdata>