1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🌟Raspberry PiでSNSフォロワーカウンターシステムを作る【第10回:フォロワー数が増えたら音が鳴る!】

Last updated at Posted at 2025-09-12

📝 はじめに

こんにちは、piyovateです。
前回は、フォロワー数の「任意日付との比較」をできるように機能をアップデートしました。

今回は、「フォロワーが増えたときに効果音を鳴らす」機能を追加してみました!
数字だけじゃなく、耳でも変化を感じられるようになったことで、ちょっと楽しい仕掛けになっています。


🎯 今回の概要

  • フォロワー数が前回値より増加した場合のみ音を再生
  • 音声は amixer + aplay によるWAV再生(Raspberry Pi 5)
  • volume を設定ファイルで管理できるように対応
  • モジュール化・docstring追加によるリファクタリングも実施

🔗 GitHubでコードを公開中

セットアップ手順やコード全体は以下のリポジトリにて公開しています👇
🔗 GitHub - SystermDevelopment/follower-counter


🔊 フォロワーが増えたときに音を鳴らす

■ やりたいこと

  • update_label() でフォロワー数を更新するタイミングで、
    前回値(ラベルに現在表示されている数値)と比較して、増えていたら再生

■ 実装のポイント

# 旧値をラベルから取得し、差分を比較
old_value_str = count_label.text().split(": ")[1]
if self.should_play_sound(old_value_str, new_value):
    play_increase_sound(volume=self.sound_volume)
  • "N/A"など非数値データのときは再生しないよう安全に判定しています。

🧠 再生処理を関数化&分離

音声再生処理は sound.py に切り出し、以下のように実装しました。

sound.py

"""
このモジュールは Linux 環境で効果音を再生するための関数を提供します。
amixer と aplay に依存しています。
"""

from pathlib import Path
import subprocess

def play_increase_sound(sound_path: str = "./asset/success.wav", volume: int = 100):
    if not (0 <= volume <= 100):
        print(f"音量値エラー: {volume}(0〜100の範囲で指定してください)")
        return

    if Path(sound_path).exists():
        try:
            subprocess.run(["amixer", "sset", "Master", f"{volume}%"],
                           check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
            subprocess.run(["aplay", sound_path],
                           check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
        except Exception as e:
            print(f"再生エラー: {e}")
    else:
        print(f"ファイルが存在しません: {sound_path}")

📁 設定ファイルの拡張(音量管理)

設定ファイル settings/settings.json に音量設定を追加:

{
  "compare_days_ago": 1,
  "daily_json": "./data/daily_followers.json",
  "sound_volume": 50
}

これで現場の音量に合わせて柔軟に調整できます!


✅ これで「増えたら音が鳴る」が実現!

  • 見た目の変化に加えて、音でもフォロワーの伸びを体感可能に!
  • Raspberry Pi に直接スピーカーをつないでそのまま再生できる
  • N/Aや不正なデータは安全にスキップして誤再生防止

🔔 次回予告

次回は、SNSごとに異なる効果音を再生する機能や、
音の非同期再生によるレスポンス改善にもチャレンジしてみようと思います!


🙏 さいごに

「フォロワー増えたら鳴る」ってちょっと嬉しいですよね。
「うちも通知音仕込みたい…!」と思った方はぜひ参考にしてみてください!
いいね・フォローストックもお待ちしています 😊


🔗 シリーズリンク

📚 全記事まとめはこちら → シリーズまとめリンク

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?