From 5157b341a0a20c54775daedce776f6e93438062e Mon Sep 17 00:00:00 2001 From: Rasmus Larsen Date: Sun, 29 Jan 2023 21:15:09 +0100 Subject: [PATCH 1/4] fix wheel build --- setup.py | 13 +++++++++++++ whispercpp.pyx | 2 -- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 46997e7..4d712be 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,5 @@ from distutils.core import setup +from distutils.extension import Extension from Cython.Build import cythonize import numpy, os, sys @@ -10,6 +11,17 @@ else: os.environ['CFLAGS'] = '-mavx -mavx2 -mfma -mf16c -O3 -std=c11' os.environ['CXXFLAGS'] = '-mavx -mavx2 -mfma -mf16c -O3 -std=c++11' +ext_modules = [ + Extension( + name="whispercpp", + sources=["whispercpp.pyx", "whisper.cpp/whisper.cpp"], + language="c++", + extra_compile_args=["-std=c++11"], + ) +] +ext_modules = cythonize(ext_modules) + +whisper_clib = ('whisper_clib', {'sources': ['whisper.cpp/ggml.c']}) setup( name='whispercpp', @@ -17,6 +29,7 @@ setup( description='Python bindings for whisper.cpp', author='Luke Southam', author_email='luke@devthe.com', + libraries=[whisper_clib], ext_modules = cythonize("whispercpp.pyx"), include_dirs = ['./whisper.cpp/', numpy.get_include()], install_requires=[ diff --git a/whispercpp.pyx b/whispercpp.pyx index 486e1fc..abbbc0d 100644 --- a/whispercpp.pyx +++ b/whispercpp.pyx @@ -1,7 +1,5 @@ #!python # cython: language_level=3 -# distutils: language = c++ -# distutils: sources= ./whisper.cpp/whisper.cpp ./whisper.cpp/ggml.c import ffmpeg import numpy as np From 4526cce0ffb59284bf53f3a1f7cc76c12ed5d87b Mon Sep 17 00:00:00 2001 From: Rasmus Larsen Date: Mon, 30 Jan 2023 17:30:18 +0100 Subject: [PATCH 2/4] use a more standard model storage path, and make the directory if doesn't exist --- whispercpp.pyx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/whispercpp.pyx b/whispercpp.pyx index abbbc0d..72fa39e 100644 --- a/whispercpp.pyx +++ b/whispercpp.pyx @@ -7,7 +7,7 @@ import requests import os from pathlib import Path -MODELS_DIR = str(Path('~/ggml-models').expanduser()) +MODELS_DIR = str(Path('~/.ggml-models').expanduser()) print("Saving models to:", MODELS_DIR) @@ -37,6 +37,7 @@ def download_model(model): print(f'Downloading {model}...') url = MODELS[model.decode()] r = requests.get(url, allow_redirects=True) + os.makedirs(MODELS_DIR, exist_ok=True) with open(MODELS_DIR + "/" + model.decode(), 'wb') as f: f.write(r.content) @@ -78,7 +79,6 @@ cdef whisper_full_params default_params() nogil: params.print_realtime = True params.print_progress = True params.translate = False - params.language = LANGUAGE n_threads = N_THREADS return params From cf5992862a1b738bca0bc39e16b17c8dfea51dbb Mon Sep 17 00:00:00 2001 From: Rasmus Larsen Date: Mon, 30 Jan 2023 17:39:34 +0100 Subject: [PATCH 3/4] fix wheel build? --- setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 4d712be..bca94e3 100644 --- a/setup.py +++ b/setup.py @@ -4,11 +4,11 @@ from Cython.Build import cythonize import numpy, os, sys if sys.platform == 'darwin': - os.environ['CFLAGS'] = '-DGGML_USE_ACCELERATE -O3 -std=c11' + os.environ['CFLAGS'] = '-DGGML_USE_ACCELERATE -O3 -std=gnu11' os.environ['CXXFLAGS'] = '-DGGML_USE_ACCELERATE -O3 -std=c++11' os.environ['LDFLAGS'] = '-framework Accelerate' else: - os.environ['CFLAGS'] = '-mavx -mavx2 -mfma -mf16c -O3 -std=c11' + os.environ['CFLAGS'] = '-mavx -mavx2 -mfma -mf16c -O3 -std=gnu11' os.environ['CXXFLAGS'] = '-mavx -mavx2 -mfma -mf16c -O3 -std=c++11' ext_modules = [ From 0f600620978df5b94065d88036e8dfacdc88443b Mon Sep 17 00:00:00 2001 From: Rasmus Larsen Date: Mon, 30 Jan 2023 17:59:42 +0100 Subject: [PATCH 4/4] add back params.language --- whispercpp.pyx | 1 + 1 file changed, 1 insertion(+) diff --git a/whispercpp.pyx b/whispercpp.pyx index 56f6a88..fba2eff 100644 --- a/whispercpp.pyx +++ b/whispercpp.pyx @@ -75,6 +75,7 @@ cdef whisper_full_params default_params() nogil: params.print_realtime = True params.print_progress = True params.translate = False + params.language = LANGUAGE n_threads = N_THREADS return params