Stabilizing Timestamps for Whisper ( = stable-ts ) 옵션 설명서
* 커맨드라인에서 사용가능한 옵션의 목록. 너무 길어서 잘랐다.
* 번역 및 표 변환은 ChatGPT가 했으므로 정확도는 보장하지 않음. 참고로만 볼 것.
* 한글사용설명서
* 실제 사용가능한 간단한 설치법 및 예제 + 구동후기
| 옵션이름 | 설명 | 기본값 |
|---|---|---|
| -h, --help | 도움말 메시지를 표시하고 종료 | |
| --output OUTPUT [OUTPUT ...], -o OUTPUT [OUTPUT ...] | 출력 파일 경로(들). 지정하지 않으면 자동으로 출력 파일이 [output_dir]에 저장되거나 지정되지 않은 경우 현재 디렉토리에 저장됩니다. | None |
| --model, -m | 사용할 Whisper 모델의 이름 | base |
| --model_dir MODEL_DIR | 모델 파일을 저장할 경로. 기본적으로 ~/.cache/whisper를 사용합니다. | None |
| --device DEVICE | PyTorch 추론에 사용할 장치 | cuda |
| --cpu_preload CPU_PRELOAD | 모델을 먼저 CPU 메모리에 로드한 다음 지정된 장치로 모델을 이동시키는지 여부. 이렇게하면 모델 로드시 GPU 메모리 사용량이 감소합니다. | True |
| --output_dir OUTPUT_DIR, -d OUTPUT_DIR | 출력을 저장할 디렉토리. [output]에 부모가 없는 경로가 있으면 해당 출력은 이 디렉토리에 저장됩니다. | None |
| --output_format {vtt,json,srt,tsv,ass}, -f {vtt,json,srt,tsv,ass} | 출력 파일의 형식 | json |
| --verbose {0,1,2}, -v {0,1,2} | 해독 중인 텍스트를 콘솔에 표시할지 여부. 2이면 모든 세부 정보가 표시되고, 1이면 진행 막대가 표시되고, 0이면 아무것도 표시되지 않습니다. | 1 |
| --dynamic_quantization, -dq | 메모리 사용량을 줄이고 추론 속도를 늘리기 위해 모델에 동적 양자화를 적용할지 여부. CPU 전용입니다. 참고: 'large'보다 작은 모델의 경우 오버헤드로 인해 추론 속도가 느려질 수 있습니다. | False |
| --task {transcribe,translate} | X->X 음성 인식('transcribe') 또는 X->영어 번역('translate')을 수행할지 여부 | transcribe |
| --language | 오디오에서 사용되는 언어, 언어 감지를 수행하려면 None으로 지정 | None |
| --prepend_punctuations PREPEND_PUNCTUATIONS, -pp PREPEND_PUNCTUATIONS | 다음 단어 앞에 추가 할 구두점 | "'“¿([{- |
| --append_punctuations APPEND_PUNCTUATIONS, -ap APPEND_PUNCTUATIONS | 이전 단어 뒤에 추가 할 구두점 | "'.。,,!!??::”)]}、 |
| --gap_padding GAP_PADDING | 각 세그먼트에 대해 단어의 타이밍 정렬을 위해 앞부분에 적용 할 패딩. 모델이 첫 번째 발화 이전의 타임스탬프를 예측하는 확률을 낮출 수 있도록합니다. | ... |
| --word_timestamps WORD_TIMESTAMPS | 교차 어텐션 패턴과 동적 시간 왜곡을 사용하여 단어 수준의 타임스탬프를 추출하고 각 세그먼트의 각 단어에 대한 타임스탬프를 포함합니다. 비활성화하면 세그먼트가 제대로 분할/병합되지 않습니다. | True |
| --regroup REGROUP | 모든 단어를 더 자연스러운 경계로 구성할지 여부. 사용자 지정을 위해 문자열을 지정하면 됩니다. [word_timestamps]=False이면 무시됩니다. | True |
| --ts_num TS_NUM | 평균 타임스탬프를 찾기 위해 수행 할 추가 추론 횟수 | 0 |
| --ts_noise TS_NOISE | [ts_num]을 수행하기 위해 audio_features에 추가 할 노이즈 비율 | 0.1 |
| --suppress_silence SUPPRESS_SILENCE | 세그먼트 수준에서 음성이 없는 경우 타임스탬프를 억제할지 여부, [suppress_word_ts]=True이면 단어 수준에서도 억제됩니다. | True |
| --suppress_word_ts SUPPRESS_WORD_TS | 단어 수준에서 음성이 없는 경우 타임스탬프를 억제할지 여부, [suppress_silence]=False이면 무시됩니다. | True |
| --suppress_ts_tokens SUPPRESS_TS_TOKENS | 추론 중에 음성이 없는 타임스탬프 토큰을 억제하는 데 사용할지 여부; 경우에 따라 단어 정확도를 높이지만 전사의 '원문성'을 낮출 수 있습니다. [suppress_silence]=False이면 무시됩니다. | True |
| 옵션이름 | 설명 | 기본값 |
|---|---|---|
| --q_levels Q_LEVELS | 타임스탬프 억제 마스크 생성을 위한 양자화 레벨. 음성을 조용한 것으로 표시하기 위한 음량 임계값 역할을 합니다. 수가 적을수록 음성을 조용한 것으로 표시하기 위한 음량 임계값이 높아집니다. | 20 |
| --k_size K_SIZE | 억제 마스크를 생성하기 위해 웨이브폼에 대한 평균 풀링에 사용되는 커널 크기. 일반적으로 5 또는 3을 권장하며, 큰 크기일수록 음성의 조용한 부분을 감지하는 정도가 줄어듭니다. | 5 |
| --time_scale TIME_SCALE | 추론을 위해 오디오 지속 시간을 조절하는 비율. 1.0보다 크면 오디오가 "느려지고", 1.0보다 작으면 오디오가 "빨라집니다. 1.0은 스케일링이 없음을 의미합니다. | None |
| --vad VAD | Silero VAD를 사용하여 타임스탬프 억제 마스크를 생성할지 여부. Silero VAD는 PyTorch 1.12.0 이상이 필요합니다. 공식 저장소: https://github.com/snakers4/silero-vad | False |
| --vad_threshold VAD_THRESHOLD | Silero VAD에서 음성을 감지하기 위한 임계값. (기본값: 0.35) 낮은 임계값은 음성 감지에 대한 오검출을 줄입니다. | 0.35 |
| --vad_onnx VAD_ONNX | Silero VAD에서 ONNX를 사용할지 여부 | False |
| --min_word_dur MIN_WORD_DUR | 단어의 지속 시간이 이 값을 초과하는 경우에만 타임스탬프 억제를 허용합니다. | 0.1 |
| --max_chars MAX_CHARS | 각 세그먼트에 허용되는 최대 문자 수 | None |
| --max_words MAX_WORDS | 각 세그먼트에 허용되는 최대 단어 수 | None |
| --demucs DEMUCS | 오디오 트랙을 Demucs를 사용하여 보컬을 분리/노이즈 제거할지 여부. Demucs 공식 저장소: https://github.com/facebookresearch/demucs | False |
| --demucs_output DEMUCS_OUTPUT [DEMUCS_OUTPUT ...] | Demucs에 의해 분리된 보컬을 WAV 파일로 저장할 경로 | None |
| --only_voice_freq, -ovf | 인간의 대부분의 음성이 포함되어 있는 200-5000Hz 사이의 소리만 사용할지 여부 | False |
| --strip STRIP | 출력의 각 세그먼트에서 텍스트 앞뒤의 공백을 제거할지 여부 | True |
| --tag TAG [TAG ...] | 단어의 예측된 시간SRT에 따라 속성을 변경하는 데 사용되는 태그 쌍. 기본값: '<font color="#00ff00">', '</font>' | None |
| --segment_level SEGMENT_LEVEL | 출력에서 세그먼트 수준의 타임스탬프를 사용할지 여부 | True |
| --word_level WORD_LEVEL | 출력에서 단어 수준의 타임스탬프를 사용할지 여부 | True |
| --reverse_text REVERSE_TEXT | 각 세그먼트의 텍스트 출력의 단어 순서를 반대로 할지 여부 | False |
| --font FONT | ASS 출력의 단어 폰트 | Arial |
| --font_size FONT_SIZE | ASS 출력의 단어 폰트 크기 | 48 |
| --karaoke KARAOKE | 카라오케 효과를 위해 점진적으로 하이라이트를 채우는지 여부 (ASS 출력 전용) | False |
| --temperature TEMPERATURE | 샘플링에 사용할 온도 | 0 |
| --best_of BEST_OF | 온도가 0이 아닌 경우 샘플링 할 때 후보의 수 | None |
| --beam_size BEAM_SIZE | 빔 서치에서의 빔 수. 온도가 0인 경우에만 적용됩니다. | None |
| --patience PATIENCE | 빔 디코딩에서 사용할 선택 기다림 값. https://arxiv.org/abs/2204.05424 참조 (기본값: 1.0) | None |
| --length_penalty LENGTH_PENALTY | 토큰 길이 패널티 계수. https://arxiv.org/abs/1609.08144 참조 (기본값: None) | None |
| --suppress_tokens SUPPRESS_TOKENS | 샘플링 중 억제할 토큰 ID의 쉼표로 구분 된 목록. '-1'은 일반적인 구두점을 제외한 대부분의 특수 문자를 억제합니다. | -1 |
| --initial_prompt INITIAL_PROMPT | 첫 번째 창에 대한 프롬프트로 제공할 선택적 텍스트 | None |
| --condition_on_previous_text CONDITION_ON_PREVIOUS_TEXT | True이면 모델의 이전 출력을 다음 창의 프롬프트로 제공합니다. 비활성화하면 텍스트가 창마다 일관되지 않을 수 있지만, 모델이 실패 루프에 갇히는 경향이 줄어듭니다. | True |
| --fp16 FP16 | fp16에서 추론을 수행할지 여부 | True |
| --temperature_increment_on_fallback TEMPERATURE_INCREMENT_ON_FALLBACK | 디코딩이 실패하면 감소에 대해 일어날 온도 증가 (기본값: 0.2) | 0.2 |
| --compression_ratio_threshold COMPRESSION_RATIO_THRESHOLD | gzip 압축 비율이이 값보다 높으면 디코딩을 실패로 처리합니다. | 2.4 |
| --logprob_threshold LOGPROB_THRESHOLD | 평균 로그 확률이이 값보다 낮으면 디코딩을 실패로 처리합니다. (기본값: -1.0) | -1.0 |
| --no_speech_threshold NO_SPEECH_THRESHOLD | 토큰의 확률이 이 값보다 높고 logprob_threshold로 인해 디코딩이 실패 한 경우, 세그먼트를 정적으로 간주합니다. | 0.6 |
| --threads THREADS | CPU 추론에 사용되는 스레드 수 (기본값: 0) | 0 |
| --mel_first | 청크 대신 전체 오디오 트랙을 로그-Mel 스펙트로그램으로 먼저 처리할지 여부 | False |
| --only_ffmpeg | URL에 대해 FFmpeg만 사용할지 여부 (yt-dlp 사용하지 않음) | False |
| --overwrite, -y | 모든 출력 파일을 덮어쓸지 여부 | False |
| --debug | 전체 입력/출력 쌍 및 변환/번역을 위해 사용된 모든 인수를 인쇄합니다. | False |
사용법:
stable-ts [-h] [--output OUTPUT [OUTPUT ...]]
[--model {tiny.en,tiny,base.en,base,small.en,small,medium.en,medium,large-v1,large-v2,large}]
[--model_dir MODEL_DIR] [--device DEVICE] [--cpu_preload CPU_PRELOAD] [--output_dir OUTPUT_DIR]
[--output_format {vtt,json,srt,tsv,ass}] [--verbose {0,1,2}] [--dynamic_quantization]
[--task {transcribe,translate}]
[--prepend_punctuations PREPEND_PUNCTUATIONS] [--append_punctuations APPEND_PUNCTUATIONS]
[--gap_padding GAP_PADDING] [--word_timestamps WORD_TIMESTAMPS]
[--regroup REGROUP] [--ts_num TS_NUM]
[--ts_noise TS_NOISE] [--suppress_silence SUPPRESS_SILENCE] [--suppress_word_ts SUPPRESS_WORD_TS]
[--suppress_ts_tokens SUPPRESS_TS_TOKENS] [--q_levels Q_LEVELS] [--k_size K_SIZE]
[--time_scale TIME_SCALE] [--vad VAD] [--vad_threshold VAD_THRESHOLD] [--vad_onnx VAD_ONNX]
[--min_word_dur MIN_WORD_DUR] [--max_chars MAX_CHARS] [--max_words MAX_WORDS] [--demucs DEMUCS]
[--demucs_output DEMUCS_OUTPUT [DEMUCS_OUTPUT ...]] [--only_voice_freq] [--strip STRIP]
[--tag TAG [TAG ...]] [--segment_level SEGMENT_LEVEL] [--word_level WORD_LEVEL]
[--reverse_text REVERSE_TEXT] [--font FONT] [--font_size FONT_SIZE] [--karaoke KARAOKE]
[--temperature TEMPERATURE] [--best_of BEST_OF] [--beam_size BEAM_SIZE] [--patience PATIENCE]
[--length_penalty LENGTH_PENALTY] [--suppress_tokens SUPPRESS_TOKENS]
[--initial_prompt INITIAL_PROMPT] [--condition_on_previous_text CONDITION_ON_PREVIOUS_TEXT]
[--fp16 FP16] [--temperature_increment_on_fallback TEMPERATURE_INCREMENT_ON_FALLBACK]
[--compression_ratio_threshold COMPRESSION_RATIO_THRESHOLD] [--logprob_threshold LOGPROB_THRESHOLD]
[--no_speech_threshold NO_SPEECH_THRESHOLD] [--threads THREADS] [--mel_first] [--only_ffmpeg]
[--overwrite] [--debug]
inputs [inputs ...]
위치 인자(positional arguments):
inputs audio/video filepath/URL(s) to transcribe or json file(s) to process into [output_format]
사용가능한 모델 종류:
--model {tiny.en,tiny,base.en,base,small.en,small,medium.en,medium,large-v1,large-v2,large}
※ 당연히 클 수록 더 좋지만 그만큼 메모리를 많이 먹고, 속도가 더 느려진다.
| Size | Parameters | English-only model | Multilingual model | Required VRAM | Relative speed |
|---|---|---|---|---|---|
| tiny | 39 M | tiny.en | tiny | ~1 GB | ~32x |
| base | 74 M | base.en | base | ~1 GB | ~16x |
| small | 244 M | small.en | small | ~2 GB | ~6x |
| medium | 769 M | medium.en | medium | ~5 GB | ~2x |
| large | 1550 M | N/A | large | ~10 GB | 1x |
지정가능한 언어 종류 및 코드:
[--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,he,hi,hr,ht,hu,hy,id,is,it,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}]