Làm ứng dụng giọng nói tiếng Việt: STT, LLM, TTS chung một API key
05/10/2026

Yêu cầu nghe rất gọn: khách mở app, nói một câu kiểu “mai tám giờ em ghé thay nhớt được không anh”, rồi app tự hiểu, tự giữ chỗ và trả lời bằng giọng nói. Không form, không dropdown. Giả sử bạn là lập trình viên duy nhất của một chuỗi tiệm sửa xe máy và yêu cầu đó vừa rơi xuống bàn mình. Nghe thì to tát, nhưng một ứng dụng giọng nói tiếng Việt như vậy thực chất là ba lời gọi API nối đuôi nhau: nghe, nghĩ, nói.

Điều làm việc này dễ thở hơn trên s2speech là cả ba khâu nằm chung một tài khoản, một API key, một số dư: Speech-to-Text, mô hình ngôn ngữ aivision-L1.0 và Text-to-Speech. Một chỗ cấp quyền, một chỗ theo dõi chi phí. Phần dưới là lộ trình chúng tôi gợi ý cho người trực tiếp gõ code, có cả ý kiến chứ không chỉ liệt kê tính năng.
Trước khi gõ dòng code nào
Hãy đi ghi âm. Không phải giọng bạn đọc to trong phòng làm việc, mà giọng thật của khách: người nói nhanh, chú lớn tuổi hay ngập ngừng, cô nhân viên văn phòng chèn “book”, “confirm” vào giữa câu, người miền Trung, người miền Tây. Gom vài chục câu như vậy thành một bộ thử nhỏ. Mọi quyết định phía sau, từ chọn cách nghe đến viết prompt, đều nên được kiểm trên bộ này.
Rồi tạo tài khoản, lấy API key. Theo s2speech.com, hiện mỗi tài khoản có $10 dùng miễn phí mỗi ngày, không cần thẻ, nên giai đoạn thử có thể bắt đầu ngay mà chưa phải nạp tiền. Khi cần nạp thì chuyển khoản ngân hàng, từ 50.000đ.
Khâu nghe: streaming hay file?
Speech-to-Text của s2speech có hai cửa vào. Chọn nhầm cửa là nguồn gốc của rất nhiều app “chạy được nhưng chậm”.
- Streaming qua WebSocket cho hội thoại trực tiếp. Âm thanh gửi lên từng mẩu nhỏ, chữ trả về trong lúc người dùng còn đang nói. Dùng khi app cần phản hồi tức thì, như trợ lý đặt lịch.
- REST cho file hoặc URL khi người dùng gửi tin nhắn thoại, hoặc khi bạn xử lý bản ghi sau cuộc gọi. Đơn giản hơn, dễ gửi lại khi rớt mạng.
Một chi tiết hay bị bỏ qua: kết quả có mốc thời gian theo từng từ. Nó hữu ích hơn bạn tưởng, từ tô sáng chữ đang phát trên phụ đề đến tua đúng đoạn khách nói “đổi lịch” khi cần nghe lại. STT cũng được làm để hiểu tiếng Việt chen tiếng Anh, số, tiền, ngày tháng và nhiều giọng vùng miền. Nhưng đừng tin lời giới thiệu nào, kể cả của chúng tôi: chạy bộ thử của bạn rồi tự nhìn kết quả.
Khâu nghĩ: cho mô hình một cái khung
aivision-L1.0 có API tương thích OpenAI. Nếu backend đã dùng thư viện client quen thuộc, phần lớn công việc chỉ là đổi base URL, API key và tên mô hình. Mô hình làm được tóm tắt, hỏi đáp, biên bản, dịch, phân tích hội thoại, có streaming, dùng cho cả tiếng Việt lẫn tiếng Anh.
Với app đặt lịch, đừng để mô hình nói chuyện tự do. Vài nguyên tắc giúp mô hình bám đúng việc:
- System prompt ngắn và cụ thể: tiệm mở cửa khung giờ nào, có những dịch vụ gì, khi nào phải hỏi lại khách.
- Yêu cầu mô hình trả về hai thứ: dữ liệu có cấu trúc (dịch vụ, ngày, giờ) cho phần đặt lịch và một câu ngắn để đọc cho khách nghe. Backend kiểm tra dữ liệu đó trước khi ghi vào lịch thật.
- Bật streaming để câu trả lời chảy sang khâu nói ngay khi có những chữ đầu.
- Giữ câu trả lời ngắn. Nghe khác đọc: ba câu dài trên màn hình thì ổn, ba câu dài qua loa điện thoại thì khách quên ngay câu mở đầu.
Khâu nói: giọng đọc phát ngay từ những chữ đầu
Text-to-Speech của s2speech có giọng Việt và Anh tự nhiên, phát theo luồng ngay từ những chữ đầu. Ghép với streaming của mô hình, khách nghe được câu trả lời trong lúc phần đuôi còn đang được tạo. Nếu một ngày app nối vào tổng đài, đã có sẵn đầu ra 8 kHz G.711 μ-law/A-law cho Asterisk, FreeSWITCH. Còn nhân bản giọng từ 20 giây đến 2 phút ghi âm thì chỉ làm khi chủ giọng đồng ý. Đó là điều kiện, không phải tùy chọn.
Ba lỗi kinh điển của bản demo đầu
- Nhét API key vào app di động. Đừng. Key nằm ở backend, app chỉ nói chuyện với server của bạn. Key bị lộ là số dư của bạn thành của người khác.
- Không đọc lại thông tin quan trọng. “Dạ em giữ chỗ tám giờ sáng mai, thay nhớt, đúng không anh?” Một câu xác nhận rẻ hơn rất nhiều so với một ông khách đến nhầm giờ.
- Chỉ thử trong phòng máy lạnh. Ra lề đường, bật quạt, mở nhạc. Theo số liệu nội bộ AIVISION công bố, tỉ lệ lỗi từ trung bình trên bốn bộ kiểm thử tiếng Việt là 11,84%, thấp nhất 4,58% trên bộ giọng đọc FLEURS-vi và lên tới 20,29% trên bộ cuộc họp doanh nghiệp thật. Môi trường càng lộn xộn, app càng cần được thiết kế để sửa sai.
Danh sách dịch vụ và các ứng dụng dựng sẵn có ở trang s2speech trên aivision.vn; còn tạo tài khoản, lấy key và bắt đầu thử thì vào s2speech.com. Nếu bạn chỉ cần ghi âm, chép lời, làm biên bản mà chưa muốn viết code, AI Voice Note là ứng dụng có sẵn làm đúng việc đó, kèm cả hỏi đáp trên nội dung đã ghi.
Còn tiệm sửa xe? Phiên bản đầu không cần thông minh. Nó chỉ cần nghe đúng giờ hẹn, hỏi lại khi không chắc, và đừng bao giờ hứa thay nhớt lúc tiệm đã đóng cửa.