My wife and I used to record our IVRs ourselves using a mic and Audacity. As I’ve needed to change my IVRs, I’ve found it easier to just write up a text file and feed it into say. The “trick” was to 1) insert long enough pauses in the input file (you can do this by placing one or more semicolons where you want a pause) and 2) get all of the say flags correct (say’s man page helped sort this out).
Note the semicolons. Add as many as you want for longer pauses.
dial one for something;; dial two for something else;; dial three for yet another thing
the command with its flags:
say \ --voice=Victoria \ --file-format=WAVE \ --data-format=LEI16@8000 \ --input-file=ivr.txt \ --output-file=ivr.wav
The resulting audio file is something you can upload and plug into Asterisk without need for further conversion. The say command will run very quickly; so quickly that I thought it didn’t work. However, I was able to open it in VLC and verify the “Codec Details” were correct from “Media Information” window.