Skip to content

v1.0.0

Choose a tag to compare

@buudvh buudvh released this 24 Jun 09:10

Release Notes - LocalTTS Version 1.0.0 🚀

Chào mừng bạn đến với phiên bản chính thức đầu tiên LocalTTS v1.0.0!

LocalTTS là ứng dụng iOS được phát triển bằng SwiftUI, cho phép khởi chạy một HTTP API Server nội bộ (localhost) trên iPhone để thực hiện tổng hợp tiếng nói (Text-to-Speech) tiếng Việt hoàn toàn offline (cục bộ) chất lượng cao. Ứng dụng tích hợp động cơ Piper và dữ liệu ngôn ngữ eSpeak-ng trực tiếp trên thiết bị di động.

Dưới đây là chi tiết các tính năng, cải tiến và sửa lỗi trong bản phát hành này.


🌟 Tính năng nổi bật

1. Động cơ Tổng hợp tiếng nói Cục bộ (Offline TTS Engine)

  • Tích hợp Piper & eSpeak-ng: Chạy trực tiếp mô hình Piper ONNX Runtime Mobile kết hợp với trình phân tích ngữ âm eSpeak-ng hoàn toàn offline trên iOS.
  • Tự động tải & Cache Mô hình: Tự động tải trước (prefetch) hoặc tự động tải về các tệp tin mô hình giọng nói (.onnx và cấu hình .json) từ máy chủ lưu trữ (Hugging Face / GitHub Releases) khi nhận được yêu cầu TTS và cache cục bộ trong sandbox của app.
  • Nhập mô hình từ bên ngoài (External Model Import): Hỗ trợ người dùng nhập thêm các tệp mô hình giọng nói bên ngoài trực tiếp từ ứng dụng File trên iPhone để mở rộng danh sách giọng đọc.

2. Bộ tiền xử lý văn bản Nâng cao (Advanced Text Preprocessor)

  • Xử lý Đa ngữ & Chuyển tự:
    • Tích hợp bộ chuyển tự tiếng Anh, từ viết tắt và tên riêng tiếng nước ngoài sang phát âm tiếng Việt.
    • Hỗ trợ chuyển đổi chữ tiếng Nhật (Hiragana, Katakana, Romaji) phục vụ cho các văn bản hỗn hợp.
  • Cải tiến Quy tắc Ngữ điệu Tiếng Việt:
    • Tự động chuẩn hóa số, ngày tháng, thời gian và ký tự đặc biệt.
    • Phát âm số 4 là "bốn" thay vì các cách phát âm không phù hợp khác, loại bỏ các lỗi dính chữ hoặc lỗi phân tích số thứ tự (ordinals) lỗi thời.
  • Lọc Từ đồng âm (Vietnamese Homographs): Tự động loại bỏ các từ đồng âm tiếng Việt khỏi từ điển tiếng Anh để tránh phát âm sai lệch.

3. Trình biên tập Từ điển ngay trên Ứng dụng (Dictionary Management UI)

  • Quản lý từ điển trực tiếp: Cung cấp giao diện trực quan cho phép người dùng thêm, sửa, xóa các từ trong danh sách viết tắt (acronyms.plist) và danh sách từ ngoại lệ (non-vietnamese-words.plist).
  • Định dạng Plist nhị phân: Chuyển đổi toàn bộ từ điển sang dạng Binary Plist giúp giảm kích thước bộ nhớ và tăng tốc độ đọc ghi.
  • Đồng bộ thông minh: Tự động chép từ điển mặc định từ Bundle vào thư mục Application Support khi khởi chạy lần đầu tiên.

4. HTTP API Server Nội bộ (Local Server)

  • Khởi chạy máy chủ HTTP nội bộ tại địa chỉ 127.0.0.1:17771 hỗ trợ chạy ngầm (Background task protection).
  • Các Endpoint API chính:
    • GET /health — Kiểm tra trạng thái hoạt động của máy chủ.
    • GET /v1/voices — Trả về danh sách các giọng nói có sẵn (bao gồm cả các giọng nói đã import từ ngoài).
    • POST /v1/models/prefetch — Tải trước các mô hình giọng nói được yêu cầu.
    • POST /v1/tts — Tổng hợp văn bản thành tệp tin âm thanh dạng sóng.
    • /logs — API kết xuất log hệ thống để phục vụ việc debug.

⚡ Cải tiến & Tối ưu hóa hiệu năng

  • Tránh Crash Watchdog trên iOS: Tối ưu hóa bộ tiền xử lý TextPreprocessor bằng cơ chế Single-pass Tokenization (quét mã một lượt) kết hợp tra cứu bảng băm với độ phức tạp thời gian $O(1)$. Loại bỏ hoàn toàn hiện tượng nghẽn luồng chính gây crash watchdog trên thiết bị thật.
  • Xử lý âm thanh chất lượng cao: Bổ sung bộ chia câu (sentence chunking), cắt bỏ khoảng lặng thừa (silence trimming), và chuẩn hóa âm lượng đỉnh (peak normalization).
  • Quản lý bộ nhớ an toàn: Loại bỏ hoàn toàn các trường hợp force unwrap không an toàn trên bộ đệm bộ nhớ của ONNX Runtime, sử dụng con trỏ chuỗi kiểu C kết thúc bằng ký tự null trong EspeakPhonemizer để đảm bảo tính toàn vẹn của dữ liệu.
  • Vô hiệu hóa Cache khi Cập nhật App: Kiểm tra phiên bản ứng dụng trong UserDefaults để tự động xóa/cập nhật bộ nhớ đệm từ điển cũ khi người dùng nâng cấp app.

🛠️ Trải nghiệm Người dùng & Giao diện (UI/UX)

  • Giao diện Dashboard trực quan: Theo dõi trạng thái hoạt động của máy chủ, danh sách mô hình và tiến trình tải mô hình với thanh tiến trình trực quan.
  • Bảng điều khiển cấu hình âm thanh:
    • Cung cấp thanh trượt độ chính xác cao (precision sliders) để tùy chỉnh tốc độ nói (speed).
    • Cho phép chỉnh khoảng dừng (pause duration) tùy ý cho từng loại dấu câu cụ thể.
  • Hỗ trợ thử nghiệm nhanh: Tích hợp phần Test TTS ngay tại màn hình chính giúp người dùng kiểm tra nhanh giọng đọc trên iPhone mà không cần gọi API từ thiết bị ngoài.
  • Nhật ký hệ thống tiện lợi: Bổ sung sheet hiển thị log chi tiết (AppLogger) trực tiếp trên UI và hỗ trợ nút xóa văn bản nhanh, ẩn bàn phím khi vuốt màn hình.