fixed a bug

This commit is contained in:
2026-08-18 20:54:42 +08:00
parent f5c6717186
commit 1fb3146590
5 changed files with 238 additions and 123 deletions

View File

@@ -22,48 +22,61 @@ def _silence(seconds: float) -> np.ndarray:
return np.zeros(int(seconds * SAMPLE_RATE))
def test_document_from_transcript_splits_sentences_at_periods(tmp_path):
def test_document_from_transcript_splits_sentences_at_punctuation(tmp_path):
samples = np.concatenate(
[
_speech(2.0),
_silence(0.2),
_speech(2.0),
_silence(0.2),
_speech(1.6),
_speech(8.0),
_speech(1.5),
_speech(10.5),
_speech(4.0),
]
).astype(np.float32)
wav = tmp_path / "audio.wav"
wav.write_bytes(_wav_bytes(samples, SAMPLE_RATE))
transcript = Transcript(
text="Hello world. Good day everyone. Nice to meet you.",
text=(
"So I've been single for about four years now and I find it hard to meet "
"a guy especially in California. I've tried dating apps, I've met friends "
"through friends, I've done online dating and I just feel like most of the "
"guys that I meet aren't serious about a relationship."
),
segments=[
TranscriptionSegment(
start_seconds=0.0,
end_seconds=2.0,
text="Hello world.",
words=[
WordTimestamp(0.0, 0.6, "Hello"),
WordTimestamp(0.7, 1.5, "world."),
],
end_seconds=8.0,
text=(
"So I've been single for about four years now and I find it hard "
"to meet a guy especially in"
),
),
TranscriptionSegment(
start_seconds=2.2,
end_seconds=5.5,
text="Good day everyone. Nice to meet you.",
words=[
WordTimestamp(2.2, 2.8, "Good"),
WordTimestamp(2.9, 3.5, "day"),
WordTimestamp(3.6, 4.2, "everyone."),
WordTimestamp(4.4, 4.9, "Nice"),
WordTimestamp(5.0, 5.5, "you."),
],
start_seconds=8.0,
end_seconds=9.5,
text="California.",
words=[WordTimestamp(8.0, 9.5, "California.")],
),
TranscriptionSegment(
start_seconds=9.5,
end_seconds=20.0,
text=(
"I've tried dating apps, I've met friends through friends, "
"I've done online dating"
),
),
TranscriptionSegment(
start_seconds=20.0,
end_seconds=24.0,
text=(
"and I just feel like most of the guys that I meet aren't serious "
"about a relationship."
),
),
],
)
document = document_from_transcript(
video_hash=VIDEO_HASH,
duration_ms=6000,
duration_ms=24000,
transcript=transcript,
language="en",
audio_path=wav,
@@ -71,14 +84,18 @@ def test_document_from_transcript_splits_sentences_at_periods(tmp_path):
assert document.algorithm_version == MOSS_ALGORITHM_VERSION
assert [sentence.text for sentence in document.sentences] == [
"Hello world.",
"Good day everyone.",
"Nice to meet you.",
(
"So I've been single for about four years now and I find it hard to meet "
"a guy especially in California."
),
(
"I've tried dating apps, I've met friends through friends, I've done "
"online dating and I just feel like most of the guys that I meet aren't "
"serious about a relationship."
),
]
assert document.sentences[0].start_ms == 0
assert document.sentences[0].end_ms == 1500
assert document.sentences[1].start_ms == 2200
assert document.sentences[1].end_ms == 4200
assert document.sentences[2].start_ms == 4200
assert document.sentences[2].end_ms == 5500
assert document.sentences[0].end_ms == 9500
assert document.sentences[1].start_ms == 9500
assert document.sentences[1].end_ms == 24000
assert all(sentence.reference_speech_duration_ms > 0 for sentence in document.sentences)