Spaces:
Sleeping
Sleeping
| from app.services.pause_detection_service import ( | |
| MIN_PAUSE_MS, | |
| Pause, | |
| PauseDetectionService, | |
| _pause_symbol, | |
| ) | |
| from app.services.transcription_service import STTSegment | |
| def test_pause_symbol_bands_are_conservative(): | |
| assert _pause_symbol(MIN_PAUSE_MS - 0.1) is None | |
| assert _pause_symbol(MIN_PAUSE_MS) == "..." | |
| assert _pause_symbol(1799.9) == "..." | |
| assert _pause_symbol(1800.0) == "......" | |
| assert _pause_symbol(2999.9) == "......" | |
| assert _pause_symbol(3000.0) == "........." | |
| def test_single_segment_ignores_short_internal_pause(): | |
| service = PauseDetectionService.__new__(PauseDetectionService) | |
| transcript = "Hello there" | |
| segments = [STTSegment(text=transcript, start_ms=0.0, end_ms=2000.0)] | |
| pauses = [ | |
| Pause( | |
| start_ms=500.0, | |
| end_ms=1300.0, | |
| duration_ms=800.0, | |
| symbol="...", | |
| ) | |
| ] | |
| result = service.build_pause_text(transcript, segments, pauses) | |
| assert result.pause_text == transcript | |
| assert result.inserted_pause_count == 0 | |
| assert result.insertion_strategy == "none" | |
| def test_single_segment_inserts_only_when_pause_is_long_enough(): | |
| service = PauseDetectionService.__new__(PauseDetectionService) | |
| transcript = "Hello there" | |
| segments = [STTSegment(text=transcript, start_ms=0.0, end_ms=2000.0)] | |
| pauses = [ | |
| Pause( | |
| start_ms=500.0, | |
| end_ms=1900.0, | |
| duration_ms=1400.0, | |
| symbol="...", | |
| ) | |
| ] | |
| result = service.build_pause_text(transcript, segments, pauses) | |
| assert result.pause_text == "Hello... there" | |
| assert result.inserted_pause_count == 1 | |
| assert result.insertion_strategy == "single_segment" | |
| def test_multi_segment_inserts_only_between_segments(): | |
| service = PauseDetectionService.__new__(PauseDetectionService) | |
| transcript = "Hello there world" | |
| segments = [ | |
| STTSegment(text="Hello there", start_ms=0.0, end_ms=1500.0), | |
| STTSegment(text="world", start_ms=3000.0, end_ms=3600.0), | |
| ] | |
| pauses = [ | |
| Pause( | |
| start_ms=400.0, | |
| end_ms=1400.0, | |
| duration_ms=1000.0, | |
| symbol="...", | |
| ), | |
| Pause( | |
| start_ms=1500.0, | |
| end_ms=3000.0, | |
| duration_ms=1500.0, | |
| symbol="...", | |
| ), | |
| ] | |
| result = service.build_pause_text(transcript, segments, pauses) | |
| assert result.pause_text == "Hello there... world" | |
| assert result.inserted_pause_count == 1 | |
| assert result.insertion_strategy == "segment_boundary" | |