ひよこインフラてっく!

ひよこインフラエンジニア「ひよこ大佐」による技術ブログ的なもの。インフラ技術や仮想化、Pythonなど。

FiiO K5 Proのレビュー & PulseAudioでハイレゾ出力を有効にする

どうも、ひよこ大佐です。

Fedora 33をインストールしているメインPCのHADES NUC(NUC8i7HVK)のオンボードのオーディオが、Fedoraでは上手く動作しないケースがありました。デバイスは認識されておりOS上では音声が出力されているように見えるのですが、実際には一切音が出ないという状況がたまに発生し、原因不明のままフラストレーションが溜まっていました。

いろいろと試したのですがすぐには解決不能でしたので、根本的な対策として新たにFiiOの「K5 Pro」というUSB DACを購入しました。

f:id:hiyokotaisa:20210331084907j:plain
K5 Proの外箱
f:id:hiyokotaisa:20210331084937j:plain
K5 Pro本体

このUSB DACはUSB Audio Class 2.0に準拠しているため、プロプライエタリなドライバを利用せずとも、接続すればすぐに音声を出力することができます。接続しボリュームノブを回すと、青色に点灯し正常に音声が出力されました。

f:id:hiyokotaisa:20210331085450j:plain
K5 ProをPCに接続すると青色に点灯する

FiiO K5 Proのレビュー

私はスピーカーにSonyのSRS-D5、ヘッドホンにB&W P7を使用しています。ヘッドホンを接続してみると、PCに直接接続していたときと比較して明らかに音質が改善されました。余計な味付けはせず、純粋に解像度と音の分離が向上している印象です。今まで意識していなかった薄い膜が取り払われ、より音楽に没入できるようになりました。

どちらかというと寒色系の出音ですので、元々の出音がモニターチックなヘッドホンだと味気無く感じるケースもあるかもしれません。個人的にはB&W P7のキャラクターとはかなりマッチしていると思います。P7はインピーダンスは22Ωで、300Ωのゼンハイザー HD800のように鳴らしにくいヘッドホンではないので、音量については全く問題ありませんでした。ゲインスイッチも最低にしてボリュームノブも半分より右側に回すことはまずないです。その前に鼓膜が破れるかヘッドホンが壊れます。

また、このセットでApex Legendsをプレイしてみましたが、敵の足音の位置把握が驚くほど格段にやりやすくなりました。もともとPC直挿しでもそこまで聞き取りにくいと感じてはいなかったのですが、明確に向上しています。

私は昔からFPSゲームにはバーチャル7.1chに対応しているゲーミングヘッドセットよりも定位がしっかりしているモニター用ヘッドホン派で、真剣にFPSをプレイしていた時はSHUREのモニターヘッドホンを愛用していました。ゼンハイザーのGAME ZEROを使っている時期もありましたが、やはり定位や音の分離に優れているヘッドホンとDACを使用するほうが確実に聞き取りやすいです。

B&Hというアメリカの通販サイトで購入したので、日本の実売価格より5000円ほど安く入手することができました。非常にコストパフォーマンスに優れたDACと言えると思います。

ハイレゾ出力を有効化する

さて、本題の「ハイレゾ」について。実はこのDACはステッカーが貼ってあるとおり、768kHz(!?)/32bitまでのハイレゾ出力に対応しています。

主な特長

  • 旭化成エレクトロニクスDAC「AK4493EQ」搭載。低ノイズ・低歪と高出力を両立

  • USBコントローラーにXMOS製「XUF208」を採用。768kHz/32bit PCMならびにDSD512(22MHz DSD)に対応

  • 先進のオーディオアーキテクチャにより入念に設計された4ブロック構成のアナログアンプ部

  • 微細な音量調整を可能にするADCボリュームコントロール機能

  • 安全・確実・堅牢を実現するDCフィルター採用の外部電源方式

  • ゲイン調整機能、同軸デジタル/光デジタル入力端子、RCAライン出力端子搭載

個人的にはSpotifyの最高音質設定の音源で満足してしまう程度にはクソ耳なのでハイレゾの必要性は全く感じていないのですが、「出力できるのであれば設定してやろう」という軽い気持ちで変更してみました。

1. /etc/pulse/daemon.conf を編集する

ハイレゾ出力を有効化するには、PulseAudioの設定を変更する必要があります。上記ファイルを開いて、以下のデフォルトサンプルレートとフォーマットが定義されている箇所を見つけます。

;; default-sample-format = s16le
;; default-sample-rate = 44100

上記を見ると、デフォルトでは44.1KHz/16bitで出力されているようです。K5 Proは再生する音源のサンプルレートによって色が変わるのですが、48KHz以下は青色で点灯します。なので最初に接続すると青色で点灯していたわけです。

この箇所のコメントを外して設定を有効化し、以下のように書き換えます。

default-sample-format = s32le
default-sample-rate = 192000

とりあえず192KHz/32bitを指定してみました。ほとんどのハイレゾ音源ではこれ以上のサンプルレートで収録されていないと思うので、指定するだけ無駄だと思います。

2. PulseAudioを再起動する

変更したら、以下のコマンドでPulseAudioを再起動します。

$ pulseaudio -k; pactl list short sinks

再起動すると、以下のように出力されるので、192KHz/32bitでの出力が有効化されていることが確認できます。(最初の行はマイクのモニター出力です)

$ pulseaudio -k; pactl list short sinks
0       alsa_output.usb-Razer_Inc_Razer_Seiren_X_UC1846L01202109-00.iec958-stereo       module-alsa-card.c      s16le 2ch 48000Hz       IDLE
1       alsa_output.usb-GuangZhou_FiiO_Electronics_Co._Ltd_FiiO_K5_Pro-00.analog-stereo module-alsa-card.c      s32le 2ch 192000Hz      IDLE

また、DACのLEDも黄色に点灯し、ハイレゾで入力されていることが確認できます。

f:id:hiyokotaisa:20210331093249j:plain
K5 ProのLEDが黄色に点灯する

ハイレゾ音源を試聴してみる

せっかくハイレゾが再生できる環境なので、moraからヨルシカの新アルバム「創作」のハイレゾ音源を購入し、何曲か聴いてみました。

f:id:hiyokotaisa:20210331093608p:plain
96KHzのFLAC音源

……全く違いがわかりません。

当たり前なんですが、B&W P7の再生周波数帯域は「10Hz~20kHz」なので、ハイレゾ音源を再生したところでヘッドホンが出力できませんので、全く意味がありませんでした。

一応Spotifyの音源と比較すると「ちょっとボーカルのsuisさんの声や楽器の音が艶っぽい気がする」んですが、これが320kbpsのSpotify音源とロスレスFLACの違いなのか、ハイレゾによるものなのかは一切わかりませんでした。というかハイレゾの差を検証するにはmoraで非ハイレゾFLACコーデックの音源を購入して比較しないといけないですね。ハイレゾ出力に対応したヘッドホンかスピーカーがあれば検証できるのですが、あいにく手元には一切ないので検証不能という結果になってしまいました……。しかし、ハイレゾなんぞ対応してなくてもいい音であることは間違いないので、個人的には「ハイレゾ、いらないんじゃない?」と思っています。

ハイレゾ対応のヘッドホンを入手したら、再度検証してみようと思います(購入するための口実じゃないですよ!)

追記

PulseAudioの設定を深堀りすると、高音質化するために効く(と思われる)パラメータがいくつかあります。 たとえば、 default-sample-format は、float32le というより高精度なサンプルフォーマットを指定することも可能なようです。

参考: PulseAudio - LinuxReviews

しかし、K5 Proは上記の指定は効かないようで、s32leにしか対応していないようです、

$ pacmd list-sinks | grep sample
        sample spec: s16le 2ch 48000Hz
        sample spec: s32le 2ch 192000Hz

他にはいくつかのブログ記事で見かけた avoid-resamplingresample-method というパラメータもあります。avoid-resampling を有効化すると、音を再サンプリングしないよう設定することができるので、元の音源をそのまま出力することができます。

しかし、このオプションは「historically been buggy and problematic」とされていて、有効化することによる弊害もあるようなので、私はデフォルト設定のままとしています。

resample-method については、デフォルトよりCPU負荷は上がりますがより高音質な「soxr-vhq」を指定しています。(ちなみに設定による音質の差は聞きわけられませんでした)

参考: https://www.labohyt.net/blog/server/post-4648/