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 DEVICEPyTorch 추론에 사용할 장치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 VADSilero VAD를 사용하여 타임스탬프 억제 마스크를 생성할지 여부. Silero VAD는 PyTorch 1.12.0 이상이 필요합니다. 공식 저장소: https://github.com/snakers4/silero-vadFalse
--vad_threshold VAD_THRESHOLDSilero VAD에서 음성을 감지하기 위한 임계값. (기본값: 0.35) 낮은 임계값은 음성 감지에 대한 오검출을 줄입니다.0.35
--vad_onnx VAD_ONNXSilero 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/demucsFalse
--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 FONTASS 출력의 단어 폰트Arial
--font_size FONT_SIZEASS 출력의 단어 폰트 크기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_TEXTTrue이면 모델의 이전 출력을 다음 창의 프롬프트로 제공합니다. 비활성화하면 텍스트가 창마다 일관되지 않을 수 있지만, 모델이 실패 루프에 갇히는 경향이 줄어듭니다.True
--fp16 FP16fp16에서 추론을 수행할지 여부True
--temperature_increment_on_fallback TEMPERATURE_INCREMENT_ON_FALLBACK디코딩이 실패하면 감소에 대해 일어날 온도 증가 (기본값: 0.2)0.2
--compression_ratio_threshold COMPRESSION_RATIO_THRESHOLDgzip 압축 비율이이 값보다 높으면 디코딩을 실패로 처리합니다.2.4
--logprob_threshold LOGPROB_THRESHOLD평균 로그 확률이이 값보다 낮으면 디코딩을 실패로 처리합니다. (기본값: -1.0)-1.0
--no_speech_threshold NO_SPEECH_THRESHOLD토큰의 확률이 이 값보다 높고 logprob_threshold로 인해 디코딩이 실패 한 경우, 세그먼트를 정적으로 간주합니다.0.6
--threads THREADSCPU 추론에 사용되는 스레드 수 (기본값: 0)0
--mel_first청크 대신 전체 오디오 트랙을 로그-Mel 스펙트로그램으로 먼저 처리할지 여부False
--only_ffmpegURL에 대해 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}

※  당연히 클 수록 더 좋지만 그만큼 메모리를 많이 먹고, 속도가 더 느려진다.


SizeParametersEnglish-only modelMultilingual modelRequired VRAMRelative speed
tiny39 Mtiny.entiny~1 GB~32x
base74 Mbase.enbase~1 GB~16x
small244 Msmall.ensmall~2 GB~6x
medium769 Mmedium.enmedium~5 GB~2x
large1550 MN/Alarge~10 GB1x


지정가능한 언어 종류 및 코드:

                 [--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}]