Biến TV Box cũ chạy Armbian thành Hệ thống Thông báo Giọng nói Tiếng Việt


Bạn đang có một chiếc TV Box cũ (như RK3318, S905X…) đang chạy Armbian để làm Home Server với CasaOS? Thay vì để nó hoạt động âm thầm, hãy tặng cho nó một “giọng nói”. Bài viết này sẽ giúp bạn thiết lập từ phần cứng đến phần mềm để có một lệnh thông báo tiếng Việt cực chuẩn.


1. Kết nối phần cứng

Hầu hết các dòng TV Box chạy Armbian đều hỗ trợ ngõ ra âm thanh qua các cổng:

  • Cổng AV (Jack 3.5mm): Kết nối trực tiếp với loa máy tính hoặc loa kéo.
  • Cổng HDMI: Nếu bạn dùng màn hình/TV có tích hợp loa.
  • Loa USB: Giải pháp dự phòng cực tốt nếu cổng AV của Box bị nhiễu hoặc không có driver.

2. Kiểm tra âm thanh trên Armbian

Truy cập vào SSH (ví dụ bằng MobaXterm) và kiểm tra danh sách thiết bị âm thanh để xác định đúng cổng xuất:

aplay -l

Thông thường, cổng Analog (Jack 3.5mm) sẽ là Card 0. Bạn có thể test loa nhanh bằng lệnh phát tiếng nhiễu để đảm bảo dây dẫn đã ổn định:

speaker-test -D hw:0,0 -c 2 -t sine

3. Cài đặt các thư viện cần thiết

Chúng ta sử dụng thư viện gTTS (Google Text-to-Speech) để lấy giọng đọc tiếng Việt tự nhiên và mpg123 để phát âm thanh ra loa một cách nhẹ nhàng nhất.

sudo apt update
sudo apt install python3-pip mpg123 alsa-utils -y
sudo pip3 install gTTS --break-system-packages

4. Viết Script xử lý thông báo

Tạo một script Python để xử lý việc “bắt” văn bản bạn nhập, chuyển thành file âm thanh và phát ra loa:

sudo nano /usr/local/bin/thongbao.py

Dán nội dung code sau vào:

import os
import sys
from gtts import gTTS

def speak(text):
    try:
        # Tạo file âm thanh tạm thời trong thư mục /tmp
        tts = gTTS(text=text, lang='vi')
        tts.save("/tmp/notify.mp3")
        
        # Phát qua card Analog (hw:0,0) - Chuẩn hóa tần số 44100Hz để tránh lỗi resampler
        os.system("mpg123 -q -r 44100 -a hw:0,0 /tmp/notify.mp3")
    except Exception as e:
        print(f"Lỗi: {e}")

if __name__ == "__main__":
    # Nhận nội dung từ tham số dòng lệnh khi chạy script
    msg = sys.argv[1] if len(sys.argv) > 1 else "Hệ thống đã sẵn sàng"
    speak(msg)

5. Tạo lệnh thực thi rút gọn (Shortcut)

Để biến việc thông báo trở nên chuyên nghiệp, chúng ta sẽ tạo một lệnh ngắn là thongbao thay vì phải gõ sudo python3... dài dòng.

  1. Tạo file thực thi:
sudo nano /usr/local/bin/thongbao
  1. Dán nội dung Shell Script này vào:
#!/bin/bash
sudo python3 /usr/local/bin/thongbao.py "$1"
  1. Cấp quyền chạy cho lệnh:
sudo chmod +x /usr/local/bin/thongbao

6. Thành quả và Ứng dụng

Giờ đây, bạn có thể ra lệnh cho chiếc TV Box của mình đọc bất cứ câu gì bằng tiếng Việt:

thongbao "Xin chào anh Mạnh, hệ thống thông báo đã hoạt động hoàn hảo"

Một số mẹo nhỏ tối ưu:

  • Chỉnh âm lượng: Nếu loa quá nhỏ, hãy gõ lệnh alsamixer, nhấn F6 chọn đúng card âm thanh và đẩy các cột volume lên mức xanh. Đừng quên lưu lại bằng sudo alsactl store.
  • Lời chào tự động khi login: Thêm dòng thongbao "Chào mừng bạn đã quay lại hệ thống" & vào cuối file /etc/profile để Box tự chào mỗi khi bạn đăng nhập SSH.
  • Tự động hóa: Bạn có thể tích hợp lệnh này vào các kịch bản của CasaOS như thông báo khi nhiệt độ CPU quá cao hoặc báo chuông cửa.

Chúc các bạn vọc vạch thành công chiếc TV Box cũ của mình! Đừng quên chia sẻ nếu thấy bài viết hữu ích.

Leave a Reply

Your email address will not be published. Required fields are marked *