Skip to content

CODERPTIT/Project_NITS

Repository files navigation

🎙️ Vietnamese STT (Speech-to-Text) API - Dự án Lab NITS

Dự án triển khai và đánh giá năng lực của Mô hình Trí tuệ nhận tạo Wav2Vec2 trong bài toán nhận diện và chuyển đổi giọng nói Tiếng Việt sang văn bản (Speech-to-Text). Đặc biệt tối ưu độ trễ (latency) cho các nền tảng trả lời câu hỏi tự động.


📦 Dự_án_Lab_NITS
 ┣ 📂 configs          # Cấu hình (.yaml, .env)
 ┣ 📂 src              # Mã nguồn lõi (API, Core AI)
 ┃ ┣ 📂 api            # Server FastAPI
 ┃ ┗ 📂 core           # Logic AI & Post-processing
 ┣ 📂 tools            # Công cụ bổ trợ (Benchmark, Tester)
 ┣ 📂 data             # Dữ liệu (Audio, CSV)
 ┣ 📜 main.py           # File chạy chính của server
 ┣ 📜 requirements.txt  # Thư viện phụ thuộc
 ┗ 📜 .gitignore        # Cấu hình Git

🚀 1. Hướng dẫn cài đặt (Installation)

Yêu cầu hệ thống: Python 3.9+

B1. Khởi tạo môi trường ảo (Khuyên dùng)

python -m venv venv
venv\Scripts\activate     # Đối với Windows
source venv/bin/activate  # Đối với macOS/Linux

B2. Cài đặt toàn bộ thư viện cần thiết

pip install -r requirements.txt

(Hệ thống sẽ tự động tải các gói liên quan đến FastAPI, Torch, Transformes, Graido, v.v...)


💻 2. Khởi động AI Server API

Dịch vụ Nhận diện Giọng nói được xây dựng trên bộ khung Web FastAPI mạnh mẽ. Nó lắng nghe ảnh âm thanh gửi tới và giải mã qua GPU/CPU với độ trễ tối ưu < 1s.

python main.py
  • Máy chủ sẽ chạy mặc định tại cổng mạng local: http://127.0.0.1:8000
  • Trạng thái truyền Tín Hiệu: Server-Sent Events (SSE) Stream.

🎯 3. Truy cập Trải nghiệm (Web UI)

Để dễ dàng Test giọng nói trực tiếp qua Microphone mà không cần kĩ năng Code, dự án cung cấp Giao diện tương tác dựa trên Gradio.

(Chắc chắn rằng bạn đã Mở API Server ở mục số 2 trước) Mở 1 Terminal mới và gõ:

python tools/live_tester.py

Hệ thống sẽ tự động cung cấp đường link Web ảo, ví dụ http://127.0.0.1:7860.

Mẹo chia sẻ Online ra mạng Internet (Dành cho Developer/QA):

  1. Tunnel Giao diện: npx localtunnel --port 7860 (Gửi cho Tester test)
  2. Tunnel API gốc: ngrok http 8000 (Gửi thẳng cho lập trình viên Backend khác test Code Postman)

🔬 4. Đánh giá tự động Benchmark (Quy hoạch động)

Sử dụng kịch bản benmark.py để quét qua hàng loạt đoạn ghi âm File Audio có sẵn và lập Báo cáo Khoa Học về Độ Chính Xác. Hệ thống sẽ áp dụng thuật toán Levenshtein Distance (Thuật toán Quy hoạch động DP) để so sánh file mẫu với kết quả của AI.

python tools/benchmark.py

Chỉ số đánh giá (Metrics) đạt được bao gồm:

  • WER (Word Error Rate): Tỷ lệ lỗi mặt Chữ vựng
  • CER (Character Error Rate): Tỷ lệ lỗi mặt Ký tự cái
  • E2E Latency: Độ trễ Toàn trình khép kín
  • Kết quả sẽ được xuất bảng ra tệp benchmark_results.csv.

⚙️ 5. Thay đổi mô hình AI (Custom Finetuning Models)

Nếu có nhu cầu đắp thêm dữ liệu để huấn luyện lên thành các phiên bản tốt hơn, hoặc đổi sang mô hình ngôn ngữ Lịch sử riêng:

Trong file server.py, đổi đường dẫn chỉ về thư mục Folder File của bạn, hoặc ID từ hệ thống lưu trữ HuggingFace:

# Ví dụ: Mô hình Finetuned đẩy lên kho
MODEL_ID = "ten-to-chuc-nits/ai-mo-hinh-version2"
processor = Wav2Vec2Processor.from_pretrained(MODEL_ID)
model = Wav2Vec2ForCTC.from_pretrained(MODEL_ID).to(device)

-- By NITS Lab Team - 2026

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors