1ローカルではきれいなのに、オンラインで劣化する現象
編集ソフトでは温かく、近く、安定して聴こえた聴診器の心音が、アップロード後にざらついたり、輪郭にノイズやプリエコーが加わったり、全体が薄くなったりすることがあります。わずかなノイズでも心拍の輪郭に重なると、ASMR の没入感を損ないます。
実際に調べると、書き出しビットレートを上げるだけでは解決しません。WAV、動画内の PCM、MP3、高ビットレート AAC のいずれをアップロードしても、プラットフォームは独自の再生用音声を生成します。Patreon の実際の再生経路では、視聴者に届く音声が HLS 内の AAC-LC、48 kHz ステレオ、約 130 kbps でした。重要なのはアップロードファイルそのものではなく、プレイヤーが最終的に配信する音声です。
そのため、Premiere、Audition、ローカルプレイヤーでは問題がなくても、同じ内容を YouTube、Patreon、その他のオンラインプレイヤーへ載せると、ローカルにはなかった小さな欠点が現れることがあります。
2AAC のプリエコーとは何か、なぜ笛のように聴こえるのか
ここでいう「AAC ノイズ」は一つの決まった音色ではなく、非可逆圧縮で生じる複数のアーティファクトをまとめた呼び方です。金属的な音、揺れ、砂のようなざらつき、にじみ、鳥の声のような音、瞬間的な音の周囲に現れる薄い影などがあります。心音で特に重要なのがプリエコーです。元の WAV にはない短いノイズの影が、急な心拍の直前や立ち上がりからアタックにかけて現れます。
AAC は変換符号化方式です。簡単に言えば、音声を重なり合う時間窓へ分け、周波数情報へ変換し、聴覚マスキングに応じて少ないビットで表せる部分を判断し、量子化してから再生時に波形を再構成します。瞬間的な音を検出すると短い窓や時間軸ノイズ整形も使いますが、低ビットレート配信で難しいアタックが必ず透明になるわけではありません。
強い心拍のアタックと、その直前の非常に静かな部分が同じ符号化範囲に入ると、量子化誤差の一部が時間窓全体へ広がります。アタック後の誤差は大きな心拍に隠れやすい一方、アタック前の誤差はほぼ無音の中に露出します。そのため、小さな笛、砂のような音、うなり、心音本体より少し高い薄い影として聴こえます。
プリエコーは部屋の反響でもクリッピングでもありません。反響は音が出た後に戻る反射音、クリッピングは波形が上限を超えて平らになる現象です。プリエコーは、非可逆変換と再構成の過程で符号化誤差が瞬間的な音より前へ広がる現象です。
3オンライン再生のトランスコードで何が起きるのか
大規模なプラットフォームは、通常アップロードされた元ファイルをそのまま再生しません。まずデコードし、再生仕様に合わせてリサンプリング、リミックス、再エンコードを行います。エンコーダーは、人が気づきやすいと判断した部分へ優先的にビットを割り当てます。
一般的な動画、声、音楽では問題になりにくくても、心音 ASMR では危険です。心音は、静かな区間、強い心拍の輪郭、ボディ、余韻という疎な構造を持ちます。急なエネルギー変化の周囲では、変換符号化の誤差が心拍の前後へ広がり、プリエコー、輪郭のうなり、心拍と同期する高めの薄い影として現れます。
YouTube は動画に MP4、音声に AAC-LC、Opus、Eclipsa Audio、stereo、48 kHz を推奨しています。ただし、これはアップロード形式の推奨であり、すべての視聴者へ同じ音声パケットが届く保証ではありません。YouTube Music でも Normal、High などの再生品質ごとに AAC/Opus のビットレート上限があり、再生側が元ファイルのダウンロードではなく適応型配信であることが分かります。
- アップロード用コンテナは、プラットフォームのエンコーダーへ渡す入力にすぎません。
- 視聴者が聴く音声のビットレートは、書き出しファイルより低い場合があります。
- ローカル AAC で問題の一部は再現できますが、最終判断は実際のプラットフォームプレイヤーで行います。
- ピークの余裕だけでは解決しません。問題が出る心拍の多くはクリッピングしていません。
- 44.1 kHz から 48 kHz への変更は良い習慣ですが、コーデックに弱い心拍形状そのものは直せません。
4Heartbeat ASMR で音質劣化が目立ちやすい理由
心音はポッドキャストの声とは違います。声には連続した母音や子音があり、自然なマスキングも多くあります。音楽にもドラム、環境音、リバーブ、低域、倍音などがあり、小さなコーデック誤差を隠します。
処理後の心音はその逆です。長いほぼ無音の区間、純粋な低域の心拍、明確な立ち上がりからアタックまでの変化があります。ノイズ除去で間を空白にしすぎ、心音を孤立させると、エンコーダーが使える時間的な文脈がほとんどなくなり、次の心拍が真空から突然現れるようになります。
これは汚れたノイズを残すという意味ではありません。必要なのは、心拍の自然な時間的文脈と、心音に同期する上層の質感です。ほぼ空白の背景から、硬く孤立した低域イベントを再構成させないことが重要です。
- 非常に静かな心拍間隔では、小さなプリエコーが聴こえやすくなります。
- 硬すぎる抽出マスクの境界は、心拍をオンライン圧縮に弱くします。
- 狭い低域本体だけで、関連する上層の質感が不足すると、トランスコード後に人工的に聴こえやすくなります。
- 立ち上がりが急すぎると、リスナーが最も注目する位置に符号化誤差が現れます。
5一見正しそうでも解決しなかった方法
最初は、高ビットレート、別のサンプルレート、WAV/PCM、AAC 書き出し、広いピーク余裕、追加のローパス、単純な平滑化など、直感的な方法を試しました。しかし、どれも根本問題を安定して解決できませんでした。
重要なのは、単に「高域が多すぎる」問題ではないということです。強いローパスで悪化する場合さえあります。より有効なのは、心音抽出を脆くしすぎず、心音と同期する広い周波数・時間範囲を残し、境界を柔らかくし、エキスパンダーやノイズゲートで間を完全な真空にしないことです。アップロード用音源を通常のローカル再生向け音源と同じ扱いにもしません。
YouTube などはアップロード内容を再エンコードします。無損失または高ビットレートの元音源は中間損失を減らせても、最後のオンライン再エンコードをなくせません。二重圧縮を避けることは必要ですが、それだけでは十分ではありません。
6実際のテストで効果の高かった方法
有効な方向は最後に EQ を足すことではなく、もっと早い段階、つまり心音を元録音からどう分離するかにあります。硬い抽出マスクはローカルでは非常にクリーンでも、心拍を狭く孤立させ、オンライン再エンコードに弱くする場合があります。
より良い結果は、柔らかな抽出マスクと、心音に同期する幅広い周波数・時間範囲から得られました。低域の心音本体、その上の制御された接続層、さらに心音と一緒に動く本物の高域情報を残します。高域は明るくするためではなく、再エンコード時に心音を裸の低域成分にしないために必要です。
ランダムなノイズの追加、強い平滑化、エキサイターによる人工的な明るさも試しました。問題を隠す代わりに別の問題を作ることがあります。良い版は、本物の心音が持つ時間と周波数の形に結び付いていなければなりません。
7実用的な解決策:用途別に2種類の音源を用意する
実際の納品では 2 種類の音源を用意します。ローカル再生向け版は細部をより完全に残し、編集、保存、音声ファイルとしての直接販売に適しています。オンライン再生と同じ再エンコード経路を通らないため、より近く、力強い音にできます。
オンライン再生向け版の目的は異なります。プラットフォームで再エンコードされた後も本物の心音に聴こえることが重要です。そのため、心音に関係する広帯域情報を十分に残し、抽出マスクの境界を硬くしすぎず、破壊的なエキスパンダーやゲートを避け、脆い心拍の輪郭がエンコーダーを支配しないようにラウドネスを制御します。
ローカル再生向け版の方が、その場では心地よく聴こえる場合があります。それでもプラットフォームへはオンライン再生向け版を使います。この版はローカル A/B で明るく刺激的に聴かせるためではなく、視聴者が実際に使うプレイヤーの再エンコードに耐えるためのものです。
8クリエイターが確認する方法
編集ソフトの中だけで心音マスターを合格にしないでください。短いテストを書き出し、非公開または限定公開でアップロードし、実際のプラットフォームプレイヤーと普段使うヘッドホンで確認します。
各心拍の立ち上がりからアタックまでと、その直前の静かな部分を重点的に聴きます。オンライン再生版にローカル音源にはない小さなうなり、笛のような輪郭、ざらつき、プリエコーが加わるなら、納品経路の問題です。解決策は必ずしもノイズ除去や EQ を増やすことではなく、そのトランスコード経路に合わせた音源を作ることです。
