| // 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); |
| } |
| } |