SevaSk / ecoute

Ecoute is a live transcription tool that provides real-time transcripts for both the user's microphone input (You) and the user's speakers output (Speaker) in a textbox. It also generates a suggested response using OpenAI's GPT-3.5 for the user to say based on the live transcription of the conversation.
https://github.com/SevaSk/ecoute
MIT License
5.89k stars 827 forks source link

Macos development #143

Open shosseini811 opened 1 year ago

shosseini811 commented 1 year ago

Use the Pyaudio library to be able to run on Mac Screenshot 2023-08-24 at 6 40 05 PM

DawgZter commented 1 year ago

Getting this error

% python main.py --api .../lib/python3.10/site-packages/whisper/timing.py:58: NumbaDeprecationWarning: The 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details. def backtrace(trace: np.ndarray): Traceback (most recent call last): File ".../main.py", line 125, in <module> main() File ".../main.py", line 72, in main root = ctk.CTk() File ".../lib/python3.10/site-packages/customtkinter/windows/ctk_tk.py", line 38, in __init__ tkinter.Tk.__init__(self, **pop_from_dict_by_set(kwargs, self._valid_tk_constructor_arguments)) File ".../lib/python3.10/tkinter/__init__.py", line 2301, in __init__ self._loadtk() File ".../lib/python3.10/tkinter/__init__.py", line 2317, in _loadtk raise RuntimeError("tk.h version (%s) doesn't match libtk.a version (%s)" RuntimeError: tk.h version (8.5) doesn't match libtk.a version (8.6)

shosseini811 commented 1 year ago

I got this solution from ChatGPT. Could you try that?

The error message is signaling a version mismatch between tk.h and libtk.a, which are part of the Tkinter library. This could potentially lead to unexpected behaviors or crashes. Additionally, there's a deprecation warning related to the nopython argument in Numba.

Tkinter Issue: For resolving the version mismatch, you generally have three routes:

Upgrade tk.h to match libtk.a: If you installed Tkinter through a package manager like apt or yum, upgrading might resolve the issue. Downgrade libtk.a to match tk.h: Similar to upgrading, you could also downgrade the library. Environment Isolation: Use a virtual environment that has compatible versions of all packages and libraries. NumbaDeprecationWarning: The warning indicates that you are using Numba's @jit decorator without the nopython argument. The warning suggests setting it to True explicitly. This is important for performance, as it ensures the function uses only Numba-compatible types.

Here's how to deal with the Numba warning:

Before:

Screenshot 2023-08-28 at 11 48 58 AM

shosseini811 commented 1 year ago

Here are lists of all libraries I have in conda env. It might help.

pip freeze

aiohttp==3.8.5 aiosignal==1.3.1 async-timeout==4.0.3 attrs==23.1.0 brotlipy==0.7.0 certifi @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_3bweqb8byn/croot/certifi_1690232244779/work/certifi cffi @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_ab19r4bji3/croot/cffi_1670423206034/work chardet==5.2.0 charset-normalizer==3.2.0 cryptography @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_a3xvfhudbc/croot/cryptography_1689373681671/work customtkinter==5.1.3 darkdetect==0.8.0 ffmpeg-python==0.2.0 filelock @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_20tv0lrp8x/croot/filelock_1672387134240/work frozenlist==1.4.0 future==0.18.3 gmpy2 @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/croot-muov7gw1/gmpy2_1645462616268/work idna @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_771olrhiqw/croot/idna_1666125579282/work importlib-metadata==6.8.0 Jinja2 @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_9fjgzv9ant/croot/jinja2_1666908141308/work llvmlite==0.40.1 MarkupSafe @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_12c133f5-0720-4727-9c18-599a3af825723lzwham3/croots/recipe/markupsafe_1654597866058/work more-itertools==10.1.0 mpmath @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_17iu6a8a3m/croot/mpmath_1690848269369/work multidict==6.0.4 networkx @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_b9af3smw_7/croot/networkx_1690562010704/work numba==0.57.1 numpy @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_f9f5xs2fx0/croot/numpy_and_numpy_base_1682520577456/work openai==0.27.6 openai-whisper==20230314 Pillow==9.4.0 PyAudio==0.2.13 pycparser @ file:///tmp/build/80754af9/pycparser_1636541352034/work pyOpenSSL @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_b8whqav6qm/croot/pyopenssl_1690223428943/work PySocks @ file:///Users/ktietz/Code/oss/ci_pkgs/pysocks_1626781349491/work regex==2023.8.8 requests @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_54zi68h2nb/croot/requests_1690400233316/work six==1.16.0 sympy @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_21kpmugwgm/croot/sympy_1668202392692/work tiktoken==0.3.1 torch==2.0.1 torchaudio==2.0.2 torchvision @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_cfzx6ndngz/croot/torchvision_1689077985227/work tqdm==4.66.1 typing_extensions @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_1fdywrbp_3/croot/typing_extensions_1690297474455/work urllib3 @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_e9usuw__8i/croot/urllib3_1686166332689/work whisper==1.1.10 yarl==1.9.2 zipp==3.16.2

# conda list

Name Version Build Channel

aiohttp 3.8.5 pypi_0 pypi aiosignal 1.3.1 pypi_0 pypi async-timeout 4.0.3 pypi_0 pypi attrs 23.1.0 pypi_0 pypi blas 2.117 openblas conda-forge blas-devel 3.9.0 17_osxarm64_openblas conda-forge brotlipy 0.7.0 py38h1a28f6b_1002
ca-certificates 2023.05.30 hca03da5_0
certifi 2023.7.22 py38hca03da5_0
cffi 1.15.1 py38h80987f9_3
chardet 5.2.0 pypi_0 pypi charset-normalizer 3.2.0 pypi_0 pypi cryptography 41.0.2 py38h6204c90_0
customtkinter 5.1.3 pypi_0 pypi darkdetect 0.8.0 pypi_0 pypi ffmpeg-python 0.2.0 pypi_0 pypi filelock 3.9.0 py38hca03da5_0
freetype 2.12.1 h1192e45_0
frozenlist 1.4.0 pypi_0 pypi future 0.18.3 pypi_0 pypi giflib 5.2.1 h80987f9_3
gmp 6.2.1 hc377ac9_3
gmpy2 2.1.2 py38h8c48613_0
idna 3.4 py38hca03da5_0
importlib-metadata 6.8.0 pypi_0 pypi jinja2 3.1.2 py38hca03da5_0
jpeg 9e h80987f9_1
lcms2 2.12 hba8e193_0
lerc 3.0 hc377ac9_0
libblas 3.9.0 17_osxarm64_openblas conda-forge libcblas 3.9.0 17_osxarm64_openblas conda-forge libcxx 14.0.6 h848a8c0_0
libdeflate 1.17 h80987f9_0
libffi 3.4.4 hca03da5_0
libgfortran 5.0.0 12_3_0_hd922786_1 conda-forge libgfortran5 12.3.0 ha3a6a3e_1 conda-forge liblapack 3.9.0 17_osxarm64_openblas conda-forge liblapacke 3.9.0 17_osxarm64_openblas conda-forge libopenblas 0.3.23 openmp_hc731615_0 conda-forge libpng 1.6.39 h80987f9_0
libtiff 4.5.0 h313beb8_2
libwebp 1.2.4 ha3663a8_1
libwebp-base 1.2.4 h80987f9_1
llvm-openmp 14.0.6 hc6e5704_0
llvmlite 0.40.1 pypi_0 pypi lz4-c 1.9.4 h313beb8_0
markupsafe 2.1.1 py38h1a28f6b_0
more-itertools 10.1.0 pypi_0 pypi mpc 1.1.0 h8c48613_1
mpfr 4.0.2 h695f6f0_1
mpmath 1.3.0 py38hca03da5_0
multidict 6.0.4 pypi_0 pypi ncurses 6.4 h313beb8_0
networkx 3.1 py38hca03da5_0
numba 0.57.1 pypi_0 pypi numpy 1.24.3 py38h1398885_0
numpy-base 1.24.3 py38h90707a3_0
openai 0.27.6 pypi_0 pypi openai-whisper 20230314 pypi_0 pypi openblas 0.3.23 openmp_hf78f355_0 conda-forge openssl 3.0.10 h1a28f6b_2
pillow 9.4.0 py38h313beb8_0
pip 23.2.1 py38hca03da5_0
pyaudio 0.2.13 pypi_0 pypi pycparser 2.21 pyhd3eb1b0_0
pyopenssl 23.2.0 py38hca03da5_0
pysocks 1.7.1 py38hca03da5_0
python 3.8.17 hb885b13_0
pytorch 2.0.1 py3.8_0 pytorch readline 8.2 h1a28f6b_0
regex 2023.8.8 pypi_0 pypi requests 2.31.0 py38hca03da5_0
setuptools 68.0.0 py38hca03da5_0
six 1.16.0 pypi_0 pypi sqlite 3.41.2 h80987f9_0
sympy 1.11.1 py38hca03da5_0
tiktoken 0.3.1 pypi_0 pypi tk 8.6.12 hb8d0fd4_0
torchaudio 2.0.2 py38_cpu pytorch torchvision 0.15.2 cpu_py38h31aa045_0
tqdm 4.66.1 pypi_0 pypi typing_extensions 4.7.1 py38hca03da5_0
urllib3 2.0.4 pypi_0 pypi wheel 0.38.4 py38hca03da5_0
whisper 1.1.10 pypi_0 pypi xz 5.4.2 h80987f9_0
yarl 1.9.2 pypi_0 pypi zipp 3.16.2 pypi_0 pypi zlib 1.2.13 h5a0b063_0
zstd 1.5.5 hd90d995_0

Don-Yin commented 1 year ago

Hi is there any prospect of merging this to the main branch?

cnrishiraj commented 1 year ago

Getting this error

[INFO] Adjusting for ambient noise from Default Mic. Please make some noise from the Default Mic... [INFO] Completed ambient noise adjustment for Default Mic. [INFO] Adjusting for ambient noise from Default Speaker. Please make or play some noise from the Default Speaker... [INFO] Completed ambient noise adjustment for Default Speaker. Traceback (most recent call last): File "/Users/dd/Downloads/ecoute-main/main.py", line 125, in main() File "/Users/dd/Downloads/ecoute-main/main.py", line 85, in main model = TranscriberModels.get_model('--api' in sys.argv) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dd/Downloads/ecoute-main/TranscriberModels.py", line 10, in get_model return WhisperTranscriber() ^^^^^^^^^^^^^^^^^^^^ File "/Users/dd/Downloads/ecoute-main/TranscriberModels.py", line 14, in init self.audio_model = whisper.load_model(os.path.join(os.getcwd(), 'tiny.en.pt')) ^^^^^^^^^^^^^^^^^^ AttributeError: module 'whisper' has no attribute 'load_model'