オーディオの結合は計算ではなくデコードです。各ファイルは同じ生数の列へデコードされ、保持された部分の端と端がつなぎ合わされ、結果が 1 つのファイルへ再エンコードされます。オーディオマージャーはブラウザ内でこのパイプライン全体を回します。0:30 のイントロ、0:45 の中段、0:15 のアウトロの 3 クリップを入れ、ドラッグハンドルで各セグメントをトリムし、上下ボタンで順序を決めると、結合出力は 1 分 30 秒の 1 ファイルになり、1 秒あたり 176400 バイトの 16 ビットステレオ WAV か、1 秒あたり 16000 バイトの 128 kbps MP3 として出力されます。容量差は 11 倍。アップロードはありません。Web Audio API がファイルを持つマシン上でデコード、リサンプル、エンコードを完了します。
結合の前:トリム、カット、並べ替え
各トラックは 2 つのドラッグハンドル付き波形をレンダリングします。左手柄が開始位置を、右手柄が終了位置を動かし、選択された領域はハイライトされ、各ハンドルの傍に M:SS 形式の時間ラベルが付随します。選択可能な最短ウィンドウは 0.05 秒で、44100 ヘルツではちょうど 2205 サンプルなので、すべてのカットにはこれ以下へ降りない硬い下限があります。上下ボタンでトラックリストを並べ替え、リストの順序がそのまま出力の順序です:最も上にあるクリップが結合ファイルで最初に再生されます。波形をクリックすると再生カーソルが設定され、トラックの再生ボタンはカーソル位置から再生が始まり、これが確定前の試聴のしかたです。すでに 1 つだけ短くしたいファイルがある場合は、オーディオトリマーが同じハンドル操作を独立した手順として行い、結果をファイルとして返します。他のファイルとの結合にいつでも使えます。
ブラウザがデコードできる形式
マージャーはブラウザのデコーダが受け入れられるものをすべて受け入れます:通常のプラットフォームでは MP3・WAV・OGG・AAC・M4A すべてが同じ Web Audio パスを経て同じ中間形態へデコードされます。デコードに失敗したファイルは致命的エラーとして扱うのではなくスキップされ、残りトラックは通常どおり結合されます。これは意図的な非対称です。ツールは使えるクリップを 1 つのファイルへ入れることを優先し、壊れたファイルの代価は 1 セグメント少ないだけなので、修復後に再インポートすれば済みます。形式がデコード窓の外にあり、またはコンテナが現在のプラットフォームで珍しい場合は、先にオーディオコンバータで WAV か MP3 へ変換してから結合へ戻るのが修正です。結合前に変換するとサンプリング率も前に統一でき、リサンプル手順が短くなり、パイプライン全体が最初から 1 つのクロックになります。
すべてのクロックに対応する 1 つのサンプリング率
つなぎ合わせには 1 つのクロックが必要です。サンプリング率が異なる 2 つのクリップは 1 秒あたりのサンプル数が異なり、そのまま端と端をつなげると選ばなかった方のレートが伸縮します。マージャーはトラック中最も高いサンプリング率を採用し、残りトラックをそこへリサンプルして解決します:48000 ヘルツの 0:30 クリップと 44100 ヘルツの 0:45 クリップを並べると、結合全体は 48000 ヘルツで走り、44100 側が上にリサンプルされます。リサンプラーはブラウザの OfflineAudioContext で、レート変換と並行してローパスフィルタを適用します。このフィルタが重要な理由は、単純な間引き——レートを半分にするとき 2 サンプルごとに 1 つを捨てる——がエイリアスを生み、高域に金属的な縁を乗せるからです。出力が MP3 のとき、エンコーダは固定のレート表しか認識しないため、高解像度のソースはきれいな半分の鎖を辿ります:96000 が 48000 へ、88200 が 44100 へ、192000 が 96000 へ、さらに 48000 へ、176400 が 88200 へ、さらに 44100 へ。
出力の分岐:WAV と MP3
2 つの出力は同じサンプル群を持ち、コスト構造だけが異なります。WAV は 44 バイトの RIFF ヘッダの後に 16 ビット PCM を書きます:44100 ヘルツステレオでは 1 秒あたり 176400 バイトなので、1 分 30 秒の結合ファイルは 15876044 バイト、約 15.1 MiB になり、この容量は正確です——長さ×レート× 2 チャンネル× 2 バイト、それにヘッダを加えたもの。MP3 は 128 kbps でエンコードされ、1 秒あたり 16000 バイトに相当し、同じ 1 分 30 秒は 1440000 バイト、約 1.4 MiB に収まります。比率は 11 対 1 で、長さに関係なく 11 対 1 が維持されます。両形式とも長さに比例して線形に増えるからです。トレードオフは無圧縮対可逆圧縮ではなく、無損失対有損失です:WAV は全サンプルを保持し、MP3 は心理声学モデルが聞き取れると判断する部分だけ保持します。モノソースは静音で埋めるのではなく両チャンネルへ複製されるため、ステレオの中心は中立のままです。アーカイブのマスターやさらなる編集パスには WAV を、送信、動画への埋め込み、ホストへのアップロードには MP3 を選びます。ツールが表示しない長さに係る容量の推定が必要なとき、ファイルサイズコンバータが同じ 1 秒あたりの掛け算を行います。
録音から結合へ
結合は録音ワークフローの後半です。ボイスレコーダは同じブラウザ内 Web Audio パス上で取り、録れたセグメントは保存してからマージャーへ入れ、既存ファイルと並べ、早撮りを切り落とし、最終版へ結合できます。サイトから離れず、録音サービスへの中間アップロードもなし。これはポッドキャストやナレーションの編集者が手作業で行うことそのものです:別々に録音し、それから組む。組立をクライアント側で行うと、生録音は誰にも渡す必要がなくなります。録音がクライアントセッション、リハーサル、または所有者がウェブフォームに貼りたくない内容であるとき、この点が特に効きます。
結合パターンが出場所
結合は一般的なパターンです:共通形態へデコードし、並べ替え、つなぎ合わせ、再エンコード——ファイル形式は入出力の両端のパッケージングにすぎません。同じ形状はブラウザ内の文書や画像にも貫通します。PDF マージャーは複数の PDF のページを選択した順序で 1 つへつなぎ、画像から PDFは画像の束を 1 つの文書へ組み立て、画像クロッピングガイドは隣接する下準備を扱います:画像は本当に重要な領域へ切り落とされてからパッケージングされる。それらが共有する性質は、共通の中間形態が仕事を全部引き受け、形式が両端に残り、パイプライン全体がローカルで走り、音・ページ・ピクセルが这台のマシンを離れないことで、まさに結合ツールが備えるべき性質です。