Обновление Raspberry Pi Buster нарушило аудиовход

#python #raspberry-pi #speech-recognition #alsa #raspberry-pi4

#python #raspberry-pi #распознавание речи #alsa #raspberry-pi4

Вопрос:

Запуск Raspberry Pi 4 8-гигабайтный, 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 amp;amp; aplay -D plughw:2,0 test.wav
  

Тогда как в прошлом для этого теста требовалось plughw: 1,0

В python Speech_Recognition нет известных мне настроек для указания звуковой карты. Похоже, что он просто использует значение по умолчанию. Поэтому я попытался установить значения по умолчанию.

Я сменил карту с 1 на 2 в / home /pi /.asoundrc

Я попробовал 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 amp; aplay ДЕЙСТВИТЕЛЬНО работают.

Это расстраивает. Никаких изменений не было внесено ни в один из используемых мной кодов, который безупречно работал более года.

Ниже приведен результат, когда я пытаюсь запустить распознавание речи.запуск из командной строки. Я получаю множество ошибок, и он постоянно зависает при «Калибровке микрофона». Я должен выполнить 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
  

Комментарии:

1. Если здесь никто не отвечает, попробуйте перепостить на Raspberry PI StackExchange.

2. Дэвид, это когда-нибудь решалось? Такая же проблема. Не могу использовать PyAudio для записи с моего USB-микрофона. Однако я могу использовать Alexa через мой Pi просто отлично. Если бы только у них был простой навык захвата речи.

3. @Azurespot Я решил проблему, и когда я вернусь к своим основным системам завтра, я рассмотрю решение и опубликую. Iirc это было довольно просто, но неочевидно. Сейчас я использую Pi 4B 8gig под управлением Raspbian OS64, и все остается потрясающим. SR почти идеальный, низкая задержка. Они также перешли с Alsa на PyAudio, что добавило несколько проблем, но все они были решаемы. Подробности завтра.

4. О, интересно, приятно знать. У меня есть Pi 4 model B 8GB Buster (я думаю, что он 64-разрядный?) Я заметил, что на моем есть как Alsa, так и PyAudio. Я, наконец, прочитал, что сообщения на самом деле являются предупреждениями и могут быть подавлены. Все еще пробую образцы Python для этого. Но хотелось бы увидеть ваше решение, если у вас будет такая возможность. Спасибо!