Squeeze Pi:家庭音频探险之旅

一位音响发烧友使用旧的 Raspberry Pi 和开源的 Logitech 软件,为家庭办公室创建了一个流媒体音乐系统。
579 位读者喜欢这篇文章。
5 projects for Raspberry Pi at home

Raspberry Pi 基金会,CC BY-SA

自从我购买了 Logitech 现已过时的 Squeezebox Touch 以来,我就一直是 Squeezebox 的粉丝,我的家人至今仍在使用它。

Squeezebox Touch 提供了一个家庭友好的界面,可以访问我们的音乐库,可以直接在设备上访问,也可以通过一系列移动应用程序访问。Logitech 在 2012 年停止了它的开发,但我很高兴他们将 Squeezebox 的服务器软件开源为 Logitech Media Server,并提供了在物理 Squeezebox 设备上使用的开源代码。

SqueezeBox Touch

SqueezeBox Touch,Steve Ellis,CC BY-SA 4.0

大约一年前,我决定为我的家庭办公室配置一些不错的音响,并想重用一个旧的 Raspberry Pi 1 Model B 作为音源。理想情况下,我想要一些与我们现有的 Squeezebox 生态系统兼容的东西,并寻找了各种选择。Logitech Media Server 很快成为我的选择。用于管理音频库的 Logitech Media Server 软件由社区更新,其中包含许多增强功能和错误修复(有关最新版本的信息,请访问 Slimdevices 论坛及其 Wiki)。

以下是我创建接近发烧级体验的三个步骤,您可以将其与几乎任何版本的 Raspberry Pi 一起使用。

阶段 1:概念验证

虽然 Raspberry Pi Model B 配备了标准的 3.5 毫米立体声音频插孔,但它的频率响应有限,并且容易受到很多干扰。后来的型号并没有真正改进这一点,但这绝对足以测试 Pi 作为 SqueezeBox 客户端。

Base Raspberry Pi Hardware

Steve Ellis,CC BY-SA 4.0

基线硬件和软件

  • 带外壳的 Raspberry Pi 1 Model B
  • 128MB SD 卡
  • 能够 1A 输出的 USB 充电器
  • 3.5 毫米立体声音频线
  • 网线
  • 旧的笔记本电脑扬声器
  • piCorePlayer 软件

Initial PoC hardware, including old PC speakers

Steve Ellis,CC BY-SA 4.0

PoC 阶段的一个关键目标是重用旧的备用设备——我猜我使用的 Altec Lansing 桌面扬声器大约有 20 年的历史,而 128MB SD 卡是我能找到的最小的备用卡。(后来我换成了 1GB SD 卡,因为 128MB 卡的可靠性存在问题。)我还选择了物理网线,因为该设备将以无头模式运行(没有屏幕),并且通过物理以太网电缆进行 DHCP 易于实现和测试。另一个常见问题是 USB 电源质量差或不可靠,因此使用了 1 安培的电源。

我非常喜欢尽可能采用以设备为中心的方法,而 piCorePlayer 提供了一个精简的 Linux 构建版本,其中集成了用于 Logitech Media Server 的 Squeezelite 软件客户端,并且易于安装。在底层,它是基于 TinyCore 的 Linux 在 RAM 中运行,并且仅在备份配置更改时才挂载存储。这使其非常能够抵御电源中断。对于音频输出,它支持 3.5 毫米立体声插孔、HDMI 音频和一系列 USB 数模转换器 (DAC)。此外,如果您想要更发烧级的体验,还有各种 I2C DAC,可以直接插入 Raspberry Pi。

我下载了 最新版本的 piCorePlayer 并将其安装到 SD 卡上;请注意,对于更现代的 Pi,您需要使用 microSD 卡。此外,Raspberry Pi 不支持从 USB 设备启动。我使用 dd 通过我的 Linux 笔记本电脑上的读卡器将映像写入 SD 卡。

sudo dd if=piCorePlayer3.20.img of=/dev/mmcblk0 bs=16M

可选地,某些发行版现在附带了映像刻录工具,例如 Fedora Media Writer

Fedora Media Writer

Steve Ellis,CC BY-SA 4.0

启动后,Pi 通过 DHCP 找到了一个 IP 地址,我可以通过浏览器连接以完成配置。

在 Squeezelite 的设置下,我将音频输出设置为模拟音频,然后单击“保存”。然后我为我的播放器指定了一个名称,该名称被 SqueezeCenter 服务器软件检测到,然后再次单击“保存”。

Initial PiCorePlayer configuration

PiCorePlayer 初始配置,Steve Ellis,CC BY-SA 4.0

使用我的 Squeezer Android 移动客户端,我现在可以在我的网络上看到两个 Squeezebox 客户端,旧的 Squeezebox Touch 和我的家庭办公室 piCorePlayer,我可以从我的库中选择和播放音频。这是一个快速而简单的测试,但我确实遇到了一些音频问题。偶尔,如果我敲击或移动 Pi,扬声器会发出嗡嗡声,并且音频质量不尽如人意。

Browser-based audio playback

Steve Ellis,CC BY-SA 4.0

阶段 2:USB 音频适配器

由于在阶段 2 中我仍然尝试重用现有硬件,所以我抓取了一个旧的 USB 音频适配器,该适配器是 Logitech 耳机附带的,希望这会比板载 3.5 毫米插孔提供更可靠的音频体验。

Logitech USB audio adapter

Steve Ellis,CC BY-SA 4.0

USB 适配器被 Pi 自动检测到。通过浏览器,我只需要将音频输出更改为 USB,并将输出设置更改为 front:CARD=Headset,DEV=0。单击“保存”后,我通过 USB 适配器在我的 20 年旧扬声器上获得了更可靠的音频。

piCorePlayer 站点上有一个关于各种 USB 设备的 很棒的指南;我已经更新了它,包括 Logitech 适配器的 USB ID。

阶段 3:发烧级音质?

Audiophile-ready SqueezePi

Steve Ellis,CC BY-SA 4.0

我有一些备用的书架式扬声器,它们比笔记本电脑扬声器好得多,但没有电源来驱动它们。在这个阶段,我可以使用支持 HDMI 的小型放大器并避免使用 USB 和 3.5 毫米输出,但我听说过带有内置 USB DAC 的小型放大器,并决定探索这条路线。

在阅读了大量好评之后,我从当地供应商那里购买了一个 Topping VX1 放大器。这是一款外观精美的设备,功率足以满足小型家庭办公室环境的需求。USB DAC 可以被现代 Linux 内核自动检测到,并且可以与 piCorePlayer 很好地配合使用。

Topping VX1 front

Steve Ellis,CC BY-SA 4.0

Connecting the Topping VX1 with a USB cable

Steve Ellis,CC BY-SA 4.0

下一步:有阶段 4 吗?

您可能想知道,如果我从头开始,我是否会再次以相同的方式进行操作。

大多数情况下是的。如果我要购买硬件,我会考虑使用像 Pi Zero 这样的设备。这款设备有一些很棒的发烧级附加组件,而且体积非常小巧。

对于放大器 DAC,我希望使用类似我的老朋友 Bdale Garbee 正在开发的设备。这些小型设备 将 PCM2705C USB DAC 与 TPA3118D2 D 类音频放大器结合在一起,可以提供一个简单、低成本且开源程度更高的解决方案,作为 Topping VX1 放大器的替代方案。有关 Bdale 解决方案的更多信息,请参阅他在 linux.conf.au 2016 年的演讲,或访问他的项目网站

如果我不是 Squeezebox 用户,我可能会考虑基于音乐播放器守护程序 (MPD) 的解决方案,也许使用像 Mopidity 这样的东西。

我正在考虑购买一个触摸屏,以提供更完整的类似 Squeezebox Touch 的体验。有一个完全开源的 Squeezebox UI 实现,它与 Pi 的触摸屏兼容。此外,我的女儿很快就会长大,不再使用她目前的立体声音响,这可能会提供一个机会,让我可以玩转 Pi Zero,构建另一个与 Squeezebox 兼容的前端。

但现在,我正忙于享受我的家庭办公室中出色的音频质量,同时为 Opensource.com 撰写这篇文章,没有时间考虑下一步是什么。

User profile image.
Steven 是一位开源倡导者和技术专家,自 2011 年 5 月 Red Hat 在新西兰开设办事处以来,一直在 Red Hat 工作。

5 条评论

一直在使用 Openwrt 配对 USB 音频数模转换器/耳机放大器(例如 Fiio Q1)来实现类似的结果。还具有扩展 Wifi 的好处 ;-)

我考虑过使用带有 USB 音频适配器的 OpenWRT 或 dd-wrt 设备。我有点担心从安全角度通过我的防火墙驱动音频,因为我需要与音频文件共享 CIFs 或 NFS 共享。
我找不到 OpenWRT 的 squeezebox 客户端构建版本。

回复 ,作者 Joel (未验证)

我假设使用 RPi3,这也可能是一个相当移动的设备,因为它具有无线功能,而无需外部适配器。就像在晴朗的日子里把它搬到你的后院之类的。

感谢这篇精彩的文章。

很棒的文章。现在我又有一个 Pi 项目可以尝试了。

Creative Commons 许可协议本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.