Basado en la respuesta de mankoff, esto funciona:
leave +1 2>&1 | while read line ; do echo $line | say ; done
aunque la licencia ya no desaparece en el fondo y le permite seguir escribiendo. De la misma manera:
leave +1 2>&1 | while read line ; do echo $line | say ; done &
hará que se desvanezca en el fondo, pero también hablará un número de identificación de proceso (inofensivo). Así que ninguno es perfecto, pero ambos funcionan.
(Estaba buscando una solución a:
ping google.com | say
que sufre un problema similar, y alguien sugirió lo anterior como solución. No añadí esto como un comentario a la respuesta de mankoff porque no puedo averiguar cómo poner espacios y nuevas líneas en los comentarios).