Si tenemos acceso por ssh a otro ordenador, ambos con micrófono y
altavoces, podemos redirigir el sonido en ambos sentidos, es decir,
podemos conseguir cosas como:
- que lo que capta nuestro micrófono se escuche en los altavoces del otro ordenador y viceversa
- que lo que se escribe en un ordenador se escuche en el otro y viceversa
- que el contenido de un fichero de texto se oiga en los altavoces remotos y viceversa
- que un archivo de audio se escuche en los altavoces remotos y viceversa
- que el audio de un archivo de vídeo se escuche en los altavoces remotos y viceversa
Dispositivos de sonido en Ubuntu Maverick Meerkat
Uno de los cambios de Ubuntu Maverick Meerkat (10.10) fue la
desaparición del dispositivo /dev/dsp y otros, como /dev/mixer,
/dev/sndstat y /dev/audio, al utilizar la interfaz ALSA en
detrimento de la OSS API.
Para los programas que tengan problemas para utilizar la API ALSA,
existen los comandos esddsp, que permite redirigir datos de audio
no-esd a través de esd y padsp, que permite lo mismo pero mediante
PulseAudio.

Fuente: es.wikipedia.org
Redirigir el micrófono local a los altavoces remotos
Si disponemos de /dev/dsp en ambas máquinas podemos utilizar dd:
$ dd if=/dev/dsp | ssh -c arcfour -C user@host dd of=/dev/dsp
La opción -c permite especificar el tipo de cifrado, y la opción -C
que se utilice compresión de datos, utilizando el mismo algoritmo
empleado por gzip.
También podemos utilizar aplay:
$ arecord -f dat | ssh -C user@host aplay -f dat
La opción -f permite especificar el formato:
-f cd(16 bit little endian, 44100, stereo) [-f S16_LE -c2 -r44100]-f cdr(16 bit big endian, 44100, stereo) [-f S16_BE -c2 -f44100]-f dat(16 bit little endian, 48000, stereo) [-f S16_LE -c2 -r48000]- Por defecto, se utiliza (8 bit little endian, 8000, mono) [-f U8 -c1 -r8000]
Redirigir el micrófono remoto a los altavoces locales
Como en el caso anterior, pero a la inversa:
$ ssh -C user@host arecord -f dat | aplay -f dat
Si queremos guardar el audio que recibimos mientras lo escuchamos:
$ ssh -C user@host arecord -f dat | tee audio.wav | aplay -f dat
Supongo que también se debe poder utilizar dd para traer el sonido
captado por un micrófono remoto, pero no lo he podido probar.
Enviar texto y que se oiga por los altavoces remotos
El texto puede ser algo que acabemos de escribir, el contenido de un
fichero o la salida por stdout de un script.
Para esto, podemos utilizar cualquier sintentizador de voz, por ejemplo,
espeak o festival.
$ echo "Hola, mundo" | ssh user@host espeak -ves
$ echo "Hello, world" | ssh user@host espeak
$ echo "I am an alien" | ssh user@host festival --tts
$ echo "Una ranita iba caminando" | ssh user@host festival --tts --language spanish
$ cat textos.txt | ssh user@host espeak -ves
$ w3m -dump http://www.gnu.org/licenses/gpl-2.0.txt | ssh user@host espeak
Si queremos parar la locución, deberemos iniciar sesión en la máquina
remota y matar el proceso espeak o festival. Dicho sea de paso, para
escuchar la voz en castellano usando el festival hay que instalar el
paquete festvox-ellpc11k.
Recibir texto y que se oiga por nuestros altavoces
El caso inverso al anterior:
$ ssh user@host cat textos.txt | espeak -ves
$ ssh user@host w3m -dump http://www.gnu.org/licenses/gpl-2.0.txt | espeak
Reproducir un archivo de audio en los altavoces remotos
Para escuchar un archivo de audio remoto utilizaremos mplayer:
$ cat podcast.ogg | ssh -C user@host mplayer -
Reproducir un archivo de audio de la máquina remota en local
Al revés del caso anterior.
$ ssh -C user@host cat podcast.ogg | mplayer -
Reproducir el sonido de un video en los altavoces remotos
Es idéntico al caso de un archivo de audio, pero le pasamos a mplayer
el argumento -vc null para que no decodifique el vídeo.
$ ssh -C user@host cat podcast.ogg | mplayer -vc null -
Reproducir el sonido de un vídeo remoto en nuestra máquina
Podemos conseguir que se vea y escuche el vídeo:
$ ssh -C user@host cat movie.ogv | mplayer -
O que sólo se escuche el audio:
$ ssh -C user@host cat movie.ogv | mplayer -vc null -