Spaces:
Sleeping
Sleeping
import os | |
from dotenv import load_dotenv | |
from deepgram import DeepgramClient, PrerecordedOptions, FileSource, UrlSource | |
load_dotenv() | |
def transcribe_audio(source: str) -> str: | |
try: | |
deepgram = DeepgramClient(api_key=os.getenv('DEEPGRAM_API_KEY')) | |
options = PrerecordedOptions( | |
model="nova-3", | |
smart_format=True, | |
) | |
if source.startswith("http://") or source.startswith("https://"): | |
payload: UrlSource = {"url": source} | |
response = deepgram.listen.rest.v("1").transcribe_url(payload, options) | |
else: | |
with open(source, "rb") as file: | |
buffer_data = file.read() | |
payload: FileSource = {"buffer": buffer_data} | |
response = deepgram.listen.rest.v("1").transcribe_file(payload, options) | |
transcript = response.results.channels[0].alternatives[0].transcript | |
return transcript | |
except Exception as e: | |
print(f"Exception during transcription: {e}") | |
return "" | |
# if __name__ == "__main__": | |
# print("From file:\n", transcribe_audio("Power_English_Update.mp3")) | |
# print("\nFrom URL:\n", transcribe_audio("https://pronunciationstudio.com/wp-content/uploads/2016/02/Audio-Introduction-0.1.mp3")) | |