Unable to get Playstation Eye recognized

Hey everyone,

My new year’s resolution is to migrate my voice assistants from Google to something more privacy-focused, so here I am!

I have HomeAssistant running supervised on vanilla Debain (I’m not going to pretend that I remember what this actual HA installation method is called this week by the HA folks). In any case, Debian + docker, including the supervisor, on an old Dell Optiplex 9020. There are no other services installed or running on this box.

I have installed a Rhasspy addon for HomeAssistant from the following repo: https://github.com/synesthesiam/hassio-addons

TTS using the poor thing’s internal speaker works fine with several of the available TTS engines. So far so good – but I am having trouble getting a Playstation Eye to be recognized. In the addon configuration, there are dropdowns to select the audio device. I have selected what I assume is the PSEye here, and restarted Rhasspy. So the device is seen by the HA container.

For my AUDIO RECORDING settings, I have tried both pyAudio and arecord options, refreshing the list and doing a TEST to identify any “working” devices.

Unfortunately, no actual devices appear, and when I click TEST I get a timeout – regardless of whether pyAudio or arecord is selected.

Is this a problem with the Rhasspy container not seeing USB devices? Kind of stumped here.

From what I read, the PS3Eye is not supported that well because of the drivers. There are ppl that have managed to get them to run and there should be at least 3 different threads about the topic. Until someone that managed to get it to run (I didn’t) turns up here, I would suggest using the search function to find those threads.

Thanks for the reply. It’s odd though: the PlayStation Eye is the first one listed in the documentation: https://rhasspy.readthedocs.io/en/latest/hardware/

I’ll search again and see what I find.

I think it was listed because the PlayStation Eye is a product that made it’s way into many homes and people did manage to get it work with RPi to use Snips, and now Rhasspy. However, from the number of topics posted I would conclude more people have problems using the Eye than success. It’s worth a try if you happen to have one, but you’ll probably end up purchasing an alternative microphone :slightly_smiling_face:

Its sort of pointless as the beamforming algs to make it work where in the PS3 eye.
That still doesn’t explain why its not recognised as the drivers are not great but they do work even though they are a reverse engineer hack that have had the same niggles for over a decade.

Its debatable if the sum of the channels is an increase over the sum of the SNR which will happen and also side on it forms a high pass filter.

Its just one of those PC myths that because its an array its any good, it was really good but that was the Sony software that was in the PS3 not the mic.

It should still work though and should list but now that RaspiOS defaults to pulseaudio depending on if you use the desktop or lite version and if you arecord or pyaudio it may or not work.

What do your logs say?

If you are using docker then remember to connect to the container.

docker exec -it rhasspy /bin/bash
journalctl -b
aplay -l
pacmd list-cards

I tend to be a bit OCD so I do this just to get a better soundcard order.

sudo nano /etc/modprobe.d/alsa-base.conf on the host

options snd_usb_audio index=0
options snd_bcm2835 index=1
options snd slots=snd-usb-audio,snd-bcm2835

Not sure the module for the ps3-eye presume its snd-usb-audio but cat /proc/asound/modules when plugged in and again when ps3-eye unplugged will tell you that one on the host.

PS I will post again if you want the basic low down on audio engineering for arrays.

Personally and just my opinion get a £15 boya mic

Built like a tank and just a 3.5mm that you can use with any soundcard, camera, recorder or pc, so unlike my ps3eye which just isn’t used if not used for rhasspy it has other uses, even broadcast mic.
For price great sensitivity and being unidirectional they have natural echo & noise suppression, but yeah some early projects promoted a certain amount of mic snakoil and its sort of stuck.
There where clones for £10 a couple of days ago but maybe brexit effect.

The only working AEC attenuation we have to allow barge in needs audio in/out on the same clock (soundcard) so the above and cheap soundcard is really a much better option than usb only mics without audio out.
The new Raspberry codec zero looks really good but is sold out every where but a $2 usb soundcard isn’t much of a difference compared to price and still suggest the Boya over the built in omni-directional array without software algs.

Everything does seem to of gone up in price since brexit and the ps3-eye seems to remain as if you make honest critique we seem to get retorts from a ps3-fanclub of little fact.

Hi,

Just to say that I am using a PS Eye without any problem. But I can’t really help as I don’t have Home Assistant.

Whoa, thanks for the very detailed and thoughtful response!
I was able to get a usb headset working just fine OOTB. I need that for work, though, so I did as you suggested and ordered an inexpensive USB “conference call” device instead.

Was really just looking to get something working for POC purposes before spending much, and the Eye is what I had sitting around, though now my Octoprints go unsupervised :slight_smile: .

Thanks again!

You have to keep a close eye on those pesky 3d printers!

The conference call thingy sounds like it will be alright as that is basically speaker/mic in one device?

I have shares in Boya but have been really pleased with the perf of that mic :slight_smile:

Well I doubt Boya makes a ton off eBay sales…

Looking for more of a puck type form factor, but I’ll keep it in mind!

I found those and a blind recommendation but does actually seem to be speaker/mic in one tidy puck.

https://www.ebay.co.uk/itm/USB-Omnidirectional-Microphone-Video-Conference-Gaming-Speaker-for-PC-PS4/224277282695?

Lols the Boya is actually good but I was stressing get audio in/out on the same device as AEC/barge-in can be pretty important later on.

I find its rare that placement is in a centre of a room as often from walls to tables they are usually in position where much of the 360 of omnidirectional is not used.
The Boya is a unidirectional mic which just means it has a cardioid pattern which helps give a small amount of echo & noise suppression which when close up it does help much with AEC.

I am sort of rattling on here as you mentioned ‘octaprints’ and it would be so good if someone with 3d printing skills might have a look what might be the best budget option by far.
The Boya seems to work well and all it is, is a 14mm high quality directional electret in a very well made metal case but just a very good one for price.

You can pick up 9.7mm unidirectional electrets for about £0.20 each not as good as the Boya and for voice capture it has some simple advantages over a omnidirectional.
I rant about the Boya purely because its sensitive enough without soldering you can plug direct into a soundcard.
If you are a maker or a builder it would be so good to see a unidirectional designed puck case as there is a big step up to the next best thing of hitech DSP microphones.
A unidirectional microphone is a basic beamformer, they have decades of use via musicians for a reason and they are also real cheap.

Boya is only decent one I can find with a no solder route but if you are tinkering and building I do suggest you try a cardioid type mic as much of what you capture with omnidirectional you do not want anyway.
The Boya is a clumsy lump but the circular nature of electrets makes then quite easy to mount and 2x, 3x in maybe 180, 135 & 90 still accept signals from all sides but is attenuated if not approximately face on.

I think 2x in either a 180 or 135 degree position on a stereo usb sound card such as a £7

https://www.scan.co.uk/products/enermax-ap001e-dreambass-usb-soundcard-plus-earphones-genie-with-integrated-80-hz-plus6-db-bass-boos

We still need a method to pick the best mic instance whilst running 2x KWS but it can rival near 3 figure technology for a couple of quid.

I tried a few of those and mostly they were very noisy unfortunately. Also I think it doesn’t have a speaker build in but instead only a 3.5 mm jack for connecting a headphone or external speaker. Also not all of those work with Linux so your mileage may vary.

I ve been playing with the idea of designing something in this direction. That’s why I liked the raspberry pi hat with the mic input as it would be hard to design a compact puck case when a usb sound card is needed.
It’s supposed to become available sometime this or next month. (I just pre-ordered one which is supposed to be delivered in two weeks).

Yeah your prob right as that was why as was replying as wasn’t really aware of any inexpensive USB conference call devices and that was all I could find.

We will have to wait for a review from @Chad_Dybdahl

I have not managed to ps3 eye getting work. I have added to /etc/modprobe.d/alsa-base.conf your info (the file was empty before), I have created a cat /etc/udev/rules.d/70-alsa-permanent.rules with this info:

SUBSYSTEM!=“sound”, GOTO=“my_usb_audio_end”
ACTION!=“add”, GOTO=“my_usb_audio_end”
ATTRS{idVendor}==“1415”, ATTRS{idProduct}==“2000”, ATTR{id}=“VOICE”

I have this /proc/asound/modules output:

0 snd_bcm2835
1 snd_usb_audio

And this for /proc/asound/cards:

0 [Headphones ]: bcm2835_headphonbcm2835 Headphones - bcm2835 Headphones
bcm2835 Headphones
1 [VOICE ]: USB-Audio - USB Camera-B4.09.24.1
OmniVision Technologies, Inc. USB Camera-B4.09.24.1 at usb-3f980000.usb-1.3, hi

My .asoundrc contains:

pcm.jack {
type hw
card ALSA
}
pcm.array {
type hw
card VOICE
}
pcm.array_gain {
type softvol
slave {
pcm “array”
}
control {
name “Mic Gain”
count 2
card 0
}
min_dB -40.0
max_dB 10.0
resolution 80
}
pcm.cap {
type plug
slave {
pcm “array_gain”
channels 4
}
route_policy sum
}
pcm.!default {
type asym
playback.pcm “plug:softvol”
capture.pcm {
type plug
slave.pcm “cap”
}
}

arecord -L shows:

null
Discard all samples (playback) or generate zero samples (capture)
jack
array
array_gain
cap
default

arecord -l shows:

arecord: device_list:272: no soundcards found…

I can get arecord working, can you help me?
Thanks

Start from scratch with just a clean raspberry as not a fan of the PS3eye but lets give it a whirl.

Its quick to flash an image and lets see what we get with no modprobe or asound.conf

With arecord -l

Post that and I will try to come back ASAP

I have install on a clean microSD a raspberry lite OS. “arecord -l” shows little different:

**** List of CAPTURE Hardware Devices ****
card 2: CameraB409241 [USB Camera-B4.09.24.1], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0

The “/proc/asound/cards” shows the camera:

0 [b1 ]: bcm2835_hdmi - bcm2835 HDMI 1
bcm2835 HDMI 1
1 [Headphones ]: bcm2835_headphonbcm2835 Headphones - bcm2835 Headphones
bcm2835 Headphones
2 [CameraB409241 ]: USB-Audio - USB Camera-B4.09.24.1
OmniVision Technologies, Inc. USB Camera-B4.09.24.1 at usb-3f980000.usb-1.3, hi

Just a “arecord -D plughw:CameraB409241,0 -t raw -r 16000 -f S16_LE -c 1” works. After this I have reconfigured .asoundrc and works life a charm. I will try on a clean dietpi image. Thank you!

Just told you what I do when things go wrong but often that does the trick :slight_smile:

You can turn off the headphone as it does really suck in /boot/config.txt.

But seems like you got it as use plughw not hw and get autoconversion I also install asound2-plugins but often do my own reinstall as for some reason with speex after all this time debian still uses a RC.

The source of what I use for the ps3eye is here

The real magic of the ps3eye was the software algs in the ps3 so its like any array really without algs and JAA (just another array) :slight_smile:

I will check, I will try to get the ps3 eye working on dietpi first. Thank you!

I know ps3 eye is a simple microphone array, I have one and want to try rhasspy with one “satellite” on a rpi3. I am making an home “google home” with rhasspy and snapcast (to get multi-room music). I have made one initial successful try with my PC (but I have a supercardioide mic and high end soundcard from auzentech). I will mount several “serious home kit” (good microphone, good 20-30W speaker with amp and a good DAC) in my home if my these tests works. I have seen some post from you with some setup tips.

Yeah we are lacking the beamforming libs that can seem to run with a reasonable amount of load so with omnidirectional especially with music you get a lot of bleed in.

There is not really a good option so its been an OK so what a reasonable cheap option so hence cardioid electrets rather than mems omni’s that are on pcb and extremely hard to isolate.
Also there is the option to use higher quality wireless audio gear and just use a home ‘google home’ as a mic capture point as separating audio out and in can help and broadcast to something like sqeezelite or snapcast.
I had a Pi3A+ on the back of a satellite speaker running snapcast on a reasonable 50watt amp model and it sounds much better than the toy like mini speakers and amps you can get but it starts getting extremely hard if in the same enclosure to stop voice being flooded with echo.

The attenuation from a cardioid plus the attenuation from EC can help much though.

Sanebow just posted some updates to the EC which really helps in this case.