Squeeze Pi: 家庭音频探险

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

Raspberry Pi Foundation, CC BY-SA

自从我获得了罗技现已过时的 Squeezebox Touch 以来,我就一直是 Squeezebox 的粉丝,我的家人仍在使用它。

Squeezebox Touch 提供了一个家庭友好的界面来访问我们的音乐库,可以直接在设备上访问,也可以通过一系列移动应用程序访问。 罗技在 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 上使用它们。

第一阶段:概念验证

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

Base Raspberry Pi Hardware

Steve Ellis under 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 under CC BY-SA 4.0

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

我非常喜欢尽可能采用以设备为中心的方法,并且 piCorePlayer 提供了一个 TinyCore-based Linux 的精简版本,其中集成了用于 Logitech Media Server 的 Squeezelite 软件客户端,可以轻松安装。 在底层,它是运行在 RAM 中的 TinyCore-based Linux,仅在备份配置更改时才挂载存储。 这使其对断电非常具有弹性。 对于音频输出,它支持 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 under 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 under CC BY-SA 4.0

第二阶段:USB音频适配器

因为在第二阶段我仍然试图重新使用现有的硬件,所以我拿了一个罗技耳机附带的旧 USB 音频适配器,希望这能提供比板载 3.5 毫米插孔更可靠的音频体验。

Logitech USB audio adapter

Steve Ellis under CC BY-SA 4.0

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

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

第三阶段:发烧友音质?

Audiophile-ready SqueezePi

Steve Ellis under CC BY-SA 4.0

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

在阅读了大量正面评价后,我从当地供应商处购买了一个 Topping VX1 放大器。 这是一个华丽的设备,具有足够的功率,适合小型家庭办公室环境。 现代 Linux 内核会自动检测到 USB DAC,并且与 piCorePlayer 配合良好。

Topping VX1 front

Steve Ellis under CC BY-SA 4.0

Connecting the Topping VX1 with a USB cable

Steve Ellis under CC BY-SA 4.0

下一步:有第四阶段吗?

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

大多数情况下是这样的。 如果我要购买硬件,我会考虑使用像 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.
自 Red Hat 于 2011 年 5 月开设其新西兰办事处以来,Steven 一直是为 Red Hat 工作的开源倡导者和技术专家。

5 条评论

一直在使用 Openwrt 与 USB 音频 Dac/耳机放大器(例如 Fiio Q1)配对来实现类似的结果。 此外,它还具有传播 Wifi 的好处 ;-)

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

回复 Joel (未验证)

我认为使用 RPi3,这也可以是一个相当移动的设备,因为它具有无线功能,而无需外部加密狗。 就像在阳光明媚的日子里把它搬到你的后院之类的。

感谢这篇精彩的文章。

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

Creative Commons License 本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.