De nederlandse sounds (opgeslagen onder /var/lib/asterisk/sounds/nl) zijn niet helemaal compleet. Je kunt deze aanvullen. Om er achter te komen welke je mist (en ook gebruikt worden) kun je de log van asterisk (/var/log/asterisk/full) doorspitten. Met de hand of een script. Een voorbeeld van zo’n script:
#!/bin/bash
LOG=/var/log/asterisk/full
SOUNDS=/var/lib/asterisk/sounds
WANTEDLANG=nl
NEEDED=/tmp/needed$$.txt
NLSOUNDS=/tmp/availnl$$.txt
EYECATCHER=Playing
OUTPUT=/tmp/RaspbxMissingSound$$.txt
TELEGRAM=false
#
# Error informatie
#
show_error ()
{
echo "Onbekende optie of onvolledige commando regel.";
}
#
# Het afhandelen van alle opties op de commando regel
#
# opties met argument is bv a: ipv a en heeft shift 2 ipv shift
#
OPTIONS=$(getopt --options t --longoptions telegram -- "$@")
RC=$?
if [ "$RC" != "0" ]; then
{
show_error
exit 1
}
fi
eval set -- "${OPTIONS}"
while true
do
case "$1" in
-t)
TELEGRAM=true
shift
;;
--) shift
break
;;
*) show_error
exit 1
;;
esac
done
sudo grep "${EYECATCHER}" "${LOG}" | \
sed "s/${EYECATCHER}/\$${EYECATCHER}/" | \
cut -f2 -d '$' | \
cut -f1 -d '(' | \
sed -e "s/${EYECATCHER} //" -e "s#'##g" | \
cut -f1 -d . | \
sort -u | \
grep -v "^custom/" > ${NEEDED}
sudo chmod 755 ${NEEDED}
cd ${SOUNDS}/${WANTEDLANG}
find . -type f -print | sed "s#^./##" | cut -f1 -d . | sort -u > ${NLSOUNDS}
touch ${OUTPUT}
while read SOUND
do
grep "^${SOUND}$" ${NLSOUNDS} 2>/dev/null 1>/dev/null
RC=$?
if [ ${RC} -ne 0 ] ; then
{
echo ${SOUND} >> ${OUTPUT}
}
fi
done < ${NEEDED}
FOUND=$(cat ${OUTPUT} | wc -l)
if [ ${FOUND} -ne 0 ] ; then
{
if ${TELEGRAM} ; then
{
/usr/local/bin/telegramsend "Nederlandse Sounds die missen op PBX"
/usr/local/bin/telegramsend ${OUTPUT}
}
else
{
cat ${OUTPUT}
}
fi
}
fi
sudo rm -f ${NEEDED}
rm -f ${NLSOUNDS} ${OUTPUT}
exit 0
Misschien een beetje eng om je eigen stem op te nemen. Probeer een ander slachtoffer te vinden die het wel wil inspreken. Vinden die het ook eng , of zijn ze gewoon duur … probeer dan AI. Een voorbeeld hiervan is https://elevenlabs.io/ Maar er zijn er vast en zeker nog wel meer.
Heb je de opnames buiten FreePBX (gewoon in mono!!!) dan moet je ze nog copieren naar /var/lib/asterisk/sounds/nl. Asterisk houd van excentrieke formaten (.g722). Converteren naar .g722 vanuit b.v. .wav kun je als volgt doen:
for f in $(ls *.wav | cut -f1 -d .)
do
ffmpeg -i ${f}.wav -ar 16000 -acodec g722 -b:a 64k ${f}.g722
done
abc
