Raspberry Piで24時間録音機

概要

設定内容

録音には、arecordというlinuxにあるパッケージを使います。そのままだと音声データは無圧縮のwaveで出力されます。データ量が膨大になるので圧縮するためにlameでMP3に変換します。

# apt update
# apt install arecord lame
# vi /var/audio/mic.sh

Waveで保存の場合は1時間ごとに1ファイルができるような設定にしています。

音声データのストリームをパイプでlameに渡して、MP3に圧縮する。

その場合はファイルを分割できない連続録音です。

以下は起動用のシェルスクリプトです。

#!/bin/sh

# wav
# arecord -f cd -D hw:1,0 -r 16000 -t wav --max-file-time 3600 --use-strftime /var/audio/mic-%Y%m%d-%H%M%v.wav

# mp3
arecord -f cd -D hw:1,0 -t wav | lame -b 256 -m s - /var/audio/mic-`date +"%Y%m%d-%H%M%s"`.mp3

systemctlでデーモン化しておきます。

/etc/systemd/system/mic.service

[Unit]
Description = audio recording daemon

[Service]
ExecStart = /var/audio/mic.sh
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target
# chmod 755 /var/audio/mic.sh
# systemctl enable mic
# systemctl start mic

しばらく運用しているとMP3ファイルが152MB(約1.5時間分)で不定期にファイルが分割されて保存されていました。
arecordデーモンが勝手に再起動しているようです。
syslogには吐かれていないので原因はよくわかりません。

256kbpsでのエンコードでは、1日で2.5GBになります。結構大きいくなりました。高品質なので仕方が無いです。

高品質な音楽ぐらいのビットレートなのでただの音声であれば64kbpsとか32kbpsでも十分かと思いますので1/4か1/8ぐらいになります。

コメントを残す