HaujetZhao / CapsWriter-Offline

CapsWriter 的离线版,一个好用的 PC 端的语音输入工具
2.78k stars 226 forks source link

标点模型,按照代码中的安装路径安装后,显示“failed:Protobuf parsing failed.” #26

Closed Benson722 closed 9 months ago

Benson722 commented 9 months ago

(keyaudio) zhangyiqing@inin:~/CapsWriter-Offline$ python core_server.py

──────────────────────────────────────────────────────────── CapsWriter Offline Server ────────────────────────────────────────────────────────────

项目地址:https://github.com/HaujetZhao/CapsWriter-Offline

当前基文件夹:/home/zhangyiqing/CapsWriter-Offline

绑定的服务地址:0.0.0.0:6016

模块加载完成

语音模型载入完成

Process Process-1: Traceback (most recent call last): File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap self.run() File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) File "/home/zhangyiqing/CapsWriter-Offline/util/server_init_recognizer.py", line 42, in init_recognizer punc_model = CT_Transformer(ModelPaths.punc_model_dir, quantize=True) File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/site-packages/funasr_onnx/punc_bin.py", line 69, in init self.ort_infer = OrtInferSession(model_file, device_id, intra_op_num_threads=intra_op_num_threads) File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/site-packages/funasr_onnx/utils/utils.py", line 209, in init self.session = InferenceSession(model_file, File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 419, in init self._create_inference_session(providers, provider_options, disabled_optimizers) File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 452, in _create_inference_session sess = C.InferenceSession(session_options, self._model_path, True, self._read_config_from_model) onnxruntime.capi.onnxruntime_pybind11_state.InvalidProtobuf: [ONNXRuntimeError] : 7 : INVALID_PROTOBUF : Load model from models/punc_ct-transformer_cn-en/model_quant.onnx failed:Protobuf parsing failed. ^C 再见!

HaujetZhao commented 9 months ago

按照 models 文件夹里面的文本文件里所写的方法下载标点符号模型

HaujetZhao commented 9 months ago

并且检查 funasr_onnx 的版本是否与 requirements-server.txt 里要求的是否一致

Benson722 commented 9 months ago

感谢您的回答!我按照 models 文件夹重新下载模型,然后重新下载符合版本的 funasr_onnx 后出现了新的问题: (keyaudio) zhangyiqing@inin:~/CapsWriter-Offline$ python core_server.py

──────────────────────────────────────────────────────────────────────────────────────────── CapsWriter Offline Server ────────────────────────────────────────────────────────────────────────────────────────────

项目地址:https://github.com/HaujetZhao/CapsWriter-Offline

当前基文件夹:/home/zhangyiqing/CapsWriter-Offline

绑定的服务地址:0.0.0.0:6016

/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/site-packages/funasr_onnx/punc_bin.py:279: FutureWarning: In the future np.bool will be defined as the corresponding NumPy scalar. def vad_mask(self, size, vad_pos, dtype=np.bool): Process Process-1: Traceback (most recent call last): File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap self.run() File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) File "/home/zhangyiqing/CapsWriter-Offline/util/server_init_recognizer.py", line 28, in init_recognizer from funasr_onnx import CT_Transformer File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/site-packages/funasr_onnx/init.py", line 5, in from .punc_bin import CT_Transformer File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/site-packages/funasr_onnx/punc_bin.py", line 166, in class CT_Transformer_VadRealtime(CT_Transformer): File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/site-packages/funasr_onnx/punc_bin.py", line 279, in CT_Transformer_VadRealtime def vad_mask(self, size, vad_pos, dtype=np.bool): File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/site-packages/numpy/init.py", line 324, in getattr raise AttributeError(__former_attrs_[attr]) AttributeError: module 'numpy' has no attribute 'bool'. np.bool was a deprecated alias for the builtin bool. To avoid this error in existing code, use bool by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool` here. The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations

我下载的numpy版本是1.26.3,请问是numpy版本过高吗?

HaujetZhao commented 9 months ago

用 1.23 或 1.24 试试

Benson722 commented 9 months ago

numpy 降低版本到 1.23.4 后,很不幸又出现了与第一次相同的问题: (keyaudio) zhangyiqing@inin:~/CapsWriter-Offline$ python core_server.py

────────────────────────────────────────────────────────────────────────────────────────── CapsWriter Offline Server ──────────────────────────────────────────────────────────────────────────────────────────

项目地址:https://github.com/HaujetZhao/CapsWriter-Offline

当前基文件夹:/home/zhangyiqing/CapsWriter-Offline

绑定的服务地址:0.0.0.0:6016

模块加载完成

语音模型载入完成

Process Process-1: Traceback (most recent call last): File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap self.run() File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) File "/home/zhangyiqing/CapsWriter-Offline/util/server_init_recognizer.py", line 42, in init_recognizer punc_model = CT_Transformer(ModelPaths.punc_model_dir, quantize=True) File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/site-packages/funasr_onnx/punc_bin.py", line 69, in init self.ort_infer = OrtInferSession(model_file, device_id, intra_op_num_threads=intra_op_num_threads) File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/site-packages/funasr_onnx/utils/utils.py", line 209, in init self.session = InferenceSession(model_file, File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 419, in init self._create_inference_session(providers, provider_options, disabled_optimizers) File "/home/zhangyiqing/miniconda3/envs/keyaudio/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 452, in _create_inference_session sess = C.InferenceSession(session_options, self._model_path, True, self._read_config_from_model) onnxruntime.capi.onnxruntime_pybind11_state.InvalidProtobuf: [ONNXRuntimeError] : 7 : INVALID_PROTOBUF : Load model from models/punc_ct-transformer_cn-en/model_quant.onnx failed:Protobuf parsing failed.

—————————————————— 安装的依赖与 requirements-server.txt 要求是一致的

Benson722 commented 9 months ago

谢谢您的回答,core_server.py 已经可以运行了。之前的问题是:当我直接下载模型时,其中有 3 个大文件,直接使用 models 文件夹中的下载命令时,这 3 个文件不会真正下载,只会下载类似“指针”的1KB文件。我手动下载这 3 个文件后,程序可以正常运行。: )