blob: bce526f17bc9f8325d3c4a3e011c05f8dd261003 [file] [log] [blame] [edit]
// Copyright 2025 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// End-to-end task 2: Speech recognition.
// Based on the example https://huggingface.co/Xenova/whisper-tiny.en
// Convert audio inputs first with `convert-audio.mjs`.
globalThis.initPipeline = async function(pipeline) {
return await pipeline(
'automatic-speech-recognition',
'Xenova/whisper-tiny.en',
// Use quantized model because of smaller weights.
{ dtype: 'q8' }
);
}
globalThis.doTask = async function(pipeline, inputFileBuffer) {
const input = new Float32Array(inputFileBuffer);
const output = await pipeline(input);
return output.text.trim();
}
globalThis.validate = function(output) {
if (output !== 'Ask not what your country can do for you.') {
throw new Error('Wrong output, got: ' + output);
}
}