A resposta de JohnT dá uma boa base. Vou seguir com como encontrar os dispositivos no seu sistema. Use "aplay -l" para obter uma lista dos dispositivos em seu sistema. O hw: X, Y vem desse mapeamento do seu hardware - nesse caso, X é o número do cartão , enquanto Y é o número do dispositivo .
$ aplay -l # note lower-case "L" option
**** List of PLAYBACK Hardware Devices ****
card 0: T71Space [Terratec Aureon 7.1-Space], device 0: ICE1724 [ICE1724]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: T71Space [Terratec Aureon 7.1-Space], device 1: IEC1724 IEC958 [IEC1724 IEC958]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: T71Space [Terratec Aureon 7.1-Space], device 2: ICE1724 Surrounds [ICE1724 Surround PCM]
Subdevices: 3/3
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Como esses são dispositivos USB que nem sempre recebem os mesmos números de dispositivos sempre que são conectados, o dispositivo hw: X, Y pode mudar. A resposta mais simples é, para um sistema de desktop, experimentar as ferramentas de configuração do GNOME / KDE / Xfce e verificar se elas são inteligentes o suficiente para captar as alterações.
A maneira complexa, se você não estiver fazendo isso com um sistema de desktop, fica ... interessante. Você pode se safar do uso de aliases de dispositivo em vez de "hw: X, Y" - é o que mostra a saída de "aplay -L". O "algo: CARD = FOO, DEV = Y" é o alias e provavelmente não será alterado entre diferentes plug-ins de dispositivo, onde o X em "hw: X, Y" pode. (Supondo que você esteja usando o mesmo dongle USB de cada vez.)
$ aplay -L
default:CARD=CK804
NVidia CK804, NVidia CK804
Default Audio Device
front:CARD=CK804,DEV=0 # hw:0,0
NVidia CK804, NVidia CK804
Front speakers
surround40:CARD=CK804,DEV=0 # hw:0,1
NVidia CK804, NVidia CK804
4.0 Surround output to Front and Rear speakers
Portanto, seu comando aplay se tornaria "aplay -D front: CARD = CK804, DEV = 0 somefile.wav" e você poderá usar o mesmo nome de dispositivo no seu .asoundrc.
Se você precisar de algo mais estável em dispositivos de kernel reais de nível ainda mais baixo, o udev é o que você deseja - é o sistema que permite a conexão automática de dispositivos no sistema. Você pode escrever regras para o udev (e aqui está a página de manual ) que permitirá que os dispositivos obtenham o mesmo nome de dispositivo quando conectados.