OpenAI Whisper のコマンドオプション

## あらすじ
以前は、[GPU非搭載 CPU上でOpenAIのWhisperを試して音声データを文字起こししてみた。](https://qiita.com/szktmyk38f/items/9340122aa41a02d319b4)で
Whisperの利用方法を説明しました。
今後社内で使っていくことが決まりましたので、コマンドオプションを纏めておきます。

## 使用例
```bash
$ whisper audio.m4a <オプション>
```

## オプション
| オプション                                                                | 内容                                                                                                                                                           | 
| ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | 
| -h --help                                                                 | ヘルプメッセージを表示する。                                                                                                                                   | 
| --model {tiny.en,tiny,base.en,base,small.en,small,medium.en,medium,large} | 使用するWhisperのモデル名（デフォルト値：small）                                                                                                               | 
| --model_dir MODEL_DIR                                                     | モデルファイルを保存するパス。デフォルトでは ~/.cache/whisper を使用する (デフォルト: none)                                                                    | 
| --device DEVICE                                                           | PyTorch の推論に使うデバイス (デフォルト: cpu)                                                                                                                 | 
| --output_dir OUTPUT_DIR<br>-o OUTPUT_DIR                                  | 出力を保存するディレクトリ (デフォルト: .)                                                                                                                     | 
| --verbose VERBOSE                                                         | 進捗状況やデバッグメッセージを出力するかどうか（デフォルト：True）                                                                                             | 
| --task {transcribe,translate}                                             | X->Xの音声認識('transcribe')とX->英語の翻訳('translate')のどちらを行うか(デフォルト:transcribe)                                                                | 
| --language {ja, Japanese, en, English} [^1]                                    | 音声で話される言語、言語検出を行う場合は None を指定する（デフォルト：None）                                                                                   | 
| --temperature TEMPERATURE                                                 | サンプリングに使用する温度（デフォルト：0）                                                                                                                    | 
| --best_of BEST_OF                                                         | 温度がゼロでないサンプリング時の候補数 (デフォルト: 5)                                                                                                         | 
| --beam_size BEAM_SIZE                                                     | ビームサーチにおけるビームの数，温度が0の場合のみ有効（デフォルト：5）                                                                                         | 
| --patience PATIENCE                                                       | ビームデコードに使用するオプションの忍耐値、https://arxiv.org/abs/2204.05424 、デフォルト（1.0）は従来のビームサーチと同等（デフォルト：None）                  | 
| --length_penalty LENGTH_PENALTY                                           | https://arxiv.org/abs/1609.08144 と同様に、オプションのトークン長ペナルティ係数 (alpha)、デフォルトでは単純長正規化を使用 (デフォルト: None)                   | 
| --suppress_tokens SUPPRESS_TOKENS                                         | カンマで区切られた、サンプリング時に抑止するトークンIDのリスト； `-1`は一般的な句読点を除くほとんどの特殊文字を抑止する（デフォルト：-1）                      | 
| --initial_prompt INITIAL_PROMPT                                           | 初期ウィンドウのプロンプトとして提供するオプションのテキスト。(デフォルト: なし)                                                                               | 
| --condition_on_previous_text CONDITION_ON_PREVIOUS_TEXT                   | もしTrueなら、次のウィンドウのプロンプトとしてモデルの前の出力を提供する (デフォルト: True)                                                                    | 
| --fp16 FP16                                                               | fp16で推論を行うかどうか；デフォルトではTrue（デフォルト：True）                                                                                               | 
| --temperature_increment_on_fallback TEMPERATURE_INCREMENT_ON_FALLBACK     | デコードが以下の閾値のいずれかを満たさなかった場合に、フォールバック時に上昇させる温度（デフォルト：0.2）                                                      | 
| --compression_ratio_threshold COMPRESSION_RATIO_THRESHOLD                 | gzip圧縮率がこの値より大きい場合、デコードに失敗したものとして扱う (デフォルト: 2.4)                                                                           | 
| --logprob_threshold LOGPROB_THRESHOLD                                     | 平均対数確率がこの値より低い場合、デコードに失敗したものとして扱う (デフォルト: -1.0)                                                                          | 
|  --no_speech_threshold NO_SPEECH_THRESHOLD                                | <&#124;nospeech&#124;> トークンの確率がこの値より高く、かつ `logprob_threshold` が原因でデコードに失敗した場合、そのセグメントを無音とみなす (デフォルト: 0.6) | 
| --threads THREADS                                                         | CPU の推論に torch が使用するスレッド数 `MKL_NUM_THREADS/OMP_NUM_THREADS` に優先する (デフォルト: 0).                                                           | 

## まとめ
一般利用では、`--language`と`--model`オプションを指定すれば問題ないかと思われます。

## 参考

https://github.com/openai/whisper


[^1]: --language {af,am,ar,as,az,ba,be,bg,bn,bo,br,bs,ca,cs,cy,da,de,el,en,es,et,eu,fa,fi,fo,fr,gl,gu,ha,haw,hi,hr,ht,hu,hy,id,is,it,iw,ja,jw,ka,kk,km,kn,ko,la,lb,ln,lo,lt,lv,mg,mi,mk,ml,mn,mr,ms,mt,my,ne,nl,nn,no,oc,pa,pl,ps,pt,ro,ru,sa,sd,si,sk,sl,sn,so,sq,sr,su,sv,sw,ta,te,tg,th,tk,tl,tr,tt,uk,ur,uz,vi,yi,yo,zh,Afrikaans,Albanian,Amharic,Arabic,Armenian,Assamese,Azerbaijani,Bashkir,Basque,Belarusian,Bengali,Bosnian,Breton,Bulgarian,Burmese,Castilian,Catalan,Chinese,Croatian,Czech,Danish,Dutch,English,Estonian,Faroese,Finnish,Flemish,French,Galician,Georgian,German,Greek,Gujarati,Haitian,Haitian Creole,Hausa,Hawaiian,Hebrew,Hindi,Hungarian,Icelandic,Indonesian,Italian,Japanese,Javanese,Kannada,Kazakh,Khmer,Korean,Lao,Latin,Latvian,Letzeburgesch,Lingala,Lithuanian,Luxembourgish,Macedonian,Malagasy,Malay,Malayalam,Maltese,Maori,Marathi,Moldavian,Moldovan,Mongolian,Myanmar,Nepali,Norwegian,Nynorsk,Occitan,Panjabi,Pashto,Persian,Polish,Portuguese,Punjabi,Pushto,Romanian,Russian,Sanskrit,Serbian,Shona,Sindhi,Sinhala,Sinhalese,Slovak,Slovenian,Somali,Spanish,Sundanese,Swahili,Swedish,Tagalog,Tajik,Tamil,Tatar,Telugu,Thai,Tibetan,Turkish,Turkmen,Ukrainian,Urdu,Uzbek,Valencian,Vietnamese,Welsh,Yiddish,Yoruba}