|
|
|
|
|
from deepgram import (
|
|
|
DeepgramClient,
|
|
|
PrerecordedOptions,
|
|
|
FileSource
|
|
|
)
|
|
|
import httpx
|
|
|
from sumy.parsers.plaintext import PlaintextParser
|
|
|
from sumy.nlp.tokenizers import Tokenizer
|
|
|
from sumy.summarizers.lsa import LsaSummarizer
|
|
|
|
|
|
def deepgram(buffer_data,language):
|
|
|
|
|
|
deepgram = DeepgramClient('5da1cbb9a0b27337e1ae7dc141b48c6775912ed2')
|
|
|
|
|
|
payload: FileSource = {
|
|
|
"buffer": buffer_data,
|
|
|
}
|
|
|
|
|
|
|
|
|
options = PrerecordedOptions(
|
|
|
model="nova-2",
|
|
|
smart_format=True,
|
|
|
language=language,
|
|
|
diarize=True
|
|
|
|
|
|
)
|
|
|
myTimeout = httpx.Timeout(300, connect=10.0)
|
|
|
|
|
|
response = deepgram.listen.prerecorded.v("1").transcribe_file(payload, options,timeout=myTimeout)
|
|
|
text=response['results']['channels'][0]['alternatives'][0]['paragraphs']['transcript']
|
|
|
return text
|
|
|
|
|
|
def summarize_text(text):
|
|
|
|
|
|
parser = PlaintextParser.from_string(text, Tokenizer("english"))
|
|
|
|
|
|
|
|
|
summarizer = LsaSummarizer()
|
|
|
|
|
|
|
|
|
summary = summarizer(parser.document, 3)
|
|
|
|
|
|
|
|
|
summary_text = " ".join([str(sentence) for sentence in summary])
|
|
|
|
|
|
return summary_text |