--- library_name: "transformers.js" --- # Whisper [openai/whisper-tiny.en](https://huggingface.co/openai/whisper-tiny.en) with ONNX weights to be compatible with [Transformers.js](https://huggingface.co/docs/transformers.js). ## Usage **Example:** Transcribe English. ```js // npm i @xenova/transformers import { pipeline } from '@xenova/transformers'; let url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav'; // Create translation pipeline let transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-tiny.en'); let output = await transcriber(url); // { text: " And so my fellow Americans ask not what your country can do for you, ask what you can do for your country." } ``` **Example:** Transcribe English w/ timestamps. ```js // npm i @xenova/transformers import { pipeline } from '@xenova/transformers'; let url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav'; // Create translation pipeline let transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-tiny.en'); let output = await transcriber(url, { return_timestamps: true }); // { // text: " And so my fellow Americans ask not what your country can do for you, ask what you can do for your country." // chunks: [ // { timestamp: [0, 8], text: " And so my fellow Americans ask not what your country can do for you" } // { timestamp: [8, 11], text: " ask what you can do for your country." } // ] // } ``` **Example:** Transcribe English w/ word-level timestamps. ```js // npm i @xenova/transformers import { pipeline } from '@xenova/transformers'; let url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav'; // Create translation pipeline let transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-tiny.en'); let output = await transcriber(url, { return_timestamps: 'word' }); // { // "text": " And so my fellow Americans ask not what your country can do for you ask what you can do for your country.", // "chunks": [ // { "text": " And", "timestamp": [0, 0.78] }, // { "text": " so", "timestamp": [0.78, 1.06] }, // { "text": " my", "timestamp": [1.06, 1.46] }, // ... // { "text": " for", "timestamp": [9.72, 9.92] }, // { "text": " your", "timestamp": [9.92, 10.22] }, // { "text": " country.", "timestamp": [10.22, 13.5] } // ] // } ``` --- Note: Having a separate repo for ONNX weights is intended to be a temporary solution until WebML gains more traction. If you would like to make your models web-ready, we recommend converting to ONNX using [🤗 Optimum](https://huggingface.co/docs/optimum/index) and structuring your repo like this one (with ONNX weights located in a subfolder named `onnx`).