|
# get all available models if we got the special value auto |
|
if try_models == ['auto']: |
|
try_models = glob('./models/*') + glob('/usr/share/vosk/models/*') |
|
try_models = [model for model in try_models if os.path.isdir(model)] |
|
# Try finding a matching module |
|
modules = glob(f'/usr/share/vosk/models/*-{lang}-*') \ |
|
or glob(f'./models/*-{lang}-*') |
|
modules = [model for model in modules if os.path.isdir(model)] |
Searching in $XDG_DATA_DIRS would be nice. (Spec.) You don't always want to install models system-wide.
As it's not always set, it should also look through default values of /usr/share/ (as currently), /usr/local/share/, and $HOME/.local/share/.
In addition to exposing manually installed models in non-root locations, this would also allow automatic use of models installed via E.G. Flatpak or Nix, which set $XDG_DATA_DIRS.
Also, from the AUR, the share subdirectory seems to be vosk-models, not vosk/models:
$ pacman -Ql vosk-api-bin
vosk-api-bin /usr/
vosk-api-bin /usr/include/
vosk-api-bin /usr/include/vosk_api.h
vosk-api-bin /usr/lib/
vosk-api-bin /usr/lib/libvosk.so
vosk-api-bin /usr/local/
vosk-api-bin /usr/local/share/
vosk-api-bin /usr/local/share/vosk-models/
vosk-api-bin /usr/local/share/vosk-models/small-en-us/
vosk-api-bin /usr/local/share/vosk-models/small-en-us/README
vosk-api-bin /usr/local/share/vosk-models/small-en-us/am/
vosk-api-bin /usr/local/share/vosk-models/small-en-us/am/final.mdl
vosk-api-bin /usr/local/share/vosk-models/small-en-us/conf/
vosk-api-bin /usr/local/share/vosk-models/small-en-us/conf/mfcc.conf
vosk-api-bin /usr/local/share/vosk-models/small-en-us/conf/model.conf
vosk-api-bin /usr/local/share/vosk-models/small-en-us/graph/
vosk-api-bin /usr/local/share/vosk-models/small-en-us/graph/Gr.fst
vosk-api-bin /usr/local/share/vosk-models/small-en-us/graph/HCLr.fst
vosk-api-bin /usr/local/share/vosk-models/small-en-us/graph/disambig_tid.int
vosk-api-bin /usr/local/share/vosk-models/small-en-us/graph/phones/
vosk-api-bin /usr/local/share/vosk-models/small-en-us/graph/phones/word_boundary.int
vosk-api-bin /usr/local/share/vosk-models/small-en-us/ivector/
vosk-api-bin /usr/local/share/vosk-models/small-en-us/ivector/final.dubm
vosk-api-bin /usr/local/share/vosk-models/small-en-us/ivector/final.ie
vosk-api-bin /usr/local/share/vosk-models/small-en-us/ivector/final.mat
vosk-api-bin /usr/local/share/vosk-models/small-en-us/ivector/global_cmvn.stats
vosk-api-bin /usr/local/share/vosk-models/small-en-us/ivector/online_cmvn.conf
vosk-api-bin /usr/local/share/vosk-models/small-en-us/ivector/splice.conf
But that may be a packaging issue in the vosk-api-bin package, as vosk-api does use vosk/models.
Just a thought/convenience that might be nice to have.
vosk-cli/voskcli/transcribe.py
Lines 249 to 252 in 81b9f1c
vosk-cli/voskcli/transcribe.py
Lines 337 to 340 in 81b9f1c
Searching in
$XDG_DATA_DIRSwould be nice. (Spec.) You don't always want to install models system-wide.As it's not always set, it should also look through default values of
/usr/share/(as currently),/usr/local/share/, and$HOME/.local/share/.In addition to exposing manually installed models in non-root locations, this would also allow automatic use of models installed via E.G. Flatpak or Nix, which set
$XDG_DATA_DIRS.Also, from the AUR, the
sharesubdirectory seems to bevosk-models, notvosk/models:But that may be a packaging issue in the
vosk-api-binpackage, asvosk-apidoes usevosk/models.Just a thought/convenience that might be nice to have.