From 068d30e7349caa57aef0088f876b70ffbc4912b0 Mon Sep 17 00:00:00 2001 From: Sandra Rodgers Date: Mon, 20 Nov 2023 11:47:02 -0600 Subject: [PATCH] adds captions library and example --- examples/captions/main.py | 55 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 examples/captions/main.py diff --git a/examples/captions/main.py b/examples/captions/main.py new file mode 100644 index 00000000..ed2f6f2f --- /dev/null +++ b/examples/captions/main.py @@ -0,0 +1,55 @@ +# Copyright 2023 Deepgram SDK contributors. All Rights Reserved. +# Use of this source code is governed by a MIT license that can be found in the LICENSE file. +# SPDX-License-Identifier: MIT + +import asyncio +import os +import json +from dotenv import load_dotenv +from deepgram_captions import DeepgramConverter, webvtt, srt + +from deepgram import DeepgramClient, PrerecordedOptions + +load_dotenv() + +API_KEY = os.getenv('DG_API_KEY') +AUDIO_URL = { + "url": "https://static.deepgram.com/examples/Bueller-Life-moves-pretty-fast.wav"} + +options: PrerecordedOptions = { + "model": "nova", + "smart_format": "true", + "summarize": "v2", +} + +deepgram = DeepgramClient(API_KEY) + + +async def transcribe_url(): + url_response = await deepgram.listen.prerecorded.transcribe_url(AUDIO_URL, options) + return url_response + + +async def main(): + try: + # STEP 1: Transcribe audio using Deepgram + response = await transcribe_url() + + # STEP 2: Convert Deepgram response to captions using deepgram_captions library + transcription = DeepgramConverter(json.loads(response)) + + # STEP 3: Generate captions in WebVTT format + captions_webvtt = webvtt(transcription) + print("WebVTT Captions:") + print(captions_webvtt) + + # STEP 4: Generate captions in SRT format + captions_srt = srt(transcription) + print("\nSRT Captions:") + print(captions_srt) + + except Exception as e: + print(f"Exception: {e}") + +if __name__ == "__main__": + asyncio.run(main())