Convertint sons per la nostra centraleta asterisk

Sovint hem d'utilitzar locucions específiques que ens proporciona el client per les centraletes asterisk que instal·lem, ja sigui per locucions de benvinguda o per IVRs amb les diverses opcions que podem escollir. En aquests article us farem 5 cèntims de com convertir aquests sons en formats que asterisk pugui entendre.

Asterisk pot treballar amb arxius wav (8khz, pcm de 16bits, mono), amb arxius WAV (wav49, que és un format específic wav de Microsoft codificat en gsm), en gsm o bé en qualsevol dels códecs dels quals asterisk pugui fer transcoding (alaw, ulaw, g722, g729...). Malauradament, en la majoria dels casos, ens trobarem que l’arxiu d’àudio que hem d’utilitzar no es troba en cap d’aquests formats, sino que és un wav a la màxima qualitat possible.

Utilitzant SOX per la conversió

Per tal de poder fer servir aquesta gravació haurem de convertir l'arxiu wav. Per fer-ho, utilitzarem l'utilitat SOX del nostre sistema linux o qualsevol programa d'edició. Podem instal·lar SOX al nostre sistema via yum, aptitude, apt-get... segons quin sigui el nostre gestor de paquets preferit.

A continuació podeu veure un exemple de conversió de l'arxiu arxiu_benvinguda.wav (48khz, 16 bits, stereo):

[root@veuipcat ~]# sox arxiu_benvinguda.wav -t wav -r 8000 -b 16 -s -c 1 arxiu_benvinguda_mod.wav

Ara tenim l'arxiu convertit a un format wav que asterisk pot entendre i transformar, per tant podrà fer transcoding pels diversos códecs que tingui instal·lats la nostra centraleta.

Depenent de la quantitat de trucades simultànies i de la potència de la nostra centraleta, el transcoding pot ser un problema. Ens interessarà disposar de l'arxiu en diversos códecs, per que asterisk seleccioni el que més s'escaigui al reproduir l'arxiu, en comptes de transformar-lo:

Per codificar en GSM:

[root@veuipcat ~]# sox arxiu_benvinguda.wav -t gsm -r 8000 -b 16 -c 1 arxiu_benvinguda_mod.gsm

Per convertir a SLN16:

[root@veuipcat ~]# sox arxiu_benvinguda.wav -t raw -r 16000 -b 16 -s -c 1 arxiu_benvinguda_mod.sln16

Nota: Sln16 és un format d'arxiu raw, mostrejat a 16KHz i amb una resolució de 16 bits. Aquesta és una de les poques fonts de so que asterisk, a partir de la versió 1.6.1 i superiors, accepta a 16 KHz i que ens permetrà realitzar a una conversió a un códec HD, "d'alta definició", com g722.

Utilitzant l’aplicació “file convert” d'asterisk, per la conversió:

Per convertir a G722:

No podrem utilitzar SOX per convertir a g722. Per tal de fer-ho, utilitzarem l'aplicació "file convert" d'asterisk de la següent manera:

[root@veuipcat ~]# asterisk -rx "file convert arxiu_benvinguda_mod.sln16 arxiu_benvinguda_mod.g722"

En aquest cas, tal com hem explicat abans, utilitzem com a font l'arxiu en sln16 en lloc del wav de 8KHz per obtenir la màxima qualitat.

Per convertir a ALAW:

[root@veuipcat ~]# asterisk -rx "file convert arxiu_benvinguda_mod.wav arxiu_benvinguda_mod.alaw"

o be,

[root@veuipcat ~]# asterisk -rx "file convert arxiu_benvinguda_mod.sln16 arxiu_benvinguda_mod.alaw"

Nota: Com podeu observar per alaw, ulaw o g729, podem utilitzar tant l'arxiu wav (8KHz, 16bits, mono), com l'arxiu sln16 (16 KHz, 16bits, mono) com a fonts. La diferència vindrà bàsicament en el temps de conversió que triga asterisk en fer el transcoding.

Per convertir a ULAW:

[root@veuipcat ~]# asterisk -rx "file convert arxiu_benvinguda_mod.wav arxiu_benvinguda_mod.ulaw"

o be,

[root@veuipcat ~]# asterisk -rx "file convert arxiu_benvinguda_mod.sln16 arxiu_benvinguda_mod.ulaw"

Per convertir a G729:

[root@veuipcat ~]# asterisk -rx "file convert arxiu_benvinguda_mod.wav arxiu_benvinguda_mod.g729"

o be,

[root@veuipcat ~]# asterisk -rx "file convert arxiu_benvinguda_mod.sln16 arxiu_benvinguda_mod.g729"

Nota: Per utilitzar el transcoding a g729 és necessari tenir la llicència del códec g729 instal·lada al nostre asterisk.

 

Utilitzant l’aplicació on-line “audio converter” de Digium, per la conversió

Digium ha posat a disposició de la comunitat una aplicació on-line per tal que poguem convertir locucions als formats wav 8 KHz, slin 8KHz, g729 i gsm.

Només cal que entrem a http://www.digium.com/en/products/ivr/audio-converter.php, seleccionem l’àudio que volem convertir i el format de destí. Aquesta eina ens serà molt útil en cas de necessitar arxius en g729 i no disposar de llicències per fer transcoding.

Amb això ja podem tenir els nostres arxius convertits als formats adequats pel nostre asterisk i més utilitzats: wav, alaw, ulaw, gsm, g722, g729 i sln16.


Referències:

http://blogs.digium.com/2011/04/19/asterisk-sound-files-101/

http://blogs.digium.com/2011/06/28/asterisk-sound-files-101-part-2/

http://www.voip-info.org/wiki/view/Convert+WAV+audio+files+for+use+in+Asterisk

http://www.digium.com/en/products/ivr/audio-converter.php

Registrat!