5.9 KiB
5.9 KiB
Hướng Dẫn Kiểm Thử SonicForge Studio
✅ Trạng Thái Hoàn Thành
Đã Hoàn Thành
- ✅ Cấu trúc thư mục - Toàn bộ kiến trúc app/
- ✅ Docker Configuration - Dockerfile + docker-compose.yml
- ✅ FastAPI Gateway - main.py, config.py, API endpoints
- ✅ Core DSP Engine - analyzer.py, dsp_utils.py, audio_editor.py
- ✅ Celery Workers - worker.py với task definitions
- ✅ Frontend UI - index.html với đầy đủ Web Audio API
- ✅ Python Syntax - Tất cả files đã validate
Tính Năng Đã Triển Khai
Frontend (index.html)
- 🌊 Waveform visualization với HTML5 Canvas
- ⏯️ Audio playback controls (Play/Pause/Stop)
- 🔊 Real-time volume control với gain node
- 📍 Marker system với drag & drop
- 🎯 Client-side Zero-Crossing detection
- 💾 WAV Encoder (8/16/24-bit PCM)
- 📤 File upload với progress tracking
- 📊 Real-time status logging
Backend API
POST /api/v1/audio/upload- Upload audio filesGET /api/v1/audio/tasks/{task_id}- Check task statusPOST /api/v1/audio/edit- Apply server-side editingGET /api/v1/audio/download/{file_id}- Download processed files
Core DSP Modules
- analyzer.py - Librosa BPM/Beat tracking với Dynamic Programming
- dsp_utils.py - Zero-crossing detection, Micro-fading
- audio_editor.py - Cut, Loop, Fade, Volume operations
🚀 Cách Chạy Hệ Thống
Option 1: Docker (Khuyến Nghị)
# Build và khởi động tất cả services
docker compose up --build
# Chạy ở background
docker compose up -d --build
# Xem logs
docker compose logs -f
# Dừng services
docker compose down
Truy cập: http://localhost:8000
Option 2: Local Development
# 1. Cài đặt Python dependencies
pip install -r requirements.txt
# 2. Khởi động Redis (terminal riêng)
redis-server
# 3. Khởi động FastAPI (terminal riêng)
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
# 4. Khởi động Celery Worker (terminal riêng)
celery -A app.tasks.worker.celery_app worker --loglevel=info
🧪 Kịch Bản Kiểm Thử
Test 1: Basic Audio Loading
- Mở http://localhost:8000
- Click "Choose File" và chọn file audio (MP3/WAV)
- File sẽ load và hiển thị waveform
- Kiểm tra thời gian hiển thị đúng
Test 2: Playback Controls
- Load audio file
- Click Play - audio phát
- Click Pause - audio tạm dừng
- Click Play lại - tiếp tục từ vị trí pause
- Click Stop - reset về đầu
Test 3: Volume Control
- Load và play audio
- Kéo slider Volume từ -20dB đến +20dB
- Kiểm tra âm lượng thay đổi real-time
Test 4: Server Upload & Analysis
- Load audio file
- Click "Upload to Server"
- Đợi upload hoàn tất (hiển thị file_id)
- Click "Analyze Audio"
- Kiểm tra kết quả BPM, beats, bars
Test 5: Zero-Crossing Detection
- Load audio file với waveform hiển thị
- Click "Add Marker" (tạo marker tại vị trí current time)
- Click "Snap to Zero-Crossing"
- Marker sẽ di chuyển đến điểm zero-crossing gần nhất
- Kiểm tra status log để xem thời gian chính xác
Test 6: Server-side Editing
- Upload file lên server
- Add 2 markers (start/end cut points)
- Snap markers to zero-crossing
- Điều chỉnh:
- Loop Count: 2
- Fade In: 500ms
- Fade Out: 500ms
- Volume: +3dB
- Click "Apply Edit (Server)"
- Đợi processing complete
- Download file đã edit
Test 7: WAV Export (Client-side)
- Load audio file
- Chọn bit depth (8/16/24-bit)
- Click "Export WAV (Client)"
- File sẽ download tự động
- Mở file bằng audio player để kiểm tra
🐛 Known Issues
Docker Environment
- Module
celery,redis,librosa,pydub,soundfilechưa được cài trong môi trường hiện tại - Giải pháp: Sử dụng Docker để chạy (tất cả dependencies đã có trong Dockerfile)
Browser Compatibility
- Web Audio API yêu cầu user interaction trước khi play
- Safari có thể cần format audio khác
- Giải pháp: Test trên Chrome/Firefox
📋 Checklist Kiểm Thử Đầy Đủ
- Docker build thành công
- Redis container chạy
- FastAPI web container chạy
- Celery worker container chạy
- Truy cập http://localhost:8000 thành công
- Load audio file và hiển thị waveform
- Play/Pause/Stop hoạt động
- Volume control real-time
- Upload file lên server
- Server analysis trả về BPM/beats
- Zero-crossing detection hoạt động
- Server editing hoàn tất
- Download file processed
- Export WAV client-side
- Kiểm tra không có audio glitch/pop
🔍 Debugging
Kiểm tra logs
# Web server logs
docker compose logs web
# Celery worker logs
docker compose logs worker
# Redis logs
docker compose logs redis
# All services
docker compose logs -f
Kiểm tra containers
# List containers
docker compose ps
# Enter container shell
docker compose exec web bash
docker compose exec worker bash
Kiểm tra storage
# Uploaded files
ls -la app/storage/uploads/
# Processed files
ls -la app/storage/processed/
📊 Performance Metrics
Mục Tiêu
- Upload file 10MB: < 5s
- BPM Analysis: < 10s
- Zero-crossing detection: < 100ms
- Waveform rendering: < 500ms
- Audio playback latency: < 50ms
🎯 Next Steps
Sau khi test cơ bản hoạt động:
- Stress test với file > 100MB
- Concurrent user testing
- Memory leak detection
- Audio quality testing (THD, SNR)
- Cross-browser compatibility
- Mobile responsive testing
📞 Support
Nếu gặp vấn đề, kiểm tra:
- Docker daemon đang chạy
- Port 8000, 6379 không bị chiếm
- Đủ RAM (tối thiểu 4GB)
- FFmpeg installed trong container
- Browser console không có errors