funasr_onnx: bare `raise "string"` masks the real exception (TypeError: exceptions must derive from BaseException)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 70/100
Línea de trabajo
Comienza con runtime/python/onnxruntime/funasr_onnx/sensevoice_bin.py en las líneas indicadas y, después, inspecciona paraformer_online_bin.py y los demás archivos *_bin.py en busca del mismo manejo de errores. Comprueba cada ruta que use un bare except o lance un string, y verifica que el error de importación original siga siendo visible, mientras que los errores no relacionados no se etiqueten erróneamente como ausencia de funasr.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Several error paths in funasr_onnx do raise "some message". That is invalid in Python 3 — a string is not an exception — so the interpreter discards the intended message and raises TypeError: exceptions must derive from BaseException instead.
Combined with the surrounding bare except:, the actual cause is swallowed entirely.
Where
runtime/python/onnxruntime/funasr_onnx/sensevoice_bin.py (current main), lines 50, 54, 66:
try:
from funasr import AutoModel
except:
raise "You are exporting onnx, please install funasr and try it again. ..."
The same pattern appears in paraformer_online_bin.py and other *_bin.py files.
What the user sees
File ".../funasr_onnx/sensevoice_bin.py", line 66, in __init__
raise "You are exporting onnx, please install funasr and try it again..."
TypeError: exceptions must derive from BaseException
What was actually wrong
In my case funasr was installed. The import failed on a missing transitive
dependency:
File ".../funasr/utils/load_utils.py", line 9, in <module>
import torchaudio
ModuleNotFoundError: No module named 'torchaudio'
The message told me to install a package I already had, while hiding the one I was
missing. Diagnosing it required reading the library source and reproducing the import
by hand.
I hit the same thing a second time on onnxscript (required by newer torch.onnx),
and again when loading a model from a local path — line 54 fires whenever the path
check fails for any reason, so a simple wrong-path mistake also surfaces as
TypeError.
Suggested fix
try:
from funasr import AutoModel
except ImportError as e:
raise ImportError(
"Exporting ONNX requires funasr: pip3 install -U funasr"
) from e
raise ... from e keeps the original traceback, so a missing torchaudio stays
visible. Narrowing except: to except ImportError: also stops unrelated failures
from being reported as a missing package.
Happy to send a PR if that would help.
- Lenguaje dominante
- Python
- Estrellas
- 20.4k
- Forks
- 2k
- Merge medio
- 4 h 55 min
- PR fusionados (30 d)
- 169
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de modelscope/FunASR
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
modelscope/FunASR#3704 · 1 comentario ·
-
没有vllm时使用fun-asr-nano每次都重新加载模型 Abiertobug needs feedback
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
modelscope/FunASR#3401 · 2 comentarios ·
-
funasr-nano在电话录音识别场景表现不是很好 Abiertoneeds triage question
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
modelscope/FunASR#3718 · 3 comentarios ·
-
Verify evals on Papers with Code Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
modelscope/FunASR#3717 · 1 comentario ·
-
License clarification for SenseVoice-Small weights at a fixed revision (ONNX redistribution) Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
modelscope/FunASR#3715 ·
Todos los issues de modelscope/FunASR
Issues similares
-
documentation help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
simonw/sqlite-utils#872 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100