# 音声をカット・結合・速度変更するときに避けられる音質劣化を減らす

圧縮済みの音声を編集しても、元より高音質にはなりません。ただし、余計な劣化を避けることはできます。できるだけ良い元ファイルから始め、カットや速度変更をまとめて行い、用途に合う出力形式を選び、元ファイルを消す前に必ず聴きます。

Lutrakitの無料の[音声カット](/ja/onsei-cut/)、[音声結合](/ja/onsei-ketsugo/)、[音声速度変更](/ja/onsei-sokudo/)はブラウザ内で動き、アカウントは不要です。選択した音声ファイルは端末からアップロードされません。処理はFFmpeg系のデコード、フィルタ、エンコードをブラウザ内で行うため、品質の考え方はデスクトップ編集と同じです。MP3やOggに書き出せば新しい非可逆圧縮が入ります。WAVならその圧縮劣化は避けられますが、ファイルサイズは大きくなります。

## 基本ルール：良い元ファイルから一度で編集する

FFmpegのドキュメントは、ストリームコピーとトランスコードを区別しています。コピーはデコードや再エンコードをしないため品質劣化がなく、トランスコードは再エンコードを伴い、非可逆エンコーダでは劣化し得ます（[FFmpeg documentation](https://ffmpeg.org/ffmpeg.html)、2026-08-17参照）。Lutrakitの音声ツールはトリム、フェード、クロスフェード、結合、テンポ変更などのフィルタを使うため、「元に戻せる編集プロジェクト」ではなく「書き出し工程」として扱うのが安全です。

| 作業 | 望ましい元ファイル | 安全な出力 | 理由 |
| --- | --- | --- | --- |
| 短い抜き出し | 可能ならWAV/FLAC、なければ最高品質のコピー | 最終配布なら同形式、再編集するならWAV | MP3/Oggの再圧縮を重ねないため。 |
| 複数クリップの結合 | 音量差が小さい清潔な素材 | 中間はWAV、配布はMP3/Ogg | クロスフェードはフィルタ処理が必要。 |
| 話速変更 | 元の録音 | 最終視聴用なら同形式、再編集ならWAV | テンポ変更で新しいサンプルが作られる。 |

「カットしてダウンロード、結合してダウンロード、速度変更してまたダウンロード」という分割作業は、必要な場合だけにします。非可逆書き出しを重ねるほど、にじみや金属的な音が増えやすくなります。

## カット：境界とフェードを選ぶ

[音声カット](/ja/onsei-cut/)は一般的な音声ファイルを最大300 MBまで扱います。既定では0:00から0:30を残す設定で、フェードはなしです。中央の範囲を削除して前後を残すこともできます。

話し声では、文の直前と直後に少し余白を残します。破裂音や大きな波形の山で切るとクリック音が出ることがあります。30〜80 ms程度の短いフェードだけで境界が自然になることもあります。音楽では拍、残響、フレーズ終わりを耳で確認します。タイマー上は正確でも、響きが終わる前に切ると不自然です。

着信音プリセットは、最初の30秒を残し、2秒のフェードアウトを付けます。これは便利な初期値であって、すべてのスマートフォンやサービスの仕様を保証するものではありません。

## 結合：硬い接続、クロスフェード、音量

[音声結合](/ja/onsei-ketsugo/)は2〜32ファイルを扱い、上限は1ファイル200 MB、合計300 MBです。端末のメモリ状況によってはさらに低い実効上限になる可能性があります。出力はMP3、WAV、Oggで、現行の初期値は `merged.mp3`、クロスフェードなし、フェードなしです。フェードとクロスフェードの長さは0.1〜10秒です。

FFmpegの `concat` フィルタは入力を順番につなぎ、`acrossfade` は前の音の終わりと次の音の始まりを指定時間だけ重ねます（[FFmpeg filters](https://ffmpeg.org/ffmpeg-filters.html)、2026-08-17参照）。講義ファイルのように始まりと終わりがきれいなら硬い接続で十分です。環境音、拍手、BGMがあるならクロスフェードの方が自然なことがあります。

書き出す前に順番を確定し、紛らわしいファイル名は直します。書き出した後は各接続部を聴きます。波形が滑らかに見えても、音量差や切れた単語は耳でないと気づけません。

## ピッチを保った速度変更

[音声速度変更](/ja/onsei-sokudo/)は0.25xから4xまで対応し、FFmpegの `atempo` フィルタチェーンでピッチを保ちます。FFmpegは `atempo` をテンポ変更フィルタとして説明し、2を超える大きな係数ではサンプルスキップを避けるために複数の `atempo` を連結できるとしています（[FFmpeg atempo](https://ffmpeg.org/ffmpeg-filters.html)、2026-08-17参照）。Lutrakitはこの考え方で係数を分解します。

話し声なら、いきなり2xにするより1.25xや1.5xの方が聞き取りやすいことが多いです。音楽ではテンポ変更の影響が大きく、リズム、アタック、残響が変わります。金属的、またはぼやけた音になる場合は、倍率を弱めるか専用のDAWを使ってください。

## 作例

再配布可能なサンプル音声を使います。

- `voice-master.wav`: Lutrakitが権利を持つ30秒の音声。
- `intro.wav`: 3秒の生成音、またはオリジナル音楽。
- `outro.wav`: 3秒の生成音、またはオリジナル音楽。

想定ワークフロー:

1. `voice-master.wav` を00:04.000から00:22.000で切り出し、0.05秒のフェードインと0.08秒のフェードアウトを入れる。
2. `intro.wav`、切り出した声、`outro.wav` を1.5秒クロスフェードで結合し、WAVで出力する。
3. その結合ファイルを1.25xにしてレビュー用コピーを作る。

記録すべき期待値:

| 確認項目 | 期待値 |
| --- | --- |
| カット後の長さ | コンテナやエンコーダの丸めを除き約18秒。 |
| 接続部 | クロスフェードでクリックがなく、最初の単語が切れない。 |
| 速度変更後 | 長さは元の約1/1.25。声の高さは同じ話者として認識できる。 |
| プライバシー | ネットワークログに音声バイトのアップロードがない。 |

実ファイル、ブラウザ、OS、Lutrakitリビジョン、観測結果を記録するまで、「検証済み」とは書かないでください。

## ブラウザの制限も品質に関係する

圧縮ファイルのサイズと編集時メモリは別です。FFmpegは圧縮パケットを未圧縮フレームにデコードします。Web Audioの `AudioBuffer` も、短い音声をメモリ上の32ビット浮動小数点PCMとして表す仕様です（[Web Audio API](https://webaudio.github.io/web-audio-api/)、2026-08-17参照）。小さなMP3でも、編集時にはずっと大きなデータになります。

ブラウザがメモリ不足になる場合は、ファイル数を減らす、クリップを短くする、中間WAVを書き出す、またはデスクトップソフトに移ります。大きな結合を、タブを多く開いた状態で何度も試すのは避けます。

## 共有前チェック

- 元ファイルを残す。
- 最初の3秒、各接続部、最後の3秒を聴く。
- 想定した長さと出力の長さを比べる。
- 速度変更前後で声の高さを確認する。
- MP3/Ogg出力は最終配布用とし、再編集の素材にしない。
- 重要な作業では、WAVまたはFLACのマスターをブラウザセッション外に保存する。
