Forum Linux.pl

Sprzęt => Karty muzyczne => Wątek zaczęty przez: Zagiewa w 2016-05-14, 19:36:57

Tytuł: espeak i dwie karty dźwiękowe
Wiadomość wysłana przez: Zagiewa w 2016-05-14, 19:36:57
Witam. Mam dwie karty dźwiękowe - jedną zintegrowaną a drugą na USB. Z poziomu pulseaudio audio mixer potrafię wybrać która karta ma być domyślna lub ewentualnie przełączyć aby dźwięk był odtwarzany w jednej lub drugiej karcie ale chcę aby od czasu do czasu powiadomienia były odtwarzane tylko na drugiej karcie i tutaj pojawia się problem. Doszukałem się informacji, że mogę to zrobić za pomocą tego polecenia:
espeak "Hello world" --stdout | aplay -D default
"default" odtwarza przez domyślną kartę zintegrowaną. Zamiast default muszę podać nazwę urządzenia gdzie chcę odtwarzać i co bym nie wpisał nie działa.
Poniżej przydatne rzeczy:
cat /proc/asound/devices
  1:        : sequencer
  2: [ 0]   : control
  3: [ 0- 0]: digital audio playback
  4: [ 0- 0]: digital audio capture
  5: [ 0- 1]: digital audio playback
  6: [ 0- 2]: digital audio capture
  7: [ 0- 0]: hardware dependent
  8: [ 1]   : control
  9: [ 1- 3]: digital audio playback
 10: [ 1- 7]: digital audio playback
 11: [ 1- 8]: digital audio playback
 12: [ 1- 0]: hardware dependent
 13: [ 2]   : control
 14: [ 2- 0]: digital audio playback
 15: [ 2- 0]: digital audio capture
 33:        : timer

cat /proc/asound/cards
0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xf7210000 irq 29
 1 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xf7080000 irq 17
 2 [Device         ]: USB-Audio - USB Audio Device
                      GeneralPlus USB Audio Device at usb-0000:00:14.0-11, full speed

aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
default
    Default ALSA Output (currently PulseAudio Sound Server)
sysdefault:CARD=PCH
    HDA Intel PCH, ALC892 Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    Front speakers
surround21:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Digital
    IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=NVidia,DEV=0
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
    HDA NVidia, HDMI 1
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
    HDA NVidia, HDMI 2
    HDMI Audio Output
sysdefault:CARD=Device
    USB Audio Device, USB Audio
    Default Audio Device
front:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    Front speakers
surround21:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    IEC958 (S/PDIF) Digital Audio Output
Co bym nie wpisał zamiast default nie działa. Ma ktoś jakieś doświadczenie z tym?
Polecenie np to nie działa:
espeak "Hello world" --stdout | aplay -D hw:2,0
Playing WAVE 'stdin' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono
aplay: set_params:1239: Channels count non available
Tytuł: Odp: espeak i dwie karty dźwiękowe
Wiadomość wysłana przez: miro57 w 2016-05-15, 07:47:48
Spróbuj tak
espeak "Hello world" --stdout | aplay -D default:2
Po default: podaj numer karty
Tytuł: Odp: espeak i dwie karty dźwiękowe
Wiadomość wysłana przez: Zagiewa w 2016-05-15, 10:34:26
Nie działa:
espeak "Hello world" --stdout | aplay -D default:2
ALSA lib conf.c:4706:(snd_config_expand) Unknown parameters 2
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM default:2
aplay: main:722: audio open error: Zły argument
Tytuł: Odp: espeak i dwie karty dźwiękowe
Wiadomość wysłana przez: kenpo w 2016-05-15, 11:52:40
Szkoda, że nie napisałeś jakiego środowiska graficznego używasz. W KDE4 można wyklikać w ustawieniach kmix, zmieniając kolejność preferowanych urządzeń

(http://i.imgur.com/mQygbj1.jpg)

(http://i.imgur.com/NqFx8wi.jpg?1)

poniżej po podłączeniu karty USB

(http://i.imgur.com/8R5WeM2.jpg?1)

Jak widać kartę na USB używam do muzyki a resztę dźwięków obsługuje karta zintegrowana.
Nie wiem jak jest w Plasma5 czy w innych programach do obsługi dźwięku.
Tytuł: Odp: espeak i dwie karty dźwiękowe
Wiadomość wysłana przez: Zagiewa w 2016-05-15, 12:15:43
Używam xfce, zmienić manualnie domyślną kartę mogę bez problemu natomiast ja chcę aby domyślna została karta zintegrowana czyli ta co jest teraz. Ona ma grać muzykę, filmy i wszystko inne czyli standard. Natomiast mam napisany skrypt który co jakiś czas uruchamia powiadomienia dźwiękowe i chce aby te powiadomienia były odtwarzane przez kartę usb do które będą podpięte stare, tanie głośniki.
Tytuł: Odp: espeak i dwie karty dźwiękowe
Wiadomość wysłana przez: miro57 w 2016-05-15, 15:02:11
Podaj wyniki z polecenia aplay -L oraz aplay -l
Problemem może być uruchomiony serwer dźwięku pulseaudio.
I sprawdź:
espeak "Hello world" --stdout | aplay -D default:1
Dwójka dotyczyła mojej karty na USB.
Tytuł: Odp: espeak i dwie karty dźwiękowe
Wiadomość wysłana przez: Zagiewa w 2016-05-15, 15:32:59
Żaden z default:0,1,2 nie działa. Jeśli jednak dam samo default bez numeracji to zadziała. Poniżej to o co pytałeś.
espeak "Hello world" --stdout | aplay -D default:1
ALSA lib conf.c:4706:(snd_config_expand) Unknown parameters 1
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM default:1
aplay: main:722: audio open error: Zły argument
[Zagiewa@localhost ~]$ espeak "Hello world" --stdout | aplay -D default:2
ALSA lib conf.c:4706:(snd_config_expand) Unknown parameters 2
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM default:2
aplay: main:722: audio open error: Zły argument
[Zagiewa@localhost ~]$ espeak "Hello world" --stdout | aplay -D default:0
ALSA lib conf.c:4706:(snd_config_expand) Unknown parameters 0
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM default:0
aplay: main:722: audio open error: Zły argument

aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
default
    Default ALSA Output (currently PulseAudio Sound Server)
sysdefault:CARD=PCH
    HDA Intel PCH, ALC892 Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    Front speakers
surround21:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Digital
    IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=NVidia,DEV=0
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
    HDA NVidia, HDMI 1
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
    HDA NVidia, HDMI 2
    HDMI Audio Output
sysdefault:CARD=Device
    USB Audio Device, USB Audio
    Default Audio Device
front:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    Front speakers
surround21:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    IEC958 (S/PDIF) Digital Audio Output
[Zagiewa@localhost ~]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Device [USB Audio Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
Tytuł: Odp: espeak i dwie karty dźwiękowe
Wiadomość wysłana przez: miro57 w 2016-05-15, 15:43:37
Sprawdź:
espeak "Hello world" --stdout | aplay -D sysdefault:Device
oraz
espeak "Hello world" --stdout | aplay -D sysdefault:2
Tytuł: Odp: espeak i dwie karty dźwiękowe
Wiadomość wysłana przez: Zagiewa w 2016-05-15, 16:20:45
Działa! Obydwa rozwiązania działają - dzięki wielkie :)