Práce se zvukovými soubory vhodnými pro asterisk
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
#!/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
#!/bin/bash sox -V "$1.wav" -r 8000 -c 1 "$1.raw"
#!/bin/bash sox -V "$1.wav" -r 8000 -c 1 -t al "$1.alaw"
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 {.}
#!/bin/bash play -t raw -r 8k -b 16 -c 1 -L -e signed-integer $1
#!/bin/bash play -t raw -r 8k -c 1 -e a-law $1 # jde take u-law a gsm
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.
#!/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