[文字起こし]faster-whisperのパラメータを調べてみました

# はじめに

精度の高い文字起こしを行うために[faster-whisper](https://github.com/guillaumekln/faster-whisper)のパラメータについて調べました。

関連
[[ローカル環境] faster-whisper を利用してリアルタイム文字起こしに挑戦](https://qiita.com/reriiasu/items/920227cf604dfb8b7949)
[[ローカル環境] faster-whisper を利用してリアルタイム文字起こしに挑戦2](https://qiita.com/reriiasu/items/36b992b9d74b700728af)

2023 年 06 月 14 日

## WhisperModelクラス

| 引数名 | 説明 | データ型 | デフォルト値 | 選択肢 | 必須 |
| --- | --- | --- | --- | --- | --- | 
| model_size_or_path | モデルのサイズまたは変換済みモデルのディレクトリパスを指定します。この値はモデルがHugging Faceモデルハブからダウンロードされる場合にモデルの名前としても使用されます。 | str | - | - | Yes |
| device | モデルが実行されるデバイスを指定します。'auto'を選択した場合、利用可能なデバイス（CPUまたはCUDA対応GPU）が自動的に選択されます。 | str | auto | auto<br>cpu<br>cuda | No |
| device_index | 使用するデバイスID。複数のGPUにモデルをロードする場合はIDのリストを渡す。（例：[0, 1, 2, 3]） | Union[int, List[int]] | 0 | - | No |
| compute_type | 計算に使用するタイプを指定します。refs:https://opennmt.net/CTranslate2/quantization.html | str | default | default<br>auto<br>int8<br>int8_float16<br>int16<br>float16<br>float32 | No |
| cpu_threads | CPU上で実行する際に使用するスレッドの数を指定します。0以外の値を指定すると、OMP_NUM_THREADS環境変数がオーバーライドされます。 | int | 0 | - | No |
| num_workers | transcribe()が複数のPythonスレッドから呼び出される場合、複数のワーカーを利用することで並列処理が可能となる | int | 1 | - | No |
| download_root | モデルを保存するディレクトリ。設定されていない場合、モデルは標準のHugging Faceキャッシュディレクトリに保存される。 | Optional[str] | None | - | No |
| local_files_only | Trueの場合、ファイルのダウンロードを回避し、存在するローカルキャッシュファイルへのパスを返す | bool | False | - | No |

## transcribeメソッド

| 引数名 | 説明 | データ型 | デフォルト値 | 選択肢 | 必須 |
|--------|------|--------|-----------|-------|------|
| audio | 入力ファイルへのパス、またはファイルライクオブジェクト、あるいはオーディオ波形 | Union[str, BinaryIO, np.ndarray] | なし | - | Yes |
| language | オーディオで話されている言語。言語コード（"en"や"fr"など）を指定する。指定しない場合、最初の30秒のオーディオから言語を検出する。refs:https://github.com/openai/whisper/blob/main/whisper/tokenizer.pyquantization.html | Optional[str] | None | - | No |
| task | 実行するタスク　translateを選ぶと英訳 | str | transcribe | transcribe, translate | No |
| beam_size | ビームサーチのパラメータ。一度にbeam_sizeの探索を行い一番良い単語の繋ぎを選択する。 | int | 5 | - | No |
| best_of | temperatureが0でないときにサンプリングする候補の数。 | int | 5 | - | No |
| patience | ビームサーチのパラメータ。忍耐度係数 1.0の場合最良の結果が見つかると探索を打ち切る。0.5の場合は50%で探索を打ち切る。 | float | 1 | - | No |
| length_penalty | ビームサーチのパラメータ。生成される系列の長さに罰則を設ける。1より小さいと長い系列が選好されやすくなる。 | float | 1 | - | No |
| temperature | 信頼度。0に近いほど確実な選択を行い、0から離れると多様な選択肢を行う。`compression_ratio_threshold`または`log_prob_threshold`によって失敗したときに順次使用します。 | Union[float, List[float], Tuple[float, ...]] | [0.0, 0.2, 0.4, 0.6, 0.8, 1.0] | - | No |
| compression_ratio_threshold |gzip 圧縮率がこの値より高い場合は、デコードした文字列が冗長であるため失敗として扱います。| Optional[float] | 2.4 | - | No |
| log_prob_threshold | 平均ログ確率がこの値より低い場合は、デコードを失敗として扱います。 | Optional[float] | -1.0 | - | No |
| no_speech_threshold | トークンの確率がこの値よりも高く、'logprob_threshold' が原因でデコードが失敗した場合は、セグメントを無音と見なします。 | Optional[float] | 0.6 | - | No |
| condition_on_previous_text | Trueの場合、モデルの前の出力を次のウィンドウのプロンプトとして指定し一貫した出力が可能となる。Falseにするとテキストに一貫性がなくなる可能性がありますが、モデルが障害ループに陥りにくくなります | bool | True | - | No |
| initial_prompt | モデルの初期のウィンドウのプロンプトとして提供するオプションのテキスト　例：医学 | Optional[str] | None | - | No |
| prefix | 音声の初期のウィンドウのプレフィックスとして提供するオプションのテキスト | Optional[str] | None | - | No |
| suppress_blank | サンプリングの始まりの空白出力を抑制する | bool | True | - | No |
| suppress_tokens | 抑制するトークンIDのリスト。-1はモデルconfig.jsonファイルで定義されたデフォルトのセットのシンボルを抑制する。 | Optional[List[int]] | [-1] | - | No |
| without_timestamps | True:テキストのみを出力。False:タイムスタンプを含むテキストを出力。 | bool | False | - | No |
| max_initial_timestamp | 音声の初期タイムスタンプがこの値よりも遅くならないことを指定します。音声の最初の部分が無音または不要な音の場合にタイムスタンプをつけることを制限できます。 | float | 1.0 | - | No |
| word_timestamps | TRUE:各単語に対応するタイムスタンプを生成する。 | bool | False | - | No |
| prepend_punctuations | word_timestampsがTrueの場合、これらの句読点記号を次の単語とマージする | str | "\"'“¿([{-" | - | No |
| append_punctuations | word_timestampsがTrueの場合、これらの句読点記号を前の単語とマージする | str | "\"'.。,，!！?？:：”)]}、" | - | No |
| vad_filter | 音声活動検出（VAD）を有効にして、音声のないオーディオの部分をフィルタリングする。このステップはSilero VADモデルを使用しています | bool | False | - | No |
| vad_parameters | Silero VADのパラメータ VadOptions クラスインスタンスを使用するか、または同等の辞書型で指定します。 | Optional[Union[dict, VadOptions]] | None | - | No |