特定の話者の音源から声質を計測し、可視化する高機能な音声分析ツールです。
このツールは音声ファイルから様々な音響特徴量を抽出し、話者の声質を科学的に分析・可視化します。研究、音声品質評価、音声学習などの用途に活用できます。
- 基本特徴量: 継続時間、振幅統計、RMSエネルギー
- ピッチ分析: 基本周波数(F0)の平均・範囲・変動・安定性
- スペクトル分析: スペクトル重心・帯域幅・ロールオフ・ゼロ交差率
- フォルマント分析: F1, F2, F3周波数(母音特性)
- MFCC係数: 音色特徴の詳細分析(13次元)
- 品質スコア: ピッチ安定性・音色豊かさ・エネルギー一貫性
- 波形表示: 時間軸での音声波形
- スペクトログラム: 時間-周波数分析
- ピッチ輪郭: 基本周波数の時間変化
- スペクトル特徴: 各種スペクトル特徴量の時系列表示
- MFCC係数: メル周波数ケプストラム係数の可視化
- 特徴量サマリー: 主要指標の統合表示
- インタラクティブダッシュボード: Plotlyによる動的可視化
- HTMLレポート: 美しいデザインの詳細分析レポート
- JSON出力: 機械可読形式での全特徴量データ
- 画像出力: 高解像度の可視化グラフ(PNG形式)
# リポジトリをクローン
git clone <repository-url>
cd voice-quality-analyzer
# セットアップスクリプトを実行
./run.sh
# サンプル音声で試す
python src/main.py
# 実際の音声ファイルを分析
python src/main.py --input input/your_audio.wav --output output/# Dockerイメージをビルド
docker-compose build
# サンプル分析を実行
docker-compose run voice-analyzer python src/main.py
# 実際のファイルを分析(inputフォルダに音声ファイルを配置)
docker-compose run voice-analyzer python src/main.py --input input/your_audio.wav --output output/
# 開発モード(インタラクティブシェル)
docker-compose run voice-analyzer-devpython src/main.py [OPTIONS]
オプション:
--input, -i PATH 入力音声ファイルのパス(必須)
--output, -o PATH 出力ディレクトリのパス(デフォルト: output/)
--format, -f FORMAT 出力形式 [json|html|plots|all](デフォルト: all)
--no-plots 可視化グラフの生成をスキップ
--verbose, -v 詳細な出力を表示
--help ヘルプメッセージを表示# 基本的な使用方法
python src/main.py --input input/speech.wav --output results/
# JSON形式のみ出力
python src/main.py -i input/voice.mp3 -o output/ --format json
# 可視化なしでHTMLレポートのみ生成
python src/main.py -i input/audio.wav -o output/ --format html --no-plots
# 詳細ログ付きで全形式出力
python src/main.py -i input/sample.wav -o output/ --verbose- WAV: 非圧縮音声(推奨)
- MP3: MPEG Audio Layer III
- M4A: MPEG-4 Audio
- FLAC: Free Lossless Audio Codec
- OGG: Ogg Vorbis
- その他librosaが対応する形式
voice-quality-analyzer/
├── src/ # ソースコード
│ ├── __init__.py # パッケージ初期化
│ ├── main.py # メインスクリプト
│ ├── voice_analyzer.py # 音声分析エンジン
│ ├── visualizer.py # 可視化エンジン
│ └── report_generator.py # レポート生成エンジン
├── input/ # 入力音声ファイル
├── output/ # 分析結果出力
├── requirements.txt # Python依存関係
├── run.sh # セットアップ・実行スクリプト
├── Dockerfile # Dockerイメージ定義
├── docker-compose.yml # Docker Compose設定
└── README.md # このファイル
- 美しいデザインの包括的な分析レポート
- 主要指標のサマリーカード
- 品質スコアの可視化
- 特徴量の詳細テーブル
- 分析結果の解釈
waveform.png: 音声波形spectrogram.png: スペクトログラムpitch_contour.png: ピッチ輪郭spectral_features.png: スペクトル特徴量mfcc.png: MFCC係数feature_summary.png: 特徴量サマリーinteractive_dashboard.html: インタラクティブダッシュボード
*_features.json: 全特徴量の詳細データ*_summary.json: 主要指標とメタデータ
- Python 3.9以上
- pip(パッケージ管理)
- 仮想環境(推奨)
# 仮想環境の作成
python3 -m venv venv
# 仮想環境のアクティベート
source venv/bin/activate # Linux/Mac
# または
venv\Scripts\activate # Windows
# 依存関係のインストール
pip install --upgrade pip
pip install -r requirements.txt# 開発用コンテナを起動
docker-compose run voice-analyzer-dev
# コンテナ内でのコード編集・テスト
root@container:/app# python src/main.py --help
root@container:/app# python src/main.py --input input/sample.wav- librosa: 音声信号処理・特徴量抽出
- matplotlib: 静的グラフ生成
- plotly: インタラクティブ可視化
- seaborn: 統計的可視化
- numpy: 数値計算
- scipy: 科学計算
- pandas: データ処理・分析
- soundfile: 音声ファイル入出力
- ピッチ抽出: librosa.piptrack(調波・打楽器分離)
- スペクトル分析: 短時間フーリエ変換(STFT)
- フォルマント推定: FFTピーク検出
- MFCC: メル尺度フィルタバンク
# 録音品質の評価
python src/main.py -i recording.wav -o quality_check/# 複数話者の比較分析
python src/main.py -i speaker1.wav -o speaker1_analysis/
python src/main.py -i speaker2.wav -o speaker2_analysis/# 詳細な音響分析
python src/main.py -i research_sample.wav -o research_results/ --verbose-
フォントの警告が表示される
- 日本語フォントが見つからない場合の警告です
- 機能には影響しませんが、日本語フォントをインストールすると解決します
-
音声ファイルが読み込めない
- ファイル形式を確認してください
- ファイルパスに日本語が含まれていないか確認してください
-
メモリ不足エラー
- 長時間の音声ファイルの場合、メモリ使用量が多くなります
- ファイルを短く分割するか、より多くのメモリを割り当ててください
# コンテナの再ビルド
docker-compose build --no-cache
# ボリュームの確認
docker-compose down -v
docker-compose up- 処理速度: 1分の音声につき約10-30秒(環境依存)
- メモリ使用量: 音声長に比例(目安: 1分あたり100-200MB)
- 出力サイズ: HTMLレポート約500KB、画像ファイル合計約2-5MB
src/voice_analyzer.pyのVoiceQualityAnalyzerクラスに新しいメソッドを追加
src/visualizer.pyのVoiceVisualizerクラスで新しいプロット関数を作成
src/report_generator.pyでHTMLテンプレートやスタイルを変更
このプロジェクトはMITライセンスの下で公開されています。
- librosa: 音声分析ライブラリ
- matplotlib: 可視化ライブラリ
- plotly: インタラクティブ可視化