ハイレゾFLACファイルは、Hi-Fiオーディオ体験の頂点の1つです。しかし、CDをFLACファイルにリッピングした場合、それらが作られた機器以外で再生するのは難しいことが多いことに気づくかもしれません。これは、ハイレゾオーディオトラックを所有しているにもかかわらず、それらを適切に再生するためのツールを持たないユーザーにとって問題となり得ます。

これを解決する一つの方法は、soxを使ってハイレゾFLACファイルを再サンプリングすることです。このチュートリアルでは、soxの基本的な使い方と、LinuxでFLACファイルをリサンプリングする方法について説明します。

**MP3、AAC、FLAC、その他多くのオーディオフォーマットの違いを理解するために、このガイドをご覧ください。

Soxとは何か、そしてリサンプリングはどのように行われるのか?

sox は、その中核は、コマンドラインのオーディオ処理プログラムです。Audacity とは異なり、ターミナルから直接オーディオファイルを操作することができます。このため、sox は、簡単な編集をしたり、複雑なオーディオタスクを自動化したりしたい人に便利です。

一方、リサンプリングは、複雑なアルゴリズムを使って、高忠実度の信号を低忠実度の信号に変換するプロセスである。この方法は、コンピュータに保存するデータ量を減らしながら、オーディオトラックの品質を保持します。

また、リサンプリングは、ハイレゾFLACファイルを低価格帯のデバイスで再生することを可能にします。例えば、Rockbox iPod Videoでは、24ビットのオーディオファイルを再生する際に、遅延や吃音が発生します。

代替案:sox以外にも、flac2allを使ってFLACファイルを他の最新のオーディオフォーマットにトランスコードすることができます。

sox を使って高音質な FLAC ファイルをリサンプリングする

注意:以下の手順はUbuntuの場合ですが、使用するLinuxディストリビューションに関わらず、使い方は同じです。

FLACファイルをリサンプリングするための最初のステップは、soxユーティリティとその依存関係の両方をインストールすることです。DebianとUbuntuで以下のコマンドを実行してください。

sudo apt install sox flac ffmpeg

正しくインストールされているか確認します。sox –version`.

内蔵の file プログラムを使って FLAC ファイルのビット深度とサンプルレート を調べ、これらの情報をターミナルに表示させます。

ファイル sample.flac

私の場合、FLACファイルのビット深度は24ビットで、サンプルレートは96kHzです。

soxの正しいリサンプルレートを探す

FLACファイルに適したリサンプリングレートを探します。リサンプリングにおける一般的な経験則は、目標とするリサンプリングレートは、オリジナルのサンプルレートに対して2または4で割り切れるものであるべきということです。

192 kHzのFLACファイルを96または48 kHzに再サンプリングするのは、再サンプリングアルゴリズムが元の信号をできるだけ歪まずに変換できるようにするためです。

ハイレゾFLACファイルにおけるリサンプリングの最適化

正しいリサンプリングレートがわかったら、soxを実行してFLACファイルをリサンプリングすることができます。私の場合、96kHzのファイルをリサンプリングしているので、以下のコマンドを実行しています。

sox -S sample.flac -b 16 resample.flac rate -v -L 48000 dither
  • b` フラグは、sox に出力ファイルのビット深度を設定するように指示します。例えば、16を指定すると、新しいビット深度が16ビットに設定されます。
  • 一方、rateオプションは、出力ファイルのサンプルレートを設定します。
  • v` フラグは、“Very High Quality” リサンプリングアルゴリズムを使用するように強制します。
  • L` フラグは、リサンプリング時に “Linear Phase” 応答を使用するように強制します。これは、FLACファイル中の “シグナルエコー “を中和しようとするフィルタです。
  • 最後に、dither オプションは、トラック全体に少量のノイズを発生させます。これは、リサンプリング処理の不完全な部分を隠すためのマスクとして機能します。

リサンプリング処理の自動化

ファイル単位でsoxを使用することも可能ですが、シェルを使って全処理を自動化することも可能です。(シェルスクリプトの初心者向けガイドを参照してください。) これは、高解像度FLACトラックのアルバム全体をリサンプリングする場合に便利です。

リサンプリングプロセスを自動化する最も簡単な方法の1つは、Bashのforループを使うことです。例えば、次のようなコードを実行すると、FLACファイルのフォルダ全体をリサンプリングすることができます。

mkdir -p ./flac-dir/resample && cd ./flac-dir
for flac in \*.flac; do sox -S "${flac}" -b 16 resample/"${flac}" rate -v -L 48000 dither; done

最初のコマンドは、新しいFLACファイル用の出力フォルダを作成し、現在の作業ディレクトリを変更します。2番目のコマンドは、現在のフォルダー内のすべてのファイルをループして、soxを使用してリサンプリングします。

よくある質問

MP3ファイルをsoxでリサンプルすることは可能ですか?

sox の rate コマンドはロッシーなフォーマットでは動作しないので、MP3 ファイルのリサンプリングには使えません。

“no handler for detected file type” というエラーが発生します。soxが壊れているのでしょうか?

いいえ、これはsoxが高解像度FLACファイルを読み込んでデコードできないときに起こります。この問題の最も一般的な原因は、システムライブラリの欠落とコンパイラフラグの欠落です。

システムライブラリの欠落を修正するには、以下のコマンドを実行してください。sudo apt install libsox-fmt-all`. コンパイラーフラグの欠落を修正するには、現在の sox パッケージをアンインストールして、ソースからコンパイルする必要があります。

Soxは私のHi-Res FLACファイルがクリッピングしていると報告しています。リサンプリングに失敗したのでしょうか?

リサンプリング処理では、FLACファイルの高域および聞き取れない周波数のデータのほとんどが省略されるため、高解像度FLACファイルがリサンプリング中にクリップするのは正常な現象です。

しかし、soxは、リサンプリング時にクリップを補正することができます。これを行うには、soxコマンドに-Gフラグを追加してください。sox -S sample.flac -G -b 16 resample.flac rate -v -L 48000 dither`.

画像引用:Unsplash. すべての改変とスクリーンショットはRamces Redによるものです。

Akira
Akiraは情熱的なゲーマーであり、製品レビュアーです。ゲームをしていないときは、最新のゲーミングアクセサリーを試したり、製品のレビューをしていることが多い。彼の分かりやすいスタイルは、ゲーマーが自分のニーズに最も適した製品を簡単に判断できるようにするものです。また、技術的な問題にも精通しており、その解決方法も知っている。