树莓派3B+ Buster 和 Docker 安装 mopidy 播放器,蓝牙连接天猫精灵实现百度 TTS

mac2024-01-30  79

文章目录

前言环境及目的连接蓝牙步骤阶段成果 安装 Mopidy 之一般方式配置创建 Mopidy 服务 安装 Mopidy 之 Add-On 方式(只能从 3.5mm 或 HDMI 输出)拉取镜像配置 注册百度 TTS 应用HA 配置 完工

前言

一年前已经有大佬 airhog 实现了这个功能,若阅读他的帖子,一定要看大家填坑的回贴,回贴,回贴。本文以下内容重点强调了两个问题: 有关 mopidy 的音频输出 audio 项改为 alsasinkdocker 下安装树莓派适用的 mopidy add-on 对上述问题的配置

如果你已经填平了上面的坑,那么就已经可以离开了。

环境及目的

树莓派 3B+ Buster,在 Docker 下安装 Hassio

在 Docker 外,也即正常 Raspbian 环境下安装 Mopidy在 Docker 内安装 Mopidy(Hassio 的 Add-On 方式) 此 Add On 不能蓝牙输出

连接蓝牙

步骤

为了方便起见,下面使用远程桌面进行蓝牙的连接操作(实测开机后可以自动重新连接,无需其它配置)

打开蓝牙,添加蓝牙音箱设备如下图所示将音频输出修改为蓝牙音箱(天猫精灵 IN 糖)ps:命令行连接蓝牙设备需要使用 bluetoothctl 工具,自行搜索或参考论坛教程上一步会把默认的音频输出设置为蓝牙音箱,在 ~/.asoundrc 文件中可以看到类似如下的配置信息:pcm.!default { type asym playback.pcm { type plug slave.pcm "output" } capture.pcm { type plug slave.pcm "input" } } pcm.output { type bluealsa device "D4:4B:B6:0E:4D:2D" profile "a2dp" } ctl.!default { type bluealsa } pcm.input { type hw card 1 } 然后把你的 ~/.asoundrc 拷贝到 /etc/asound.conf有关 Asoundrc 更多信息,参考官方 wiki

阶段成果

至此我们把音频输出设置为了蓝牙音箱,上传一个 wav 文件到树莓派,使用 aplay /path/to/your/wav/file.wav 命令测试,音频应该会从蓝牙音箱播出。没问题的话,就进行下一步。

安装 Mopidy 之一般方式

安装 Mopidy 的文档在这:Debian/Ubuntu: Install from apt.mopidy.com

根据文档描述安装:

1. Add the archive’s GPG key: wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add - 2. Add the APT repo to your package sources: sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list 3. Or, if you run an older Debian/Ubuntu distro (including Ubuntu 18.04 LTS): sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/stretch.list 4.Install Mopidy and all dependencies: sudo apt-get update sudo apt-get install mopidy ps:实际上我只执行了第 4 步,用的 apt 源是中科大源: deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ buster main ui

配置

此步骤完整的配置文档参考 Configuration

编辑 /etc/mopidy/mopidy.conf,填入以下内容(没有则创建,实际上在家目录下有 ~/.config/mopidy/mopidy.conf):

[core] cache_dir = /var/cache/mopidy config_dir = /etc/mopidy data_dir = /var/lib/mopidy [logging] config_file = /etc/mopidy/logging.conf debug_file = /var/log/mopidy/mopidy-debug.log [local] media_dir = /var/lib/mopidy/media [m3u] playlists_dir = /var/lib/mopidy/playlists [mpd] enabled = true hostname = 127.0.0.1 port = 6600 [audio] output = alsasink

注意:

最简的配置,只要包含 [mpd] 那一项即可(必须包含,才可以使能 mopidy 服务)

默认 audio 输出使用的是 autoaudiosink(参见 audio/output),但是为了使用蓝牙音箱,配置文件里必须添加 audio 项,把输出改为 alsasink。否则 Mopidy 就会把声音输出到 3.5mm 或 HDMI 接口。

此坑参考自 raspberrypi-installation: 树莓派桌面镜像用户需要:sudo adduser mopidy video

创建 Mopidy 服务

此步骤完整文档参考 Running as a servicesudo systemctl enable mopidy 服务的其它操作: sudo systemctl start mopidy sudo systemctl stop mopidy sudo systemctl restart mopidy 查看服务状态: sudo systemctl status mopidy

这样 Mopidy 即可开机自动运行,至此 Mopidy 就安装完成了,有关它的 http 服务或其它配置和扩展,参考官方文档。

安装 Mopidy 之 Add-On 方式(只能从 3.5mm 或 HDMI 输出)

拉取镜像

添加 Add-On 仓库:https://github.com/bestlibre/hassio-addons,然后安装 mopidy 即可。若下载不顺利,可以尝试全局科学上网。

可在 SYSTEM 标签下查看日志,以判断拉取镜像是否成功

配置

完整的配置和说明参考它的文档创建以下文件夹:/share/mopidy/media 和 /share/mopidy/playlists/ 配置文件,这里最后一项的 audio/output 并没有起到预想的作用。{ "local_scan": true, "options": [ { "name": "local/media_dir", "value": "/share/mopidy/media" }, { "name": "m3u/playlists_dir", "value": "/share/mopidy/playlists/" }, { "name": "audio/output", "value": "alsasink" } ] }

注册百度 TTS 应用

应用注册地址:语音合成,其中的 app_id,api_key,secret_key 用于下一步的配置HA 配置参考文档:Baidu Text-to-SpeechMPD参考文档:Music Player Daemon

HA 配置

media_player: - platform: mpd host: 127.0.0.1 tts: - platform: baidu app_id: *** api_key: *** secret_key: *** speed: 5 pitch: 5 volume: 15 person: 0

完工

在开发者工具中调用: DATA 填入一下数据:

entity_id: media_player.mpd message: hello,世界

点击 CALL SERVICE,稍等两秒,让系统跑一会~

最新回复(0)