前回記事で「Automatorを使ってハイレゾ音源をAAC変換する方法」をご紹介しました。
今回も、同じ様にオーディオ・フォーマット変換アプリのXLD(X Lossless Decoder)のコマンドラインをベースにしてAutomatorを使ってMP3に変換する方法とピュアー音源によるスタティックな音質評価・結果を合わせてご紹介します。
なお、XLDのMP3エンコーダは、LAME Version 3.100です。 LAMEエンコーダについては、ここをクリックして、Wikipediaをご参照ください。
XLDのコマンドラインで「MP3」変換できるかを確認してみます。
OSXのターミナルアプリを起動して、XLDアプリのコマンドライン・コード(下記)を実行した時ハイレゾ音源(.wav or .flac)が「MP3」に変換することができるか?を確認してみました。
☓☓☓$ /〜/xld␣ -o␣ /〜/XLD_Folder␣ /〜/test_XLD.WAV␣-f ␣mp3
注記: ␣ マークはスペースを示します。
コマンドラインの意味
- ☓☓☓$ /〜/xld␣:フルパスでXLDアプリを起動
- -o␣/〜/XLD_Folder :-o オプションで、フルパスで指定されたフォルダーにファイルを出力
- ␣/〜/test_XLD.WAV␣-f ␣mp3 :変換する対象ファイルをフルパスで指定(この場合Wavファイル)し、-f オプションでMP3(出力ファイルのフォーマット)を指定することで、対象ファイルをMP3に変換します。
XLDのMP3オプション設定
コマンドライン命令を実行する前に、XLDの環境設定からMP3のオプションを設定しておきます。
ターミナルでコマンドを実行
上記のコマンドライン命令をターミナルで実行しますと、ターミナル画面に表示されるプログレスバーが100%になると変換が完了し 指定した XLD_Folder フォルダーに、先程のMP3オプション設定(ex.CBR等)で指定した通りに test_XLD.mp3 が出力され問題なく「MP3変換」が出来ました。 よって、Aoutometor ワークフローのシェルスクリプトにこのXLDコマンドライン(MP3変換)を使用できる筈です。
☓☓☓$ /~/xld -o /~/XLD_Folder /~/test_XLD.WAV -f mp3
Encoder option: CBR 320kbps
|====================| 100% (Track 1/1)
done.
MP3変換ワークフローを作成する前のF特・事前確認
サンプリング周波数が高いハイレゾ録音をAAC変換する場合、高域減衰が生じます。 このため、前回記事の「Automatorを使ってハイレゾ音源をAAC変換する方法」では、ハイレゾ音源を48khz(又は44.1khz)にダウンサンプリングした後、「AAC変換」を行うワークフローにしています。
同じ様にMP3変換する際も同様にダウンサンプリングを行うべきかF特(周波数特性)の事前・調査を行いました。
「MP3変換」後のF特 結果
ハイレゾ(192khz)音源を直接MP3(48khz)に変換した場合とハイレゾ(48khz)音源をMP3(48khz)に変換した場合のF特の結果は以下の通りでした。
ポイント
以上のグラフの結果から、ハイレゾ音源を「MP3変換」する前にダウンサンプリング(48khz又は44.1khz)する方がベターであることが判りました。
なお、MP3変換は、20khz付近からレベルが急減しており、この点は高域減衰が殆どないAAC変換の方がF特的に優れていることが判ります。
「MP3」変換 Automatorワークフローアプリの作成
「MP3」変換 Automatorワークフローアプリ作成手順は、前回記事の「Automatorを使ってハイレゾ音源をAAC変換する方法」と略同じですので、ここでは「AAC変換」で作成したAutomatorワークフローファイルを複製し、「MP3」変換用に変更した部分の説明に留めます。
step
1「AAC変換」Automatorワークフローファイルの複製
- Automatorアプリから、以前作成した「XLD convert Hi_reso to ACC.app」を開きます。
- ファイル > 複製 をクリックしますと新しいWindowが開き、「XLD convert Hi_reso to ACCのコピー.app」という名前で複製されます。
- ファイル > 名称変更 をクリックして赤字部分の様にMP3に変更し保存します。 → 例えば名前を「XLD convert Hi_reso to MP3.app」
以上で、ファイルの複製が完成しました。
step
2「MP3変換」ワークフロー作成
引き続いて、複製されたAutomatorワークフローで「MP3変換」用ワークフローに以下の様に変更して行きます。
- 各ワークフロー項目の細部設定の中で「AAC」と表記されている部分を「MP3」に変更します。
- シェルスクリプトのXLDコマンドラインを以下の様に「MP3変換」用に変更します。
# XLD・コマンドライン:aiffに変換されたファイルをAACに変換
/Applications/xld-20191004/CLI/xld -o "$fdir" "$f_aif" -f aac
#AACにXLD>AACマークを付加
mv "${f%%.*}.m4a" "${f%%.*}_XLD_chg.m4a"
# XLD・コマンドライン:aiffに変換されたファイルをMP3に変換
/Applications/xld-20191004/CLI/xld -o "$fdir" "$f_aif" -f mp3
#AACにXLD>MP3マークを付加
mv "${f%%.*}.mp3" "${f%%.*}_XLD_chg_MP3.mp3"
(2020/11/22:スペースを含むファイル名エラーの対策で、$☓☓ の前後にダブルコーテーション " で囲みました。)
以上の変更が完了したら、ファイル > 保存 しますとXLD convert Hi_reso to MP3.app という名前の「MP3」変換 Automatorワークフローアプリが完成します。
ポイント
完成した 「XLD convert Hi_reso to MP3.app」をクリックして起動し、例えば、変換対象ファイルのtest_XLD.WAV(.FlacでもOK)を選択しますと、ワークフローに従った処理が実行されて、変換対象ファイルと同じフォルダーに、test_XLD_XLD_chg_MP3.mp3 という名前でMP3に変換されたファイルが保存されます。
「MP3変換」によるピュアー音源によるスタティックな音質評価・結果
以上で作成した、「XLD convert Hi_reso to MP3.app」でピュアー音源を使ったスタティックな音質評価を行いました。
1khz -20db歪率確認
歪率確認のため、正弦波 1khz -20dbで記録したWAV(24bit 192khz)ファイルを、ワークフローアプリで変換したMP3ファイル(48khzの場合と44.1khz)の歪率を確認してみました。 (歪率測定はWaveSpectraで、mp3ファイルをwavにデコードしたファイルで測定しています)
48khz MP3歪率 | 44.1khz MP3歪率 | 参考 (CD :16bit 44.1khz)歪率 |
0.00209%(THD+N) | 0.00217%(THD+N) | 0.01535%(THD+N) |
参考 48khz AAC歪率 0.00056%(THD+N) |
参考 44.1khz AAC歪率 0.00034%(THD+N) |
ポイント
参考で示しました様に、MP3よりAACの方が歪率的に優れていました。 一方、CDとの比較ではMP3の方が優位です。 この理由は、MP3変換が24bitのビット深度に対応しており一方のCDでは16bitで量子化ノイズが大きくなり歪率が悪化するのが原因です。(詳しくはここをクリック)
高域減衰の確認
前記のF特グラフの通りの結果で、20khz付近より高域レベルが減衰しています。 これは、CDフォーマットの22.05khz(=44.1khz÷2)より悪化していました。 一方、AACの場合は、前回記事の「Automatorを使ってハイレゾ音源をAAC変換する方法」の結果から、そのF特は少なくとも20.5khzまでフラットでした。
「MP3」変換 Automatorワークフローアプリの音質評価(総合マトメ)
ピュアー音源によるスタティックな音質評価に於いて、Aoutometor ワークフローアプリ(XLDコマンドラインの場合)で「MP3変換」されたファイルは、歪率面とF特面からAACより劣っている結果となりました。 更に、CD音質と比較して歪率の面では優位でしたが、高域のF特が20khz付近から減少しているので、残念ながらCD音質を凌ぐとは言えない結果でした。
以上から、いささか早計に過ぎるかも知れませんが、ハイレゾ録音を非可逆圧縮音源に変換するならMP3でなく「AACフォーマット」を選択すべき様に思われます。