Table of Contents

Práce se zvukovými soubory vhodnými pro asterisk

Jak nahrát hlášky do asterisku

Jsou dva způsoby, jak si je pořídit. Buď je nahraji pomocí telefonu, přičemž použiji aplikace record (v extensions.conf),

[studio2]
; nahraji hlášku pod zadanou číslicí
exten => _X!,1,Wait(1)
exten => _X!,n,Record(NAHREJ2/${EXTEN}:alaw)
exten => _X!,n,Wait(1)
exten => _X!,n,Playback(NAHREJ2/${EXTEN})
exten => _X!,n,Hangup
; pokud to začíná hvězdičkou, tak to přehraji
exten => _*.,1,Wait(1)
exten => _*.,n,Playback(NAHREJ2/${EXTEN:1})
exten => _*.,n,Hangup

nebo je nahraji pomocí své kvalitní zvukové karty a mikrofonu (nejlépe USB sluchátka nebo kvalitní mikrofon na kameře) a převedu do tvaru, kterému rozumí asterisk. Výhoda tohoto řešení je, že mohu záznam např. rozsekat a např. vizuálně vidím, jestli není překřičen. Odstřihnout mohu též zbytečně dlouhá prázdná místa a pod. Použít lze např. audacity, který má verzi pro Linux i Windows. Tam si též nainstaluji balíček sox a mohu pokračovat podle našeho návodu.

<iframe width=“860” height=“600” src=“http://www.youtube.com/embed/t4lSO4R5-h8?hl=cs&fs=1” frameborder=“0” allowfullscreen></iframe>

Pokud si soubor nahrajeme v audacity, může být dobré použít potlačení šumu Effects → Noise removal , dále zesílení zvuku na optimální (maximální) úroveň, ale tak aby zvuk nebyl překřičen Effects → Normalize. Pokud chci zesílit i za cenu překřičení nějakého okamžiku (clipped), mohu to docílit pomocí Effect → Amplify.

Pokud nahráváte více různých ale krátkých hlášek, které chcete potom uložit do více souborů (např. číslovky), můžete je nahrát v za sebou a potom rozdělit pomocí Analyze → Sound Finder a potom uložit File → Export Multiple https://fluent-forever.com/forums/topic/a-quicker-way-to-split-words-in-audacity/#.VaLbg0YpBGo Vyrábíme slin - neboli 16-bitový raw

x2raw

x2raw
#!/bin/bash
# Script to convert any mplayer supported audio file to RAW suitable for Asterisk IVRs.
file_name_without_extension="${1%.*}"
echo $file_name_without_extension
mplayer -ao pcm "$1" -ao pcm:file="$file_name_without_extension.wav"
sox -V "$file_name_without_extension.wav" -r 8000 -c 1 "$file_name_without_extension.raw"
rm "$file_name_without_extension.wav"

Délka souboru ve vteřinách

soxi -D out.wav

Pokud mám již wav file, tak stačí

soubor wav2raw

wav2raw
#!/bin/bash
sox -V "$1.wav" -r 8000 -c 1 "$1.raw"
wav2alaw
#!/bin/bash
sox -V "$1.wav" -r 8000 -c 1 -t al "$1.alaw"

wav2raw_all

wav2raw_all
#!/bin/bash
# využívá wav2raw a provede převod všech souborů v adresáři (prerekvizita: apt-get instlall parallel)
find  *.wav | parallel wav2raw {.}

Playraw

playraw
#!/bin/bash
play -t raw -r 8k  -b 16 -c 1 -L -e signed-integer $1

Playalaw

playalaw
#!/bin/bash
play -t raw  -r 8k -c 1 -e a-law $1
# jde take u-law a gsm

Otevření alaw v audacity

Pokud máme už vygenerovány hlášky v alaw, můžeme chtít zkontrolovat, zda-li jsou stále srozumitelné. Nebo je možné, že máme nějaké starší hlášky, s kterými chceme dále pracovat v audacity. (např. byly nahrány pomocí record, nebo monitor) V audacity můžeme otevřít soubor alaw pomocí Soubor→import → raw data a zde vybereme Kodování A-Law „bez indianness“ a rychlost vzorkování 8000 Hz. Soubory, s kterými pracuje asterisk, nemají žádnou informaci o tom, jak jsou v nich data uložena. Asterisk to rozlišuje pomocí koncovky, ale jiným programům to musíme exmplicitně zadat. Podobně by se otvíral soubor ve formátu gsm nebo slin.

alaw2wav
#!/usr/bin/ruby
# encoding: utf-8
Dir.glob(".") {|f| puts f}
#`sox -t raw -b -A -r 8000 old/$1.alaw -t wav -u -b new/$1.wav\n`;
# sox -t raw  -e a-law -r 8000 old/$1.alaw -t wav new/$1.wav