Spaces:
Sleeping
Sleeping
| # Testing the TTS API | |
| ## How to Run Tests | |
| ### 1. Start the API server | |
| ```bash | |
| python api.py | |
| ``` | |
| The API will start on `http://localhost:7860` | |
| ### 2. In another terminal, run the test suite | |
| ```bash | |
| python test_api.py | |
| ``` | |
| ## What the Tests Check | |
| The test suite validates: | |
| 1. **Health Check** - Verifies the API is running and returns model information | |
| 2. **Speakers Endpoint** - Confirms available speakers are listed | |
| 3. **Input Validation** - Tests error handling for: | |
| - Empty text | |
| - Invalid speakers | |
| 4. **Audio Generation** - Tests TTS generation with: | |
| - Different speakers (Divya, Rani, Generic Female, etc.) | |
| - Urdu text input | |
| - Audio quality validation (format, duration, size) | |
| 5. **Audio Output** - Saves generated audio files to `test_outputs/` for manual inspection | |
| ## Test Output | |
| Each test run generates: | |
| - Console output with test results | |
| - WAV audio files in `test_outputs/` directory for listening/verification | |
| Example output: | |
| ``` | |
| ============================================================ | |
| TTS API Test Suite | |
| ============================================================ | |
| 1. Testing health check... | |
| ✓ Health check passed | |
| Available speakers: ['Divya', 'Rani', 'Rohit', 'Aman', 'Generic Female', 'Generic Male'] | |
| Sample rate: 24000 Hz | |
| 2. Testing speakers endpoint... | |
| ✓ Speakers endpoint passed | |
| Speakers: ['Divya', 'Rani', 'Rohit', 'Aman', 'Generic Female', 'Generic Male'] | |
| 3. Testing input validation... | |
| ✓ Empty text validation passed | |
| ✓ Invalid speaker validation passed | |
| 4. Testing TTS generation with different speakers... | |
| ✓ TTS generation successful | |
| Text: سلام دنیا | |
| Speaker: Divya | |
| Audio shape: (123456,) | |
| Sample rate: 24000 Hz | |
| Duration: 5.14 seconds | |
| Audio size: 246.91 KB | |
| Saved to: test_outputs/test_Divya_12_chars.wav | |
| ``` | |
| ## Testing with CUDA | |
| If you want to verify CUDA is being used: | |
| 1. Check the API startup logs - it should show: | |
| ``` | |
| Using device: cuda | |
| GPU: NVIDIA GeForce RTX 4090 (or your GPU name) | |
| ``` | |
| 2. Monitor GPU usage while tests run: | |
| ```bash | |
| nvidia-smi | |
| ``` | |
| ## Manual Testing | |
| You can also test manually with curl: | |
| ```bash | |
| curl -X POST "http://localhost:7860/tts" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{ | |
| "text": "سلام دنیا", | |
| "speaker": "Divya", | |
| "pitch": "Moderate", | |
| "rate": "Moderate" | |
| }' \ | |
| --output test_audio.wav | |
| ``` | |
| Then play the audio file to verify quality. | |