From bb52b0c44e5580a5f2af0f63e5c67120dcfb7df6 Mon Sep 17 00:00:00 2001 From: heimoshuiyu Date: Wed, 15 Nov 2023 16:02:05 +0800 Subject: [PATCH] fix: json, text reponse format --- whisper_fastapi.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/whisper_fastapi.py b/whisper_fastapi.py index aa7039e..29ab0ab 100644 --- a/whisper_fastapi.py +++ b/whisper_fastapi.py @@ -58,8 +58,12 @@ def generate_tsv(result: dict[str, list[Any]]): def generate_srt(result: dict[str, list[Any]]): srt = "" for i, segment in enumerate(result["segments"], start=1): - start_time = format_timestamp(segment["start"]) - end_time = format_timestamp(segment["end"]) + start_time = format_timestamp( + segment["start"], decimal_marker=",", always_include_hours=True + ) + end_time = format_timestamp( + segment["end"], decimal_marker=",", always_include_hours=True + ) text = segment["text"] srt += f"{i}\n{start_time} --> {end_time}\n{text}\n\n" return srt @@ -234,13 +238,16 @@ async def transcription( ) if response_format == "json": - return Response(content=result, media_type="application/json") + return result elif response_format == "text": - return Response(content='\n'.join(s['text'] for s in result['segments']), media_type="plain/text") + return Response( + content="\n".join(s["text"] for s in result["segments"]), + media_type="plain/text", + ) elif response_format == "tsv": - return Response(content=generate_tsv(result), media_type='plain_text') + return Response(content=generate_tsv(result), media_type="plain_text") elif response_format == "srt": - return Response(content=generate_srt(result), media_type='plain_text') + return Response(content=generate_srt(result), media_type="plain_text") elif response_format == "vtt": return generate_vtt(result)