ブログ
これまでに経験してきたプロジェクトで気になる技術の情報を紹介していきます。
Asterisk で話者別にチャンネルを分けて mp3 で通話録音する方法
NMC
2 years
こんにちは!
皆さんは Asterisk の通話録音ファイルを聞いてて、
「どっちが喋ってるんや!」
「声が混ざってわけわからん!」
となったことはないでしょうか?
そんな場合に有効な、話者の音声を左右に分けて保存する方法を解説します!
ついでに、重くてこまる WAV ファイルを MP3 に変換する方法も解説しています!
§ Install requirements
必要なものをインストールします。
$ sudo yum install sox lame
- sox は 2つのモノラルなWAVファイルを1つのステレオなWAVファイルにします。
- lame は WAV を MP3 に変換するのに使用します。
§ Add dialplan
通話録音するように dialplan を修正します。
Dial Application の手前で MixMonitor を開始します。
Set(MON_FILE=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}_${UNIQUEID})
Set(MONITOR_DIR="/var/spool/asterisk/monitor/")
MixMonitor(${MON_FILE}.wav,a t(${MON_FILE}-out.wav) r(${MON_FILE}-in.wav), /var/lib/asterisk/shell/after_mix_monitor.sh ${MONITOR_DIR} ${MON_FILE})
Hangup の後に StopMixMonitor でファイルを閉じます。
StopMixMonitor()
これをしないと壊れた音声ファイルが出来上がるかもしれません。
§ Create shell script
MixMonitor の第三引数で指定した shell script のファイルを用意します。
/var/lib/asterisk/shell/after_mix_monitor.sh
#!/bin/sh
cd $1
# merge left and right
sox -M $1$2-out.wav $1$2-in.wav $1$2-stereo.wav
# convert to mp3
lame $1$2-stereo.wav
# remove wav files
if [ -f $1$2-stereo.mp3 ]
then
rm $1${2}.wav
rm $1$2-out.wav
rm $1$2-in.wav
rm $1$2-stereo.wav
fi
これで Dialplan が実行されると /var/spool/asterisk/monitor に mp3 ファイルが出来ていくはずです!
Asterisk で話者別にチャンネルを分けて mp3 で通話録音する方法
Asterisk で話者別にチャンネルを分けて mp3 で通話録音する方法
2021-12-13 17:05:29
2021-12-20 14:59:22
コメントはありません。