11from slashml import SpeechToText , TextSummarization
2- import time
3-
4-
5- def speech_to_text (uploaded_audio_url , service_provider , api_key ):
6- # Initialize model
7- model = SpeechToText (api_key = api_key )
8-
9- # Submit transcription request
10- job = model .transcribe (uploaded_audio_url , service_provider = service_provider )
11-
12- assert job .status != "ERROR" , f"{ job } "
13- print (f"Job ID: { job .id } " )
14-
15- # check job status
16- response = model .status (job .id , service_provider = service_provider )
17-
18- while response .status == "IN_PROGRESS" :
19- time .sleep (30 )
20- response = model .status (job .id , service_provider = service_provider )
21- print (f"Response = { response } . Retrying in 30 seconds" )
22-
23- return response
24-
25-
26- def summarize (text , service_provider , api_key ):
27- # Initialize model
28- model = TextSummarization (api_key = api_key )
29-
30- # Submit request
31- job = model .summarize (text = text , service_provider = service_provider )
32-
33- assert job .status != "ERROR" , f"{ job } "
34- print (f"Job ID: { job .id } " )
35-
36- # Check job status
37- response = model .status (job .id , service_provider = service_provider )
38-
39- # Keep checking job status until the task is complete
40- while response .status == "PENDING" :
41- print (f"Response = { response } . Retrying in 30 seconds" )
42- time .sleep (30 )
43- response = model .status (job .id , service_provider = service_provider )
44-
45- return response
46-
472
483# Replace `API_KEY` with your SlasML API token. This example still runs without
494# the API token but usage will be limited
50- API_KEY = "b503d137d229fdd4085f59e9ea06ac95d2706182 "
5+ API_KEY = "a7011983a0f3d64ee113317b1e36f8e5bf56c14a "
516
52- service_provider_speech_to_text = SpeechToText .ServiceProvider .AWS
7+ service_provider_speech_to_text = SpeechToText .ServiceProvider .WHISPER
538service_provider_summarize = TextSummarization .ServiceProvider .OPENAI
549
5510# 10 minute audio file already uploaded
5611uploaded_url = (
5712 "https://slashml.s3.ca-central-1.amazonaws.com/fda70f6a-6057-4541-adf1-2cf4f4182929"
5813)
5914
15+ transcribe = SpeechToText (api_key = API_KEY )
16+ summarize = TextSummarization (api_key = API_KEY )
6017
61- response_speech_to_text = speech_to_text (uploaded_url , service_provider_speech_to_text , API_KEY )
18+ response = transcribe .execute (
19+ upload_url = uploaded_url , service_provider = service_provider_speech_to_text
20+ )
6221
63- transcribed_text = response_speech_to_text .transcription_data .transcription
22+ print ('starting pipeline, the first response might take 10 secs' )
23+ transcribed_text = response .transcription_data .transcription
6424print (f"Transcribed Text = { transcribed_text } " )
6525
66- response_summarize = summarize (transcribed_text , service_provider_summarize , API_KEY )
26+ response_summarize = summarize .execute (transcribed_text , service_provider_summarize )
27+
6728summary = response_summarize .summarization_data
6829
6930print (f"Summarized Text = { summary } " )
0 commit comments