| 
														
															@@ -11,7 +11,7 @@ import tqdm 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from .audio import SAMPLE_RATE, N_FRAMES, HOP_LENGTH, pad_or_trim, log_mel_spectrogram 
														 | 
														
														 | 
														
															 from .audio import SAMPLE_RATE, N_FRAMES, HOP_LENGTH, pad_or_trim, log_mel_spectrogram 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from .decoding import DecodingOptions, DecodingResult 
														 | 
														
														 | 
														
															 from .decoding import DecodingOptions, DecodingResult 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from .tokenizer import LANGUAGES, TO_LANGUAGE_CODE, get_tokenizer 
														 | 
														
														 | 
														
															 from .tokenizer import LANGUAGES, TO_LANGUAGE_CODE, get_tokenizer 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-from .utils import exact_div, format_timestamp, optional_int, optional_float, str2bool, write_txt, write_vtt, write_srt 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+from .utils import exact_div, format_timestamp, optional_int, optional_float, str2bool, get_writer 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 if TYPE_CHECKING: 
														 | 
														
														 | 
														
															 if TYPE_CHECKING: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     from .model import Whisper 
														 | 
														
														 | 
														
															     from .model import Whisper 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -260,6 +260,7 @@ def cli(): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     parser.add_argument("--model_dir", type=str, default=None, help="the path to save model files; uses ~/.cache/whisper by default") 
														 | 
														
														 | 
														
															     parser.add_argument("--model_dir", type=str, default=None, help="the path to save model files; uses ~/.cache/whisper by default") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     parser.add_argument("--device", default="cuda" if torch.cuda.is_available() else "cpu", help="device to use for PyTorch inference") 
														 | 
														
														 | 
														
															     parser.add_argument("--device", default="cuda" if torch.cuda.is_available() else "cpu", help="device to use for PyTorch inference") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     parser.add_argument("--output_dir", "-o", type=str, default=".", help="directory to save the outputs") 
														 | 
														
														 | 
														
															     parser.add_argument("--output_dir", "-o", type=str, default=".", help="directory to save the outputs") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    parser.add_argument("--output_format", "-f", type=str, default="all", choices=["txt", "vtt", "srt", "json", "all"], help="format of the output file; if not specified, all available formats will be produced") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     parser.add_argument("--verbose", type=str2bool, default=True, help="whether to print out the progress and debug messages") 
														 | 
														
														 | 
														
															     parser.add_argument("--verbose", type=str2bool, default=True, help="whether to print out the progress and debug messages") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     parser.add_argument("--task", type=str, default="transcribe", choices=["transcribe", "translate"], help="whether to perform X->X speech recognition ('transcribe') or X->English translation ('translate')") 
														 | 
														
														 | 
														
															     parser.add_argument("--task", type=str, default="transcribe", choices=["transcribe", "translate"], help="whether to perform X->X speech recognition ('transcribe') or X->English translation ('translate')") 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -286,6 +287,7 @@ def cli(): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     model_name: str = args.pop("model") 
														 | 
														
														 | 
														
															     model_name: str = args.pop("model") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     model_dir: str = args.pop("model_dir") 
														 | 
														
														 | 
														
															     model_dir: str = args.pop("model_dir") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     output_dir: str = args.pop("output_dir") 
														 | 
														
														 | 
														
															     output_dir: str = args.pop("output_dir") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    output_format: str = args.pop("output_format") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     device: str = args.pop("device") 
														 | 
														
														 | 
														
															     device: str = args.pop("device") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     os.makedirs(output_dir, exist_ok=True) 
														 | 
														
														 | 
														
															     os.makedirs(output_dir, exist_ok=True) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -308,22 +310,11 @@ def cli(): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     from . import load_model 
														 | 
														
														 | 
														
															     from . import load_model 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     model = load_model(model_name, device=device, download_root=model_dir) 
														 | 
														
														 | 
														
															     model = load_model(model_name, device=device, download_root=model_dir) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    writer = get_writer(output_format, output_dir) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     for audio_path in args.pop("audio"): 
														 | 
														
														 | 
														
															     for audio_path in args.pop("audio"): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         result = transcribe(model, audio_path, temperature=temperature, **args) 
														 | 
														
														 | 
														
															         result = transcribe(model, audio_path, temperature=temperature, **args) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        audio_basename = os.path.basename(audio_path) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        # save TXT 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        with open(os.path.join(output_dir, audio_basename + ".txt"), "w", encoding="utf-8") as txt: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            write_txt(result["segments"], file=txt) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        # save VTT 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        with open(os.path.join(output_dir, audio_basename + ".vtt"), "w", encoding="utf-8") as vtt: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            write_vtt(result["segments"], file=vtt) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        # save SRT 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        with open(os.path.join(output_dir, audio_basename + ".srt"), "w", encoding="utf-8") as srt: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            write_srt(result["segments"], file=srt) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        writer(result, audio_path) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 if __name__ == '__main__': 
														 | 
														
														 | 
														
															 if __name__ == '__main__': 
														 |