How to pipe output of 'say' to another command

'say' has both -o and -n arguments for various ways to direct the output, but I don't see any way to simply pipe the output to another command (say, sox). Is this a limitation of say, or is there a basic Unix shell feature that will do this?


Solution 1:

It seems impossible. It should have been possible to use -o /dev/stdout for this, but say insists on adding a file suffix, which rather ruins that option. I tried getting around that by creating a symlink to /dev/stdout, but it gives a permission error. (Perhaps this comes from say opening the output file for both reading and writing (option O_RDWR) instead of just writing.)