"""Offline CPU inference with fixed models; WAV input only, no model code downloads.""" import os, sys, json, contextlib from pathlib import Path for key in ('OMP_NUM_THREADS','OPENBLAS_NUM_THREADS','MKL_NUM_THREADS','NUMBA_NUM_THREADS'): os.environ[key]='2' os.environ['HF_HUB_OFFLINE']='1' os.environ['TRANSFORMERS_OFFLINE']='1' from analyze import capabilities, analyze from separate import separate def run(operation, source, destination): import soundfile as sf import numpy as np meta=sf.info(source) if meta.format not in ('WAV','WAVEX') or not 0500: raise ValueError('字幕数量超过 500 条') else: raise ValueError('未知音频操作') (root/'result.json').write_text(json.dumps(result,ensure_ascii=False)) if __name__=='__main__': if sys.argv[1:]==['--check']: c=capabilities(); print(json.dumps({'asr':c['asr'],'separation':c['separation']})) else: with contextlib.redirect_stdout(sys.stderr):run(*sys.argv[1:4])