DuyHieu251005/NMHM_SpeechToText

Python

0

38 commits

updated Dec 28, 2025

See the code

README

Vietnamese Speech-to-Text Web Application

Python Flask PyTorch License

Đồ án Nhập môn Học máy - Trường ĐH Khoa học Tự nhiên, ĐHQG TP.HCM

Ứng dụng web chuyển đổi giọng nói tiếng Việt thành văn bản sử dụng 3 mô hình AI:

Mô hìnhWERMô tả
Wav2Vec211.28%Mô hình nhẹ, nhanh - Fine-tuned trên VIVOS
PhoWhisper32.89%Tối ưu cho tiếng Việt bởi VinAI
OpenAI Whisper~85%Mô hình đa ngôn ngữ (zero-shot)

Tính năng

  • Upload file audio (WAV, MP3, M4A, FLAC, WebM, OGG)
  • Ghi âm trực tiếp từ microphone
  • Chọn giữa 3 mô hình AI
  • Giao diện đẹp, thân thiện (Bootstrap 5)
  • Hỗ trợ drag & drop
  • Responsive trên mọi thiết bị

Cài đặt

1. Clone repository

git clone https://github.com/DuyHieu251005/NMHM_SpeechToText.git
cd NMHM_SpeechToText/app

2. Tạo môi trường ảo (khuyến nghị)

python -m venv venv

# Windows
venv\Scripts\activate

# Linux/Mac
source venv/bin/activate

3. Cài đặt dependencies

pip install -r requirements.txt

Lưu ý: Package imageio-ffmpeg sẽ tự động cài đặt FFmpeg bundled, không cần cài FFmpeg thủ công!

4. Chạy ứng dụng

python app.py

5. Truy cập ứng dụng

Mở trình duyệt và truy cập: http://localhost:5000

Yêu cầu hệ thống

Yêu cầuTối thiểuKhuyến nghị
Python3.8+3.10 hoặc 3.11
RAM8GB16GB
GPUKhông bắt buộcNVIDIA với CUDA
Dung lượng~5GB~10GB

Cài đặt FFmpeg (TÙY CHỌN)

Không bắt buộc! Ứng dụng đã sử dụng imageio-ffmpeg để xử lý audio tự động.

Nếu muốn cài đặt FFmpeg hệ thống để hỗ trợ thêm:

Windows (sử dụng winget):

winget install --id Gyan.FFmpeg -e --source winget

Linux (Ubuntu/Debian):

sudo apt update && sudo apt install ffmpeg

macOS:

brew install ffmpeg

Cài đặt CUDA (Tùy chọn - cho GPU NVIDIA)

Nếu bạn có GPU NVIDIA và muốn tăng tốc inference:

  1. Cài đặt CUDA Toolkit 11.8+
  2. Cài đặt PyTorch với CUDA:
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu118

Xử lý lỗi thường gặp

LỗiNguyên nhânGiải pháp
CUDA out of memoryGPU không đủ VRAMSet device = "cpu" trong app.py
No module named 'xxx'Thiếu thư việnpip install -r requirements.txt
Microphone không hoạt độngTrình duyệt chưa cấp quyềnNhấn 🔒 trên thanh địa chỉ → Cho phép Microphone
Model loading errorThiếu bộ nhớĐóng các ứng dụng khác, tăng RAM

Cấu trúc dự án

NMHM_SpeechToText/
├── app/
│   ├── app.py              # Flask backend
│   ├── requirements.txt    # Dependencies
│   └── templates/
│       └── index.html      # Giao diện web
├── Wav2Vec2/
│   ├── checkpoint-3645/    # Model fine-tuned (WER 11.28%)
│   └── *.py                # Scripts training/evaluation
├── PhoWhisper/
│   ├── phowhisper-finetuned-local/  # LoRA adapters
│   └── *.py                # Scripts training/evaluation
├── Whisper/
│   └── *.csv               # Kết quả đánh giá
├── report_final/           # Báo cáo LaTeX
└── README.md

Sử dụng

  1. Chọn mô hình: Dropdown menu để chọn Wav2Vec2, PhoWhisper, hoặc Whisper
  2. Upload file: Kéo thả hoặc click để chọn file audio
  3. Ghi âm: Chuyển sang tab "Ghi Âm" và nhấn nút 🎙️
  4. Chuyển đổi: Nhấn nút "Chuyển đổi thành văn bản"
  5. Kết quả: Văn bản sẽ hiển thị bên dưới, có thể sao chép

API Endpoints

MethodEndpointMô tả
GET/Trang chủ
POST/transcribeChuyển đổi audio → văn bản
GET/healthKiểm tra trạng thái server

Nhóm thực hiện

Họ tênMSSV
Đặng Anh Kiệt23127077
Phạm Minh Triết23127132
Trần Quang Phúc23127302
Kiều Duy Hiếu23127365

GVHD: Bùi Tiến Lên, Lê Nhựt Nam, Võ Nhật Tân

License

MIT License

DuyHieu251005/NMHM_SpeechToText

Python

0

38 commits

updated Dec 28, 2025

See the code

README

Vietnamese Speech-to-Text Web Application

Python Flask PyTorch License

Đồ án Nhập môn Học máy - Trường ĐH Khoa học Tự nhiên, ĐHQG TP.HCM

Ứng dụng web chuyển đổi giọng nói tiếng Việt thành văn bản sử dụng 3 mô hình AI:

Mô hìnhWERMô tả
Wav2Vec211.28%Mô hình nhẹ, nhanh - Fine-tuned trên VIVOS
PhoWhisper32.89%Tối ưu cho tiếng Việt bởi VinAI
OpenAI Whisper~85%Mô hình đa ngôn ngữ (zero-shot)

Tính năng

  • Upload file audio (WAV, MP3, M4A, FLAC, WebM, OGG)
  • Ghi âm trực tiếp từ microphone
  • Chọn giữa 3 mô hình AI
  • Giao diện đẹp, thân thiện (Bootstrap 5)
  • Hỗ trợ drag & drop
  • Responsive trên mọi thiết bị

Cài đặt

1. Clone repository

git clone https://github.com/DuyHieu251005/NMHM_SpeechToText.git
cd NMHM_SpeechToText/app

2. Tạo môi trường ảo (khuyến nghị)

python -m venv venv

# Windows
venv\Scripts\activate

# Linux/Mac
source venv/bin/activate

3. Cài đặt dependencies

pip install -r requirements.txt

Lưu ý: Package imageio-ffmpeg sẽ tự động cài đặt FFmpeg bundled, không cần cài FFmpeg thủ công!

4. Chạy ứng dụng

python app.py

5. Truy cập ứng dụng

Mở trình duyệt và truy cập: http://localhost:5000

Yêu cầu hệ thống

Yêu cầuTối thiểuKhuyến nghị
Python3.8+3.10 hoặc 3.11
RAM8GB16GB
GPUKhông bắt buộcNVIDIA với CUDA
Dung lượng~5GB~10GB

Cài đặt FFmpeg (TÙY CHỌN)

Không bắt buộc! Ứng dụng đã sử dụng imageio-ffmpeg để xử lý audio tự động.

Nếu muốn cài đặt FFmpeg hệ thống để hỗ trợ thêm:

Windows (sử dụng winget):

winget install --id Gyan.FFmpeg -e --source winget

Linux (Ubuntu/Debian):

sudo apt update && sudo apt install ffmpeg

macOS:

brew install ffmpeg

Cài đặt CUDA (Tùy chọn - cho GPU NVIDIA)

Nếu bạn có GPU NVIDIA và muốn tăng tốc inference:

  1. Cài đặt CUDA Toolkit 11.8+
  2. Cài đặt PyTorch với CUDA:
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu118

Xử lý lỗi thường gặp

LỗiNguyên nhânGiải pháp
CUDA out of memoryGPU không đủ VRAMSet device = "cpu" trong app.py
No module named 'xxx'Thiếu thư việnpip install -r requirements.txt
Microphone không hoạt độngTrình duyệt chưa cấp quyềnNhấn 🔒 trên thanh địa chỉ → Cho phép Microphone
Model loading errorThiếu bộ nhớĐóng các ứng dụng khác, tăng RAM

Cấu trúc dự án

NMHM_SpeechToText/
├── app/
│   ├── app.py              # Flask backend
│   ├── requirements.txt    # Dependencies
│   └── templates/
│       └── index.html      # Giao diện web
├── Wav2Vec2/
│   ├── checkpoint-3645/    # Model fine-tuned (WER 11.28%)
│   └── *.py                # Scripts training/evaluation
├── PhoWhisper/
│   ├── phowhisper-finetuned-local/  # LoRA adapters
│   └── *.py                # Scripts training/evaluation
├── Whisper/
│   └── *.csv               # Kết quả đánh giá
├── report_final/           # Báo cáo LaTeX
└── README.md

Sử dụng

  1. Chọn mô hình: Dropdown menu để chọn Wav2Vec2, PhoWhisper, hoặc Whisper
  2. Upload file: Kéo thả hoặc click để chọn file audio
  3. Ghi âm: Chuyển sang tab "Ghi Âm" và nhấn nút 🎙️
  4. Chuyển đổi: Nhấn nút "Chuyển đổi thành văn bản"
  5. Kết quả: Văn bản sẽ hiển thị bên dưới, có thể sao chép

API Endpoints

MethodEndpointMô tả
GET/Trang chủ
POST/transcribeChuyển đổi audio → văn bản
GET/healthKiểm tra trạng thái server

Nhóm thực hiện

Họ tênMSSV
Đặng Anh Kiệt23127077
Phạm Minh Triết23127132
Trần Quang Phúc23127302
Kiều Duy Hiếu23127365

GVHD: Bùi Tiến Lên, Lê Nhựt Nam, Võ Nhật Tân

License

MIT License