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 |
Extract sounds from both archives and arrange those sounds in the correct format for a sound pack. Basically, all the sounds that are not part of a folder must go to a fr
folder that you need to create.On the other folders, except the new fr
folder, there must be a fr
folder with all the sounds from that folder. Basically, every other folder must include a fr
sub-folder containing all the sounds. For instance, all the sounds from the dictate
folder must go under the fr
folder that must be created under dictate
. In the end, the directory structure must be the following:├── 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 |
There are a lot of sounds in those folders. Using the following script, all sounds will be converted to the desired format:#!/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/ |
At this point, you need to select the French language in the "Edit User" section in phone language select.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 |
For an automated process, the following script will down-sample all the wave files from the /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