
在使用 WebSocket 时由于进度条展示对funasr项目的兼容性差修改成本高因此需要直接禁用进度条。同时为确保模型依赖项安装使用的是当前虚拟环境的 pip也需要调整相关安装方法。解决方案禁用进度条修改funasr/auto/auto_model.py文件中的两个方法generate和inference。在inference方法中设置disable_pbar True并通过该变量禁用tqdm进度条显示。defgenerate(self,input,input_lenNone,**cfg):ifself.vad_modelisNone:returnself.inference(input,input_leninput_len,**cfg)else:returnself.inference_with_vad(input,input_leninput_len,**cfg)definference(self,input,input_lenNone,modelNone,kwargsNone,keyNone,**cfg):kwargsself.kwargsifkwargsisNoneelsekwargsifcacheinkwargs:kwargs.pop(cache)deep_update(kwargs,cfg)modelself.modelifmodelisNoneelsemodel model.eval()batch_sizekwargs.get(batch_size,1)key_list,data_listprepare_data_iterator(input,input_leninput_len,data_typekwargs.get(data_type,None),keykey)speed_stats{}asr_result_list[]num_sampleslen(data_list)disable_pbarTrue# 禁用进度条显示pbar(tqdm(colourblue,totalnum_samples,dynamic_ncolsTrue,disabledisable_pbar)ifnotdisable_pbarelseNone)time_speech_total0.0time_escape_total0.0forbeg_idxinrange(0,num_samples,batch_size):end_idxmin(num_samples,beg_idxbatch_size)data_batchdata_list[beg_idx:end_idx]key_batchkey_list[beg_idx:end_idx]batch{data_in:data_batch,key:key_batch}if(end_idx-beg_idx)1andkwargs.get(data_type,None)fbank:batch[data_in]data_batch[0]batch[data_lengths]input_len time1time.perf_counter()withtorch.no_grad():resmodel.inference(**batch,**kwargs)ifisinstance(res,(list,tuple)):resultsres[0]iflen(res)0else[{text:}]meta_datares[1]iflen(res)1else{}time2time.perf_counter()asr_result_list.extend(results)batch_data_timemeta_data.get(batch_data_time,-1)time_escapetime2-time1 speed_stats[load_data]meta_data.get(load_data,0.0)speed_stats[extract_feat]meta_data.get(extract_feat,0.0)speed_stats[forward]f{time_escape:0.3f}speed_stats[batch_size]f{len(results)}speed_stats[rtf]f{(time_escape)/batch_data_time:0.3f}descriptionf{speed_stats}, ifpbar:pbar.update(end_idx-beg_idx)pbar.set_description(description)time_speech_totalbatch_data_time time_escape_totaltime_escapeifpbar:pbar.set_description(frtf_avg:{time_escape_total/time_speech_total:0.3f})torch.cuda.empty_cache()returnasr_result_list使用当前虚拟环境的 pip 安装依赖项修改funasr/utils/install_model_requirements.py文件确保使用当前 Python 环境执行 pip 安装命令。importsubprocessimportsysdefinstall_requirements(requirements_path):python_executablesys.executabletry:resultsubprocess.run([python_executable,-m,pip,install,-r,requirements_path],stdoutsubprocess.PIPE,stderrsubprocess.PIPE,textTrue,)print(result)ifresult.returncode0:print(Install model requirements successfully.)returnTrueelse:print(Failed to install model requirements!)print(Error:,result.stderr)returnFalseexceptExceptionase:resultsubprocess.run([python_executable,-m,pip,install,-r,requirements_path],stdoutsubprocess.PIPE,stderrsubprocess.PIPE,textTrue,)ifresult.returncode0:print(Install model requirements successfully.)returnTrueelse:print(Failed to install model requirements!)print(Error:,result.stderr)returnFalse为避免 WebSocket 项目中进度条引发的兼容性问题直接在模型推理阶段禁用tqdm无需对显示逻辑做额外处理。同时通过sys.executable强制使用当前虚拟环境的 pip有效避免多环境混乱保证依赖项正确安装。这两处修改都简洁直接适合快速落地。