|  | --- | 
					
						
						|  | tags: | 
					
						
						|  | - transformers.js | 
					
						
						|  | --- | 
					
						
						|  |  | 
					
						
						|  | Code to generate: | 
					
						
						|  |  | 
					
						
						|  | ```py | 
					
						
						|  | from transformers import WhisperForConditionalGeneration, AutoProcessor | 
					
						
						|  |  | 
					
						
						|  | new_config_values = dict( | 
					
						
						|  | d_model = 16, | 
					
						
						|  | decoder_attention_heads = 4, | 
					
						
						|  | decoder_layers = 1, | 
					
						
						|  | encoder_attention_heads = 4, | 
					
						
						|  | encoder_layers = 1, | 
					
						
						|  | num_hidden_layers = 1, | 
					
						
						|  |  | 
					
						
						|  | ignore_mismatched_sizes=True, | 
					
						
						|  | ) | 
					
						
						|  | original_model = WhisperForConditionalGeneration.from_pretrained('openai/whisper-tiny', **new_config_values) | 
					
						
						|  | original_model.save_pretrained('converted') | 
					
						
						|  |  | 
					
						
						|  | original_processor = AutoProcessor.from_pretrained('openai/whisper-tiny') | 
					
						
						|  | original_processor.save_pretrained('converted') | 
					
						
						|  | ``` | 
					
						
						|  |  | 
					
						
						|  | Followed by: | 
					
						
						|  | ```sh | 
					
						
						|  | $ mkdir -p ./converted/onnx | 
					
						
						|  | $ optimum-cli export onnx -m ./converted ./converted/onnx --task automatic-speech-recognition-with-past | 
					
						
						|  | $ find ./converted/onnx -type f ! -name "*.onnx" -delete | 
					
						
						|  | ``` | 
					
						
						|  |  | 
					
						
						|  | ## Usage (Transformers.js) | 
					
						
						|  |  | 
					
						
						|  | If you haven't already, you can install the [Transformers.js](https://huggingface.co/docs/transformers.js) JavaScript library from [NPM](https://www.npmjs.com/package/@huggingface/transformers) using: | 
					
						
						|  | ```bash | 
					
						
						|  | npm i @huggingface/transformers | 
					
						
						|  | ``` | 
					
						
						|  |  | 
					
						
						|  | **Example:** Transcribe audio from a URL. | 
					
						
						|  |  | 
					
						
						|  | ```js | 
					
						
						|  | import { pipeline } from '@huggingface/transformers'; | 
					
						
						|  |  | 
					
						
						|  | const transcriber = await pipeline('automatic-speech-recognition', 'Xenova/tiny-random-WhisperForConditionalGeneration'); | 
					
						
						|  | const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav'; | 
					
						
						|  | const output = await transcriber(url); | 
					
						
						|  | ``` | 
					
						
						|  |  | 
					
						
						|  | 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`). |