PR
ガジェットラズパイ

SpotifyやApple Musicをネットワーク経由で再生!ラズパイでAirPlay対応スピーカーを作成する方法

Apple Musicをお試しで3か月間使っているのですが、通勤やランニングだけではなくリビングでスピーカーを使って音楽を楽しみたくなりました。なので、ラズパイでAirPlayを受信してアクティブスピーカー経由で再生する環境を構築したので共有したいと思います。

iPhoneやiPadで再生しているSpotifyやApple Musicをワイヤレスでスピーカーに出力する方法

SpotifyやApple Musicをリビングでスピーカー経由で再生するためにはBluetooth接続のスピーカーを利用するのが一般的ですね。サウンドバーでもBluetooh搭載している製品が多いのでスピーカーを購入するとBluetooth接続機能が付いてくるのが一般的になっていますね。例えば、ソニーはこのような製品を発売しています。

Bluetooth接続スピーカーはスマホなどで再生している音声をスピーカーで出力しているのですが、SpotifyやApple Musicをリビングで再生する場合はAirPlayの方が便利です。

スマホからBluetoothスピーカーを使用するためにデバイス間を接続する必要があるため一人が使っていると他の人は使用することができません。逆に、AirPlayでは接続する必要はなく、再生する際に出力先を選ぶだけで構成によっては複数のスピーカーで同じ音楽を再生することができます。

また、AirPlayはWiFiなどのネットワーク経由で音楽データを転送することができるため、高音質なロスレス音源を再生できます。そのため、リビングなど家の中で音楽を再生するのであれば、使い勝手と音質が優れているAirPlayをお勧めします。

AirPlayを受信するための方法

AirPlayを受信するためには、多くの人が使っていて動作が安定しているshairport-syncをおすすめします。

インストールは非常に簡単で、以下マニュアルに従うだけです。一部、出力先デバイスを確認・設定する必要がありますので、以下に手順を記載しておきます。

ラズパイのアップデート

最初にラズパイをアップデートして、その後再起動します。

$ sudo rpi-update
$ sudo reboot

shairport-syncをインストール

shairport-syncをビルド、インストールするために必要なライブラリなどのソフトウェアをインストールしまします。その後、shairport-syncをインストールします。

$ sudo apt install build-essential git xmltoman autoconf automake libtool libdaemon-dev libpopt-dev libconfig-dev libasound2-dev libpulse-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev
$ git clone https://github.com/mikebrady/shairport-sync.git

$ cd shairport-sync
$ autoreconf -i -f
$ ./configure --sysconfdir=/etc --with-alsa --with-pa --with-pipe --with-avahi --with-ssl=openssl --with-metadata --with-soxr --with-systemd
$ make
$ sudo make install

サービス設定

ラズパイが起動した際にサービスとして自動起動するように設定します。

$ sudo systemctl enable shairport-sync.service
$ sudo service shairport-sync start

音声出力先デバイスを確認

shairport-syncで音声を出力するデバイスを確認します。出力したいデバイスのカード番号とサブデバイス番号を確認してください。今回はラズパイに40ピンのGPIOインタフェースに接続したDAC経由で音声を出力するため、カード番号は「3」でサブデバイス番号は「0」となります。

$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: Headphones [bcm2835 Headphones], デバイス 0: bcm2835 Headphones [bcm2835 Headphones]
  サブデバイス: 8/8
  サブデバイス #0: subdevice #0
  サブデバイス #1: subdevice #1
  サブデバイス #2: subdevice #2
  サブデバイス #3: subdevice #3
  サブデバイス #4: subdevice #4
  サブデバイス #5: subdevice #5
  サブデバイス #6: subdevice #6
  サブデバイス #7: subdevice #7
カード 1: vc4hdmi0 [vc4-hdmi-0], デバイス 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 2: vc4hdmi1 [vc4-hdmi-1], デバイス 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 3: DAC [I-Sabre Q2M DAC], デバイス 0: I-Sabre Q2M DAC i-sabre-codec-dai-0 [I-Sabre Q2M DAC i-sabre-codec-dai-0]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

shairport-syncの設定

先ほど確認した音声出力デバイスや各種設定を設定ファイル(shairport-sync.conf)に書き込みます。nameはAirPlay出力時の名称になります。interpolationとoutput_backendはラズパイではこの通り設定しておけば問題ありません。スマホではなくスピーカー側で音量設定したい人はignore_volume_controlを「yes」に設定してください。

output_backendを「alsa」に設定した場合、「alsa =」以降のセクションを設定してください。 output_deviceは、「aplay -l」コマンドで調べた出力先デバイスを設定します。その他の設定は出力先デバイスの仕様に応じて設定してください。

$ sudo nano /etc/shairport-sync.conf
general =
{
    name = "RaspberryPi";
    interpolation = "soxr";
    output_backend = "alsa";
    ignore_volume_control = "no";
};
alsa =
{
    output_device = "hw:3,0";
    output_rate = 176400;
    output_format = "S32";
    disable_synchronization = "yes";
};

実際に使ってみての感想

実際の環境はラズパイに接続したDACからオーディオテクニカのアクティブスピーカー AT-SP95に音声出力しています。オーディオテクニカのアクティブスピーカー AT-SP95は値段が安いスピーカーで低音は全くでませんが、モニター内蔵スピーカーよりは良い程度のスピーカーになります。

iPhoneからはAirPlayを選択するとスピーカーとして認識されて出力できます。Apple MusicやSpotifyはもちろんAirPlay経由で出力できますし、YouTubeだって音声出力可能です。

やはり、Bluetoothと違ってペアリングなしで使えるのは便利ですね。家の中なので、自分だけではなく家族や友人など同じネットワークに接続しているデバイスであれば自由にスピーカーに出力できるのが柔軟性があって良いです。

今回はラズパイをAirPlay対応スピーカーにしましたが、Bluetoothスピーカーにすることだって可能です。ラズパイは自由度が高くて良いですね。

スポンサーリンク

コメント