RaspberryPi で ライン入力・録音

RaspberryPi を使って、PAでまとめられた音声を自動録音したい。

 

 

*必要なもの

USBオーディオインターフェース

他のUSBオーディオインターフェースでも使えると思いますが、手持ちのUSBインターフェースは、上記のものです。

単純にシェルスクリプトを仕込んでおいて、cronで呼び出して録音を開始し、設定時間後に録音停止

 

シェルスクリプト
ファイル名「record_mp3.sh」と想定

———-
#!/bin/sh
SERVER_URL=”http://*****.com//RecordData/”

#録音中表示用赤色LED点灯
echo 23 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio23/direction
echo 1 > /sys/class/gpio/gpio23/value

#USBオーディオデバイスの初期設定
#オーディオデバイスによって要不要がある
#/usr/bin/amixer -c 1 sset  Line Capture cap
#/usr/bin/amixer -c 1 sset  Line Capture  19

#録音データ保存ディレクトリへチェンジ
cd /home/record

#録音ファイル名の文字列を作成
DATE=`date ‘+%Y%m%d%H%M%S’`
FILENAMEMP=”.mp3″
FILENAME=$DATE$FILENAMEMP

#録音開始時のメール文字列作成
DATE_STR=`date ‘+%Y/%m/%d %H:%M:%S’`
MAIL_STR=”\nStart Recording \n”

#録音開始時メール配信
echo $MAIL_STR$DATE_STR |/usr/bin/mail -s “RaspberryPi Start Recording” -aFrom:RaspberryPi@******.com ******@******.com

#録音開始
AUDIODEV=plughw:1,0 rec –buffer 67000 $FILENAME trim 0 $1

#録音終了時、rsyncでサーバーへアップロード
/usr/bin/rsync -avP /home/record/ ******@******.com:/home/www/RecordData/

#録音データのうち、60日以上前の録音データを削除する
find /home/record/ -mtime +60|xargs -i% rm -f %

##録音中表示用赤色LED消灯
echo 0 > /sys/class/gpio/gpio23/value

#録音終了時のメール文字列作成
DATE_STR=`date ‘+%Y/%m/%d %H:%M:%S’`
MAIL_STR=”\nEnd Recording \n”
RECORDING_FILENAME=”\n\n”$SERVER_URL$FILENAME”\n\n”

#録音終了時メール配信
echo $MAIL_STR$DATE_STR$RECORDING_FILENAME |/usr/bin/mail -s “RaspberryPi End Recording” -aFrom:RaspberryPi@******.com ******@******.com

——————–

cron の設定

#recording
# Sunday service
28 10   * * 7 root /usr/local/bin/record_mp3.sh 7200

#Sutday CheckRecording
10 22   * * 6 root /usr/local/bin/record_mp3.sh 10

#Christmas
28 10   25 12 * root /usr/local/bin/record_mp3.sh 7200
58 18   24 12 * root /usr/local/bin/record_mp3.sh 7200
#1.1
28 10   1 1 * root /usr/local/bin/record_mp3.sh 7200

————–

テスト時の様子

テスト時の様子

録音時、LED点灯

録音時、LED点灯

参考にしたサイト

橋本商会
http://shokai.org/blog/archives/7914

Raspberry Piで Audio の録音
http://qiita.com/setsulla/items/c08a6d8fcdddc83c54c5