Applies to VoipNow 3.5!
Starting with VoipNow 3.5, it is possible to use sounds at higher quality. Before this latest version, all the sounds from Asterisk were encoded at 8KHz. From now on, all sounds files are updated to higher quality 16 KHz. Such sounds are already available for download here.
Step-by-step guide
Getting the sounds
Let's say we want to install a 16KHz French sounds pack recorded by June Wallack, on VoipNow 3.5. For that we need to download the proper archive.
mkdir /root/french
cd french
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-fr-sln16-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-fr-sln16-current.tar.gz
fr
folder that you need to create.mkdir fr
mv *.sln16 fr
fr
, there must be a fr sub-folder where all the sounds must go. For instance, all the sounds from the dictate
folder must go in the fr
sub-folder that must be created under dictate
. At the end, the directory structure must have the following structure:├── dictate │ └── fr ├── digits │ └── fr ├── followme │ └── fr ├── fr ├── ha │ └── fr ├── letters │ └── fr ├── phonetic │ └── fr ├── silence │ └── fr └── wx └── fr
Converting to the required format
In order to convert from the slin16
format to wave
, we can use sox
. The following command converts a sound to the proper format used by Asterisk:
sox -t raw -r 16k -e signed-integer -b 16 -c 1 <input>.sln16 output.wav
#!/bin/bash for i in `find /root/french -name '*sln16'` do final=${i:0:${#i} -6}.wav echo sox -t raw -r 16k -e signed-integer -b 16 -c 1 $i $final sox -t raw -r 16k -e signed-integer -b 16 -c 1 $i $final rm -rf $i done
Once the sounds are converted, you need to move them to the folder used by Asterisk to store sounds and set the correct owner for those files:
cp -Rap * /var/lib/asterisk/sounds/
chown -R asterisk: /var/lib/asterisk/sounds/
Down-sampling files the required format
If sounds are recorded in a professional way or with a professional recorder that is not able to record uncompressed wave at 16KHz, you may use the following command to down-sample those files:
sox sound.wav -e signed-integer -c 1 -b 16 -r 16k sound-down.wav
/root/sounds
folder (assuming they are stored there) to the required format used by Asterisk:#!/bin/bash for i in `find /root/sounds -name '*wav'` do final=${i:0:${#i} -4}-16k.wav echo sox $i -e signed-integer -c 1 -r 16k -b 16 $final sox $i -e signed-integer -c 1 -r 16k -b 16 $final rm -rf $i mv $final $i done
Related articles
Except where otherwise noted, content in this space is licensed under a Creative Commons Attribution 4.0 International.