首页 > 解决方案 > Raspberry Pi Buster 更新中断音频输入

问题描述

运行 Raspberry Pi 4 8​​-gig、Buster、Python 3.7.3

我已经运行语音识别大约一年了(首先在 RPi 3B+ 上,然后是 4 - 4gig,现在在 4 - 8gig 上)。最近的更新似乎禁用了通过我的 USB 声卡的麦克风输入。

我显然并不孤单,但我到处找到的信息都与音频输出有关,关于音频输入的信息很少或根本没有:

https://retropie.org.uk/forum/topic/26434/usb-audio-broke-after-latest-updates/4

无论如何,我注意到声卡是卡 1,但是当我运行时

cat /proc/asound/cards

输出显示位置 1 有一张新卡:耳机。USB 设备已移至 2:

0 [b1             ]: bcm2835_hdmi - bcm2835 HDMI 1
                     bcm2835 HDMI 1
1 [Headphones     ]: bcm2835_headphonbcm2835 Headphones - bcm2835 Headphones
                     bcm2835 Headphones
2 [Device         ]: USB-Audio - USB Audio Device
                     GeneralPlus USB Audio Device at usb-0000:01:00.0-1.4, full speed

所以为了验证硬件是否正常工作,我测试成功:

arecord -D plughw:2,0 -d 4 test.wav && aplay -D plughw:2,0 test.wav

而在过去,该测试需要 plughw:1,0

我知道在 python Speech_Recognition 中没有设置来指定声卡。它似乎只使用默认值。所以我尝试设置默认值。

我在 /home/pi/.asoundrc 中将卡从 1 更改为 2

我试过 sudo nano /etc/asound.conf

pcm.!default {
type hw card 2
}
ctl.!default {
type hw card 2
}

当然是重启。这些都没有奏效。

所以我尝试编辑 /boot/config.txt 通过将 dtparam=audio=on 更改为 dtparam=audio=off 并重新启动来关闭板载声音。

这确实禁用了板载声音,并且仅显示 USB 卡可用,并且在卡 1 上。所以我将所有内容从卡 2 更改回我之前编辑的卡 1,仍然没有运气。

我尝试使用托盘中右下角的音频图标,右键单击并选择 USB 设备作为输入,以及我尝试过的其他一些东西,发现不起作用,并且已经忘记了。在某个地方,有一个设置或其他东西可以让这项工作再次发挥作用……必须有。

真正奇怪的是,尽管进行了所有这些更改,但我从未丢失过音频输出。我的音频输出是通过 USB 卡。你会认为这也会改变 - 但它似乎只是麦克风输入。

我知道麦克风输入有效,因为 arecord 和 aplay 确实有效。

这令人沮丧。我使用的任何代码都没有进行任何更改,这些代码已经完美运行了一年多。

下面是我尝试从命令行运行 SpeechRecognition.py 时的输出。我收到一大堆错误,它永久挂在“校准麦克风”处。我必须执行 Control-C 才能退出。

我希望有人会认识到这里发生了什么并可以提供帮助。非常令人沮丧的是,我如此努力地进行完美调整的东西会被更新炸毁。我的系统依赖于语音输入。现在它聋了。

谢谢你的帮助。我真的需要帮助......完全陷入困境并迷失了方向。

ERROR ON RUN OF SpeechRecognition.py:


ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.bluealsa.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5036:(snd_config_expand) Args evaluate error: No such file or directory
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM bluealsa
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.bluealsa.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5036:(snd_config_expand) Args evaluate error: No such file or directory
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM bluealsa
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
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
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_a52.c:823:(_snd_pcm_a52_open) a52 is only for playback
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
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
Calibrating microphone

标签: pythonraspberry-pispeech-recognitionalsaraspberry-pi4

解决方案


推荐阅读