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

#开一个小白讨论帖,小白们集合呀! #15

Open
zsstssjxzzyxgs opened this issue Dec 14, 2023 · 22 comments
Open

#开一个小白讨论帖,小白们集合呀! #15

zsstssjxzzyxgs opened this issue Dec 14, 2023 · 22 comments

Comments

@zsstssjxzzyxgs
Copy link

zsstssjxzzyxgs commented Dec 14, 2023

开一个小白讨论帖,欢迎大家讨论,祝大家早日拥有自己的ai派蒙

事情是这样的,我在b站看到这个项目,十分感兴趣。但作为一个小白,题主所写对我来说十分笼统,在尝试两天后我任然无法解决其中的bug。看到有许多小白和我一样不知所措,为此我打算分享我目前得到的成果,以供大家讨论并应对具体的事项。

系统:mac 13.4和14.2,我在调试过程中还升级了一次lol
芯片:m1芯片,21年机型

首先,你需要下载anaconda和brew,

anaconda链接在此:

https://www.anaconda.com

12.16更新:anaconda在删除后让我成功避免了一些错误,因此下载miniconda是推荐的

https://docs.conda.io/projects/miniconda/en/latest/
截屏2023-12-14 19 47 46

brew选择国内源下载

  /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

然后打开题主下载代码中的readme文件在终端中输入前两行代码

遇到弹出填y,这主要是建立一个虚拟环境,之后你会发现你前面的括号内容发生变化了

截屏2023-12-14 20 06 10

打开anaconda,在环境中找到voice ai,以后就不用再配置环境了,在这里启动终端就可以💗

截屏2023-12-14 20 29 53

接着,通过路径打开你下载的文件夹

  如 cd ~/desktop/program/voice-assistant-main(文件路径)

这里cd是打开文件夹的命令,打开后这一点要是没弄清楚,小白很容易在后一步卡住。我是图省事就放桌面了,同时hear和models我也放在voice-assistant-main中,这也可能导致我之后的错误。

执行pip install -r requirements.txt

要是出现pip命令找不到就尝试pip3

这一步最容易出现的错误是mlx下载错误,我查mlx下载手册(https://ml-explore.github.io/mlx/build/html/install.html)显示使用pip install mlx 需要用native Python >= 3.8,MacOS >= 13.3,但这个环境python = 3.11,就找不到资源。

截屏2023-12-14 20 20 52

但我按照mlx文档所说的步骤构建native环境,发现torch不支持这个平台,也会报错所以进退两难了。

截屏2023-12-14 21 10 44

我的做法是打开requirements.txt,删除mlx,尝试通过源码导入,但也失败了,这个我们之后再说。

执行 CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python

这一点我基本不会报错,等一会就好了。

下载portaudio和pyaudio

brew install portaudio
pip install pyaudio

复制代码输入就好,这里我也不会报错错。

下载gguf和hear

这里我找到了镜像源

https://hf-mirror.com/01-ai/Yi-34B-Chat

有多种gguf能够下载,我下载的是这个

https://hf-mirror.com/TheBloke/Yi-34B-GGUF/blob/main/yi-34b.Q4_K_M.gguf

下载完毕后,我放到voice-assistant-main中建立的models文件(这是我新建的文件夹)

截屏2023-12-14 20 41 42

同时按照题主描述下载hear并执行sudo bash install.sh,这大概是我最先成功的事情。

运行程序

重头戏来了,如果你前面msl没有报错,那你是比我幸运得多的幸运儿,恭喜你可以运行程序了(大概?)
注意看你是否还在voice-assistant-main,如果没在则用cd折跃;如果在的话,执行python main.py(这是我在题主视频里看到的)

截屏2023-12-14 20 42 46

若你得到以上输出,那么我也无能为力,因为我也止步于此!如果你能运行,那么恭喜你,也欢迎你向我分享你的喜悦与运行方法。
这个问题的描述是这样的,主要与pyaudio有关
image

主要是在执行导入pyaudio时执行__init__.py第111行出错输出的,我重复了很多遍还是无法解决
以下是我找到的试图解决这个问题的方法,但都对我无效,希望能祝你度此难关。

image

https://blog.csdn.net/qq_41185868/article/details/107056843
https://blog.csdn.net/u012965373/article/details/131407998
https://zhuanlan.zhihu.com/p/269415073

所以我希望大家一起讨论,看看能不能解决这个问题,如果是bug的话就只能等更新了,不发出来我心痒痒。

这是我第一次写issue,我也才接触github两天,其中肯定有许多错误。若果有什么错误或者遗漏,也请经快与我讨论。
写到最后才发现题主是我校友[捂脸],献丑了…… 也希望题主能够早日更新,早日实现“让大家分分钟拥有自己的ai语音助手”的承诺。

@zsstssjxzzyxgs
Copy link
Author

mlx源码导入

好像忘了什么,oh,对,如果你mlx没能导入,那你一定还记得mlx源码导入。

事先声明,如果你的目的只是导入项目而对讨论没有兴趣的话,那么我认为以下内容帮不到你,因为我也没能成功。我认为这与环境的python版本有关而非与导入方式有关。但如果和我一样对代码很感兴趣的话,作为一个小白以下内容可能对你有用,因为它让我学习到了很多。

mlx是苹果发布的机器学习框架,题主称其whisper函数就是基于mlx开发的。因此,mlx对于程序是不可缺少的。
我首先询问了gpt如何解决,gpt向我提出了wheel导入的方法

pip install path/to/wheel文件名

我按照gpt的说法,找到了mlx的wheel文件

https://pypi.org/project/mlx/#files

但很可惜,没能成功。

pip install /Users/name/Desktop/program/voice-assistant-main/mlx-0.0.5-cp310-cp310-macosx_14_0_arm64.whl

ERROR: mlx-0.0.5-cp310-cp310-macosx_14_0_arm64.whl is not a supported wheel on this platform.

在mlx的文档中我查找到了下载code导入的方法

https://ml-explore.github.io/mlx/build/html/install.html

由于方法一已经使用过了,我采用的是使用python API的方法。方法如下:
//下载pybind11(我也不清楚是什么)

pip install "pybind11[global]"
conda install pybind11
brew install pybind11

//用pip构建并下载

env CMAKE_BUILD_PARALLEL_LEVEL="" pip install .

其中,env代指创建的虚拟环境;CMAKE_BUILD_PARALLEL_LEVEL=""设置环境变量,设置为空可能是为了禁用并行构建;’pip install .‘ ,其中‘ . '代表目录下的项目,该指令会自行查找项目中的setup.py并用setuptools来安装。因此我将下载的文件夹也放入voice-assistant-main,通过cp在voice-assistant-main中打开并执行了以上命令。

//在此报错

error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

@DODOTAX
Copy link

DODOTAX commented Dec 14, 2023

牛逼啊楼主

@linyiLYi
Copy link
Owner

我很久以前遇到过这个问题,当时也是发现 conda 环境下 pyaudio 导入会报错。解决办法是不使用 anaconda,直接在主环境里运行这个程序,后来运行过几次之后不知道为什么在 conda 环境里也可以了。

@NJUShannon
Copy link

mlx这个问题其实是因为在pypi源上只有macosx_13_0,macosx_14_0,以及python38,39,310,311,312的支持。所以如果不在这10个组合里,通过pip install mlx是无法找到这个mlx包的。

我的电脑是macOS Monterey,也就是macosx_12_0,conda环境指定的python版本为3.11。在这样的配置下,通过修改下载的mlx安装包mlx-0.0.5-cp311-cp311-macosx_13_0_arm64.whl (3.11版本python,macos版本13),并将其重命名成mlx-0.0.5-cp311-cp311-macosx_12_0_arm64.whl ,是能够安装mlx成功的。然而,在执行时,报了找不到一个系统库的错,查看对应路径,发现内容的确不一样,猜测可能是13和12的系统差异。目前准备更新系统再试试看。

@zsstssjxzzyxgs
Copy link
Author

zsstssjxzzyxgs commented Dec 16, 2023

mlx的一些补充

在经过一些试验后,我意识到无法使用pip并非是python版本的原因,而是arm环境的原因。因为我曾执行过以下代码

arch -x86_64 zsh

按照mlx的文档,我改进了第一条代码,使其环境为arm架构

CONDA_SUBDIR=osx-arm64 conda create -n VoiceAI python=3.11  -c conda-forge

CONDA_SUBDIR=osx-arm64代表环境参数为osx-arm64,确保所有的软件和工具都是arm架构的。这可能也对于非M芯片用户也有效。
在使用该代码创建虚拟环境后,我顺利地实现了用pip安装,尽管我依然无法使用源码导入mlx(一样的错误)。同时我也发现,我现在使用的python可能并不是arm架构的,这可能是之前我无法下载mlx的祸首,因为mlx只支持arm架构。所以接下来我将尝试下载arm架构的python并修改环境参数。
@NJUShannon 感谢你的建议! 我目前是14.2的系统,并且通过pip install成功下载了mlx。事情可能和你说的一样,但据我所知修改名称应该不会解决大部分的兼容问题,所以我觉得升级系统是必要的。如果还是失败的话,也建议你通过这个代码查看你的python是否为arm架构

python -c "import platform; print(platform.processor())"

如果输出arm就是,不是的话,mlx文档的build and install会给你解决的方法。这是针对pip install 的解决方案。由于我没能完成源码导入,也希望你能想我分享你是如何成功通过源码导入mlx的。

新进展

感谢[linyiLYi]的思路分享。我尝试了在主环境中运行程序,但由于缺少mlx,所以目前来说仍没有结果。

ModuleNotFoundError: No module named 'mlx'

同时我也尝试了我的新环境,但令人沮丧的是,它仍然有问题,出现了以下的报错

ImportError: Error importing numpy: you should not try to import numpy from its source directory; please exit the numpy source tree, and relaunch your python intepreter from there.

其问题在于使用源文件夹导入numpy,但在我找到numpy并把它拖到桌面后,仍然无法解决这个问题。

更新的进展

家人们,它没问题!在我删除anaconda下载minianaconda后,它开始运行了!

截屏2023-12-16 14 22 56

昨天码的字结果没发上[捂脸],村里果然没通网。本来想重复一遍截屏报错的,结果阴差阳错运行了
具体方法如下:我在base中通过cd打开我的voice-assistant-main文件夹,将六行代码直接丢进去,python main.py就运行了。python太玄学了。
但它依然没能成功,我遇到了和[annidy]一样的问题,
截屏2023-12-16 14 42 28
这是一个简单却容易忽略的错误,其原因在于main中路径描述的模型名与实际模型名不同,修改后可成功启动。
对我的电脑来说34B占用过大导致运行失败,应当采用更小模型。
试验完毕,结论为:无论是34B还是6B,都不是8G物理内存的电脑应当承受的。

@ulooocom
Copy link

M2 MAX 64G内存,一直遇到这个报错,调整 CHANNELS 参数无效,看过pyaudio的文档,以及重装也无用。

[I] ◆ voice-assistant git:(main) ✗ ❯❯❯ python main.py (VoiceAI)
Listening...
Traceback (most recent call last):
File "/Users/fusc/Developer/AI/voice-assistant/main.py", line 174, in
record_audio()
File "/Users/fusc/Developer/AI/voice-assistant/main.py", line 46, in record_audio
stream = audio.open(format=FORMAT, channels=2, rate=RATE, input=True, input_device_index=MIC_IDX, frames_per_buffer=CHUNK)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/fusc/miniconda3/envs/VoiceAI/lib/python3.11/site-packages/pyaudio/init.py", line 639, in open
stream = PyAudio.Stream(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/fusc/miniconda3/envs/VoiceAI/lib/python3.11/site-packages/pyaudio/init.py", line 441, in init
self._stream = pa.open(**arguments)
^^^^^^^^^^^^^^^^^^^^
OSError: [Errno -9998] Invalid number of channels
[I] ✖ 1 voice-assistant git:(main) ✗ ❯❯❯ hear (VoiceAI)
No
No
No
No hello
No hello
No hello
^Zfish: Job 2, 'hear' has stopped
[I] ✖ 1 voice-assistant git:(main) ✗ ❯❯❯

@zsstssjxzzyxgs
Copy link
Author

zsstssjxzzyxgs commented Dec 17, 2023

你好[ulooocom]
对于OSError: [Errno -9998] Invalid number of channels,这里有相关解决方法

https://blog.csdn.net/dreautumn/article/details/131531996

这应该是由于通道数设置不匹配导致的OSError,因为在原main代码中设置了CHANNELS=1表示希望使用单声道,但在错误消息中表示你尝试使用CHANNELS=2立体声模式打开流。可能你并没有给你的hear立体声模式的权限,

如果你还有什么问题,你可以询问ChartGPT,虽然它无法解决所有问题,但它在解释代码原理方面很有作用。

@NJUShannon
Copy link

我周末更新完系统之后就能够正常运行了,笔记本配置为MBP M2 16G。不过因为内存的关系,目前只能加载6B的模型。从效果上来说,蛮一般的,有时候回答会直接从Prompt里摘取内容,有时候会陷入一直重复说话,一个回复里面一句话能重复十几次。

顺便去了解了下Bert-VITS2,这个蛮有意思的,不过看起来如果从回复及时朗读的话,性能还是比较大的问题。

@melvinz79
Copy link

有个问题,为什么whisper在windows下要替换成speech_recognition?直接用有问题吗?

@wxharry
Copy link

wxharry commented Dec 21, 2023

有个问题,为什么whisper在windows下要替换成speech_recognition?直接用有问题吗?

本项目中的whisper是用的mlx, 这是苹果芯片M系列上的库,所以在windows下要替换成别的库。

@alfred-liang
Copy link

可以跑起来,但是跑起来后不知道要怎么使用,我对着电脑说话,终端没什么反应。要点一下f5麦克风那个图标然后说话吗,有时候能识别,但是速度很慢很慢,回答也是很啰嗦🤣,要怎么样才能和它流畅对话呢,设备是M1Pro 32g
image

@zsstssjxzzyxgs
Copy link
Author

这可能与所选ai版本有关,可能34B会更流畅。在题主的演示视频中,他使用128G+34B也用了5318ms

@Gingko4ever
Copy link

请问在windows下mlx库要如何平替?修改相关代码吗

@melvinz79
Copy link

现在这套whisper 是苹果m芯片专供,去官网下一套就行。

@Zhaoli2042
Copy link

用的是m2 ultra, 先尝试的是6b的模型,感觉还挺有意思的。就是有时会抽风。我叹了口气(input就是sigh),她之后说了一堆脑筋急转弯的东西,而且还把同样的东西重复了三次。。。接下来试试34b。不过运行起来还是很开心的。

一个小点:我的电脑报了ffmpeg的error,然后我才发现我conda没装这个:
conda install -c conda-forge ffmpeg

@DeeepMind
Copy link

mlx这个问题其实是因为在pypi源上只有macosx_13_0,macosx_14_0,以及python38,39,310,311,312的支持。所以如果不在这10个组合里,通过pip install mlx是无法找到这个mlx包的。

我的电脑是macOS Monterey,也就是macosx_12_0,conda环境指定的python版本为3.11。在这样的配置下,通过修改下载的mlx安装包mlx-0.0.5-cp311-cp311-macosx_13_0_arm64.whl (3.11版本python,macos版本13),并将其重命名成mlx-0.0.5-cp311-cp311-macosx_12_0_arm64.whl ,是能够安装mlx成功的。然而,在执行时,报了找不到一个系统库的错,查看对应路径,发现内容的确不一样,猜测可能是13和12的系统差异。目前准备更新系统再试试看。

所以目前Windows是无法安装这个库的,对吗?

@asdasdsdsdasdasdasd
Copy link

用的是m2 ultra, 先尝试的是6b的模型,感觉还挺有意思的。就是有时会抽风。我叹了口气(input就是sigh),她之后说了一堆脑筋急转弯的东西,而且还把同样的东西重复了三次。。。接下来试试34b。不过运行起来还是很开心的。

一个小点:我的电脑报了ffmpeg的error,然后我才发现我conda没装这个: conda install -c conda-forge ffmpeg

謝了老兄,我正想著ffmpeg是啥,沒想到一行代碼就搞定了

@Yeeler
Copy link

Yeeler commented Jan 17, 2024

我周末更新完系统之后就能够正常运行了,笔记本配置为MBP M2 16G。不过因为内存的关系,目前只能加载6B的模型。从效果上来说,蛮一般的,有时候回答会直接从Prompt里摘取内容,有时候会陷入一直重复说话,一个回复里面一句话能重复十几次。

顺便去了解了下Bert-VITS2,这个蛮有意思的,不过看起来如果从回复及时朗读的话,性能还是比较大的问题。

我的macbook pro是10年前的 没法跑这个代码 Windows 又没法跑这个代码 ....郁闷

@alfred-liang
Copy link

我周末更新完系统之后就能够正常运行了,笔记本配置为MBP M2 16G。不过因为内存的关系,目前只能加载6B的模型。从效果上来说,蛮一般的,有时候回答会直接从Prompt里摘取内容,有时候会陷入一直重复说话,一个回复里面一句话能重复十几次。
顺便去了解了下Bert-VITS2,这个蛮有意思的,不过看起来如果从回复及时朗读的话,性能还是比较大的问题。

我的macbook pro是10年前的 没法跑这个代码 Windows 又没法跑这个代码 ....郁闷

要换电脑了

@BCK123
Copy link

BCK123 commented Mar 15, 2024

mlx这个包要怎么解决?Windows环境下

@LangYi0131
Copy link

win10 的电脑,看到up 的视频就兴冲冲过来了,mlx 的包,折磨了很久。第一次发现在github 原来还有评论区功能,所以mlx 一定要用mac 电脑才能运行吗?

@chiimagnus
Copy link

win10 的电脑,看到up 的视频就兴冲冲过来了,mlx 的包,折磨了很久。第一次发现在github 原来还有评论区功能,所以mlx 一定要用mac 电脑才能运行吗?

对,而且还只能使用m芯片的。
我前段时间刚好做了个通用的,你可以去我的repo看看,可以在win上跑。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests