うぼ記

雑に発信

アップサンプリングを活用して良い音でニコメドを聞きたい。 #ニコメド記事投稿祭

この記事はKetoku氏主催のニコメド記事投稿祭に参加しています。

是非他の方の記事も読んでみてね。

ketoku.hatenablog.com

 

と言ったものの、今回の記事は別に直接ニコメドに関係のある内容ではない。ただ、実際に記事内で組曲『ニコニコ動画』をアップサンプリングしてCD音質相当にしているので、好きな人は是非読んでいって欲しい。

 

前置き

そもそもアップサンプリングって何だよ

 MP3等の圧縮音源は、元音源から圧縮する際に一部の情報(高周波)が欠落する。アップサンプリングは、この欠落した情報を予測復元して、擬似的に音質を向上させる技術の事。アップスケーリングとも言われる。

なるべく良い音質で聞きたいじゃない

 インターネットには幾つもの素晴らしい楽曲が日々アップロードされており、無料で聴ける物も多い。クリエイター自身が高音質の音源を販売・或いは配布していれば良いのだが、実際にはそうもいかない場合も多い。特に昔の作品になればなるほど、販売の為のプラットフォームが無かったり、通信速度や技術の問題等で、良い音質の作品が入手しにくい。

 例えば組曲『ニコニコ動画』のようなメドレー。

 残念ながら、僕の知る限りsimoyuki氏は組曲『ニコニコ動画』の高音質音源を配布しおらず、今後配布される可能性も薄い。同様に動画サイト上にしか音源が存在せず、高音域が欠落した音源で楽しまなければならないコンテンツも数多く存在する。

 高音域が欠落しているからといって大きく感動が損なわれる訳ではないが、やっぱり本来聞こえている筈の音が聞こえていないというのは個人的に少しむずむずする。

 そこで、今回はアップサンプリングを使用して、擬似的に音質を向上させようと思う。

実はアップサンプリング自体は簡単に試せる

 昨今のDAP(Digital Audio Player)や一部のスマホ等には、アップサンプリング機能が標準搭載されている。ウォークマンXperia等のSONY製品を持っている方なら音楽プレーヤーの設定にDSEE HXという項目を目にした事があるかもしれないが、それの事だ。

www.sony.jp

 これらの機能を使えば簡単に高音質化が行える訳だが、これらの処理は全てリアルタイム処理、つまり実際に音楽を再生する際にアップサンプリングを行う。

 リアルタイム処理には元ファイルの容量を節約できる利点があるが、CPU(或いはDSP)の処理リソースを使う、機能が搭載されている機器でしか高音質で聴くことが出来ないという欠点がある。

 そこで、今回は元の音声ファイルを直接加工し、別のファイルとして高音質化した物を保存する事ができる、Upconv frontend(旧Upconv)というソフトを使ってアップサンプリングを行っていこうと思う。

Upconvfeを使ってアップサンプリングしよう

 以下のページに、執筆時の最新版であるv0.8.xが配布されているのでダウンロードしてインストールしよう。

59414d41.cocolog-nifty.com

(余談だが、久々にアクセスした所結構VRChatとかやっててびっくりした。フレンドになりたい…)

 

f:id:huboar:20200414232639p:plain

 はい。とりあえずwavをD&DしてStartすれば何か動き出す。(が、後述する通りこのデフォ設定のままではアップサンプリングは出来ない)

 詳細な設定項目については説明書にて解説されているので、重要な部分だけ掻い摘んで説明しようと思う。

メイン画面での設定

Sampling rateとBit Width

 出力ファイルの音質を設定する。CD音質なら44100Hz・16bit。地味にFloatにも対応しておりありがたい。

HFA(高域補完モード)

 アップサンプリングの際に使用するアルゴリズムを選択する。以下は説明書より抜粋。

● Cutoff

高域カット。高域への補間処理はしません。

●Noise(hfa1)

正規分布に基づくランダムデータを高域へ付加します。
本モードはアナログのレコード再生時や、フィデリックスの「ハーモネーター」を使用したときのように、高域へノイズが付加されます。アナログぽい感じとなり、カットしたときよりも心地よさを感じると思います。
付加する高域の音の強さは、音声の強さに応じて調整しています。

●Overtone(hfa2)

9kHz 以上の音声データから、HFCまでのデータを利用し、倍音と思われる成分を予想して高域に付加します。付加する倍音成分は位相をずらして付加することができます。音の広がりに違いが出ると思います。

●Overtone Ex(hfa3)

8kHz 以上の音声データから HFC までのデータを利用し(HFCの指定が無い場合は16kHz),各周波数で周期的な音かどうかを判定し、予想した倍音成分の音が高域にいくにしたがって、どのような減衰をしているかを計算し、予想と一番誤差が少ない減衰パターンで高域に付加する倍音を作ります。付加する倍音成分は位相をずらして付加することができます。ただし処理時間は hfa2 より遅くなります。(以下略)

 最重要設定。デフォではこれがCutoffになっているのでアップサンプリングしてません。HFA2か3の聞きやすい方で良いと思います。

Default Parameter

 便利な設定のプリセット集。以下抜粋(抜粋ばっか使うな)。

 ● [1] Upconv 0.8.x Default Parameter 01

デフォルトのパラメーターです。
あらかじめ「ABE」、「PostABE」、「HFC=16000」がセットされています。変更はできません。

● [2] Upconv 0.8.x Parameter 02

あらかじめ「ABE」、「PostABE」、「HFC=16000」、ノイズリダクション(カットオフ=1600)がセットされています。変更はできません。

● [3] Upconv 0.8.x Parameter 03

あらかじめ「ABE」、「PostABE」、HFC Auto、HFC Auto Adjust(2kHz)、OverSampling (x2)、ノイズリダクション(カットオフ=1600)がセットされています。

● [4] Upconv 0.8.x Parameter 04

あらかじめ「ABE」、「PostABE」、HFC Auto、HFC Auto Adjust(2kHz)、OverSampling (x2)、ノイズリダクション(カットオフ=1600)がセットされています。ABE Version、HFA3 Version を 0.8.x のものにしています。

● [5] Upconv 0.8.x Parameter 05

ABE の設定の箇所にある「Clip Noise Reduction」に適した設定をしています。通常のファイルには使用しないのがおすすめです。
音量が大きすぎ、高域が耳につきささるような音源の場合にお使いください。

● [6] Upconv 0.8.x HFA Filter(7,5,7,7)

HFA3 Version を 0.8.x にしており、HFA Filter 値を 7.5,5,5 に設定しています。またHFA 2/3 OptionのPreset 値を08番にしています。

● [7] Upconv 0.8.x HFA3 Analysis Limit Adjust(-4)

HFA3 Version を 0.8.x にしており、「HFC=15000」、HFA3 Analysis Limit Adjustを-4にしており、HFA3の解析を11000で止める設定にしています。またHFA 2/3 OptionのPreset 値を09番にしています。

  とりあえず使うなら、3か4が良いと思う。横の↑やSettingで中身の設定を弄れる。以下の説明はその中の項目について。

Default Parameter内の設定

f:id:huboar:20200418094947p:plain

HFC関係(HFC Auto・Enable HFC)

 アップサンプリングを行う際に計算を行う最大の周波数を設定する。Autoにチェックを入れると自動で検出してくれる(が、自分の場合あまりうまく動かなかった。LAMEを導入してmp3で読み込むと違うかもしれない。)うまく動かない場合はEnable HFCをオンにしてCutoff Freqに入力ファイルの音質に合わせて周波数を入れよう。(想定した周波数より下がる場合はOption2のHFC Auto Adjustを変えると良いかもしれない)

Clip Noise Reduction(ABE Option)

 その名の通りクリップノイズを除去する。高域を補完する≒音量が増える→波形がクリップしてしまうという問題をある程度緩和できる。音圧の高い曲・海苔音源にはチェックを入れよう。

 

 この程度は設定しておけばある程度形になるのでは無いかと思う。

他にも便利な設定がたくさんあるので気に入ったら是非説明書をチェックして頂きたい。

じゃあやってみようか

組曲『ニコニコ動画』の音源をCD音源相当にする

f:id:huboar:20200418135517p:plain

 ↑の画像は、niconicoから抽出した組曲『ニコニコ動画』の音源(とかちつくちての部分)をfoobar2000のSpectrogramモードで表示したものである。圧縮音源なので16kHzから上がばっさりカットされている事がわかる。

 

 そして、これがUpconvfeを使ってCD音質相当までアップサンプリングした音源だ。HFA3、HFCは16kHz、Click Noise ReductionをONに設定している。

f:id:huboar:20200418135822p:plain

 スペアナ等で見ても、しっかり20kHzまで出ている事が確認出来る。実際聴いてみた所、ハイハットの圧縮音源っぽさがある程度ましになっている気がする

おわりに

 些細な違いかもしれないが、たまにニコメドを聴いててウッとなる圧縮音源臭さが少し改善されるのですごく嬉しい。

 

P.S. ニコメド作者は出来れば音源配布の際に音質の良い物を配布して頂けると僕が非常に喜びます。