音声 へ戻る
音声 主音検出 (チューナー) — FFT autocorrelation で音名 + cents ズレを表示

音声 主音検出 (チューナー) — FFT autocorrelation で音名 + cents ズレを表示

音声ファイルをドロップすると、ブラウザ内で **autocorrelation (自己相関) ベースのピッチ検出** を実行し、主音 (fundamental frequency) を **音名 (例: A4 / F#4)** と **cents 単位のズレ** に変換して表示します。**ギター / ベース / ボーカル / 笛 / ホイッスル** の楽器チューナー代わりに、録音した A 音 + 12 セント等を即座に確認できます。さらに **時間軸での主音遷移グラフ** を CSV 出力できるので、ボイスメモのピッチ追従 (intonation 練習) や、シンセサイザーで作った 1 トーンのチューニング微調整に。autocorrelation は短いトーン (50ms+) で高精度、複合音 (和音 / コーラス) は誤検出することがあります。`tone-generate` (任意の周波数のトーンを生成) の対称ツールで、本ツールは **既存音声 → 音名検出** に特化。`audio-spectrum` (周波数分布の可視化) とは異なり、主音 1 つに絞った出力。音声はサーバーに送信されません。

音声

使い方

音声ファイルをドロップ (MP3 / WAV / M4A / AAC / FLAC / OGG / Opus)。 基準ピッチ (A4 = 440 Hz が標準、古楽は 415、米国吹奏楽は 442)、解析フレーム長 (デフォルト 100ms)、検出範囲 (デフォルト 50〜2000Hz) を調整。 結果に **全体の主音 (中央値) の音名 + 周波数 + cents ズレ + MIDI ノート番号**、時間軸でのピッチ遷移グラフが表示されます。 ピッチデータは CSV エクスポート可能 (時刻 / Hz / 音名 / cents)。

詳細解説

音程検出のために送る音声には録音内容が含まれる

チューニング確認や音程解析のために使う音声は、楽器の演奏録音、ボーカルの音程確認テイク、音楽教育での生徒の演奏録音、そして音楽アナリシスのための楽曲ファイルなどです。これらは「音程を測りたいから」という目的で作られた素材ではなく、演奏の内容そのものに価値がある音声です。

音程検出はフレームごとのピッチを算出する処理ですが、この計算を行うためには音声ファイルの全体を読み込む必要があります。外部サービスに送ると、音程を測りたかっただけでも、演奏の全内容がサーバーへ届きます。音楽教育の文脈では、生徒の演奏が教育機関の管理外のサーバーに送られることは、保護者への説明が難しい状況を生みます。

楽曲・演奏データをクラウドで解析するリスク

楽曲の音程を解析する目的でオンラインツールを使う場合、送信するのは完成済みまたは制作中の楽曲ファイルです。利用規約でコンテンツ使用の許諾が広く設定されているサービスでは、楽曲の音程パターン (メロディの輪郭) がデータとして保持される可能性があります。メロディの輪郭は著作権の保護対象であり、外部サーバーへの送信は権利管理の観点から問題になり得ます。

また、音程検出の用途として「自分のボーカルの音程ずれを確認する」という個人的な用途もあります。ボーカル音声は声紋として識別できる個人情報です。音程チェックのためだけにボーカル音声を外部サービスへ送ることは、意図しない個人情報の提供になります。

autocorrelation ベースの自己相関がブラウザ内で動く仕組み

このツールは Web Audio API の `decodeAudioData` でファイルをデコードし、各フレームに Hamming 窓をかけて DC 除去の後、自己相関 (autocorrelation) のピーク検出でピッチ周期 (サンプル数) を求め、frequency = sampleRate / 周期 で Hz に変換します。全フレームの検出結果から中央値をとることで、ノイズや無音区間による誤検出の影響を抑えています。ピッチ遷移グラフは Canvas 2D コンテキストで描画します。

DevTools の Network タブを確認すると、ページロード後の音声関連リクエストはゼロです。autocorrelation の計算ロジックと Hamming 窓の実装を含めて、GitHub でソースコードを確認できます。

音程検出を練習・制作フローに安全に組み込む

楽器練習のチューニング確認には、tone-generate で生成した基準音と本ツールの検出値を比較することで、ブラウザ内だけでキャリブレーションができます。A4 = 440 Hz を生成して、自分の楽器の音をここで確認する、という使い方です。基準ピッチを 440 / 415 / 442 Hz に切り替えることで、バロック楽器や管楽器のチューニング慣習にも対応できます。

CSV エクスポートにより、時系列のピッチデータを DAW にインポートして可視化することも可能です。ボーカルの音程ずれをグラフ化したデータを制作ツールに渡す、という作業が、音声を外部に出さずに完結します。

よくある質問

tone-generate との関係は?
tone-generate は **周波数を指定してトーンを生成** するツール (出力)、本ツールは **音声ファイルから主音を検出** するツール (入力)。逆方向の対称ペア。tone-generate で 440 Hz を生成 → 本ツールで読み込み → A4 ±0 cents が出れば検出ロジックの検算になります。
audio-spectrum との違いは?
audio-spectrum は **周波数成分の分布全体** を可視化 (FFT スペクトログラム)、本ツールは **主音 1 つに絞った検出** + 音名表示。チューナー / ピッチ追従ツールとして使うなら本ツール、楽曲のミックス確認 (低域 / 中域 / 高域) なら audio-spectrum。
検出アルゴリズムは?
**autocorrelation (自己相関)** ベース。各フレームに Hamming 窓を掛けて DC 除去 → 自己相関の極大点をピーク検出 → ピッチ周期 (sample 数) → 周波数 = sampleRate / 周期。short-time pitch tracker としてシンプルかつ堅牢。雑音耐性は限定的なので、クリーンな単音入力で精度が高い。
和音やコーラスはどうなる?
autocorrelation は **単一主音前提** なので、和音 / 複数声部の音声は誤検出 (最も強い音 or 中間値) になります。和音解析が必要なら、harmonic-percussive separation を経た音楽情報処理ツールが必要 (本ツールはスコープ外)。
音名と cents の関係は?
音名は MIDI ノート番号で表され、A4 = MIDI 69 = 440 Hz (標準)。半音 (1 semitone) = 100 cents、1 オクターブ = 12 半音 = 1200 cents。`cents = 1200 * log2(f / f_ref)` で「基準音からのズレ」を求めます。本ツールは ±50 cents 以内なら同じ音名として表示し、それを超える場合は隣の音名 + cents 残差。
基準ピッチ 440 / 415 / 442 はなぜ?
440 Hz = 1939 ロンドン国際会議で採択された現代標準。415 Hz = バロック / 古楽 (オリジナル楽器・歴史的演奏スタイル)。442 Hz = 米国の一部交響楽団 / 吹奏楽 (より明るい音色を狙う)。古楽録音や東欧オーケストラを解析する場合は適切な基準ピッチに切替を。
フレーム長 50ms 〜 200ms は何で決まる?
周期分の波形を最低 2〜3 周期含む必要があり、50ms フレームは 20Hz が下限 (E0 ≈ 41Hz は OK)。100ms フレームは 10Hz 下限 (低音楽器でも OK) だが、**ピッチが速く変わるボーカルでは時間分解能が落ちる**。デフォルト 100ms はバランス値。ボーカル細かい揺らぎ追跡なら 50ms、ベース / オルガンなら 200ms 推奨。
データは外部に送信されますか?
いいえ。`decodeAudioData` 後の全処理が JavaScript で完結します。

「送らない」を確かめるには

このツールは入力データを外部に送信しません。仕組み・監査手順・運営方針は以下で詳しく説明しています。

類似のツール

テストトーン生成 (Hz)

テストトーン生成 (Hz)

任意の周波数 (20 Hz〜20 kHz) のテストトーンを Web Audio API で生成。波形は サイン波 / 矩形波 / 三角波 / ノコギリ波 から選択、A4 = 440 Hz / 1 kHz / 10 kHz 等のプリセット、音名 (A4・C5 など) と セント単位の音程ずれもリアルタイム表示。フェードイン/アウトでクリップノイズを回避、WAV (44.1 kHz / 16bit / モノラル) でダウンロード可能。楽器チューニング・スピーカーチャネル確認・聴覚テスト・テスト信号用途に。すべてブラウザ内で生成され、外部にデータは送信されません。

音声生成
音声スペクトラム解析 — 周波数成分を可視化

音声スペクトラム解析 — 周波数成分を可視化

音声ファイル (MP3 / WAV / M4A / FLAC / OGG / Opus) をドロップすると、ブラウザ内で FFT 解析を行い周波数スペクトルを可視化します。Mode 切替で、全体の平均スペクトル (周波数 vs 振幅) と、時間軸付きのスペクトログラム (時間 × 周波数 × 振幅) を切り替え可能。FFT サイズ (512 / 1024 / 2048 / 4096) と周波数軸 (Linear / Log) を選べます。マスタリング前のローエンド確認、ノイズ帯域の特定、楽器の倍音構成のチェック、講義音声の S/N 確認などに。Canvas を PNG ダウンロード、平均スペクトルは CSV エクスポート対応。音声はすべてブラウザ内で処理され、サーバーには送信されません。

音声抽出
BPM 自動検出 — 音声から BPM を推定

BPM 自動検出 — 音声から BPM を推定

音声ファイル (MP3 / WAV / M4A / FLAC / OGG) をドロップすると、Web Audio API のローパスフィルタ + ピーク検出 + ヒストグラム解析で曲の BPM を自動推定します。DJ ミックスの相手曲、サンプル素材のテンポ確認、踊りやランニングのテンポ合わせ、bpm-time-stretch で揃える前の参考値取得などに便利。半分・倍テンポの候補も併記するので、4 つ打ちで 60 BPM と出たけど実際は 120 BPM、のような誤検出も自分で判断できます。音声はブラウザ内で完結。

音声テンポ
音声ピッチ変更 — テンポを保ったまま半音単位で上下

音声ピッチ変更 — テンポを保ったまま半音単位で上下

音声ファイル (MP3 / WAV / M4A / AAC / FLAC / OGG / Opus) のピッチをテンポを保ったまま半音単位 (±12 = 1 オクターブ) で上下できます。soundtouchjs を使い、Web Audio API のサンプルに対して SoundTouch ライブラリのピッチ変換を適用。カラオケのキー調整、語学教材のキー揃え、動画ナレーションのトーン調整、ボイスチェンジ的演出に。WAV / MP3 で書き出し、複数ファイル一括処理に対応。音声はブラウザ内でだけ処理され、外部に送信されません。

音声