前回記事で「サウンドアプリ『XLD』でコマンドラインからハイレゾ音源をAAC変換する」を紹介しました。
前回記事のXLDコマンドラインによるAAC変換は音質的に優れているものの使い勝手が非常に悪いので、MacOSXで標準搭載されているAutomatorアプリを使って、XLDコマンドラインによるダウンサンプリングとAAC変換を一つの操作でハイレゾ音源を高音質にAAC変換が自動化できるAutomatorによるワークフローアプリを作ってみました。
今回の記事は、Automatorを使ったハイレゾ音源のAAC変換アプリ作成方法とアプリで変換されたAACファイルの音質評価を行った紹介です。
なお、Apple社によればAutomatorとは「macOSに付属する、Appleのアプリケーションです。ワークフローを作成することによって繰り返しの作業を自動化できます。Finder、Safari、“カレンダー”、“連絡先”、Microsoft Office、Adobe Photoshopなど、ほかのさまざまなアプリケーションと連携します。」と説明されています。
Automatorで作成した「AAC変換」ワークフローアプリの使い方を先ず説明します。
完成したワークフローアプリの名前を「XLD convert Hi_reso to ACC.app」としています。
下の動画に合わせたワークフローアプリによるハイレゾ音源のAAC変換手順です。
ポイント
- 完成したワークフローアプリ(XLD convert Hi_reso to ACC.appエイリアス)をクリックして起動します。
- 警告が表示されて、注意文を確認したらOKをクリックします。
- ファインダーが表示されて、AACに変換する元のハイレゾファイルを選択します。 ここでは、「24192_param_sin_17-20_5k_step_0_5k_-20db.WAV」を選択しました。
ダイアログが表示され、OKをクリックします。 - AAC変換が完了すると 画面右から「ハイレゾファイルからAACへ変換されました。」との通知が出現しワークフローアプリが終了します。
〜〜〜〜〜〜〜〜〜〜〜〜
ハイレゾファイルのフォルダーを見ると、ファイル名に「XLD_chg」が追加されたAACファイル「24192_param_sin_17-20_5k_step_0_5k_-20db_XLD_chg.m4a」が生成されいます。
以上の手順に従った動画をご覧ください。
このワークフローアプリは、XLDのコマンドラインを使って、2つのステップを実行します。
- 高域減衰対策のためハイレゾファイルをAACのサンプルレート(48khz or 44.1khz)にダウンサンプリング(AIFFファイル変換)する
- AIFFファイルをビットレート等を事前設定したAACに変換する
この為、事前にXLDアプリの環境設定からAIFFとAACの夫々に対してオプション設定が必要です。(下の「XLDオプション設定」参照)
例えば、AACのサンプルレートを48khzにしたければ、AIFF・オプションでサンプルレートを48khz に指定しておきます。
「AAC変換」ワークフローアプリの作成
では、実際にワークフローアプリ作成手順を示します。
シェルスクリプトプログラムには、XLD・コマンドラインによる、基本的処理(ダウンサンプリングとAAC変換)のみで、エラー対応やファイル名のスペース対応等の処理は含んでいませんのでご注意ください。 (2020/11/22:ファイル名のスペースエラーに対応しました。)
step
1Automatorアプリの起動と新規作成
先ず、Automatorアプリを起動して、ファイル > 新規作成 をクリックして、以下の様に、アプリケーション を選択します。
step
2ワークフロー(作業手順)の作成
ワークフローのパーツ(アクション)を選び、作業エリアにドラッグして、ワークフローを以下の様に作成しました。
step
3各ワークフロー項目の細部設定
シェルスクリプトを実行
シェルスクリプトの言語を /bin/bash を指定しダウンサンプリングとAAC変換を行います。 そのコードは以下の内容です。 14行と17行の「XLD・コマンドライン:」については、前回記事を参照してください。
1234567891011121314151617181920212223242526#選択したハイレゾファイルをfにフルパスで格納for f in "$@"doosascript -e 'tell app "System Events" to display dialog "ファイルが選択されました"'#fdirにディレクトリ文字列をセットfdir="${f%/*}"#ハイレゾファイルの拡張子をaiffに変更しf_aifにセット テンポラリファイルとしている。f_aif=${f%%.*}.aiff#ハイレゾファイルを48khzダウンサンプリング aiffに変換/Applications/xld-20191004/CLI/xld -o "$fdir" "$f" -f aif#48khz aiffに変換されたファイルをAACに変換/Applications/xld-20191004/CLI/xld -o "$fdir" "$f_aif" -f aac#AACにXLD>AACマークを付加mv "${f%%.*}.m4a" "${f%%.*}_XLD_chg.m4a"#48khz aiffに変換されたファイルを削除rm "$f_aif"done
step
4最後に
ワークフローの細部設定が完了したら、ファイル > 名称変更 でワークフローアプリの名前を付け、ファイル > 保存 をクリックします。 (「XLD convert Hi_reso to ACC.app」にしています。)
保存したホルダーを見ると、app の拡張子がついた実行ファイルが保存されていますので、appファイルをクリックすれば、ワークフロー通りのAAC変換を行うことができます。
自作したワークフローアプリ(ご参考)
ご参考までに自作したAutomatorによるワークフローアプリ:XLD convert Hi_reso to ACC.appをアップしておきます。 注意点をお読み頂きワークフローアプリをお試しいただけます。
アプリDLと使用上の注意ポイント
- Down Loadボタンをクリックすると、XLD convert Hi_reso to ACC.app.zipがダウンロードできます。 zipファイルを解凍してXLD convert Hi_reso to ACC.appを抽出します。
- このアプリを開こうとすると「“XLD convert Hi_reso to ACC.app”は、App Storeからダウンロードされたものでないため開けません。」と表示される場合は、お手数ですがNET検索して、Apple OSのセキュリティ設定を確認して「control」ボタンを押しながら右クリックで開いてみてください。
- 事前にXLDのGUI版とCLI版のインストール及び音質オプション設定が必要です。
- このアプリは、エラー処理等は含んでいませんのでご注意ください。
- アプリの使用によって、生じたいかなる損害も、補償いたしかねますことをご承知おきください。
AAC変換したファイルの音質をピュアー音源で評価する
1khz -20db歪率確認
歪率確認のため、正弦波 1khz -20dbで記録したWAV(24bit 192khz)ファイルを、ワークフローアプリで変換したAACファイル(48khzの場合と44.1khz)の歪率を確認してみました。 (歪率測定はWaveSpectraで、aacファイルをwavにデコードしたファイルで測定しています)
48khz AAC歪率 | 44.1khz AAC歪率 | 参考 (CD :16bit 44.1khz)歪率 |
0.00056%(THD+N) | 0.00034%(THD+N) | 0.01535%(THD+N) |
ポイント
44.1khzAACの方が歪率的に優れていました。 念の為、MediaInfoで確認すると、44.1khzAACはCBRモードで、48khzAACはVBRモードでした。 この差が歪率の差に現れたかも知れません。
しかし、参考値のCD歪率に対してワークフローアプリでAAC変換した方が断然優位です。 この理由は、XLDのAAC変換が24bitのビット深度に対応しており一方のCDでは16bitで量子化ノイズが大きくなり歪率が悪化するのが原因です。(詳しくはここをクリック)
高域減衰の確認
高域減衰確認のため、17khzから20.5khzまで0.5khzおきに、-20dbの正弦波を記録したWAV(24bit 192khz)ファイルを、ワークフローアプリで変換したAACファイル(48khzの場合と44.1khz)のスペクトル波形を確認してみました。 (スペクトル測定はWaveSpectraで、aacファイルをwavにデコードしたファイルで測定しています)
最上位周波数(20.5khz)において、48khzAACが-20.01dbに対して44.1khzAACが-20.06dbで若干減衰量が大きい結果でした。 (44.1khzAACの高域減衰が若干大きい原因は、ハイカットフィルターのナイキスト周波数(44.1khz/2=22.05khz)の影響を受けていると思われます)
ピュアー音源での音質評価マトメ
歪率では、44.1khzAACの方が優位で、高域減衰では、48khzAACが優位でした。 どちらを選択するか悩ましいところですが、その差は小さくどちらを選んでも問題ないレベルと思います。 次のリアルサウンドによるスペクトル評価でどちらにするか決めたいと思います。
♫ 「AAC変換」ワークフローアプリを使用したリアルサウンド
オリジナル・ハイレゾ音源
オリジナルハイレゾ音源は「CD音質を凌ぐ?「ハイレゾ音源のAAC変換」を行うために(その2:Windows版foober2000アプリの場合)」で使用した1962年に録音された「オイストラフが弾くJ.S.バッハ: ヴァイオリン協奏曲第1番イ短調 BWV.1041」のレコードの中のBWV1041 第1楽章を使いました。 (BWV1041_1st_movement.flac)
FLAC(24bit 192khz) Flac Down Load
ワークフローアプリでAAC変換
※ ハイレゾファイルからAACへの変換時間は約1分20秒でした。
44.1khzAACで変換
ファイル名:BWV1041_1st_movement_XLD_chg441.m4a
48.0khzAACで変換
ファイル名:BWV1041_1st_movement_XLD_chg480.m4a
ワークフローアプリでAAC変換されたリアルサウンドのスペクトル評価(総合マトメ)
スペクトル測定条件
以下のスペクトルグラフはAudacityに「BWV1041_1st_movementの」夫々の音源ファイルを取り込み、関数窓をhanning、size16384にて「先頭から54.6秒間」のスペクトルを観測しています。 スペクトルは、テキストデータとして書き出せますので、このテキストデータからNumbersでスペクトルをグラフ化しています。
尚、AAC及びCDの音源はFLAC(fs=192khz)のスペクトルの周波数軸に合わせるために、Audacityに音源を取り込み、予めトラックを192khzにアップサンプリングした後に周波数解析(スペクトル)を行っています。
スペクトル評価のマトメ
- 44.1khz AACは、CDフォーマットと略一致し、48khz AACは、CDの上限周波数を超えています。
- 下のスペクトルで示す過去記事で評価したサウンドアプリの「foober2000」及び 「Apple Degital Mastersツール」で AAC変換した差分スペクトルを見ますと、CDよりも高域上限が内側にあり、スプリアス(暴れ)も見られます。 それに引き換え今回のXLDベースのワークフローでの48kz AAC変換の差分スペクトルは、CDの上限周波数を超えており、スプリアスもなく夫々のサウンドアプリよりも音質的に優位と思われます。
総合して
- 今回作成したワークフローアプリでAC変換する場合、サンプルレートを48khzでAAC変換するのがベスト
- 今まで評価した、CD音質を凌ぐ?可能性があるアプリに順位を付けてみました。
XLDベースのワークフローアプリ > Apple Degital Masters > Foober2000
以上、OSXのAutomatorを使ったハイレゾ音源をAAC変換する方法でした。 このXLDベースのAAC変換は今の所、ハイレゾ音源を高音質でAAC変換できる最右翼ではないかと思いました。
「5つの視点」での評価ランキング
この記事のXLDコマンドラインを組込んだautomator AAC変換アプリは 第1位でした。(2023/2/14追記)
-
「5つの視点」で再評価。 ハイレゾ音源をAAC変換する24bit対応AACエンコーダ(アプリ)の評価ランキング
今迄、レコードからハイレゾ録音した音源をAACに変換する時に極力音質を劣化させず、CD音質を凌ぐにはどうしたら良いか?自分流で試してきた結果を投稿しました。 ただ、評価に統一性がないとこ ...