wzpan / wukong-robot

🤖 wukong-robot 是一个简单、灵活、优雅的中文语音对话机器人/智能音箱项目,支持ChatGPT多轮对话能力,还可能是首个支持脑机交互的开源智能音箱项目。
https://wukong.hahack.com/
MIT License
6.24k stars 1.33k forks source link

在容器中运行wukong-robot,PS3-EYE 无法录音 #61

Closed tomcatGu closed 5 years ago

tomcatGu commented 5 years ago

确认已寻找过答案

我已确认在 Github issue 页、常见问题页、文档 中都查找过,没有找到类似问题和资料。我也没有 google / bing/ 百度 / duckduckgo 到相关解答。

安装方式

树莓派中安装了一个docker和hassio,参考手动安装方式,用homeassistant的local addon功能,写了一个Dockerfile生成了一个镜像,并在容器中运行wukong-robot。

操作系统

树莓派3b+ raspbian hassio

问题描述

现在拍照是正常的,播放声音也正常,就是无法录音唤醒。PS3-EYE的蓝灯长亮,红灯不亮。

在容器中执行 arecord -l,显示如下: root@local-wukong-robot:/home/pi# arecord -l List of CAPTURE Hardware Devices card 1: CameraB409241 [USB Camera-B4.09.24.1], device 0: USB Audio [USB Audio] Subdevices: 0/1 Subdevice #0: subdevice #0

在容器中执行arecord -D "plughw:1,0" temp.wav,显示如下: root@local-wukong-robot:/home/pi# arecord -D "plughw:1,0" temp.wav arecord: main:788: audio open error: Device or resource busy

wukong-robot启动日志如下: wukong-robot! ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.front.0:CARD=0' ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM front ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.surround51.0:CARD=0' ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround21 ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.surround51.0:CARD=0' ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround21 ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.surround40.0:CARD=0' ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround40 ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.surround51.0:CARD=0' ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround41 ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.surround51.0:CARD=0' ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround50 ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.surround51.0:CARD=0' ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround51 ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.surround71.0:CARD=0' ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround71 ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2' ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM iec958 ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2' ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM spdif ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2' ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM spdif ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave Cannot connect to server socket err = No such file or directory Cannot connect to server request channel jack server is not running or cannot be started JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock

原来的dingdang-robot,我也用类似的方法在docker容器中运行,是可以录音唤醒的,工作时那个PS3-EYE的红灯是长亮的。

wzpan commented 5 years ago

能否提供下 docker 地址?

tomcatGu commented 5 years ago

Dockerfile :

ARG BUILD_FROM FROM resin/rpi-raspbian:stretch

ENV LANG C.UTF-8

WORKDIR /home/pi/

RUN echo "deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi \n deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi" > /etc/apt/sources.list

COPY wukong-robot ./wukong-robot

COPY .asoundrc /home/pi/ COPY lib/ /opt/vc/lib/

RUN apt-get update && \ apt-get -y upgrade RUN apt-get install -y alsa-base alsa-utils wget make gcc g++ git bzip2 python3 python3-pip python-pyaudio python3-pyaudio sox pulseaudio libsox-fmt-all ffmpeg

install setuptools

RUN wget https://bootstrap.pypa.io/ez_setup.py && \ python3 ez_setup.py

RUN apt-get install -y python3-dev python3-all-dev

RUN cd /home/pi/wukong-robot && \ sudo pip3 install -r requirements.txt -i https://pypi.douban.com/simple

RUN wget http://hahack-1253537070.file.myqcloud.com/misc/swig-3.0.10.tar.gz && \ tar xvf swig-3.0.10.tar.gz && \ cd swig-3.0.10 && \ apt-get install -y libpcre3 libpcre3-dev && \ ./configure --prefix=/usr --without-clisp --without-maximum-compile-warnings && \ make && \ make install && \ install -v -m755 -d /usr/share/doc/swig-3.0.10 && \ sudo cp -v -R Doc/* /usr/share/doc/swig-3.0.10 && \ apt-get install -y libatlas-base-dev

RUN wget http://hahack-1253537070.file.myqcloud.com/misc/snowboy.tar.bz2 && \ tar -xvjf snowboy.tar.bz2 && \ cd snowboy/swig/Python3 && \ make && \ cp _snowboydetect.so /home/pi/wukong-robot/snowboy/

RUN cd /home/pi && \ mkdir .wukong/ && \ cd .wukong && \ git clone http://github.com/wzpan/wukong-contrib contrib && \ sudo pip3 install -r contrib/requirements.txt

RUN apt-get install fswebcam

COPY run.sh / RUN chmod a+x /run.sh CMD [ "/run.sh" ]

config.json:

{ "name": "wukong-robot", "version": "0.1.4", "slug": "wukong-robot", "description": "wukong-robot add-on!", "startup": "application", "boot": "auto", "arch":["armv7"], "options": { "mic": "1,0", "speaker": "0,0" }, "schema": { "mic": "str", "speaker": "str" }, "ports": {"5000/tcp": 5001}, "devices": ["/dev/video0:/dev/video0:rwm","/dev/snd:/dev/snd:rwm"], "audio": true, "gpio": true, "map": ["config:rw"] }

run.sh:

!/bin/bash

echo wukong-robot! LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/ export LD_LIBRARY_PATH cd /home/pi/wukong-robot python3 wukong.py

aylzh commented 5 years ago

Cannot connect to server socket err = No such file or directory Cannot connect to server request channel jack server is not running or cannot be started 请问这几个错误是什么原因引起的?谢谢!

tomcatGu commented 5 years ago

Cannot connect to server socket err = No such file or directory Cannot connect to server request channel jack server is not running or cannot be started 请问这几个错误是什么原因引起的?谢谢!

这三行输出好像不影响使用。

aylzh commented 5 years ago

Cannot connect to server socket err = No such file or directory Cannot connect to server request channel jack server is not running or cannot be started 请问这几个错误是什么原因引起的?谢谢!

这三行输出好像不影响使用。

我在树莓派和Ubuntu上安装都出现这样的错误,找不到原因,我的无法唤醒,但是从后台聊天可以返回正常的语音答复,使用命令行测试录音播放正常,但是不能语音对话,不知道怎么回事。

tomcatGu commented 5 years ago

Cannot connect to server socket err = No such file or directory Cannot connect to server request channel jack server is not running or cannot be started 请问这几个错误是什么原因引起的?谢谢!

这三行输出好像不影响使用。

我在树莓派和Ubuntu上安装都出现这样的错误,找不到原因,我的无法唤醒,但是从后台聊天可以返回正常的语音答复,使用命令行测试录音播放正常,但是不能语音对话,不知道怎么回事。

我也是这个问题。

aylzh commented 5 years ago

Cannot connect to server socket err = No such file or directory Cannot connect to server request channel jack server is not running or cannot be started 请问这几个错误是什么原因引起的?谢谢!

这三行输出好像不影响使用。

我在树莓派和Ubuntu上安装都出现这样的错误,找不到原因,我的无法唤醒,但是从后台聊天可以返回正常的语音答复,使用命令行测试录音播放正常,但是不能语音对话,不知道怎么回事。

我也是这个问题。

你用ps3 eye也无法唤醒吗?我还以为是麦克风的问题呢,正准备买个ps3 eye或者树莓派专用的那个两麦语音板呢。

tomcatGu commented 5 years ago

Cannot connect to server socket err = No such file or directory Cannot connect to server request channel jack server is not running or cannot be started 请问这几个错误是什么原因引起的?谢谢!

这三行输出好像不影响使用。

我在树莓派和Ubuntu上安装都出现这样的错误,找不到原因,我的无法唤醒,但是从后台聊天可以返回正常的语音答复,使用命令行测试录音播放正常,但是不能语音对话,不知道怎么回事。

我也是这个问题。

你用ps3 eye也无法唤醒吗?我还以为是麦克风的问题呢,正准备买个ps3 eye或者树莓派专用的那个两麦语音板呢。 是的,无法唤醒。

tomcatGu commented 5 years ago

Cannot connect to server socket err = No such file or directory Cannot connect to server request channel jack server is not running or cannot be started 请问这几个错误是什么原因引起的?谢谢!

这三行输出好像不影响使用。

我在树莓派和Ubuntu上安装都出现这样的错误,找不到原因,我的无法唤醒,但是从后台聊天可以返回正常的语音答复,使用命令行测试录音播放正常,但是不能语音对话,不知道怎么回事。

我也是这个问题。

你用ps3 eye也无法唤醒吗?我还以为是麦克风的问题呢,正准备买个ps3 eye或者树莓派专用的那个两麦语音板呢。

你是直接在树莓派里安装,也无法唤醒?

tomcatGu commented 5 years ago

我修改了constants.py: CONFIG_PATH = os.path.expanduser( os.getenv('WUKONG_CONFIG', '/config/wukong') ) CONTRIB_PATH = os.path.expanduser( os.getenv('WUKONG_CONFIG', '/home/pi/.wukong/contrib') ) CUSTOM_PATH = os.path.expanduser( os.getenv('WUKONG_CONFIG', '/home/pi/.wukong/custom') )

是不是因为这个原因造成无法唤醒?

stale[bot] commented 5 years ago

由于久无进展,这个 issue 已被标为过期。如果还没有后续进展,这个 issue 将被关闭。谢谢你的反馈!