Poor sound quality with MOH and Festival

I have a new install of Asterisk 1.4 running on CentOS 6. I am completely new to *, and have so far been able to get a few things working. One thing that is killing me though is the choppy noise on MOH and when using festival. Here are some relavent excerpts from my configs:

musiconhold.conf

[code][default]
mode=quietmp3
directory=/var/lib/asterisk/mohmp3

[wav]
mode=files
directory=/var/lib/asterisk/mohwav
[/code]

Default has regular mp3 files, and wav has mp3’s converted to wav files. Both sound almost exactly alike.

extensions.conf exten => 2001,1,Festival('Please record your message') exten => 2001,2,Record(mymessage:gsm) exten => 2001,3,Festival('You said') exten => 2001,4,Playback(mymessage) exten => 2001,5,Festival('Press 1 to continue or 2 to change your mind')

When this extension is dialed, you can barely make out the dialog. When it does play back the test message though, it is clear. What am I missing here? Any help is appreciated, thank you.

Oh and some more relevant information: I do have this running on a VM. I do not see any performance issues for the CPU or memory load. And I’m doing all my testing on a gigabit LAN.

  1. Trying to run Asterisk on a virtual machine.

  2. Trying to run Asterisk with internal timing disabled or dahdi not configured or not loaded.

Thanks for the reply david. Maybe a dumb question… but is dahdi still required without any hardware cards?

It is required for the MeetMe application. It is also required if you ever generate audio when you are not receiving audio from the other end (e.g. during silence suppression). The latest versions should no longer need it for the second case, but 1.4 is an obsolete version.

Real dahdi hardware generated timing and also provides conference bridging. Dahdi can provide software equivalents for these.

Old enough versions of dahdi have a dahdi_dummy module. Later versions perform these functions in the core driver.

When you say required for generating audio when you are not receiving audio on the other end, can this also mean music on hold?

Yes. Music on hold is created by an audio “generator”. If you don’t have dahdi, or don’t enable internal timing, Asterisk has to use the arrivial of incoming frames to trigger the sending of outgoing ones.

From what I can tell, the dahdi modules are loaded. And I have internal_timing = yes in the config. When I run dahdi_test, I get: 99.997 (70 passes average).

Moving forward, do you think it would be worth upgrading to 1.8? (Currently on 1.4)

Just an update. I went ahead and upgraded to 1.8. MOH sounds much better, but Festival is still pretty bad. I did try Cepstral, and it was very clear so I have to think it’s something with Festival. Thank you for your help.

Another update in case this helps anyone else out. I took another shot at Festival, and found this script to be very helpful (Method 3). When I run setup an extension to use Festival WITH the perl script, it sounds great. Using the same text with only Festival is very choppy.