🏡 index : cold-air-networks/mirror-jetstream.git

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