Is there a way to put multiple commands in different voices into the same audio file. I know you can do this:

say -v "Cellos" "la di da" -o ex.aiff

But I have multiple commands in different voices such as:

say -v "Cellos" "la di da"
say -v "Bells" "di da da"

Is there a way to have say put multiple phrases using different settings in to the same aiff or mp3 file? (If not, can I merge the individual files programmatically using terminal tools and commands?


You can use FFmpeg. Create a file named input.txt with the contents (one line for each file):

file 'ex.aiff'
file 'ex2.aiff'

Then run ffmpeg -f concat -i input.txt -c copy output.aiff.

  • I found that quotes were not accepted in input.txt, instead, spaces had to be escaped with a backslash. Also, I had to add -safe 0 to the options of ffmpeg. – Flimm Nov 14 '16 at 14:14

Using sox:

sox 1.aif 2.aif output.aif

Using ffmpeg:

ffmpeg -f concat -i <(printf %s\\n "file '$PWD/"{1,2}.aif\') -c copy output.aif
  • The printf looks very very wrong. I'm guessing you want <(printf "file '%s'\n" {1,2}.aif) – tripleee Mar 24 '20 at 17:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .