# 📊 Audio Analyzer

EBU R128準拠のオーディオ解析ツール

## 🎯 概要

Audio Analyzerは、WAV/FLAC/M4Aファイルの音声品質を詳細に解析するツールです。FFmpegのebur128フィルターを使用し、EBU R128規格に完全準拠した測定を行います。

EBU R128とは？

欧州放送連合（EBU）が定めた音声ラウドネス測定の国際標準規格です。人間の聴覚特性に基づいた正確な音量測定が可能で、放送・ストリーミング・音楽制作など、プロの現場で広く採用されています。

### ✨ 主な機能

- 4つの音声指標を測定
  RMS（平均音圧）/ LUFS（ラウドネス）/ TP（ピークレベル）/ LRA（ダイナミックレンジ）
- マルチフォーマット対応 - WAV、FLAC、M4A（AAC/ALAC）に対応
- 並列処理対応 - 複数ファイルを高速処理（最大4コア）
- ログファイル出力 - 測定結果を自動保存

## 📦 配布ファイル

ファイル名 | 説明
--- | ---
`audio_analyzer.exe` | Audio Analyzer本体（メインプログラム）
`audio_analyzer_readme.html` | 使用説明書（このファイル）

## 🔒 セキュリティ検証

VirusTotal スキャン結果

このプログラムは70種以上のウイルス対策エンジンでスキャンされました。

- 検出結果: 3/72
- スキャン日: 2025年11月3日
- 検証リンク: VirusTotalで確認

誤検知について: 3つのエンジンで検出がありますが、これは「誤検知（False Positive）」です。Pythonで作成された実行ファイルは、一部のウイルス対策ソフトで誤検知されることがあります。主要なウイルス対策ソフト（Microsoft、Kaspersky、Norton、McAfee、AVG等）では問題なしと判定されています。

VirusTotalは、Google傘下のセキュリティサービスで、世界中の主要なウイルス対策ソフトウェアを使用してファイルをスキャンします。

## 📋 必要な環境

項目 | 内容
--- | ---
OS | Windows 10以降
その他 | FFmpeg 必須

## ⚙️ セットアップ

### 1FFmpegのインストール

💡 インストール方法：

1. FFmpeg for Windowsからダウンロード（"ffmpeg-release-essentials.zip"を推奨）
2. 解凍後、`ffmpeg.exe`を環境変数PATHに追加

⚠️ 重要： FFmpegがインストールされていない場合、ツールは起動できません。初回起動時にエラーが表示された場合は、FFmpegのインストールを確認してください。

## 🚀 使い方

1. 音声ファイルまたはフォルダを`audio_analyzer.exe（あるいはそのショートカット）`にドラッグ&ドロップ
2. 自動的に解析が開始されます
3. 結果がコンソールに表示され、ログファイルとして保存されます

💡 ヒント：

- 複数の音声ファイルを一度にドロップして一括処理できます
- フォルダをドロップすると、その直下の音声ファイルを処理します（サブフォルダは除外）
- 処理は自動的に並列化され、高速に実行されます（最大4コア）

## 🎵 対応フォーマット

フォーマット | 拡張子 | 特徴
--- | --- | ---
WAV | .wav | 非圧縮、最も一般的
FLAC | .flac | 可逆圧縮、高音質配信で使用
M4A (AAC) | .m4a | 非可逆圧縮、iTunes/Apple Music
M4A (ALAC) | .m4a | 可逆圧縮、Apple Lossless

💡 M4Aファイルについて：

M4Aは拡張子だけでは中身のフォーマット（AACまたはALAC）を判別できませんが、このツールは両方とも自動的に処理できます。

## 📊 測定値の見方

項目 | 単位 | 説明 | 目安
--- | --- | --- | ---
RMS | dB | 平均音圧レベル | -20dB ~ -10dB（音楽の場合）
LUFS | dB | 人間の聴覚特性を考慮したラウドネス | Spotify/Apple Music/YouTube: -14 LUFS CD/音楽制作: -9～-12 LUFS
TP | dBFS | True Peak - 真のピークレベル（クリッピング検出） | -1.0dBFS以下推奨
LRA | LU | ダイナミックレンジ（音の変化幅） | 5～15 LU（音楽ジャンルにより変動）

## 📁 出力ファイル

### ログファイル

測定結果は以下の形式で自動保存されます：

- ファイル名： `audio_analysis_log_YYYYMMDD_HHMMSS.txt`
- 保存場所： 解析したファイルが含まれるフォルダ（複数フォルダの場合は最初のファイルの場所）
- 内容： 全測定結果と処理情報

## 🔧 自動最適化機能

### CPU コア数の自動調整

このツールは利用可能なCPUコア数を自動検出し、最適な並列処理を行います。

- 自動的に利用可能なコア数を検出
- 最大4コアまで使用（バランスの取れたパフォーマンス）
- ファイル数に応じて処理方法を最適化

特別な設定は不要です。ドラッグ&ドロップするだけで最適な速度で処理されます。

## ❓ トラブルシューティング

### 「FFmpeg is required」エラーが出る

原因と対策：

- FFmpegがインストールされていない、またはPATHが通っていない
- コマンドプロンプトで `ffmpeg -version` を実行して確認
- FFmpegを再インストールし、環境変数PATHに追加

### 処理が遅い

原因と対策：

- デフォルトでは最大4コアまで自動使用
- ファイル数が少ない場合は並列化の効果が限定的
- ネットワークドライブ上のファイルは処理が遅くなる可能性あり
- M4AファイルはWAV/FLACより変換処理が入るため少し遅くなります

## 🎓 技術仕様

### 測定方式

- LUFS/TP/LRA： FFmpeg ebur128フィルター（EBU R128完全準拠）
- RMS： 音声波形から算出される平均音圧
- DC除去： True Peak計測前に音声の直流オフセット補正

### 対応フォーマット詳細

- WAV/FLAC： soundfileライブラリで直接読み込み（高速）
- M4A： FFmpegで一時WAVに変換後、読み込み
- サンプリングレート：任意（M4Aは48kHz/ステレオに自動変換）
- ビット深度：16bit/24bit/32bit対応
- チャンネル：モノラル/ステレオ対応

### 処理フロー（M4Aの場合）

1. FFmpegでM4A → 一時WAVファイルに変換（48kHz/ステレオ）
2. soundfileで一時WAVを読み込み
3. DC除去処理
4. RMS計算
5. FFmpeg ebur128でLUFS/TP/LRA測定
6. 一時ファイルを削除

## 📄 ライセンス

このツールは自由に配布・使用できます。FFmpegのライセンスについてはFFmpeg公式サイトをご確認ください。

Audio Analyzer - EBU R128準拠オーディオ解析ツール (WAV/FLAC/M4A対応)