Arsala Grey
new sounds to classify
459c202
const { createApp, ref, onMounted, computed, watch } = Vue;
import { HfInference } from "https://cdn.skypack.dev/@huggingface/inference@latest";
const app = createApp({
setup() {
const token = ref(localStorage.getItem("token") || "");
const models = ref(["MIT/ast-finetuned-audioset-10-10-0.4593"]);
const selectedAudio = ref("airplane-landing.mp3");
const selectedModel = ref("");
const loading = ref(false);
const didErrorOccur = ref(false)
const audioFiles = ref(['airplane-landing.mp3',
'alien-spaceship.mp3',
'hard_shoes.mp3',
'labrador-barking.mp3',
'old-car-engine.mp3',
'tolling-bell.mp3']);
const classificationLabels = ref([])
const statusMessage = computed(() => {
if (loading.value) return "Loading..."
return "Ready"
})
const run = async () => {
reset()
loading.value = true;
try {
const hf = new HfInference(token.value);
const audioData = await (await fetch(`sounds/${selectedAudio.value}`)).arrayBuffer()
const result = await hf.audioClassification({
data: audioData,
model: selectedModel.value
});
console.log(result)
classificationLabels.value = result
loading.value = false;
} catch (e) {
console.error(e);
loading.value = false;
didErrorOccur.value = true
}
};
const reset = () => {
didErrorOccur.value = false
loading.value = false
classificationLabels.value = []
}
watch(selectedAudio, () => {
reset()
})
watch(selectedModel, () => {
reset()
})
onMounted(async () => {
const localStorageToken = localStorage.getItem("token")
if (localStorageToken) {
token.value = localStorageToken;
}
selectedModel.value = models.value[0]
});
return {
token,
run,
audioFiles,
selectedAudio,
models,
selectedModel,
loading,
statusMessage,
classificationLabels
};
},
});
app.mount("#app");