Spaces:
Sleeping
Sleeping
File size: 2,576 Bytes
2e818da | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | 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"
|