Ứng dụng di động · React Native
Hadi
App ghi âm buổi giảng và hiển thị phụ đề dịch hai chiều Hàn/Nhật ↔ Việt theo thời gian thực, lưu offline-first rồi đồng bộ sau buổi học.
- Nền tảng
- Mobile
- Trạng thái
- Đang chạy production
- Công nghệ
- React Native · Expo · TypeScript · Firebase · Soniox · Next.js · SQLite

Bài toán
Người học tiếng Hàn, Nhật cần phụ đề dịch theo thời gian thực trong buổi giảng kèm ghi chú có mốc thời gian. Đa số app dịch giọng nói chỉ hỗ trợ một chiều, độ trễ cao hoặc không lưu lại được bài học.
Lựa chọn kỹ thuật
- 01
Điện thoại stream âm thanh thẳng tới Soniox stt-rt-v5 qua WebSocket thô, dùng khóa tạm dùng một lần do Cloud Function cấp
- Lý do
- Khóa gốc của nhà cung cấp không bao giờ được nằm trong client. Khóa tạm chỉ có quyền phiên âm và hết hạn sau 300 giây.
- Đánh đổi
- Soniox là nhà cung cấp duy nhất trên đường ghi âm: nếu nó ngừng, ghi âm và dịch realtime cũng ngừng, nên bắt buộc có cảnh báo số dư và giám sát lỗi.
- 02
Mọi xử lý AI hậu kỳ chạy trong Cloud Functions: tóm tắt, dịch lại, nhãn lịch sự và tra chữ Hán
- 03
Offline-first: buổi học lưu trong expo-sqlite, đồng bộ Firestore đa thiết bị sau mỗi buổi
- 04
Không lưu âm thanh, chỉ lưu transcript và bản dịch; Firestore security rules chặn mọi truy cập chéo giữa người dùng
- 05
Gói design token dùng chung kèm test sẽ đỏ nếu có màu viết cứng và kiểm tra tương phản WCAG AA bằng số trên 56 cặp màu
Kiến trúc
- Giọng nói
- Soniox stt-rt-v5 (WebSocket, khóa tạm)
- Phụ đề song ngữ realtime
- expo-sqlite (offline)
- Đồng bộ Firestore
- Cloud Functions: tóm tắt và dịch lại
Dịch vụ hỗ trợ
- Lưu trữ cục bộ
- expo-sqlite
- Đồng bộ và dữ liệu
- Firestore
- Xác thực
- Firebase Auth (Apple, Email)
- Logic phía server
- Cloud Functions
- Thanh toán
- Apple in-app purchase, xác minh ở server
Đã bàn giao
- Phụ đề song ngữ realtime Hàn/Nhật ↔ Việt trên cùng một socket.
- Lưu offline-first bằng expo-sqlite, đồng bộ Firestore đa thiết bị.
- Website giới thiệu xây bằng Next.js.
- Hadi Live, tiện ích Chrome tạo phụ đề cho âm thanh của tab (đang phát triển).
- Đang chạy production, app phiên bản 1.3.2.
Thông tin thêm
- ngôn ngữ
- 3
- phiên bản
- 1.3.2
- commit
- 1.800+
- file test
- 500+