Raspberry Pi で365日稼働する環境音録音システムの構築方法【完全ガイド】

【目次】気になる所をクリック!

はじめに

この記事では、Raspberry Pi 3 Model Bを使って、環境音を24時間365日録音し続けるシステムの構築方法を、実際に遭遇した失敗や試行錯誤も含めて詳しく解説します。

スマートフォンでは数時間で録音が停止してしまう問題がありました。また、市販のICレコーダーも365日の連続稼働には向いていません。そこで、Raspberry Piを使った安定稼働システムを構築することにしました。

注意:当初は「音声トリガー録音」(音がした時だけ録音)を目指しましたが、技術的な課題があり、最終的には定時録音システム(AM 6:00 – PM 23:30まで自動録音)で安定稼働を優先しました。この判断に至るまでの経緯も含めて解説します。

完成するシステムの仕様

  • 稼働時間:AM 6:00 – PM 23:30(それ以外は待機)
  • 音質:8kHz、モノラル、16bit(低音質で容量削減)
  • ファイル分割:1時間ごと(安定性重視)
  • 容量目安:1日約1GB、32GBで約1ヶ月分
  • リモート操作:Chromebookから完全操作可能
  • 拡張性:将来的に音声トリガー機能も追加可能

第1章:必要なものと選定理由

ハードウェアの選定

Raspberry Pi本体の選び方

最初に検討したのは「どのRaspberry Piを購入するか」という問題でした。

モデル評価理由
Raspberry Pi Zero❌ 不適処理能力が低く、長期稼働で不安定
Raspberry Pi 3 Model A+△ 可能だが注意RAM 512MB、USBポート1つのみ(ハブ必須)
Raspberry Pi 3 Model B◎ おすすめRAM 1GB、USBポート4つ、安定性高い、中古で安価
Raspberry Pi 3 Model B+◎ おすすめ3Bより高速だが、録音には影響なし
Raspberry Pi 4○ 高性能録音には過剰スペック、価格が高い

最終決定:Raspberry Pi 3 Model B V1.2

理由:

  • 環境音録音には十分な性能
  • USB 2.0ポート×4(マイクと外付けストレージを同時接続可能)
  • RAM 1GB(長期稼働に余裕あり)
  • 中古で2,000〜3,000円と安価
  • 豊富な情報とトラブルシューティング事例

その他必要なもの

  • microSDカード:32GB以上、Class 10推奨
    • 当初128GBを検討したが、定期的にファイル整理すれば32GBで十分と判断
    • 価格:1,000円程度
  • 電源アダプター:5V 2.5A以上、microUSB
    • 重要:安物は避けること。電源不足でシステムが不安定になる
    • 公式または信頼できるメーカー品を推奨
    • 価格:1,000〜1,500円
  • USBマイク:環境音録音用
    • 低価格品で十分(1,000〜2,000円)
    • サンワサプライ、エレコムなどが無難
  • ケース:放熱穴付き推奨
    • 365日稼働なので熱対策は重要
    • 価格:500〜1,000円
  • microSDカードリーダー(PCに挿すため)

初期設定時のみ必要

  • キーボード(USB接続)
  • マウス(USB接続)
  • HDMIケーブル
  • モニターまたはTV

注:当初「モニターなしでセットアップできるか?」と考えましたが、Raspberry Pi 3ではモニターなし起動(ネット経由の自動インストール)は不可能です。これはRaspberry Pi 4以降の機能です。

操作用PC

  • Chromebook(Duet 3 Chrome 11Q727で動作確認)またはWindows PC

第2章:OSインストールの準備 – 最初の壁

Chromebookでの挫折と方針転換

最初は「Chromebookだけで全てできないか?」と考え、Chromebookでのセットアップを試みました。

失敗事例1:Chromebookでrpi-imagerがインストールできない

Chromebookで「Linux開発環境」を有効化し、以下のコマンドを実行:

sudo apt update
sudo apt install rpi-imager -y

結果:

E: Unable to locate package rpi-imager

原因:ChromebookのLinux環境(Debian)では、rpi-imagerパッケージが標準リポジトリに含まれていない。

教訓:Raspberry Piの公式ツールは、WindowsまたはMac用に最適化されている。Chromebookでも可能だが、回り道になる。

誤解していたこと:Raspberry Piは単体で起動できるのか?

この時点で「microSDカードなしでも起動できるのでは?」という疑問がありました。

重要な事実:

  • Raspberry Piには内蔵ストレージがない
  • ✅ microSDカードが「ハードディスク」の役割を果たす
  • ✅ 空のmicroSDカードを挿しても何も起動しない(Pi 3の場合)
  • ✅ 事前にOSを書き込む必要がある

「Raspberry Pi 4以降なら、ネット経由で自動インストールできる」という情報を見つけましたが、Raspberry Pi 3では利用不可でした。

方針転換:Windows PCでOSを書き込む

結論として、Windows PCを使ってmicroSDカードにOSを書き込む方法が最も確実で簡単でした。


第3章:Raspberry Pi OSのインストール(Windows PC使用)

ステップ1:Raspberry Pi Imagerのダウンロード

  1. Windows PCのブラウザで以下にアクセス
https://www.raspberrypi.com/software/
  1. 「Download for Windows」ボタンをクリック
  2. ダウンロードした imager_latest.exe をダブルクリックしてインストール
  3. インストールは数秒で完了

ステップ2:OSをmicroSDカードに書き込む

  1. microSDカードをPCに接続
    • カードリーダー経由で接続
    • Windowsが「フォーマットしますか?」と聞いてきても、まだフォーマットしない
  2. Raspberry Pi Imagerを起動
  3. デバイスを選択 → 「Raspberry Pi 3」を選択
  4. OSを選択
    • 「Raspberry Pi OS (other)」をクリック
    • 「Raspberry Pi OS Lite (64-bit)」を選択
    • 注:「Lite」版はデスクトップ環境がない軽量版。録音システムには最適
  5. ストレージを選択
    • 挿入したmicroSDカードを選択
    • 警告:間違えて別のUSBメモリやHDDを選ばないように!
  6. 「次へ」をクリック

ステップ3:初期設定(最重要ステップ)

「OS設定をカスタマイズしますか?」と聞かれたら、必ず「設定を編集する」を選択してください。

この設定を忘れると、後でモニター・キーボードが必要になり二度手間になります。

一般タブで設定:

  • ホスト名を設定
    • デフォルトの raspberrypi のままでOK
    • ネットワーク上で識別するための名前
  • ユーザー名とパスワードを設定
    • ユーザー名:pi(推奨)
    • パスワード:覚えやすいものを設定(必ずメモ!)
    • 注意:このパスワードは後で何度も使います
  • Wi-Fiを設定
    • SSID:自宅のWiFi名(例:MyHomeWiFi
    • パスワード:WiFiパスワード
    • 国:JP
    • 重要:SSIDやパスワードが間違っていると、後でネットワークに接続できない
  • ロケール設定を行う
    • タイムゾーン:Asia/Tokyo
    • キーボードレイアウト:jp

サービスタブで設定:

  • SSHを有効化するにチェック
    • 「パスワード認証を使う」を選択
    • これが最重要!SSH有効化により、モニターなしでリモート操作可能になる
とりあえず、パスワードで設定、公開鍵も可能

全て設定したら「保存」→「はい」をクリック

ステップ4:書き込み開始

  1. 「はい」をクリック(データが消えることの確認)
  2. 書き込みが始まる(5〜10分)
    • 「Writing…」→「Verifying…」の順に進行
  3. 「書き込みが成功しました」と表示されたら完了
  4. 「続ける」をクリック
  5. microSDカードを安全に取り外す
    • Windowsのタスクバーで「ハードウェアの安全な取り外し」を実行

第4章:ヘッドレスセットアップ – モニターなしで起動

「ヘッドレス」とは?

ヘッドレス(Headless)とは、モニター・キーボード・マウスを接続せずにRaspberry Piを操作することです。今回のような24時間稼働システムでは、ヘッドレス運用が基本です。

ステップ1:Raspberry Piを起動

  1. microSDカードをRaspberry Piに挿入
  2. 電源アダプターだけを接続(モニター、キーボード、マウス不要
  3. 緑のLEDが点滅すれば起動中
  4. 2〜3分待つ(初回起動とWiFi接続には時間がかかる)

ステップ2:IPアドレスの確認

Raspberry Piに接続するには、IPアドレスを知る必要があります。

方法A:ルーターの管理画面で確認(最も確実)

  1. ブラウザで 192.168.1.1 または 192.168.0.1 にアクセス
    • ルーターのメーカーによってアドレスが異なる
    • NEC Aterm:192.168.10.1
    • Buffalo:192.168.11.1
  2. ルーターの管理画面にログイン
  3. 「接続機器一覧」「DHCP」「クライアントリスト」などの項目を探す
  4. 「raspberrypi」という名前の機器を探す
  5. IPアドレスをメモ(例:192.168.1.100

方法B:コマンドで確認

Windows PowerShellまたはChromebookのターミナルで:

ping raspberrypi.local

成功例:

PING raspberrypi.local (192.168.1.100): 56 data bytes
64 bytes from 192.168.1.100: icmp_seq=0 ttl=64 time=2.1 ms

IPアドレス(この例では192.168.1.100)が表示されればOK

失敗例:

ping: cannot resolve raspberrypi.local: Unknown host

この場合は方法Aでルーターから確認してください。

失敗事例2:IPアドレスが見つからない

考えられる原因:

  • WiFi設定が間違っている(SSIDまたはパスワードのミス)
  • Raspberry Piの起動に時間がかかっている(5分程度待つ)
  • ルーターのDHCP機能が無効になっている

対処法:

  • Raspberry Piを再起動(電源を抜いて10秒待ってから再接続)
  • microSDカードを再書き込み(WiFi設定を再確認)
  • 一時的にモニターとキーボードを接続して、手動でWiFi設定

ステップ3:Chromebook(Duet 3 Chrome 11Q727)からSSH接続

Chromebookでターミナルを開く

  1. Chromebookの設定で「Linux開発環境」が有効になっているか確認
    • 設定 → 詳細設定 → デベロッパー → Linux開発環境
    • オンになっていればOK
  2. 「ターミナル」アプリを起動

SSH接続コマンド

ssh pi@raspberrypi.local

または、IPアドレスがわかっている場合:

ssh pi@192.168.1.100

初回接続の確認

初回接続時、以下のようなメッセージが表示されます:

The authenticity of host 'raspberrypi.local (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?

yesと入力してEnter

パスワード入力

pi@raspberrypi.local's password:

Raspberry Pi Imagerで設定したパスワードを入力

  • 注意:画面には何も表示されません(セキュリティのため)
  • そのまま入力してEnterを押す

接続成功!

Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64

pi@raspberrypi:~ $

このプロンプトが表示されたら成功です!

失敗事例3:SSH接続できない

エラー1:Connection refused

ssh: connect to host raspberrypi.local port 22: Connection refused

原因:SSH有効化を忘れている

対処法:microSDカードを再書き込み。「サービス」タブで「SSHを有効化」にチェックを入れる

エラー2:Permission denied

Permission denied (publickey,password).

原因:パスワードが間違っている

対処法:

  • パスワードを再確認(大文字小文字を間違えていないか)
  • パスワードを思い出せない場合は、microSDカードを再書き込み

第5章:録音システムのセットアップ

ステップ1:システムを最新にする

SSH接続できたら、まずシステムを最新版にアップデートします。

sudo apt update

パスワードを聞かれたら、Raspberry Piのパスワードを入力(画面には表示されません)

次に:

sudo apt upgrade -y

注:数分〜10分程度かかります。気長に待ちましょう。

ステップ2:必要なソフトウェアをインストール

sudo apt install sox alsa-utils -y
  • sox:音声ファイルの処理・解析ツール
  • alsa-utils:音声デバイスの管理ツール

ステップ3:USBマイクを接続

  1. Raspberry PiのUSBポートにマイクを挿す
  2. 数秒待つ(自動認識)

ステップ4:マイクの認識確認

arecord -l

出力例(成功):

**** List of CAPTURE Hardware Devices ****
card 2: UACDemoV10 [UACDemoV1.0], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

重要:カード番号とデバイス番号をメモ

  • この例では:card 2device 0
  • デバイス名は:hw:2,0

失敗事例4:マイクが認識されない

出力例(失敗):

**** List of CAPTURE Hardware Devices ****
arecord: device_list:274: no soundcards found...

原因と対処法:

  • マイクがしっかり挿さっていない → 挿し直す
  • マイクの電源がオフ → 電源をオンにする
  • USBポートの不良 → 別のUSBポートを試す
  • マイク自体の故障 → 別のマイクで試す

ステップ5:テスト録音

マイクが正常に録音できるか確認します。

arecord -D plughw:2,0 -d 5 -f cd test.wav

コマンドの意味:

  • -D plughw:2,0:デバイスを指定(自分のカード番号に置き換える)
  • -d 5:5秒間録音
  • -f cd:CD音質(44.1kHz, 16bit, ステレオ)
  • test.wav:ファイル名

録音中は何か音を出してください(手を叩く、話すなど)

5秒後に自動的に停止します。

ステップ6:録音の確認

sox test.wav -n stat

出力例(成功):

Samples read:            441000
Length (seconds):      5.000000
Scaled by:         2147483647.0
Maximum amplitude:     0.542145
Minimum amplitude:    -0.498779
Midline amplitude:     0.021683
Mean    norm:          0.089234
Mean    amplitude:     0.005432
RMS     amplitude:     0.123456
Maximum delta:         0.234567
Minimum delta:         0.000000
Mean    delta:         0.012345
RMS     delta:         0.023456
Rough   frequency:          234
Volume adjustment:        1.845

確認ポイント:

  • Maximum amplitudeが0.000000以外なら録音成功
  • 上記例では0.542145なので、しっかり音が録音できている

失敗事例5:音が録音できていない

出力例(失敗):

Maximum amplitude:     0.000000

原因と対処法:

  • マイクがミュートになっている → マイクの設定を確認
  • 音源が遠すぎる → マイクに近づけて再テスト
  • マイクの感度が低い → alsamixerコマンドで感度を上げる

第6章:音声トリガー録音への挑戦と挫折

当初の目標:音声トリガー録音

当初の要望は以下でした:

  • 音量が一定レベルに来たら録音を開始
  • 音が10秒間しなくなったら録音を停止
  • ストレージ容量を節約

第1回目のスクリプト作成

soxrecコマンドを使った音声トリガー録音スクリプトを作成しました。

rec -D "$DEVICE" -c $CHANNELS -r $SAMPLE_RATE "$FILENAME" \
    silence 1 0.1 $THRESHOLD 1 $SILENCE_DURATION $THRESHOLD

失敗事例6:PulseAudioエラーで録音できない

実行結果:

[2025-11-24 10:01:14] 音声検知待機中...
rec WARN alsa: can't encode 0-bit Unknown or not applicable
ALSA lib pcm_pulse.c:758:(pulse_prepare) PulseAudio: Unable to create stream: Timeout

rec FAIL formats: can't open input 'default': snd_pcm_prepare error: Input/output error

原因:

  • recコマンドがdefaultデバイスを使おうとした
  • PulseAudioが邪魔をしている
  • 実際はhw:2,0を直接指定する必要がある

試行錯誤1:デバイス指定の修正

スクリプトを修正してhw:2,0を直接指定しましたが、他の問題が発生。

第2回目のスクリプト作成:arecordへの切り替え

recの代わりにarecordを使用。バックグラウンドで録音しながら、別プロセスで音量をチェックする方式。

失敗事例7:同時に複数のプロセスでマイクにアクセスできない

問題:

  • 録音中のプロセスがマイクをロックしている
  • 別のプロセスで音量チェックしようとすると「デバイスがビジー」エラー

第3回目のスクリプト作成:セグメント方式

1秒ごとに録音して、音量をチェック。音があればセグメントを保存、無音が10回続いたら結合する方式。

失敗事例8:無音検知が機能しない

実行結果:

[2025-11-24 11:10:10] 音声検知!録音開始
(その後、無音検知のメッセージが出ない)

原因:

  • 48kHzのサンプリングレートでは、「無音」でもマイクノイズが常に入る
  • ファイルサイズは常に増え続ける
  • 閾値の調整が非常に難しい

試した対策:

  • 閾値を0.01、0.05、0.1と変更 → いずれも精度不足
  • 実際の音声レベルをリアルタイムでチェック → 複雑すぎて不安定

方針転換:定時録音システムへ

数時間の試行錯誤の結果、以下の結論に至りました:

音声トリガー録音は技術的に可能だが、調整が難しく、安定稼働のリスクが高い。まずは確実に動作する定時録音システムで実績を作り、後で音声トリガー機能を追加する方が賢明。

最終方針:定時録音システム

  • AM 6:00 – PM 23:30に録音(それ以外は待機)
  • 1時間ごとにファイル分割(安定性重視)
  • 低音質(8kHz)で容量削減
  • シンプルで確実な動作

この判断により、システムは安定稼働を実現しました。


第7章:24時間録音システムの構築(最終版)

ステップ1:録音用ディレクトリを作成

mkdir -p ~/recordings

ステップ2:録音スクリプトの作成

nano ~/voice_record_24h.sh

nanoエディタが開きます。以下のスクリプトをコピー&ペーストしてください:

#!/bin/bash

# 設定
DEVICE="hw:2,0"                # マイクデバイス(自分の環境に合わせて変更)
OUTPUT_DIR="$HOME/recordings"  # 保存先
SAMPLE_RATE=8000               # 低音質(容量削減)
DURATION=3600                  # 1時間ごとに録音(3600秒)
START_HOUR=6                   # 開始時刻(AM 6:00)
END_HOUR=23                    # 終了時刻(PM 11:00)
END_MINUTE=30                  # 終了分(PM 11:30)

mkdir -p "$OUTPUT_DIR"

echo "24時間録音システム起動"
echo "稼働時間: ${START_HOUR}:00 - ${END_HOUR}:${END_MINUTE}"
echo "音質: ${SAMPLE_RATE}Hz (低音質・容量削減)"
echo "ファイル分割: 1時間ごと"
echo "-----------------------------------"

while true; do
    # 現在時刻を取得
    CURRENT_HOUR=$(date +%H)
    CURRENT_MINUTE=$(date +%M)

    # 稼働時間帯かチェック
    if [ $CURRENT_HOUR -ge $START_HOUR ] && [ $CURRENT_HOUR -lt $END_HOUR ]; then
        # 6:00 - 22:59 は録音
        SHOULD_RECORD=true
    elif [ $CURRENT_HOUR -eq $END_HOUR ] && [ $CURRENT_MINUTE -lt $END_MINUTE ]; then
        # 23:00 - 23:29 は録音
        SHOULD_RECORD=true
    else
        # それ以外は録音しない
        SHOULD_RECORD=false
    fi

    if [ "$SHOULD_RECORD" = true ]; then
        FILENAME="$OUTPUT_DIR/rec_$(date +%Y%m%d_%H%M%S).wav"
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] 録音開始: $FILENAME"

        # 1時間録音(エラーが出ても継続)
        arecord -D "$DEVICE" -f S16_LE -c 1 -r $SAMPLE_RATE -d $DURATION "$FILENAME" 2>/dev/null

        # 録音結果を確認
        if [ -f "$FILENAME" ]; then
            SIZE=$(du -h "$FILENAME" | cut -f1)
            FILESIZE=$(stat -c%s "$FILENAME")
            echo "[$(date '+%Y-%m-%d %H:%M:%S')] 録音完了: $SIZE ($FILESIZE bytes)"

            # ファイルが小さすぎる場合(エラーの可能性)
            if [ $FILESIZE -lt 100000 ]; then
                echo "[$(date '+%Y-%m-%d %H:%M:%S')] 警告: ファイルサイズが小さい、録音エラーの可能性"
            fi
        else
            echo "[$(date '+%Y-%m-%d %H:%M:%S')] エラー: 録音ファイルが作成されませんでした"
            echo "[$(date '+%Y-%m-%d %H:%M:%S')] 10秒後に再試行..."
            sleep 10
        fi
    else
        # 稼働時間外
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] 稼働時間外(待機中)次回開始: ${START_HOUR}:00"

        # 次の開始時刻まで待機
        sleep 300  # 5分ごとにチェック
    fi

    # 少し待機(連続実行の間隔)
    sleep 2
done

スクリプトのカスタマイズポイント

DEVICE="hw:2,0"の部分:

  • 自分のマイクのカード番号に変更
  • arecord -lで確認した番号を使用

稼働時間の変更:

START_HOUR=6        # 開始時刻(0-23)
END_HOUR=23         # 終了時刻(0-23)
END_MINUTE=30       # 終了分(0-59)

例:AM 7:00 – PM 22:00にしたい場合:

START_HOUR=7
END_HOUR=22
END_MINUTE=0

音質の変更:

SAMPLE_RATE=8000    # 8000=低音質、16000=標準、48000=高音質
  • 8kHz:音質は粗いが容量最小(推奨)
  • 16kHz:音質と容量のバランス
  • 48kHz:高音質だが容量大

録音時間の変更:

DURATION=3600       # 秒単位(3600=1時間、7200=2時間)

ステップ3:保存と実行権限の付与

保存方法:

  1. Ctrl + O(オー)を押す
  2. Enterを押す
  3. Ctrl + Xを押す

実行権限を付与:

chmod +x ~/voice_record_24h.sh

ステップ4:テスト実行

まず、手動で動作確認します。

~/voice_record_24h.sh

期待される出力:

24時間録音システム起動
稼働時間: 6:00 - 23:30
音質: 8000Hz (低音質・容量削減)
ファイル分割: 1時間ごと
-----------------------------------
[2025-11-24 11:32:23] 録音開始: /home/pi/recordings/rec_20251124_113223.wav

録音が開始されることを確認したら、Ctrl + Cで停止

失敗事例9:サンプリングレートの警告

警告メッセージ:

Warning: rate is not accurate (requested = 16000Hz, got = 48000Hz)
         please, try the plug plugin

意味:

  • 要求:16kHz
  • 実際:48kHz
  • マイクが16kHzをサポートしていないため、自動的に48kHzで録音

対処:

  • これは警告であり、エラーではない
  • 録音自体は正常に動作している
  • 音質が良くなるだけで、問題ない(容量は増える)
  • 気になる場合は、スクリプトのSAMPLE_RATE=48000に変更

ステップ5:24時間稼働用に起動

バックグラウンドで実行し、ターミナルを閉じても継続させます。

nohup ~/voice_record_24h.sh > ~/voice_record_24h.log 2>&1 &

コマンドの意味:

  • nohup:ターミナルを閉じても継続
  • > ~/voice_record_24h.log:ログをファイルに保存
  • 2>&1:エラーメッセージもログに含める
  • &:バックグラウンドで実行

出力:

[1] 26505

これはプロセスIDです。メモしておくと便利です。

ステップ6:動作確認

ログをリアルタイムで確認:

tail -f ~/voice_record_24h.log

ログが表示されます。Ctrl + Cで終了(スクリプトは動き続けます)

プロセスが動いているか確認:

ps aux | grep voice_record_24h

出力例(成功):

pi      26505  0.3  0.3   6924  3220 pts/0    S    10:46   0:00 /bin/bash /home/pi/voice_record_24h.sh
pi      26765  0.0  0.2   6252  2028 pts/0    S+   10:48   0:00 grep --color=auto voice_record

1行目がスクリプト本体、2行目はgrepコマンド自体です。

録音ファイルを確認:

ls -lh ~/recordings/

出力例:

total 7.7M
-rw-r--r-- 1 pi pi 1.3M Nov 24 11:32 rec_20251124_113154.wav
-rw-r--r-- 1 pi pi 6.4M Nov 24 11:33 rec_20251124_113223.wav

ファイルサイズが増え続けていれば、録音が継続中です。

ステップ7:Chromebookのターミナルを閉じる

動作確認ができたら、Chromebookのターミナルを閉じてOKです。

重要:

  • ✅ ターミナルを閉じても録音は継続
  • ✅ Chromebookをシャットダウンしても録音は継続
  • ❌ Raspberry Piの電源を切ると停止

第8章:録音ファイルの確認と管理

方法1:Chromebookに転送

Chromebookで新しいターミナルを開いて:

scp pi@raspberrypi.local:~/recordings/rec_20251124_113223.wav /mnt/chromeos/MyFiles/Downloads/

パスワードを入力すると、Chromebookの「ダウンロード」フォルダに保存されます。

失敗事例10:Chromebookでのscp 使用は難しい

このエラーは解決できず、下のWEBブラウザ設定を利用しました。



方法2:Webブラウザで確認(推奨)

この方法が最も簡単です。

Raspberry Pi側で簡易HTTPサーバーを起動:

cd ~/recordings
python3 -m http.server 8000

出力:

Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

Chromebookまたはスマホのブラウザでアクセス:

http://raspberrypi.local:8000

または

http://192.168.1.100:8000

ファイル一覧が表示され、クリックでダウンロード・再生が可能です。

終わったら Ctrl + C でサーバーを停止

方法3:Androidスマホで確認

方法2のHTTPサーバーを使えば、Androidスマホのブラウザでも同様にアクセスできます。

または、SFTPアプリ(Solid Explorer、FX File Explorerなど)を使ってファイルにアクセス可能です。


第9章:運用と管理

基本的な管理コマンド

録音システムの停止

pkill -f voice_record_24h.sh

録音システムの再起動

nohup ~/voice_record_24h.sh > ~/voice_record_24h.log 2>&1 &

ログの確認

# 最新20行を表示
tail -20 ~/voice_record_24h.log

# 最新50行を表示
tail -50 ~/voice_record_24h.log

# リアルタイムでログを監視
tail -f ~/voice_record_24h.log

録音ファイルの確認

# ファイル一覧(人間が読みやすい形式)
ls -lh ~/recordings/

# 最新5ファイルのみ表示
ls -lht ~/recordings/ | head -6

# 容量確認
du -sh ~/recordings/

# ファイル数のカウント
ls ~/recordings/ | wc -l

プロセスの確認

ps aux | grep voice_record_24h

ストレージ管理

空き容量の確認

df -h

出力例:

Filesystem      Size  Used Avail Use% Mounted on
/dev/root        29G  5.2G   23G  19% /

Availが空き容量です。

古いファイルの削除

30日より古いファイルを削除:

find ~/recordings/ -name "*.wav" -mtime +30 -delete

7日より古いファイルを削除:

find ~/recordings/ -name "*.wav" -mtime +7 -delete

注意:削除前に確認したい場合は、-deleteを外して実行:

find ~/recordings/ -name "*.wav" -mtime +7

自動削除スクリプトの作成(オプション)

毎日自動的に古いファイルを削除するスクリプトを作成できます。

nano ~/cleanup_recordings.sh

以下を入力:

#!/bin/bash
find ~/recordings/ -name "*.wav" -mtime +30 -delete
echo "[$(date)] 古いファイルを削除しました"

保存して実行権限を付与:

chmod +x ~/cleanup_recordings.sh

cronで毎日実行(後述)

システムの再起動

Raspberry Piを再起動する場合:

sudo reboot

注意:現状では、再起動後に録音システムを手動で起動する必要があります。自動起動設定は後述の「Phase 10」を参照。


第10章:トラブルシューティング

録音が開始されない

原因1:マイクデバイス番号が違う

確認方法:

arecord -l

カード番号を確認し、スクリプトの DEVICE="hw:X,Y" を修正

原因2:稼働時間外

AM 6:00 – PM 23:30以外は待機状態です。

確認方法:

date

現在時刻を確認し、稼働時間内か確認

テスト用に稼働時間を変更:

スクリプトを編集して、START_HOUR=0END_HOUR=23END_MINUTE=59に変更すれば24時間稼働

原因3:プロセスが起動していない

確認方法:

ps aux | grep voice_record_24h

プロセスが表示されない場合は、起動されていない。再起動してください。

SSH接続できない

原因1:Raspberry Piが起動していない

確認:緑のLEDが点滅しているか

対処:電源を確認、再起動

原因2:WiFi接続に失敗している

対処:

  • ルーターの接続機器一覧で「raspberrypi」が表示されているか確認
  • 表示されない場合は、WiFi設定が間違っている可能性
  • microSDカードを再書き込み

原因3:IPアドレスが変わった

対処:

  • ルーターでIPアドレスを再確認
  • または、DHCPで固定IPを割り当てる設定をルーターで行う

ストレージが不足

確認方法

df -h

Use%が90%以上なら危険

対処方法

1. 古いファイルを削除:

find ~/recordings/ -name "*.wav" -mtime +7 -delete

2. ファイルをバックアップしてから削除:

Chromebookやスマホにダウンロードしてから、Raspberry Pi側を削除

3. ログファイルをクリア:

echo "" > ~/voice_record_24h.log

録音ファイルが再生できない

原因1:ファイルサイズが小さすぎる

確認:

ls -lh ~/recordings/

ファイルサイズが数KBしかない場合、録音エラーの可能性

原因2:ファイルが破損している

確認:

file ~/recordings/rec_YYYYMMDD_HHMMSS.wav

RIFF (little-endian) data, WAVE audioと表示されればOK

Raspberry Piが反応しない

最終手段:強制再起動

電源を抜いて、10秒待ってから再接続

注意:録音中のファイルは破損する可能性があります


第11章:容量とコストの最適化

サンプリングレートと容量の関係

サンプリングレート1時間あたり1日(17.5h)32GBで音質
8kHz(本記事)約55MB約1GB約1ヶ月電話音質
16kHz約110MB約2GB約15日ラジオ音質
44.1kHz約300MB約5GB約6日CD音質
48kHz約330MB約6GB約5日高音質

推奨設定

環境音録音の場合:

  • 8kHz推奨(人の声は十分聞き取れる)
  • 容量が最小で、長期間保存可能

音楽録音の場合:

  • 44.1kHz以上推奨
  • ただし、容量が大幅に増える

コスト計算

初期費用

項目価格
Raspberry Pi 3B(中古)3,000円
microSDカード 32GB1,000円
電源アダプター1,500円
USBマイク1,500円
ケース800円
microSDカードリーダー500円
合計約8,300円

ランニングコスト

電気代:

  • Raspberry Pi 3B:約3W
  • 24時間365日稼働:約3W × 24h × 365日 = 26.28kWh/年
  • 電気代(1kWh = 30円として):約788円/年
  • 月額約66円

市販製品との比較:

製品初期費用年間電気代長期稼働
Raspberry Pi8,300円788円
ICレコーダー10,000円〜500円〜
スマホ既存不明

第12章:今後の拡張案

Phase 10:自動起動設定

systemdサービスとして登録すれば、Raspberry Pi起動時に自動開始できます。

メリット:

  • 停電後の自動復旧
  • エラー時の自動再起動
  • ログ管理の統一

設定方法:

sudo nano /etc/systemd/system/voice-record.service

以下を入力:

[Unit]
Description=24h Voice Recording System
After=network.target sound.target

[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi
ExecStart=/home/pi/voice_record_24h.sh
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

保存して有効化:

sudo systemctl daemon-reload
sudo systemctl enable voice-record.service
sudo systemctl start voice-record.service

動作確認:

sudo systemctl status voice-record.service

Phase 11:音声トリガー録音の実装

Pythonスクリプトでより精密な音声検知を実装。

メリット:

  • ストレージ容量の節約
  • 必要な音だけを録音
  • より高度な音声分析

必要な技術:

  • Python + pyaudio
  • VAD(Voice Activity Detection)アルゴリズム
  • 閾値の自動調整

Phase 12:カメラ連動システム

音声検知時に自動で動画撮影を開始。

必要なもの:

  • Raspberry Pi Camera Module V2(3,000〜4,000円)
  • または USBウェブカメラ(1,000〜2,000円)

機能:

  • 音声トリガーで録音+動画撮影
  • 夜間撮影(NoIRカメラ使用)
  • 低画質で容量削減

Phase 13:クラウドバックアップ

録音ファイルを自動的にクラウドにアップロード。

方法:

  • rcloneを使ってGoogle Drive連携
  • Dropbox APIを使った自動アップロード
  • rsyncでNASにバックアップ

メリット:

  • ローカルストレージの自動削除
  • データ消失のリスク軽減
  • どこからでもアクセス可能

Phase 14:Webインターフェース

ブラウザから録音状態を確認・操作できるダッシュボード。

機能案:

  • 録音状態のリアルタイム表示
  • ストレージ容量の確認
  • 録音開始/停止
  • ファイルの再生・ダウンロード
  • 設定変更(稼働時間、音質など)

第13章:実運用での注意点

法律とプライバシー

注意事項:

  • 公共の場での録音は法律に注意
  • 他人のプライバシーを侵害しないこと
  • 録音していることを明示する(必要に応じて)
  • 録音データの管理責任

セキュリティ

推奨設定:

  • SSH接続は自宅ネットワークのみ
  • 強力なパスワードを設定
  • 定期的なパスワード変更
  • ファイアウォール設定(必要に応じて)

メンテナンス

定期的に確認すること:

  • 週1回:ストレージ容量、録音ファイルの確認
  • 月1回:システムアップデート、古いファイルの整理
  • 3ヶ月に1回:microSDカードの健全性チェック

バックアップ

重要なファイル:

  • ~/voice_record_24h.sh(録音スクリプト)
  • ~/voice_record_24h.log(ログファイル)
  • ~/recordings/(録音データ)

定期的に別の場所にバックアップすることを推奨します。


まとめ

本記事では、Raspberry Pi 3 Model Bを使った24時間環境音録音システムの構築方法を、実際の失敗事例や試行錯誤も含めて詳しく解説しました。

構築できたシステム

  • ✅ AM 6:00 – PM 23:30の自動録音
  • ✅ 低音質(8kHz)で容量削減(1日約1GB)
  • ✅ 1時間ごとのファイル分割で安定性向上
  • ✅ Chromebookから完全リモート操作
  • ✅ ターミナル切断後も継続稼働
  • ✅ 総コスト約8,300円、月額電気代約66円

学んだ教訓

  1. Chromebookだけでは難しい
    • OSインストールにはWindows/Macが確実
    • 運用・操作はChromebookで十分
  2. Raspberry Pi 3は単体で起動できない
    • microSDカードへのOS書き込みが必須
    • ネット経由の自動インストールはPi 4以降
  3. 音声トリガー録音は想像以上に難しい
    • 無音検知の調整が困難
    • まずは安定稼働を優先すべき
  4. SSH設定は最初が肝心
    • OS書き込み時にSSH有効化を忘れると二度手間
    • WiFi設定のミスで接続できないことが多い
  5. シンプルなシステムほど安定する
    • 複雑な機能は後から追加できる
    • 基盤システムの安定性が最優先

今後の展開

このシステムを基盤として、以下のような拡張が可能です:

  • 自動起動設定(systemdサービス化)
  • 音声トリガー録音(Python実装)
  • カメラ連動システム
  • クラウドバックアップ
  • Webダッシュボード

最後に

今回の構築では、多くの失敗や試行錯誤がありました。しかし、それらの経験こそが、より安定したシステムを作る上で重要な学びとなりました。

この記事が、同じようなシステムを構築しようとしている方の参考になれば幸いです。質問や改善案があれば、コメント欄でお知らせください!


【重要な注意事項】

  • 録音システムの使用にあたっては、法律とプライバシーを遵守してください
  • 公共の場での録音には特に注意が必要です
  • 録音データの管理責任は使用者にあります
  • 電源の突然の切断は、録音中のファイルを破損させる可能性があります

作成日:2025年11月24日
Raspberry Pi 3 Model B V1.2、Raspberry Pi OS Lite (64-bit)、Chromebook(Duet 3 Chrome 11Q727)で動作確認済み

未経験がプログラマーになる近道は?

プログラミングに関心があるけど、未経験者に出来るの?

不安になりますよね。

では、受講生の97%以上がプログラミング未経験。しかも、受講した後、転職までサポートしてくれるので、プログラマーの仕事が出来ます!

まずは、無料でカウンセリングや相談が出来るので、「自分のやりたいができるの?」「どうやったらプログラマーになれるの?」など疑問点を聞いてみましょう!

よかったらシェアしてね!
  • URLをコピーしました!
【目次】気になる所をクリック!