Avoir Xcode installé.

Usage

./build/bin/whisper-cli -h

usage: ./build/bin/whisper-cli [options] file0 file1 …
supported audio formats: flac, mp3, ogg, wav

options:  
-h, --help [default] show this help message and exit  
-t N, --threads N [4 ] number of threads to use during computation  
-p N, --processors N [1 ] number of processors to use during computation  
-ot N, --offset-t N [0 ] time offset in milliseconds  
-on N, --offset-n N [0 ] segment index offset  
-d N, --duration N [0 ] duration of audio to process in milliseconds  
-mc N, --max-context N [-1 ] maximum number of text context tokens to store  
-ml N, --max-len N [0 ] maximum segment length in characters  
-sow, --split-on-word [false ] split on word rather than on token  
-bo N, --best-of N [5 ] number of best candidates to keep  
-bs N, --beam-size N [5 ] beam size for beam search  
-ac N, --audio-ctx N [0 ] audio context size (0 - all)  
-wt N, --word-thold N [0.01 ] word timestamp probability threshold  
-et N, --entropy-thold N [2.40 ] entropy threshold for decoder fail  
-lpt N, --logprob-thold N [-1.00 ] log probability threshold for decoder fail  
-nth N, --no-speech-thold N [0.60 ] no speech threshold  
-tp, --temperature N [0.00 ] The sampling temperature, between 0 and 1  
-tpi, --temperature-inc N [0.20 ] The increment of temperature, between 0 and 1  
-debug, --debug-mode [false ] enable debug mode (eg. dump log_mel)  
-tr, --translate [false ] translate from source language to english  
-di, --diarize [false ] stereo audio diarization  
-tdrz, --tinydiarize [false ] enable tinydiarize (requires a tdrz model)  
-nf, --no-fallback [false ] do not use temperature fallback while decoding  
-otxt, --output-txt [false ] output result in a text file  
-ovtt, --output-vtt [false ] output result in a vtt file  
-osrt, --output-srt [false ] output result in a srt file  
-olrc, --output-lrc [false ] output result in a lrc file  
-owts, --output-words [false ] output script for generating karaoke video  
-fp, --font-path [/System/Library/Fonts/Supplemental/Courier New Bold.ttf] path to a monospace font for karaoke video  
-ocsv, --output-csv [false ] output result in a CSV file  
-oj, --output-json [false ] output result in a JSON file  
-ojf, --output-json-full [false ] include more information in the JSON file  
-of FNAME, --output-file FNAME [ ] output file path (without file extension)  
-np, --no-prints [false ] do not print anything other than the results  
-ps, --print-special [false ] print special tokens  
-pc, --print-colors [false ] print colors  
-pp, --print-progress [false ] print progress  
-nt, --no-timestamps [false ] do not print timestamps  
-l LANG, --language LANG [en ] spoken language ('auto' for auto-detect)  
-dl, --detect-language [false ] exit after automatically detecting language  
--prompt PROMPT [ ] initial prompt (max n_text_ctx/2 tokens)  
-m FNAME, --model FNAME [models/ggml-base.en.bin] model path  
-f FNAME, --file FNAME [ ] input audio file path  
-oved D, --ov-e-device DNAME [CPU ] the OpenVINO device used for encode inference  
-dtw MODEL --dtw MODEL [ ] compute token-level timestamps  
-ls, --log-score [false ] log best decoder scores of tokens  
-ng, --no-gpu [false ] disable GPU  
-fa, --flash-attn [false ] flash attention  
-sns, --suppress-nst [false ] suppress non-speech tokens  
--suppress-regex REGEX [ ] regular expression matching tokens to suppress  
--grammar GRAMMAR [ ] GBNF grammar to guide decoding  
--grammar-rule RULE [ ] top-level GBNF grammar rule name  
--grammar-penalty N [100.0 ] scales down logits of nongrammar tokens

https://github.com/ggml-org/whisper.cpp/tree/master/examples/cli

Installation

Les modéles

https://huggingface.co/ggerganov/whisper.cpp/tree/main

Core ML support

On Apple Silicon devices, the Encoder inference can be executed on the Apple Neural Engine (ANE) via Core ML. This can result in significant speed-up - more than x3 faster compared with CPU-only execution. Here are the instructions for generating a Core ML model and using it with whisper.cpp:

  • Install Python dependencies needed for the creation of the Core ML model: pip install ane_transformers pip install openai-whisper pip install coremltools
  • To ensure coremltools operates correctly, please confirm that Xcode is installed and execute xcode-select --install to install the command-line tools.
  • Python 3.11 is recommended.
  • MacOS Sonoma (version 14) or newer is recommended, as older versions of MacOS might experience issues with transcription hallucination.
  • [OPTIONAL] It is recommended to utilize a Python version management system, such as Miniconda for this step:
    • To create an environment, use: conda create -n py311-whisper python=3.11 -y
    • To activate the environment, use: conda activate py311-whisper

Generate a Core ML model. For example, to generate a base.en model, use:

./models/generate-coreml-model.sh base.en

This will generate the folder models/ggml-base.en-encoder.mlmodelc

Build whisper.cpp with Core ML support:

# using CMake
cmake -B build -DWHISPER_COREML=1
cmake --build build -j --config Release

Run the examples as usual. For example:

$ ./build/bin/whisper-cli -m models/ggml-base.en.bin -f samples/jfk.wav

...

whisper_init_state: loading Core ML model from 'models/ggml-base.en-encoder.mlmodelc'
whisper_init_state: first run on a device may take a while ...
whisper_init_state: Core ML model loaded

system_info: n_threads = 4 / 10 | AVX = 0 | AVX2 = 0 | AVX512 = 0 | FMA = 0 | NEON = 1 | ARM_FMA = 1 | F16C = 0 | FP16_VA = 1 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 0 | VSX = 0 | COREML = 1 |

...
  • The first run on a device is slow, since the ANE service compiles the Core ML model to some device-specific format. Next runs are faster.

For more information about the Core ML implementation please refer to PR #566.

https://github.com/ggml-org/whisper.cpp