话题从上一个黑群晖接有线音响做TTS 开始.
首先回答上一篇帖子的一些问题
1. 一定要ssh登录并获得root权限. 这个方法可以网上搜一下, DSM5用root账号直接登录就可以, DSM6需要用管理员账号登录, 并执行sudo -i
2. 为什么不能用网页的docker创建container. 因为我们要挂载/dev下的设备文件, 这个网页端的docker是无法满足要求的. 所以需要用命令行这种稍微繁琐的方式进行.
3. 为什么经常无法发出声音. 这个可以看一下container的日志, 如果是提示类似乎设备无法打开的错误. 那一定是ALSA USB声卡设备号变了. 就是在mpd.conf配置里面device "hw:0,0"具体要查是那个hw号, 我用的方法是ipkg安装alsa-util完成的. 这样比较HACK, 我不太建议所有人都这样, 其实如果没有播放成功, 那么久从"hw:0,0"往后试一试"hw1:0" "hw2:0"这样没多少就能试出来了.
再说本帖
因为现在家里面大部分都有一两个蓝牙音箱, 摆脱有线的束缚, 使用蓝牙的方式来播放TTS应该是更完美的方案.
步骤:
1. 使用DSM的网页, 连接好蓝牙音箱, 并且用AudioStation播放, 选择输出源为蓝牙音箱, 测试蓝牙音箱连接成功.
2. 在用AudioStation播放的时候, ssh登录到群晖并获取root权限, 执行下面这条命令
ps -aux | grep Audio
可能会得到类似的输出
AudioSt+ 15552 0.8 0.1 624700 6852 ? S<sl 21:30 0:19 /var/packages/AudioStation/target/sbin/synoaudiod
root 15593 0.0 0.1 241096 4428 ? S<l 21:30 0:01 /var/packages/AudioStation/target/bin/pulseaudio --realtime=false
AudioSt+ 16045 0.2 0.0 37612 1396 ? S<s 21:30 0:06 /var/packages/AudioStation/target/sbin/synorcd
AudioSt+ 29172 2.3 0.2 244940 7868 ? S<sl 22:06 0:00 /var/packages/AudioStation/target/bin/mplayer -gapless-audio -ao pulse::bluez_sink.0C_A6_94_96_F3_7A -srate 44100 -channels 2 -format s16le -unique bluez_sink.0C_A6_94_96_F3_7A -daemon /volume1/music/赵骏 - 你就不要想起我 (Live) [mqms].mp3 -volume 14
AudioSt+ 29209 3.0 0.0 0 0 ? Zs 22:06 0:00 [remote_player_s] <defunct>
root 29216 0.0 0.0 23120 972 pts/15 S+ 22:06 0:00 grep --color=auto Audio
其中比较重要的就是bluez_sink.0C_A6_94_96_F3_7A. 这个就是我们蓝牙音箱的设备名字.
3. 同上一篇帖子一样, 创建mpd的路径和一些文件. 如果已经用有线音箱做过一遍, 用当时做好的就好.
4. 创建docker-compose.yml. 这里需要注意最后/tmp/pulse-PKdhtXMmr18n. 我还没有搞明白这个为什么名字是这样, 而且是否是我的机器特有的我也不是很明白, 所以我建议在实际操作的时候, 先确认一下自己机器/tmp/pulse-*是什么, 然后用本地的文件夹替换下面docker-compose.yml的最后一行的内容. 指令是
mpd:
image: schumyhao/mpd
net: host
privileged: true
volumes:
- /volume2/docker/mpd/mpd.conf:/etc/mpd.conf
- /volume2/docker/mpd/music:/var/lib/mpd/music
- /volume2/docker/mpd/playlists:/var/lib/mpd/playlists
- ~/.pulse:/root/.pulse
- /tmp/pulse-PKdhtXMmr18n:/tmp/pulse-PKdhtXMmr18n
5. 编辑mpd.conf文件. 其中audio_output的name可以自己起, sink是当时最开始用ps指令找到的蓝牙设备名字.
music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/database"
log_file "/var/lib/mpd/mpd.log"
pid_file "/var/lib/mpd/mpd.pid"
state_file "/var/lib/mpd/state"
sticker_file "/var/lib/mpd/sticker.sql"
audio_output {
type "pulse"
name "Onyx Studio 2"
sink "bluez_sink.0C_A6_94_96_F3_7A"
}
6. 执行docker-compose up -d 启动container.
7. 配置HASS, 这个和上一篇帖子是一样的.
|