Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

from_pretrained load local model #126

Open
stoneLee81 opened this issue Jun 29, 2023 · 3 comments
Open

from_pretrained load local model #126

stoneLee81 opened this issue Jun 29, 2023 · 3 comments
Labels
bug Something isn't working

Comments

@stoneLee81
Copy link

Describe the bug

code is
w = Whisper.from_pretrained('/Users/haowmazs/testdata/whisper.cpp-master/models/ggml-medium.bin')

throw exception
RuntimeError: '/Users/haowmazs/testdata/whisper.cpp-master/models/ggml-medium.bin' is not a valid preconverted model. Choose one of ['tiny.en', 'tiny', 'base.en', 'base', 'small.en', 'small', 'medium.en', 'medium', 'large-v1', 'large']

To reproduce

No response

Expected behavior

No response

Environment

Python 3.9.7
whispercpp 0.017

@stoneLee81 stoneLee81 added the bug Something isn't working label Jun 29, 2023
@lostz
Copy link

lostz commented Jun 30, 2023

same sa i

@shogunpurple
Copy link

shogunpurple commented Jul 5, 2023

Seeing the same. At a glance looks like the problem is this piece of code here:

 if model_name not in utils.MODELS_URL and not _os.path.isfile(model_name):
            raise RuntimeError(
                f"'{model_name}' is not a valid preconverted model or a file path. \
                    Choose one of {list(utils.MODELS_URL)}"
            )

The second part of this conditional appears to be failing. It's odd because I tried using the same absolute path with os.path.isfile in a local python shell and it works - even if you import os as _os.

Not a huge issue anyway as you can just download the model with the predefined ones in MODELS_URL but hopefully this adds some context.

OS details in case related:
OS: OSX Ventura 13.0.1
Python version: 3.10.0

EDIT: Cache Workaround

In the meantime, you can just populate the cache yourself with your own model.

This library looks in one of two directories for the models based on the existence of the XDG_DATA_HOME env variable. You can put your local model into this directory and it should work as expected.

# move your model into the cache
cp whisper.cpp/models/ggml-base.bin ~/.local/share/whispercpp # OR $XDG_DATA_HOME/whispercpp
from whispercpp import Whisper

# use the local dir with your pretrained whisper model
whisper = Whisper.from_pretrained("base")

@marcoacierno
Copy link

marcoacierno commented Aug 17, 2023

if anyone still has this issue, it should be because the version on pypi is older than what's on the repo (I noticed the error message is different!)

https://pypi.org/project/whispercpp/#files -> the source code only has

      if model_name not in utils.MODELS_URL:
            raise RuntimeError(
                f"'{model_name}' is not a valid preconverted model. Choose one of {list(utils.MODELS_URL)}"
            )

I fixed the error by installing from git

pip install git+https://github.com/aarnphm/whispercpp.git -vv

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants