Home Assistant

Home Assistant: tận dụng máy chủ để phát âm thanh thông báo hay phát nhạc

Phát nhạc trên hass

Kết nối loa trực tiếp vào máy chủ Hass để phát thông báo bằng âm thanh, lời nói hay phát nhạc

Photo: volumio.org
9 phút để đọc hết nội dung

Nếu bạn đang sử dụng các máy chủ Home Assistant (Hass) có khả năng xuất âm thanh như Pi, NUC, máy ảo trên PC, Android box, bạn có thể sử dụng Hass để điều khiển và phát các thông báo bằng giọng nói, âm thanh hoặc thậm chí phát nhạc từ chính máy chủ này.

Khi sử dụng các loa công suất lớn, đây có thể được xem là giải pháp cảnh báo bằng âm thanh có độ ổn định cao trong các tình huống khẩn cấp mà không quá tốn kém.

Yêu cầu cần có

Máy chủ sử dụng card âm thanh (rời hoặc đi kèm) là dạng thông thường, được hỗ trợ mặc định bởi Linux (ALSA). (1)

Bạn cũng cần hệ thống loa hỗ trợ ngõ vào analog để phát âm thanh nhận được từ máy chủ. Nếu chỉ để phát thông báo, bạn có thể sử dụng các loa dùng nguồn USB có giá rẻ và phổ biến trên thị trường (loại nhỏ gọn thường dùng cho điện thoại, máy vi tính).

(1) Ngõ ra âm thanh mặc định trên Raspberry Pi có chất lượng khá tệ và có lẽ chỉ thích hợp để phát thông báo

Loa mini USB
Loa mini sử dụng nguồn 5V rất phù hợp để phát thông báo

Cấu hình máy chủ để xuất âm thanh

Music Player Daemon

Music Player Daemon (MPD – musicpd.org) là một ứng dụng chơi nhạc mạnh mẽ và có thể nói, phổ biến nhất trên Linux. MPD là “lõi” của hầu hết các hệ điều hành tuỳ chỉnh nền Linux sử dụng cho mục đích trình diễn âm nhạc như Volumio, Moode Audio.

MPD đi kèm một dịch vụ mạng cho phép điều khiển ứng dụng này trên cổng mặc định 6600 (có thể thay đổi được).

! Volumio trên Home Assistant

Nếu bạn đang sử dụng Volumio để trình diễn âm nhạc, Home Assistant có sẵn tích hợp để điều khiển Volumio. Xem thêm tại: integration/Volumio

Home Assistant

Nếu bạn sử dụng Home Assistant đầy đủ, có Supervisor, giải pháp đơn giản nhất là cài đặt addon MPD của tác giả Poeschl. Addon này sẽ “biến” máy chủ Hass thành một thiết bị chơi nhạc thực thụ.

Để cài đặt addon MPD, bạn vào mục Supervisor > Add-on store > ... > Repositories.

Tiếp theo, copy và paste github của tác giả (https://github.com/Poeschl/Hassio-Addons) vào mục Add repository và bấm ADD.

Home Assistant MPD
Thêm repo tuỳ chỉnh vào Home Assistant Supervisor

Sau khi thêm thành công, bạn tìm kiếm MPD trong ô Search (Addon-store). Chọn addon MPD MPD trong kết quả tìm kiếm rồi ấn INSTALL để cài đặt.

File image của addon MPD có dung lượng khoảng 140MB cho cấu trúc ARMv7 (Raspbian – 32bit) (2).

Sau khi cài đặt thành công, bạn ấn START để khởi động addon và nhớ chọn Start on boot để Hass tự khởi động addon MPD. Bản thân addon MPD không cần được cấu hình, tuy nhiên bạn có thể cấu hình thay đổi cổng – port và tuỳ chọn thiết bị âm thanh theo yêu cầu.

Home Assistant MPD
Cấu hình addon MPD

Bây giờ máy chủ Home Assistant của bạn đã sẵn sàng để “lên tiếng”. Hãy chuyển sang mục cấu hình Home Assistant để điều khiển và phát thông báo.

(2) Addon MPD hỗ trợ các cấu trúc armv7, armhf, aarch64, amd64, i386

Home Assistant Core & Docker Supervised trên Linux

Nếu bạn chỉ sử dụng phiên bản Home Assistant Core, bạn có thể cài đặt MPD trực tiếp trên hệ điều hành – OS theo hướng dẫn ở dưới hoặc từ trang chủ tại: musicpd.org.

Với Home Assistant Supervised (cài đặt trên Docker), bạn có thể cài addon MPD tương tự như trên hoặc cài đặt MPD trực tiếp lên OS hoặc vận hành một container MPD khác trên docker. Hai giải pháp cài addon và vận hành container MPD là gần tương đương.

Để cài đặt MPD trực tiếp trên hệ điều hành Linux họ Debian/Ubuntu, bạn chạy lần lượt các lệnh bên dưới:

sudo apt-get update
sudo apt-get install -y mpd alsa-utils

Cấu hình Home Assistant điều khiển mpd

Cấu hình mẫu bên dưới sử dụng cho mọi phương thức cài đặt mpd đã nói ở trên, bạn thêm vào file cấu hình chính của Hass tại /config/configuration.yaml và điều chỉnh cho phù hợp.

media_player:
  - platform: mpd
    host: 127.0.0.1
    name: Hass

Chú thích:

  • 3 host: 127.0.0.1 là địa chỉ IP của máy chủ MPD, địa chỉ này sử dụng cho trường hợp mpd được cài đặt và vận hành trên cùng máy chủ với Hass
  • 4 name: Hass (tuỳ chọn) đặt tên cho thiết bị media player sẽ tạo
  • port: 6600 (tuỳ chọn) cấu hình port của mpd

Sau khi cấu hình, khởi động lại Home Assistant (trong khi addon MPD vẫn đang chạy) để khởi tạo media_player.hass.

Sử dụng media_player.hass

Phát thông báo

Bạn có thể sử dụng media_player.hass này để phát thông báo tts (dịch vụ chuyển chữ viết thành giọng nói), phát file âm thanh tương tự như với loa Google Home (mini), ngoại trừ:

TTS trực tiếp trên Pi
Phát thông báo giọng nói TTS qua loa kết nối vào máy chủ Hass

Tham khảo: cách phát file âm thanh từ Home Assistant

Phát nhạc từ youtube

Để phát nhạc từ youtube một cách đơn giản, bạn có thể sử dụng component media_extractor có sẵn của Hass. Component này cho phép trích xuất liên kết stream từ một đường dẫn url (không chỉ từ youtube) để phát trên các thiết bị media_player có hỗ trợ.

Để kích hoạt component media_extractor, bạn thêm dòng sau vào file cấu hình mặc định của Home Assistant tại /config/configuration.yaml:

media_extractor:

Sau khi khởi động lại Hass, bạn có thể sử dụng dịch vụ media_extractor.play_media để phát âm thanh từ một video trên youtube đến loa media_player.hass vừa tạo ở trên, cấu hình mẫu như sau:

service: media_extractor.play_media
data:
  entity_id: media_player.hass
  media_content_type: music
  media_content_id: https://www.youtube.com/watch?v=5BN1eTR4c00

Lưu ý: khi bạn lấy liên kết từ youtube, chỉ lấy phần đầu của liên kết (bao gồm tham số đầu tiên ?v=5BN1eTR4c00). Lấy toàn bộ liên kết vốn bao gồm list hay nhiều tham số tuỳ chọn khác có thể gây lỗi.

Cảm ơn bạn đã xem bài viết này!

konnectED Team.

Lên Đầu
  • Đăng ký
Bạn quên mất mật khẩu? Vui lòng nhập tên đăng nhập và địa chỉ email đã đăng ký. Bạn sẽ nhận được liên kết tạo mật khẩu mới qua email (bạn nhớ kiểm tra hộp spam trong trường hợp email đi lạc).