Skip to content

Commit

Permalink
Use , character instead of . for SRT output. (#197)
Browse files Browse the repository at this point in the history
The SRT format uses the decimal comma character as the fractional separator rather than the decimal point character. Adjust format_timestamp and write_srt to specify the separator character.

See https://en.wikipedia.org/wiki/SubRip#:~:text=the%20fractional%20separator%20used%20is%20the%20comma%2C%20since%20the%20program%20was%20written%20in%20france.
  • Loading branch information
codebycaleb authored Sep 30, 2022
1 parent 7cb4cc2 commit 60132ad
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions whisper/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def compression_ratio(text) -> float:
return len(text) / len(zlib.compress(text.encode("utf-8")))


def format_timestamp(seconds: float, always_include_hours: bool = False):
def format_timestamp(seconds: float, always_include_hours: bool = False, decimal_marker: str = '.'):
assert seconds >= 0, "non-negative timestamp expected"
milliseconds = round(seconds * 1000.0)

Expand All @@ -41,7 +41,7 @@ def format_timestamp(seconds: float, always_include_hours: bool = False):
milliseconds -= seconds * 1_000

hours_marker = f"{hours}:" if always_include_hours or hours > 0 else ""
return f"{hours_marker}{minutes:02d}:{seconds:02d}.{milliseconds:03d}"
return f"{hours_marker}{minutes:02d}:{seconds:02d}{decimal_marker}{milliseconds:03d}"


def write_txt(transcript: Iterator[dict], file: TextIO):
Expand Down Expand Up @@ -79,8 +79,8 @@ def write_srt(transcript: Iterator[dict], file: TextIO):
# write srt lines
print(
f"{i}\n"
f"{format_timestamp(segment['start'], always_include_hours=True)} --> "
f"{format_timestamp(segment['end'], always_include_hours=True)}\n"
f"{format_timestamp(segment['start'], always_include_hours=True, decimal_marker=',')} --> "
f"{format_timestamp(segment['end'], always_include_hours=True, decimal_marker=',')}\n"
f"{segment['text'].strip().replace('-->', '->')}\n",
file=file,
flush=True,
Expand Down

0 comments on commit 60132ad

Please sign in to comment.